[codex] Add archived session controls to web UI#702
Conversation
Greptile SummaryThis PR wires the pre-existing
Confidence Score: 4/5Safe to merge after fixing the cron tab filter; the P1 means archiving a cron session produces no visible effect. One P1 defect: archived cron sessions are not filtered from the cron tab, making the Archive button misleading for cron sessions. All other work — backend guard, metadata layer, search alignment, session-list filtering for the sessions tab, tests — is solid and well-covered. crates/web/src/assets/js/components/session-list.js — missing archived filter in the cron tab branch Important Files Changed
Reviews (5): Last reviewed commit: "fix(sessions): allow unarchiving active ..." | Re-trigger Greptile |
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
Merging this PR will not alter performance
Comparing Footnotes
|
|
Addressed the review feedback in
Validation run after the fix:
|
|
Addressed the latest search review feedback in
Validation run:
|
|
Addressed the latest archive-guard feedback in
Validation run:
|
Summary
Add session archiving for regular web chat sessions.
The root cause was that session metadata already had an
archivedfield in storage, but the gateway list and patch paths did not expose or mutate it, and the web UI had no way to hide, reveal, archive, or unarchive sessions.This PR wires
archivedthrough the gateway and sidebar flows, adds archive/unarchive controls in the chat session actions, hides archived sessions by default, adds a sidebar toggle to show them again, and keeps session search aligned with the current archived visibility filter. It also documents the new UI behavior and adds targeted Rust and E2E coverage.Closes #701.
Validation
Completed
just formatcargo test -p moltis-sessions metadata::tests::cargo test -p moltis-gateway patch_archivedjust ui-e2e-installRemaining
just lintnpx playwright test e2e/specs/sessions.spec.js -g "archived sessions are hidden by default and can be restored with the sidebar toggle"The Playwright run was started, but the Rust web server boot path exceeded the repo's 5 minute command limit before the targeted test actually executed, so it was stopped rather than left hanging.
Manual QA
mainand the archived session disappears from the default sidebar list.main, cron sessions, and channel-bound sessions do not offer archive controls.