<feed xmlns='http://www.w3.org/2005/Atom'>
<title>meshbay.git/docs/QUICKSTART.md, branch 0.1</title>
<subtitle>MeshBay — read-only public mirror</subtitle>
<id>https://git.meshbay.org/meshbay.git/atom?h=0.1</id>
<link rel='self' href='https://git.meshbay.org/meshbay.git/atom?h=0.1'/>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/'/>
<updated>2026-08-09T20:28:47Z</updated>
<entry>
<title>fix: complete pyproject.toml deps + graceful QUIC fallback</title>
<updated>2026-08-09T20:28:47Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-08-09T20:28:47Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=82ce18ef9f45f817505b12e24c958beda45465f0'/>
<id>urn:sha1:82ce18ef9f45f817505b12e24c958beda45465f0</id>
<content type='text'>
meshbay-node/pyproject.toml: add aioquic&gt;=1.0 (was commented 'v2'),
websockets&gt;=12.0 (revocation push). Both are production code since Phase 5.

meshbay-hub/pyproject.toml: add aiosqlite (tests without PostgreSQL),
slowapi (rate limiting), websockets (revocation push), PyJWT (explicit).

transport/__init__.py: QUIC imports wrapped in try/except — node works
without aioquic (TCP+TLS + HTTP fallback). QUIC_AVAILABLE flag exported.

QUICKSTART.md: replace manual pip list with 'pip install -e' that pulls
all deps from pyproject.toml automatically. Add dependency table.

CLAUDE.md: clarify that all deps go in pyproject.toml, not manual installs.

81/81 tests.

Co-Authored-By: Claude Sonnet 4.6 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix: venv --clear required when copying repo across OS (Fedora→Ubuntu)</title>
<updated>2026-08-09T19:55:12Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-08-09T19:55:12Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=a4dbeb368d19f6afc0f6da3819c8e0d6242b0732'/>
<id>urn:sha1:a4dbeb368d19f6afc0f6da3819c8e0d6242b0732</id>
<content type='text'>
Root cause: certifi.where() in the Fedora venv points to
/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem which does not
exist on Ubuntu. 'python3 -m venv .venv' without --clear keeps the
Fedora certifi paths. Fix: always use --clear when recreating a venv
on a different OS.

Documented in QUICKSTART.md and CLAUDE.md.
rsync command updated to exclude .venv/ (in QE/server-state, not versioned).

Co-Authored-By: Claude Sonnet 4.6 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix: document pip SSL_CERT_FILE workaround for Python 3.14 on Ubuntu/Fedora</title>
<updated>2026-08-09T19:43:31Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-08-09T19:43:31Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=5f671267730e2d73b951f7d97d437ce8e47873a2'/>
<id>urn:sha1:5f671267730e2d73b951f7d97d437ce8e47873a2</id>
<content type='text'>
pip + Python 3.14 fails with FileNotFoundError in certifi.where() on fresh
venvs (truststore bug). Fix: SSL_CERT_FILE pointing to system CA bundle.
Documented in CLAUDE.md (Python environment section) and QUICKSTART.md.

Co-Authored-By: Claude Sonnet 4.6 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat: password-based key derivation + operational QUICKSTART</title>
<updated>2026-08-09T12:50:22Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-08-09T12:50:22Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=aed220d9f0bab42efd57b56851319e840ab8ae26'/>
<id>urn:sha1:aed220d9f0bab42efd57b56851319e840ab8ae26</id>
<content type='text'>
keyderive.py: derive Ed25519+X25519 from username+password via Argon2id.
Same credentials → same keys on any device. Encrypt/decrypt keypair
bundle (AES-256-GCM) for hub storage (web clients).
7/7 tests. Full suite: 81/81.

keyderive.js: browser counterpart using PBKDF2-SHA512 + random keypairs
encrypted for hub storage. Avoids algorithm mismatch with Python.

hub/models.py + users.py: keypair_bundle field added to User, stored on
registration, returned in login response for web client key recovery.

QUICKSTART.md: fully rewritten. 3 operational scripts in QE/demo-v1/:
  setup_demo.py  — create accounts, group, distribute GEK
  run_node.py    — start HTTP node (watches shared/ directory)
  download.py    — bob login → GEK fetch → decrypt → save
All tested locally end-to-end. No invented URLs.

Co-Authored-By: Claude Sonnet 4.6 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>docs: add QUICKSTART.md and USERGUIDE.md</title>
<updated>2026-08-09T09:49:11Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-08-09T09:49:11Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=7b5ca7d7b68ea2324474f5aeec511abe01ff8013'/>
<id>urn:sha1:7b5ca7d7b68ea2324474f5aeec511abe01ff8013</id>
<content type='text'>
QUICKSTART (434 lines): 6-step guide tested against live
https://meshbay.org — demo accounts alice_test/bob_test,
real transfer of README.txt (23ms) and 1MB chunk (275ms recv,
2.4ms decrypt), exact Python commands with measured output.

USERGUIDE (785 lines): 11-section reference — architecture,
account management, group/node config, file sharing, HLS streaming,
security model, moderation/CSAM, troubleshooting, full API table.

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