feat: organize the session library - #74
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1e0896e5c7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Pull request overview
This PR reorganizes the web app’s session rail into more scalable “session library” layouts by adding organization modes (by-folder vs flat), new filtering/search affordances, pinning, and manual ordering, with persistence/sanitization in the workspace store and updated tests/docs.
Changes:
- Add rail organization/sort/filter/search + pinned shortcuts + bounded “Show more” rendering in the session rail UI.
- Extend session grouping logic to support priority sorting, manual ordering, flattening, and filtering/query matching.
- Persist new rail preferences (organization, sort, pins, manual order) while keeping query/filter ephemeral; update tests and docs accordingly.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| FEATURE_MATRIX.md | Updates capability matrix entry to reflect the new session-rail organization/sort/filter/pinning behavior. |
| apps/web/test/workspace-store.test.ts | Adds persistence and pin/manual-order coverage; confirms query/filter are not persisted. |
| apps/web/test/session-tree.test.ts | Adds tests for rail filtering, priority sort, manual ordering, flattening, and movement logic. |
| apps/web/src/state/workspace-store.ts | Introduces new persisted rail fields, sanitization helpers, and bumps workspace state version. |
| apps/web/src/lib/session-tree.ts | Implements rail filter/query matching, priority/manual/updated sorting, flattening, and manual reordering helper. |
| apps/web/src/components/Rail.tsx | Implements the new rail UI: options menu, search, filters, pinned section, flat layout, and bounded rendering. |
| apps/web/src/components/AppShell.tsx | Wires rail options into group-building and ensures unfiltered current groups are used where needed (collapsed rail, palette, pinned source). |
| apps/site/src/docs/content.ts | Documents the new organization/sort/filter/pin/manual-order workflow and persistence semantics. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
1559eff to
3a06c9a
Compare
What changed
Verification
pnpm checkpnpm test(all packages; web: 989 tests)pnpm build:webpnpm build:site