- Inline markdown editor — auto-format as you type with full TipTap WYSIWYG (phase-gated). Edit notes inline on both web and mobile. PR [#127]
- Auto-commit split proposals — when split confidence is high enough, the worker files notes directly instead of queuing for manual review. PR [#128]
- Media kind normalization — mobile capture recents and related-note glyphs now use the unified
mediaKind field. PR [#129]
- Supabase JWKS verification — ES256/RS256 tokens verified via JWKS, fixing a real alg-confusion vulnerability. PR [#126]
- Real fingerprint CI gate — EAS updates/builds now gated on actual native fingerprint, not path heuristics. PR [#125]
- Fly.io entrypoint resolution — pinned
rootDir in tsconfig so Docker build resolves correctly. PR [#124]
- Mobile Stack component — no longer clones
style onto Fragment children (removes spurious error). PR [#120]
- Folder delete now refreshes counts and active folder state. PR [#122]
- Wall inline markdown review fixes — cleanups from the markdown editor code review. PR [#127]
- Calm note card — redesigned Wall cards with reduced chrome: actions moved to long-press menu and swipe (P0). PR [#106]
- Note detail view — tap a card to open a full reading view at
wall/[id] (P1). PR [#107]
- Density toggle — switch between List and Gallery (masonry) views (P2). PR [#108]
- Swipe actions — swipe Wall cards for quick actions. PR [#115]
- MCP server — stdio MCP server for notes access with Claude Code. PRs [#104], [#114], [#116], [#118]
- MCP packaging — setup script, CLI auth, portable test script. PRs [#114], [#116], [#118]
- Mobile inbox layout — correct flex sizing in Inbox list and Wall folder bar. PR [#119]
- Digest card spacing on mobile. PR [#121]
- Stack component Fragment cloning — React 19 compatibility. PR [#120]
- MCP server skeleton — initial
apps/mcp workspace with stdio transport. PR [#104]
- Semantic note search endpoint —
GET /content/search for pgvector-powered search. PR [#103]
- Manual QA suite — comprehensive test plan across all application surfaces. PR [#102]
- Structured AI understanding pass — per-capture analysis consolidated into one pass (summary, tags, entities, sentiment). PR [#105]
- Entity extraction — people, organizations, projects extracted from capture content.
- Chat errors now surface correctly when rejected before streaming starts. PR [#99]
- Wall drag-to-file restored — CSS multicol interference fixed. PR [#84]
- Voice transcription no longer stuck on "Transcribing…" for mobile. PR [#81]
- "Signing in…" loop on web — IAM submit state decoupled from session restore. PR [#88]
- Edit notes — title/body editing on both web and mobile. PR [#76]
- Copy note to clipboard — available on all platforms. PR [#75]
- Archive notes — web and mobile archive with undo. PR [#77]
- Bulk note actions — select multiple notes to move, copy, or delete. PR [#78]
- Voice capture — record, transcribe, edit on web and mobile. PR [#87]
- Mobile billing endpoints — read-only plans, subscription, status. PR [#79]
- Feedback accessibility — account-menu and Settings entry points. PR [#80]
- Voice capture is now free (no Pro gate) — it's the wedge, not the lock. PR [#86]
- Folder counts refresh correctly on folder delete. PR [#84]
- Mobile Phase 1 — capture ack, full-composer path, transcription state. PR [#45]
- Related suggestions — inline "Related" on Wall cards. PR [#52]
- Digest card — briefing/digest on the mobile Wall. PR [#53]
- Mobile motion — spring entrance on glass overlays and capture ack. PRs [#54], [#55]
- RAG wiring — retrieval pipeline connected for mobile (inert on OpenAI quota). PR [#49]
- Pro-gate on Ask — graceful upgrade prompt. PR [#48]
- Voice capture ungate — capture is free for all users. PR [#47]
- Growth engine M4 — value-based bidding (LTV proxy) and multi-touch attribution. PRs [#32], [#33]
- Growth engine M3 — ROAS join, admin Growth panel, daily spend ingestion. PRs [#28], [#30]
- Growth engine M2 — conversion suppression and consent. PRs [#20]-[#26]
- Growth engine M1 — attribution capture, pipeline, audience sync. PRs [#15]-[#17]
- AI-powered folders — directory suggestions with format prompts. PR [#34]
- Folder follow-ups — drag-drop, realtime AI, counts, graph edges. PR [#36]
- Notifications — "Update available" OTA refresh banner on mobile. PR [#37]
- Admin dashboard — waitlist, signups, subscriptions, feedback, sessions. PR [#13]
- Configuration reference and architecture docs. PRs [#38], [#19]
- Postgres graph store — Neo4j→Postgres cutover complete. 48 files removed.
- Mobile brand unification — green primary across the app. PR [#6]
- Design tokens — single source of truth for brand colors, spacing, typography.
- Knowledge graph infrastructure (Postgres + pgvector)
- AI chat with multi-agent runtime (LangChain/LangGraph)
- Task extraction from wall content
- Real-time messaging channels and threads
- Project management with tasks, comments, and files
- Supabase auth with JWT
- Mobile app (Expo/React Native)
- Event system (Postgres outbox + Redis streams)
- Initial release — auth module restructured into IAM domain. First PR [#1].
- Monorepo scaffold (Turborepo + Yarn workspaces)
- NestJS API with Supabase backend
- Next.js web app foundation
- Wall (notes feed) with text and voice capture