Skip to content

Fold review findings into the conversation-forking plan - #504

Merged
sysread merged 1 commit into
mainfrom
claude/conversation-forking-8ntvpq
Aug 19, 2026
Merged

Fold review findings into the conversation-forking plan#504
sysread merged 1 commit into
mainfrom
claude/conversation-forking-8ntvpq

Conversation

@sysread

@sysread sysread commented Aug 19, 2026

Copy link
Copy Markdown
Owner

Doc-only amendment to the forking plan, folding in the findings from an independent review: the GC becomes a single leaf-to-root pass (the two-phase trim-then-drop design deadlocks on chains of collectible hidden threads via the restrict fork-point FK), null cursors replace fork-point seeding (a fork's empty segment already keeps claim RPCs quiet; per-thread cursor reads can never reach the inherited prefix), M1 gains the SQL half of the ordering switch (~14 per-thread order-by-created_at sites in schema.sql RPCs), M3 gains an enumerated hidden-filter checklist, plus notes on the streaming loop's browser-supplied transcript, the recovery-synthesis edge case in shared prefixes, and a digest hidden-title mitigation.


Generated by Claude Code

An independent review of the plan surfaced one real design bug and
several gaps; this folds the fixes in before implementation starts.

The GC now specifies a single leaf-to-root pass. The prior
two-phase design (trim segments, then drop empty threads)
deadlocks on chains of collectible hidden threads, because each
child's restrict fork-point FK blocks deleting its parent's rows
until the child thread row is gone.

Cursor seeding at fork creation is dropped for null cursors: a
fork's empty segment already keeps claim RPCs quiet, and per-thread
cursor reads can never reach the inherited prefix, so seeding
bought nothing but a cross-thread cursor oddity.

M1 gains the SQL half of the ordering switch (~14 per-thread
order-by-created_at sites in schema.sql RPCs that would otherwise
disagree with position ordering about which row is terminal), M3
gains an enumerated hidden-filter checklist, and the design notes
now cover the streaming loop's browser-supplied transcript, the
recovery-synthesis-in-shared-prefix edge case, and a digest title
mitigation.
@sysread
sysread merged commit 9bdffdc into main Aug 19, 2026
1 check passed
@sysread
sysread deleted the claude/conversation-forking-8ntvpq branch August 19, 2026 21:09
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.

2 participants