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 dede42f0..f8d4673a 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 8f6abb74..ef0f1f65 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 8c6fe706..4c18b10e 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 99b22ea2..9af9cbac 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 897b5e9e..a150fb36 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 e4989b2b..25e544bd 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 68a580c2..cde6fc3a 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 152cf3a9..b2a4fce6 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 0ecde299..cdfc9840 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 |