A living index of features that are merged to main in the mobile/ app — not planned, not in review, merged. Each row records what the feature does today, whether it runs on real or mock data, and the PR / ticket it landed under. Updated on every PR merge. Open PRs are intentionally excluded until they land.
The owner-facing history of what visitors asked their AI agent. The list and the detail thread are shipped; the data behind them is still mock, pending the backend rollup + intent classifier (JUE-394).
| Feature | What it does today | Data | Shipped under |
|---|---|---|---|
| Conversations list | A scrollable list of conversation rows (visitor name, question preview, relative time). Tapping a row opens the detail thread. The intent filter (All / Intros / Bookings / Press) was removed until the classifier that populates those flags exists — against a real, unclassified feed the tabs would filter to nothing (JUE-394). |
Mock (JUE-394) |
PR #96 |
| Conversation detail thread | Tapping a row pushes a full-screen, read-only message thread — visitor messages left/light, agent messages right/dark. Renders the visitor's question as the opening message today; the layout is ready for full transcripts. Bad/unknown id shows a "Conversation not found" state. | Mock (JUE-394) |
PR #92 |
The detail thread is a top-level push route (app/conversation/[id].tsx), outside the (home) tab group, so it covers the floating tab bar and back returns to the Conversations tab — the same pattern as /account. Screen: ConversationDetailScreen; bubble: ConvoMessageBubble; single-fetch hook: useConvo.
The owner's view of what their agent knows (stats + node list). The tab is premium-gated on mobile; the underlying data is still mock, pending the backend wiring + real premium detection (JUE-393).
| Feature | What it does today | Data | Shipped under |
|---|---|---|---|
| Premium gate + paywall | Free-tier users see the Knowledge tab behind a non-dismissible paywall — content dimmed behind a faux-blur scrim, a "Premium feature" card, and a "Manage on web" CTA that opens the web subscription page (payments are web-only on mobile). Premium users see the full page. The gate signal is mock today (defaults to ungated so real users are never wrongly locked) and swaps to the real backend 403 when JUE-393 lands. | Mock (JUE-393) |
PR #97 |
| "Recent" node list (was "Top nodes") | The node section was renamed "Top nodes" → "Recent" to be honest to the backend, which returns nodes ordered by created_at DESC (newest first), not by importance or connectivity. |
Mock (JUE-393) |
PR #97 |
Blurring in-app content and linking out to a web upgrade touches App Store Guideline 3.1.1. The CTA is framed as account management to reduce risk; the final wording / wiring decision is deferred to the app-store-compliance review before submission.
This page is the source of truth for "what mobile actually does," so it only records shipped reality.
When a mobile PR merges to main, a row is added or updated here in the same pass, via the ambasdr-docs skill.
Open or in-review PRs are not listed as existing. Implemented-but-unmerged work stays off this page until it lands.
Every row states whether it runs on real endpoints or mock data, and cites the ticket that will wire the real thing.