Add thread archiving and settings navigation#1359
Add thread archiving and settings navigation#1359shivamhwp wants to merge 24 commits intopingdotgg:mainfrom
Conversation
- persist archivedAt in orchestration and projection storage - add archive/unarchive commands and thread filtering - split settings UI into dedicated panels and sidebar nav
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
- Switch thread draft cleanup to `clearDraftThread` - Keep thread actions aligned with the renamed store API
- Drop the unused About settings route - Add inline unarchive actions in Archived Threads - Keep thread deletion routing behavior aligned with archive changes
- Propagate disabled context menu items through desktop IPC and fallback UI - Prevent archiving active threads and open a new thread after archive/delete
- Treat threads as running only when the session is active and has a live turn - Prevent archive actions from targeting stale or closed sessions
- trigger a remount when settings are restored - centralize custom model defaults in settings panels
- Preserve the outlet remount behavior - Let settings content lay out vertically
|
sure working on it !! |
- Hide archived threads from the sidebar - Add archive action UX with confirm setting - Backfill archived_at migration and test updates
- Reflow Sidebar.tsx imports and JSX for consistency - Keep behavior unchanged while reducing formatting noise
- add in-memory fallbacks when browser storage is unavailable - include diff line wrapping in settings restore tracking - update tests for the new storage and model selection shape
- Add a settings toggle for wrapping long diff lines - Wire reset behavior to the default preference
apps/server/src/persistence/Migrations/017_ProjectionThreadsArchivedAt.ts
Show resolved
Hide resolved
- add migration for `projection_threads(project_id, archived_at)` - reuse shared storage resolution for web persistence - simplify terminal state storage handling
- Centralize post-delete navigation in `useThreadActions` - Keep settings redirect from adding an extra history entry
- Route git prompts through Claude CLI alongside Codex - Thread model selection and fast-mode/reasoning settings through UI and server - Add coverage for CLI wiring and output validation
- Restore back navigation in settings to the previous page - Add shared settings route helpers and register migration 19
- Fix legacy project events lacking `defaultModelSelection` - Preserve null and non-null model payloads while removing deprecated fields
- Delete obsolete settings route parsing and return-to normalization - Consolidate navigation logic elsewhere during settings overhaul
# Conflicts: # apps/web/src/appSettings.test.ts # apps/web/src/appSettings.ts # apps/web/src/components/Sidebar.tsx # apps/web/src/composerDraftStore.ts # apps/web/src/routes/_chat.settings.tsx
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.






What Changed
Added durable thread archiving to the orchestration model with new
thread.archiveandthread.unarchivecommands/events.Persisted archive state in the server projection layer and exposed it through the orchestration snapshot/read model.
Hid archived threads from the main project/thread sidebar and added archive/unarchive flows to the thread management UI.
Overhauled settings into section-based routes under
/settings/*with sidebar navigation forGeneral,Models,Advanced,Archived Threads, andAbout.Added an archived threads settings panel for viewing, opening, unarchiving, and deleting archived threads.
Adjusted the settings UI styling and navigation behavior:
Fixes
Why
Thread archiving needs to be durable and server-backed because thread visibility is currently derived from orchestration state, not local UI state. Making archive status first-class in the event/projection pipeline keeps behavior consistent across refreshes, restarts, and clients.
The settings UI changes were needed to support archived thread management cleanly and to make settings navigation behave more like the rest of the app. Splitting settings into section routes also makes the UX more predictable and easier to extend without keeping everything in one long page.
UI Changes
Archived ThreadsandAboutentries to settings navigation.Settings > Archived Threads.Screen.Recording.2026-03-24.at.4.13.25.PM.mov
Checklist
Note
Medium Risk
Introduces new orchestration commands/events plus DB migrations and projection updates for
archivedAt, which impacts read models and persistence. UI behavior changes (hiding archived threads and new settings routes) may affect navigation/state handling but are covered by added tests.Overview
Implements durable thread archiving end-to-end: new
thread.archive/thread.unarchivecommands and events with invariants, projector + projection-pipeline handling, snapshot/query surfacing ofarchivedAt, and SQLite migrations addingarchived_at(plus index) toprojection_threads.Updates the web app to hide archived threads from the main sidebar and add an inline archive action (optional confirmation via
confirmThreadArchive), centralizing thread operations in a newuseThreadActionshook and adding an Archived Threads settings panel for unarchive/delete.Refactors settings into child routes under
/settings/*(redirecting/settings→/settings/general) with a dedicatedSettingsSidebarNav; desktop/web context menus now support disabled items.Written by Cursor Bugbot for commit 8c8eb79. This will update automatically on new commits. Configure here.
Note
Add thread archiving and settings navigation with sidebar archive actions
thread.archiveandthread.unarchivecommands end-to-end: new contracts, decider logic, projector handling, projection pipeline, and DB migrations (017–019) that addarchived_attoprojection_threads.useThreadActionshook in the web app exposingarchiveThread,unarchiveThread,deleteThread, andconfirmAndDeleteThreadwith session stopping, navigation, and error toasting.confirmThreadArchivesetting), and renderSettingsSidebarNavwhen on settings routes./settingsroute into a layout with child routes/settings/generaland/settings/archived, redirecting bare/settingsto/settings/general.SettingsSidebarNavandSettingsPanelscomponents for settings navigation and provider status display./settingsnow redirects to/settings/general; archived threads no longer appear in the sidebar thread list.Macroscope summarized 8c8eb79.