T1b: Reconcile item upserts without full conversation refresh - #41
Merged
VolkerChristian merged 1 commit intoAug 22, 2026
Conversation
Introduce a structural thread scope for only resolved item upserts. Preserve exact append metadata through mailbox and frame coalescing, let deletion-capable scopes dominate, and continue from exact content application into keyed topology reconciliation without rebuilding unrelated presentation state. Call-site audit: stateUpdateScope has one production caller and 13 pre-existing direct test calls; only its two resolved ItemUpsert branches change. mergeScope has one production call. refreshState has 19 callers; only the 16 ms drain passes structural mode and the other 18 retain defaults. ConversationWidget::render has 80 current call sites (one production, 79 tests); the production caller passes the mode, the 76 pre-existing tests retain the default, and only the structural call among three new proof sites passes true. Deletion census: 152 lines removed under src/. ConversationWidget removes 78 lines by guarding/refactoring the existing title, completeness-proof, current-turn, summary, and render-signature paths into structural/full modes. Workbench removes 67 lines by extracting its inline frame accumulator and consolidating four pending-state fields. FrontendSessionWorker removes six old full-scope ItemUpsert lines in favor of structural mapping; FrontendSession removes one superseded merge line. No semantic block was discarded. Runtime proof covers both item-parent resolutions, legacy TurnUpsert full authority, bounded mailbox/full dominance, both exact/structural arrival orders through the production accumulator and UI, 50 new widgets with preserved identities, one incremental append with no rematerialization/replacement, and deletion destruction. No golden hash or protocol fingerprint changed.
VolkerChristian
merged commit Aug 22, 2026
d341118
into
codex/t1a-keyed-segment-reconciliation
1 check passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stack
Depends on #40. This PR is intentionally based on
codex/t1a-keyed-segment-reconciliation, so its diff contains only T1b.Pre-implementation finding check
The scope split was verified against merged AISuite
61ed3704before implementation:ItemUpsertedOccurrenceonly callsupsertItem; it cannot delete descendants.turn.updatedsetsreplaceItems = true, while the publicTurnUpsertedChangehides that bit.ItemUpsertedChangeparent branches are structural.TurnUpsertedChange,ThreadUpsertedChangeincluding thread-read effects, unresolved item parents, and broad lifecycle scopes remain full/deletion-capable.Change
structurallyAffectedThreadIdsalongside the affected/full sets.Runtime proof
QWidget*identities survive, text appends once, metadata refreshes,streamAppendCountincrements once, and materialization/full-replacement counters do not move.Validation
/home/voc/projects/drafts/.codex-builds/codexui-final-verify-20260822