Changelog
What we've shipped.
Reverse-chronological program shipments. Filter by program if you want a specific track.
Browse-mode catalog wiring (Phase 14)
- Storefront browse modes now read from the canonical catalog provider
- Convergence layer reconciles storefront state with entitlement state
- Backend-authoritative purchase flow remains the only mutation path
Public-profile routing live
- Native publicIds resolve to in-launcher profile panel
- Federated Bluesky handles render alongside native, same panel shape
AI Tutor lands as a real surface (Phase 7b)
- BYOK AI Tutor available inside courses
- Supports OpenAI, Anthropic, and local Ollama via CLI subprocess
- Keys stored in flutter_secure_storage; conversations route directly to provider
Stripe Connect UI completes (Phase 8)
- Author onboarding to Stripe Connect
- Payouts visible inside Education author tooling
Visual phases 10–12 landed
- Post card link previews unfurl natively
- Award and boost surfaces refined
- Audio post reply flow simplified
Engine Stages 0–3 shipped
- Domain model: typed positions, avatars, room state
- Transport, codec, and FakeSpatialTransport for tests
- SpatialSimulation deterministic test harness
- Engine package stays platform-agnostic — no host imports inside
Messaging consolidation Stages 7–9
- Legacy chat-side realtime path reaped
- Permission resolver enforced via custom lint
- Send policy split into durable vs best-effort lanes per message
News program fully shipped
- All feature stages landed
- 500+ tests passing across all surfaces
- RSS, Atom, Bluesky federation in one inbox
Nexus Chunk I — streaming substrate
- Stream chat threads through realtime substrate
- Viewer presence threads through presence substrate
Voice beta opens (Nexus Chunk G)
- LiveKit-backed voice rooms and 1:1 huddles available behind a feature flag
- Off by default — opt in via Settings → Voice
Build: v0.1.0
Open Voice →