aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-08-16 15:29:30 +0200
committerChristophe Besson <cbesson@gmail.com>2026-08-16 15:29:30 +0200
commite4a98ced73541f8d892ed7959cb5c0fefd4dba57 (patch)
tree4151a81c171d7af8485338693a99b91362991444
parent3a37063aac59b8faaae72cd71c1990231a898144 (diff)
downloadmeshbay-e4a98ced73541f8d892ed7959cb5c0fefd4dba57.tar.gz
chore: release 0.5.0
Two rounds of features and one long hunt. The hub gained leaving a group, a cap of ten live public groups per owner, and the rule that a group is listed only once a node has announced it — with `prune-groups` to collect the ones that never got one. Presence rides on the group list, from the registry the hub already keeps for signaling. The web client speaks ten languages, splits Profile from Settings, and reads chat the way it is written: newest first, paging backwards. The rest was one symptom — "close the viewer, the next video hangs" — with three independent causes underneath, none of which the test suite or e2e.py could see. A background task the loop only weakly referenced, collected while it held a transcode slot. A connection-state handler that forgot a peer without stopping it. And `await proc.wait()` deadlocking on ffmpeg's own unread output, which no amount of SIGKILL resolves. Found by instrumenting the node and reading the log, after two confident fixes that addressed real but different bugs. MNP goes to 0.2: PING/PONG and backward chat paging, both additive. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
-rw-r--r--packages/meshbay-common/pyproject.toml2
-rw-r--r--packages/meshbay-hub/pyproject.toml4
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/__init__.py2
-rw-r--r--packages/meshbay-node/pyproject.toml4
-rw-r--r--packages/meshbay-node/src/meshbay_node/__init__.py2
-rw-r--r--packaging/rpm/meshbay-hub.spec11
-rw-r--r--packaging/rpm/meshbay-node.spec9
-rw-r--r--packaging/rpm/python3-meshbay-common.spec5
8 files changed, 29 insertions, 10 deletions
diff --git a/packages/meshbay-common/pyproject.toml b/packages/meshbay-common/pyproject.toml
index f8d4673..62a9d8b 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.4.0"
+version = "0.5.0"
description = "MeshBay shared cryptographic primitives and protocol types"
requires-python = ">=3.12"
dependencies = [
diff --git a/packages/meshbay-hub/pyproject.toml b/packages/meshbay-hub/pyproject.toml
index 4c18b10..6a83794 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.4.0"
+version = "0.5.0"
description = "MeshBay Hub — identity authority and group registry server"
requires-python = ">=3.12"
dependencies = [
- "meshbay-common>=0.4.0",
+ "meshbay-common>=0.5.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 9af9cba..90e3066 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.4.0"
+__version__ = "0.5.0"
diff --git a/packages/meshbay-node/pyproject.toml b/packages/meshbay-node/pyproject.toml
index a150fb3..f81a740 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.4.0"
+version = "0.5.0"
description = "MeshBay Node — local file host, streaming server, and group daemon"
requires-python = ">=3.12"
dependencies = [
- "meshbay-common>=0.4.0",
+ "meshbay-common>=0.5.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 25e544b..407c2a4 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.4.0"
+__version__ = "0.5.0"
diff --git a/packaging/rpm/meshbay-hub.spec b/packaging/rpm/meshbay-hub.spec
index cde6fc3..6872520 100644
--- a/packaging/rpm/meshbay-hub.spec
+++ b/packaging/rpm/meshbay-hub.spec
@@ -1,5 +1,5 @@
Name: meshbay-hub
-Version: 0.4.0
+Version: 0.5.0
Release: 1%{?dist}
Summary: MeshBay Hub — identity authority and group registry server
License: AGPLv3+
@@ -74,6 +74,15 @@ getent passwd meshbay >/dev/null || \
%dir %attr(750, meshbay, meshbay) %{_sharedstatedir}/meshbay/hub
%changelog
+* Sun Aug 16 2026 MeshBay Team <team@meshbay.org> - 0.5.0-1
+- Leave a group; public groups capped at 10 per owner, staff exempt
+- Groups are listed only once a node has announced them; prune-groups collects the rest
+- Node presence dot in the sidebar, from the signaling registry — no polling
+- Chat opens on the newest 100 messages and pages backwards (it used to page forwards)
+- Profile split out of Settings; public groups are open, invite-only is private
+- Streamed downloads verify the service worker is really serving before writing
+- Static assets are revalidated, so a half-updated SPA cannot load
+
* 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
diff --git a/packaging/rpm/meshbay-node.spec b/packaging/rpm/meshbay-node.spec
index b2a4fce..7052cff 100644
--- a/packaging/rpm/meshbay-node.spec
+++ b/packaging/rpm/meshbay-node.spec
@@ -1,5 +1,5 @@
Name: meshbay-node
-Version: 0.4.0
+Version: 0.5.0
Release: 1%{?dist}
Summary: MeshBay Node — local file host, streaming server, and group daemon
License: AGPLv3+
@@ -53,6 +53,13 @@ install -Dm644 packaging/systemd/meshbay-node.service \
%{_userunitdir}/meshbay-node.service
%changelog
+* Sun Aug 16 2026 MeshBay Team <team@meshbay.org> - 0.5.0-1
+- Abandoned video streams release their transcode slot at once
+- Background tasks are held, so none is collected mid-flight losing a slot
+- ffmpeg is reaped without deadlocking on its own unread output
+- Chunk replies wait for room on the channel instead of queueing 8 MB
+- Chat history pages backwards; upload names accept any script, and errors name the file
+
* Sun Aug 16 2026 MeshBay Team <team@meshbay.org> - 0.4.0-1
- No functional change; released in step with the other packages
diff --git a/packaging/rpm/python3-meshbay-common.spec b/packaging/rpm/python3-meshbay-common.spec
index cdfc984..931dcfd 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.4.0
+Version: 0.5.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.5.0-1
+- MNP 0.2: PING/PONG, and backward chat paging (before / has_more)
+
* Sun Aug 16 2026 MeshBay Team <team@meshbay.org> - 0.4.0-1
- No functional change; released in step with the other packages