diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-08-16 00:22:01 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-08-16 00:22:01 +0200 |
| commit | 0231d240b92a2a11042fa62c0222d4c4b96a859d (patch) | |
| tree | b61ef0c24429adf03255c79608e0ff5b9795fafa | |
| parent | aa63cae5f004fc4d01471561404d59360784b784 (diff) | |
| download | meshbay-0231d240b92a2a11042fa62c0222d4c4b96a859d.tar.gz | |
chore: release 0.4.00.4
The web client speaks ten languages instead of one: French, Spanish,
Brazilian Portuguese, Simplified Chinese, Japanese, German, Italian, Dutch
and Polish, all formal, with `hub`, `node` and `GEK` deliberately left in
English so the interface still matches the CLI and the docs. Catalogues
are fetched per language rather than shipped together, plural forms go
through Intl.PluralRules because Polish needs four of them, and locale
matching keeps the region so pt-BR and zh-CN resolve to the files written
for them.
Splitting one module into a loader and ten catalogues gave the SPA a
version dependency it did not have before, and the hub was serving static
assets with no explicit freshness at all. A browser that cached half a
deploy either rendered every string as its own key or, in the other
direction, failed to link the module graph and showed nothing. Static
responses now carry no-cache, which costs one conditional request and
answers 304 with no body.
The node and common packages carry no functional change; they move with
the version because the three are released together.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
| -rw-r--r-- | packages/meshbay-common/pyproject.toml | 2 | ||||
| -rw-r--r-- | packages/meshbay-common/src/meshbay_common/__init__.py | 2 | ||||
| -rw-r--r-- | packages/meshbay-hub/pyproject.toml | 4 | ||||
| -rw-r--r-- | packages/meshbay-hub/src/meshbay_hub/__init__.py | 2 | ||||
| -rw-r--r-- | packages/meshbay-node/pyproject.toml | 4 | ||||
| -rw-r--r-- | packages/meshbay-node/src/meshbay_node/__init__.py | 2 | ||||
| -rw-r--r-- | packaging/rpm/meshbay-hub.spec | 9 | ||||
| -rw-r--r-- | packaging/rpm/meshbay-node.spec | 5 | ||||
| -rw-r--r-- | packaging/rpm/python3-meshbay-common.spec | 5 |
9 files changed, 24 insertions, 11 deletions
diff --git a/packages/meshbay-common/pyproject.toml b/packages/meshbay-common/pyproject.toml index dede42f..f8d4673 100644 --- a/packages/meshbay-common/pyproject.toml +++ b/packages/meshbay-common/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "meshbay-common" -version = "0.3.0" +version = "0.4.0" description = "MeshBay shared cryptographic primitives and protocol types" requires-python = ">=3.12" dependencies = [ diff --git a/packages/meshbay-common/src/meshbay_common/__init__.py b/packages/meshbay-common/src/meshbay_common/__init__.py index 8f6abb7..ef0f1f6 100644 --- a/packages/meshbay-common/src/meshbay_common/__init__.py +++ b/packages/meshbay-common/src/meshbay_common/__init__.py @@ -1,5 +1,5 @@ """MeshBay common — shared crypto primitives and protocol types.""" -__version__ = "0.3.0" +__version__ = "0.4.0" MNP_VERSION = "0.1" MHP_VERSION = "0.1" diff --git a/packages/meshbay-hub/pyproject.toml b/packages/meshbay-hub/pyproject.toml index 8c6fe70..4c18b10 100644 --- a/packages/meshbay-hub/pyproject.toml +++ b/packages/meshbay-hub/pyproject.toml @@ -4,11 +4,11 @@ build-backend = "hatchling.build" [project] name = "meshbay-hub" -version = "0.3.0" +version = "0.4.0" description = "MeshBay Hub — identity authority and group registry server" requires-python = ">=3.12" dependencies = [ - "meshbay-common>=0.3.0", + "meshbay-common>=0.4.0", "fastapi>=0.115", "uvicorn[standard]>=0.30", "sqlalchemy>=2.0", diff --git a/packages/meshbay-hub/src/meshbay_hub/__init__.py b/packages/meshbay-hub/src/meshbay_hub/__init__.py index 99b22ea..9af9cba 100644 --- a/packages/meshbay-hub/src/meshbay_hub/__init__.py +++ b/packages/meshbay-hub/src/meshbay_hub/__init__.py @@ -1,3 +1,3 @@ """MeshBay Hub — identity authority and group registry.""" -__version__ = "0.3.0" +__version__ = "0.4.0" diff --git a/packages/meshbay-node/pyproject.toml b/packages/meshbay-node/pyproject.toml index 897b5e9..a150fb3 100644 --- a/packages/meshbay-node/pyproject.toml +++ b/packages/meshbay-node/pyproject.toml @@ -4,11 +4,11 @@ build-backend = "hatchling.build" [project] name = "meshbay-node" -version = "0.3.0" +version = "0.4.0" description = "MeshBay Node — local file host, streaming server, and group daemon" requires-python = ">=3.12" dependencies = [ - "meshbay-common>=0.3.0", + "meshbay-common>=0.4.0", "fastapi>=0.115", # local web UI on localhost:18000 "uvicorn[standard]>=0.30", "httpx>=0.28", # hub client diff --git a/packages/meshbay-node/src/meshbay_node/__init__.py b/packages/meshbay-node/src/meshbay_node/__init__.py index e4989b2..25e544b 100644 --- a/packages/meshbay-node/src/meshbay_node/__init__.py +++ b/packages/meshbay-node/src/meshbay_node/__init__.py @@ -1,3 +1,3 @@ """MeshBay Node — local file host, streaming server, and group daemon.""" -__version__ = "0.3.0" +__version__ = "0.4.0" diff --git a/packaging/rpm/meshbay-hub.spec b/packaging/rpm/meshbay-hub.spec index 68a580c..cde6fc3 100644 --- a/packaging/rpm/meshbay-hub.spec +++ b/packaging/rpm/meshbay-hub.spec @@ -1,5 +1,5 @@ Name: meshbay-hub -Version: 0.3.0 +Version: 0.4.0 Release: 1%{?dist} Summary: MeshBay Hub — identity authority and group registry server License: AGPLv3+ @@ -74,6 +74,13 @@ getent passwd meshbay >/dev/null || \ %dir %attr(750, meshbay, meshbay) %{_sharedstatedir}/meshbay/hub %changelog +* Sun Aug 16 2026 MeshBay Team <team@meshbay.org> - 0.4.0-1 +- Web client translated into fr, es, pt-BR, zh-CN, ja, de, it, nl and pl +- Catalogues load on demand, one file per language, English as fallback +- Plural forms selected through Intl.PluralRules (Polish needs four) +- Locale matching keeps the region, so pt-BR and zh-CN resolve +- Static assets are revalidated, so a half-updated SPA cannot load + * Sat Aug 15 2026 MeshBay Team <team@meshbay.org> - 0.3.0-1 - Transfers survive leaving a group; downloads stream to disk in every browser - Download a folder as a zip, built in the browser (zip64, store-only) diff --git a/packaging/rpm/meshbay-node.spec b/packaging/rpm/meshbay-node.spec index 152cf3a..b2a4fce 100644 --- a/packaging/rpm/meshbay-node.spec +++ b/packaging/rpm/meshbay-node.spec @@ -1,5 +1,5 @@ Name: meshbay-node -Version: 0.3.0 +Version: 0.4.0 Release: 1%{?dist} Summary: MeshBay Node — local file host, streaming server, and group daemon License: AGPLv3+ @@ -53,6 +53,9 @@ install -Dm644 packaging/systemd/meshbay-node.service \ %{_userunitdir}/meshbay-node.service %changelog +* Sun Aug 16 2026 MeshBay Team <team@meshbay.org> - 0.4.0-1 +- No functional change; released in step with the other packages + * Sat Aug 15 2026 MeshBay Team <team@meshbay.org> - 0.3.0-1 - Video streaming is paced by the client; stream_stop frees the transcode slot - Operator can remove an empty directory and revoke a member over MNP diff --git a/packaging/rpm/python3-meshbay-common.spec b/packaging/rpm/python3-meshbay-common.spec index 0ecde29..cdfc984 100644 --- a/packaging/rpm/python3-meshbay-common.spec +++ b/packaging/rpm/python3-meshbay-common.spec @@ -1,5 +1,5 @@ Name: python3-meshbay-common -Version: 0.3.0 +Version: 0.4.0 Release: 1%{?dist} Summary: MeshBay shared cryptographic primitives and protocol types License: AGPLv3+ @@ -38,6 +38,9 @@ encryption/signing, keystore AES-256-GCM, and MNP protocol types. %{python3_sitelib}/meshbay_common-*.dist-info/ %changelog +* Sun Aug 16 2026 MeshBay Team <team@meshbay.org> - 0.4.0-1 +- No functional change; released in step with the other packages + * Sat Aug 15 2026 MeshBay Team <team@meshbay.org> - 0.3.0-1 - MNP: dir_delete, member_revoke, stream_more/stream_stop; file_chunk names its file |