<feed xmlns='http://www.w3.org/2005/Atom'>
<title>meshbay.git/devel-phases.md, branch 0.6</title>
<subtitle>MeshBay — read-only public mirror</subtitle>
<id>https://git.meshbay.org/meshbay.git/atom?h=0.6</id>
<link rel='self' href='https://git.meshbay.org/meshbay.git/atom?h=0.6'/>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/'/>
<updated>2026-08-11T02:13:53Z</updated>
<entry>
<title>feat: Phase 9 — Web client SPA with WebRTC P2P transport</title>
<updated>2026-08-11T02:13:53Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-08-11T02:13:53Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=e23e33adeaf8ee7439187d4451c856b37816a51f'/>
<id>urn:sha1:e23e33adeaf8ee7439187d4451c856b37816a51f</id>
<content type='text'>
Complete browser-based client: Preact SPA with login, group file browser,
encrypted download, video playback, group chat, i18n, and dark/light theme.
Browser connects P2P to nodes behind residential NAT via WebRTC DataChannel
(aiortc). Hub handles signaling only — all data flows E2E.

Performance: pipelined downloads (8-chunk sliding window), binary msgpack
wire format (no base64), redundant I/O elimination. Large file downloads
stream to disk via File System Access API (showSaveFilePicker).

Validated on SFR + Orange residential NATs, Chrome + Firefox, IPv4/IPv6.
132 tests passing. Deployed to meshbay.org + Orange node.

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>docs: update devel-phases — demo-v2 NAT traversal QUIC validated</title>
<updated>2026-08-09T22:30:35Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-08-09T22:30:35Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=6ef349fee50cb8436ed12aa2a24c3b6918d1db21'/>
<id>urn:sha1:6ef349fee50cb8436ed12aa2a24c3b6918d1db21</id>
<content type='text'>
SFR Port-Restricted Cone NAT diagnosed. punch_nat() implemented.
QUIC direct Fedora→SFR→meshbay.org: 12.7s handshake, file transfer OK.

Co-Authored-By: Claude Sonnet 4.6 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>docs: update all pointers after keyderive + QE restructure</title>
<updated>2026-08-09T12:57:01Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-08-09T12:57:01Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=44b9e74153f5e32b3665f319429b3b08fd3662d5'/>
<id>urn:sha1:44b9e74153f5e32b3665f319429b3b08fd3662d5</id>
<content type='text'>
CLAUDE.md: add QE/ to structure, key modules table, server state reference,
security rule updated (QE/ not keypair files), meshbay.org inventory pointer.

devel-phases.md: add milestones 6.6-6.9 (keyderive, bundle, demo scripts,
QUICKSTART rewrite). 81/81 tests.

docs/meshbay-draft-v3.md §6.1.1: new section documenting 3 key generation
strategies (Argon2id CLI, WebCrypto browser+bundle, keystore file) and the
algorithm mismatch caveat between CLI and web registration paths.

docs/USERGUIDE.md §2 Register+Login: replace "generate and persist before
registering" warning with the two clean strategies (derive_keys_from_password
for CLI, keyderive.js + keypair_bundle for browser). Login response updated
with keypair_bundle field.

hub/models.py + users.py + Alembic migration: keypair_bundle column on User,
stored at registration, returned at login (web clients only).

Co-Authored-By: Claude Sonnet 4.6 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>docs: mark Phase 6 complete — 74/74 tests</title>
<updated>2026-08-09T03:31:35Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-08-09T03:31:35Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=ebfece74d21ba6b9e2e896f54193927b93d90645'/>
<id>urn:sha1:ebfece74d21ba6b9e2e896f54193927b93d90645</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>docs: add Phase 6 plan — chat, multi-group, federation, replication</title>
<updated>2026-08-09T03:25:43Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-08-09T03:25:43Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=99e965329cc2c88b667d7ba4733851445f3e2641'/>
<id>urn:sha1:99e965329cc2c88b667d7ba4733851445f3e2641</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>docs: mark Phase 5 complete — QUIC, federation, moderation, packaging</title>
<updated>2026-08-09T03:22:28Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-08-09T03:22:28Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=5c40ef4d5799f55bb37c4b7d8308d7fe18fc737a'/>
<id>urn:sha1:5c40ef4d5799f55bb37c4b7d8308d7fe18fc737a</id>
<content type='text'>
59/59 tests. Hub deployed on meshbay.org with all Phase 5 features.
Android/iOS deferred. MHP federation memory-only (DB persistence next).

Co-Authored-By: Claude Sonnet 4.6 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>docs: mark Phase 4 complete — web client live on meshbay.org</title>
<updated>2026-08-09T02:58:36Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-08-09T02:58:36Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=3cad68ad33e3b5a481adaab569f65f6a9d0c8719'/>
<id>urn:sha1:3cad68ad33e3b5a481adaab569f65f6a9d0c8719</id>
<content type='text'>
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) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>docs: add Phase 4 plan — web client + node HTTP API</title>
<updated>2026-08-09T02:54:03Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-08-09T02:54:03Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=a4522fe8253fcf6702cf6af7c25284b9519f3969'/>
<id>urn:sha1:a4522fe8253fcf6702cf6af7c25284b9519f3969</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>docs: add HTTPS.md + configure www.meshbay.org redirect</title>
<updated>2026-08-09T02:53:20Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-08-09T02:53:20Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=7d62ef84c48660d02df0dd925ec420641b97a936'/>
<id>urn:sha1:7d62ef84c48660d02df0dd925ec420641b97a936</id>
<content type='text'>
Caddyfile updated: www → 301 → meshbay.org (canonical).
Caddy auto-issued Let's Encrypt cert for www.meshbay.org in 4s.
HTTPS.md explains the setup, cert lifecycle (90-day, auto-renewed),
why 1-year certs are not recommended, DNS requirements.

Co-Authored-By: Claude Sonnet 4.6 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>docs: mark Phase 3 complete — hub deployed on https://meshbay.org</title>
<updated>2026-08-09T02:45:21Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-08-09T02:45:21Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=d8ade10420ab7a36c917c7219ee795501055648d'/>
<id>urn:sha1:d8ade10420ab7a36c917c7219ee795501055648d</id>
<content type='text'>
PostgreSQL 16 + Caddy HTTPS + systemd. 40 local tests (SQLite) +
11/11 smoke tests on production HTTPS. IP logging, rate limiting,
JWT with jti, Argon2id passwords, GEK bundle API all operational.

Co-Authored-By: Claude Sonnet 4.6 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
