Skip to content

feat: single-checkout local mode with refresh, nav project search - #65

Merged
flexdinesh merged 2 commits into
mainfrom
codex/sidebar-inprocess-refresh
Oct 15, 2026
Merged

flexdinesh merged 2 commits into
mainfrom
codex/sidebar-inprocess-refresh

Conversation

@flexdinesh

Copy link
Copy Markdown
Owner
  • Behavior owner and resulting change:
    • contextservice: new Scope policy (checkout keys, or piped submission) applied to list/count/get/resolve/delete; composed by daemon from the initial request → local process only shows its own checkout/capture, others 404.
    • serverapp: Options.Collect → POST /api/v2/collections (registered only when present), local bootstrap collect; bare /mcp follows newest collection. cmd/diffx supplies the closure for worktree input only.
    • Web: header shows static repo/branch/worktree (picker trigger removed; dialog via Cmd/Ctrl+K or nav "Browse all reviews"); projects nav gets inline "Search projects" filter; Refresh/Alt+R collect checkout and open new snapshot; collapsed diff files + closed folders persist in sessionStorage.
  • Contracts/invariants affected; local/remote implications:
    • OpenAPI: new collectCheckout route, required collect on local bootstrap. Remote unchanged (no scope, no route).
    • Snapshot diff.refresh still unavailable for stored observations; collection creates new observations. Failed collection → 422, nothing ingested. Explicit refresh may replace open review; arrivals still never do.
  • Validation results; remaining risks:
    • mise run check passes (Go incl. conformance + race-free boundary tests, contracts, web 53 unit / 77 browser, plugins); embedded dist clean.
    • New tests: scope (contextservice), collection route/bootstrap/MCP pin (serverapp), conformance for checkout refresh + per-process isolation + piped 404, browser tests for nav search, refresh, collapse persistence.
    • Risks: in-scope expired context delete now 404 vs prior delete; out-of-scope expired reads report 410 (expiry checked first); collection mutex not request-cancellable.
  • Intentional architecture/design changes and rationale:
    • Local mode is explicitly single-checkout: shared home DB retained every run, so the UI showed unrelated checkouts. Local collection now "at start and on explicit request" (docs/architecture.md, system.md, development.md, README, DESIGN.md updated).
  • UI evidence: header identity height/icon sizes asserted against existing controls; nav search uses file-filter search-box primitive; mobile drawer density test updated; keyboard: Escape clears nav search, Cmd/Ctrl+K picker, Alt+R refresh.

…t search

- local process lists/reads only its checkout or piped capture
- POST /api/v2/collections recollects checkout on explicit refresh (Alt+R)
- header shows static repo/branch/worktree; picker via Cmd/Ctrl+K or nav
- projects nav gets inline project search
- persist collapsed diff files and tree folders in sessionStorage
Comments and marks span stream snapshots; comments re-anchor by content or show as outdated; Keep open; stale export tags; schema 11.
@flexdinesh
flexdinesh marked this pull request as ready for review October 15, 2026 06:33
@flexdinesh
flexdinesh merged commit 3cb3c60 into main Oct 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant