diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-08-09 04:58:36 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-08-09 04:58:36 +0200 |
| commit | 3cad68ad33e3b5a481adaab569f65f6a9d0c8719 (patch) | |
| tree | 104f91ff6917668bdfccb8fa25d161556dc9949d /devel-phases.md | |
| parent | c9422eaf95090cde6411186c0d62b04286a8477c (diff) | |
| download | meshbay-3cad68ad33e3b5a481adaab569f65f6a9d0c8719.tar.gz | |
docs: mark Phase 4 complete — web client live on meshbay.org
Node HTTP API (7/7 tests), hub web app deployed, HLS streaming
(ffmpeg), public group listing. 47/47 total tests.
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'devel-phases.md')
| -rw-r--r-- | devel-phases.md | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/devel-phases.md b/devel-phases.md index 482e478..ce584fc 100644 --- a/devel-phases.md +++ b/devel-phases.md @@ -197,7 +197,7 @@ hatchling==1.31.0 # build backend (needed for pip install) --- -## Phase 4 — Integration & Web Client 🚧 IN PROGRESS +## Phase 4 — Integration & Web Client ✅ DONE **Goal:** end-to-end working product in a browser: login via hub, discover groups, browse files on a node, download and stream public content. @@ -213,11 +213,30 @@ Browsers cannot make raw TCP connections — the node must speak HTTP. | # | Component | File(s) | Status | |---|---|---|---| -| 4.1 | Node HTTP file API | `meshbay_node/transport/http_server.py` | 🚧 | -| 4.2 | Hub web app (HTML/JS) | `meshbay_hub/api/webapp.py` + `static/` | 🚧 | -| 4.3 | Group listing endpoint | `meshbay_hub/api/groups.py` — GET /v1/groups | 🚧 | -| 4.4 | End-to-end integration test | local node ↔ hub ↔ browser | 🚧 | -| 4.5 | HLS streaming (public) | node serves `m3u8` + `.ts` segments | 🚧 | +| 4.1 | Node HTTP file API | `meshbay_node/transport/http_server.py` | ✅ 7/7 tests | +| 4.2 | Hub web app (HTML/JS) | `meshbay_hub/api/webapp.py` + `static/app.js` | ✅ live on meshbay.org | +| 4.3 | Group listing endpoint | `meshbay_hub/api/groups.py` GET /v1/groups | ✅ | +| 4.4 | End-to-end integration test | local node ↔ hub ↔ browser | ✅ smoke test | +| 4.5 | HLS streaming (public) | node `/hls/{id}/playlist.m3u8` + `.ts` via ffmpeg | ✅ included in 4.1 | + +**Total: 47/47 tests. https://meshbay.org live with web client.** + +### Phase 4 deployment + +- `https://meshbay.org/` — web app (HTML/JS SPA) +- `https://meshbay.org/app.js` — JS client +- `https://meshbay.org/v1/groups` — public group listing (no auth) +- Node HTTP API (port 19001): `/index`, `/file/{id}`, `/hls/{id}/*.m3u8`, `/hls/{id}/*.ts` +- HLS streaming uses ffmpeg for on-the-fly segmentation +- Public content: no auth for index, auth required for chunks +- Private content (GEK decrypt in browser): deferred to Phase 5 + +### Dependencies added in Phase 4 + +``` +# Node (runtime) +ffmpeg (system package) — HLS segmentation via subprocess +``` ### Phase 4 scope |