← Ambasdr Platform Docs
Mobile · Implemented features

What the mobile app actually ships

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.

01

Conversations tab

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).

FeatureWhat it does todayDataShipped 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
Route shape

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.

02

Knowledge tab

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).

FeatureWhat it does todayDataShipped 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
App Store note

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.

03

How this index stays honest

This page is the source of truth for "what mobile actually does," so it only records shipped reality.

Trigger

On PR merge

When a mobile PR merges to main, a row is added or updated here in the same pass, via the ambasdr-docs skill.

Rule

Merged only

Open or in-review PRs are not listed as existing. Implemented-but-unmerged work stays off this page until it lands.

Data honesty

Real vs mock

Every row states whether it runs on real endpoints or mock data, and cites the ticket that will wire the real thing.