THE root cause: netbird's dashboard requires a secure context (HTTPS).
Browser console on the failing login showed Uncaught Error: window.crypto.subtle is unavailable. window.crypto.subtle…
Real final root cause of "Unauthenticated": a stale netbird store.
After the resolver/CORS/LAN-origin fixes the infra was fully healthy (all endpoints 200, OIDC discovery valid), yet the…
Rust-native design written → docs/meshroller-integration-design.md (verified against the real mesh seams).
Mapping (Meshroller behavior → our stack):
- LLM bridge → two new…
Architecture decision made (2026-06-17): seam (a) — Rust-native lift.
Rather than packaging the Python/Meshtastic daemon and writing a meshcore backend for it, we will lift Meshroller's…
Done — fixed in commit c10f2ac2 (local main; ships with the next push/release).
The categorisation logic was already correct (built under #45): a package lands in My Apps only when…
Follow-up — final root cause + end-to-end fix confirmed.
After the resolver/CORS/LAN-origin fixes, login still failed with "Unauthenticated". Deeper diagnosis on .198 showed `/oauth2/.well-k…
Diagnosed live on .198 and fixed in code — netbird now works on the LAN IP.
Three distinct problems were stacked here:
- nginx cached a container IP → permanent 502. The proxy used…
Code-side review done; full diagnosis still needs podman logs from a node (LOW PRIORITY, kept open).
NetBird installs as a 3-container stack (stacks.rs): netbird-server (management/signa…
Phase 0 review done. License + meshcore questions resolved by maintainer; remaining gate is the architecture decision.
Reviewed the repo: Meshroller is a single ~29KB Python daemon (`meshrolle…
Phase 1 (Lightning invoice + QR + release) implemented — open for Phase 2/3.
The buyer can now choose how to pay a paid peer file:
- This node's wallet — existing ecash fast path…