Skip to content

feat(webapp): sessions view for compiled conversation history - #575

Merged
plind-junior merged 1 commit into
testfrom
feat/webapp-sessions-view
Jul 28, 2026
Merged

feat(webapp): sessions view for compiled conversation history#575
plind-junior merged 1 commit into
testfrom
feat/webapp-sessions-view

Conversation

@plind-junior

@plind-junior plind-junior commented Jul 28, 2026

Copy link
Copy Markdown
Member

what

adds a /sessions view to the vendored webapp console: a card grid of the enrich pipeline's compiled type=session pages — the compiled-conversation-history surface the console was missing.

each card shows the session title, created date, enrich summary, and the compiled subject chips; cards sort newest first, filter client-side by title/summary/subject, and click through to the existing /browse/page/<id> drawer deep-link. the view fans out over all scoped projects like the other list views, tags rows with the project label when aggregated, and renders the standard unavailable/empty/error states when kb.list_pages is missing or empty.

why

capture + enrich already compile every conversation into a session page with a summary and typed subjects, but nothing in the console displayed them — the compiled history was only reachable by reading .vouch/pages/ by hand. this is the card-view half of making compiled sessions browsable; a cross-session subjects index can follow separately.

how it was tested

  • new SessionsView.test.tsx written first (7 tests: ordering, {type: "session"} request param, subject chips, filtering, drawer deep-link, empty state, unavailable state)
  • Shell.test.tsx extended for the new nav link
  • full webapp suite green: 29 files, 165 tests
  • tsc --noEmit clean

no server changes — kb.list_pages already accepted the type filter.

Summary by CodeRabbit

  • New Features

    • Added a Sessions view displaying compiled conversation history in newest-first order.
    • Added session cards with titles, dates, summaries, subject labels, filtering, and links to detailed views.
    • Added Sessions navigation to the sidebar.
    • Added clear empty-state and endpoint availability messages.
  • Bug Fixes

    • Improved handling of session loading errors with visible error messaging.

the enrich pipeline already compiles captured conversations into
type=session pages (summary, typed subjects, activity), but the console
had no surface that showed them — ditto's webapp makes its compiled
memories browsable and vouch's stayed invisible in .vouch/pages.

adds a /sessions card view: newest-first cards with the enrich summary,
subject chips, and created date, filterable client-side, each card
deep-linking into the existing /browse page drawer. fans out over all
scoped projects like the other list views and degrades to the usual
unavailable/empty states when kb.list_pages is not advertised.
@github-actions

Copy link
Copy Markdown

this PR changes UI (web/, src/vouch/web/, or webapp/) but has no before/after screenshots in the description. UI changes are reviewed by screenshot, not by running the app. add before and after screenshots, then reopen.

@github-actions github-actions Bot closed this Jul 28, 2026
@github-actions github-actions Bot added the size: M 200-499 changed non-doc lines label Jul 28, 2026
@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: b40bd83f-9919-47bf-9c0e-bbeb8beeb6f0

📥 Commits

Reviewing files that changed from the base of the PR and between b806941 and b436ee3.

📒 Files selected for processing (5)
  • webapp/src/App.tsx
  • webapp/src/components/Shell.test.tsx
  • webapp/src/components/Shell.tsx
  • webapp/src/views/SessionsView.test.tsx
  • webapp/src/views/SessionsView.tsx

Walkthrough

Adds a new /sessions route and sidebar entry for SessionsView. The view loads compiled session pages, supports filtering and newest-first sorting, displays metadata and subjects, handles loading/error/availability states, and opens selected pages in the browse drawer.

Changes

Sessions feature

Layer / File(s) Summary
Session loading and card rendering
webapp/src/views/SessionsView.tsx, webapp/src/views/SessionsView.test.tsx
SessionsView fetches session pages, filters and sorts them, renders session cards and conditional states, and tests loading, filtering, metadata, errors, availability, and navigation.
Sessions route and shell navigation
webapp/src/App.tsx, webapp/src/components/Shell.tsx, webapp/src/components/Shell.test.tsx
Registers /sessions, adds the Sessions sidebar item and page title, and verifies the connected navigation link.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant SessionsView
  participant useConnection
  participant useFanout
  participant BrowseRoute
  SessionsView->>useConnection: Read aggregated connection mode
  SessionsView->>useFanout: Request session pages with type session
  useFanout-->>SessionsView: Return session page records or error
  SessionsView->>BrowseRoute: Navigate to selected page browse route
Loading
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/webapp-sessions-view

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

this PR changes UI (web/, src/vouch/web/, or webapp/) but has no before/after screenshots in the description. UI changes are reviewed by screenshot, not by running the app. add before and after screenshots, then reopen.

@plind-junior plind-junior reopened this Jul 28, 2026
@plind-junior
plind-junior merged commit 1fe8fb5 into test Jul 28, 2026
28 of 30 checks passed
@github-actions

Copy link
Copy Markdown

this PR changes UI (web/, src/vouch/web/, or webapp/) but has no before/after screenshots in the description. UI changes are reviewed by screenshot, not by running the app. add before and after screenshots, then reopen.

@coderabbitai coderabbitai Bot mentioned this pull request Jul 28, 2026
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size: M 200-499 changed non-doc lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant