Summary
Set up a basic frontend app for authenticated users with two pages: one for recent conversations and one for browsing people in the memory database, backed by new or expanded backend API integrations.
Context
The backend already contains memory-domain models and services for people, episodes, summaries, facts, and relationships, but the repo does not yet have a real app frontend or frontend-ready API routes for these views. This work is needed to create the first usable post-login UI for exploring stored memory data and to define the backend services the frontend must integrate with. Authentication and account creation are handled in a separate ticket, because those services need to be integrated with audio embedding for onboarding; this ticket should assume the user already has an account and an authenticated session.
Tasks
Acceptance Criteria
Notes
- Relevant backend services already exist:
app.crud.memory_store.MemoryStore for people and profile data
app.services.conversation_ingestion.ingest_conversation() for creating conversation data that should later appear in the UI
app.crud.person_resolver.PersonResolver is not required for the initial list pages, but may be useful later for search/disambiguation
- Suggested initial endpoints:
GET /conversations/recent
GET /people
- Optional later:
GET /people/{person_id} or GET /people/{person_id}/profile
- The backend likely needs a new read/query path for recent episodes, because the current memory store focuses mainly on writes plus person/profile reads
- V1 can remain read-only; editing or creating records from the frontend is out of scope
- This ticket should not implement signup or login; it should consume the authenticated user context produced by the separate account creation ticket
Summary
Set up a basic frontend app for authenticated users with two pages: one for recent conversations and one for browsing people in the memory database, backed by new or expanded backend API integrations.
Context
The backend already contains memory-domain models and services for people, episodes, summaries, facts, and relationships, but the repo does not yet have a real app frontend or frontend-ready API routes for these views. This work is needed to create the first usable post-login UI for exploring stored memory data and to define the backend services the frontend must integrate with. Authentication and account creation are handled in a separate ticket, because those services need to be integrated with audio embedding for onboarding; this ticket should assume the user already has an account and an authenticated session.
Tasks
frontend/with routing and shared navigation forRecent ConversationsandPeopleRecent Conversationspage that lists recent episodes with timestamp, participant name, and conversation summaryPeoplepage that lists people in the memory database with display name and lightweight metadata such as last seen time or top factsMemoryStore.list_people()and, if needed,MemoryStore.get_profile_context(person_id)for more dataowner_user_idAcceptance Criteria
Notes
app.crud.memory_store.MemoryStorefor people and profile dataapp.services.conversation_ingestion.ingest_conversation()for creating conversation data that should later appear in the UIapp.crud.person_resolver.PersonResolveris not required for the initial list pages, but may be useful later for search/disambiguationGET /conversations/recentGET /peopleGET /people/{person_id}orGET /people/{person_id}/profile