Sidebar: locked thread groups + harness sessions as children (0046) #119
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "glen/sidebar-thread-groups"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes the two sidebar issues from Chad's report. Spec: PLAN.md (approved v1); design amendment docs/0046-thread-groups.md.
Change A — locked thread groups (store invariants)
moveConversationnormalizes to the topmost ancestor and writesfolderIdto root + every descendant. Same cascade for archive, trash, restore, and delete-forever (run-kind children keep their machine_runs teardown).conversations.parent_conversation_id) and historical machine runs (machine_runs.parent_conversation_id— found as a gap in self-review; runs nested visually but didn't lock).setConversationParent).0053_group_locking.sql(data-only, cycle-safe recursive CTE): re-files already-diverged children — fixes the live DB where a parent had been moved away from its child.Change B — harness sessions + historical runs as children
loadSidebarinjects one synthetickind:"harness"row perharness_callsentry into its conversation's list — nesting, live spinners, and auto-expand come free from the existing tree builder. Read-model only: no rows created; folder counts, Unfiled counts, group totals, search, shelves, Inbox, andcountLiveall stay conversation-only./h/<harness>/<conversation>, and are locked (no drag, no row menu).Review
Fresh-eyes pass (review skill) verdict: one blocker, otherwise careful and well-tested — verified the invariant, no synthetic-row leakage, href semantics, migration safety, wake paths.
purgeExpiredTrashthrew not-found in the layout render path when an expired trashed group hit the cascade purge; it now tolerates ids already purged by an earlier group member./h//…href fallback (now falls through to/c/),SidebarItem.kinddoc names the"harness"value.Gate
npm run typecheck✓ ·npm run lint✓ (0 errors; 2 pre-existing warnings in untouched files) ·npm run test✓ 741 passed / 13 skipped (env-gated spikes). Known timing-flakytests/x-chat.test.ts(untouched by this branch) green on re-run.Commits:
ea6f40d·8ec4c76·1d65a71·9f57cad·e595ce6