Skip to content

Document the T1 item-upsert reconciliation gate - #39

Merged
VolkerChristian merged 1 commit into
masterfrom
codex/t1-item-upsert-reconciliation
Aug 22, 2026
Merged

Document the T1 item-upsert reconciliation gate#39
VolkerChristian merged 1 commit into
masterfrom
codex/t1-item-upsert-reconciliation

Conversation

@VolkerChristian

Copy link
Copy Markdown
Member

Outcome

This is the mandatory T1 investigation artifact. It deliberately contains no src/ changes because the brief’s stop gate fired: timeline reconciliation is currently inseparable from the monolithic ConversationWidget::render pass, and the existing compatibility logic does not preserve every unchanged keyed widget for middle insertion/regrouping.

Verified findings

  • requiresFullRefresh exists only in Workbench scheduling. It clears exact-content hints; ConversationWidget::render never receives that flag.
  • c680e37 failed specifically when a valid exact append and an item upsert shared the 16 ms window. The exact updater returned before topology reconciliation. A lone item upsert still reconciled.
  • The previous mixed test used ItemContentReplacedChange, so it could not enter the successful exact-append early-return path.
  • A thread-ID-only structural set cannot patch the capped window without recalculating it and cannot identify an activity bucket that gained a row.
  • AISuite 61ed370 exposes neither TurnRemovedChange nor ItemRemovedChange. Its supported legacy TurnUpsertedChange can conceal replaceItems=true deletion authority, so moving all turn upserts to an add-only set is unsafe.

The report defines the corrected follow-up scope, full call-site census, and runtime proofs required for the separate render-split implementation.

Validation

  • CodexUIFrontendSessionTest: passed
  • CodexUIConversationLayoutTest: passed
  • One commit; documentation only
  • src/ deletion census: 0
  • No golden hash or protocol fingerprint changes

The current timeline reconciliation is inseparable from the general render pass, and the public TurnUpsertedChange can still carry deletion authority. Record the verified split requirement before any implementation.\n\nDeletion census: 0 lines removed under src/.
@VolkerChristian
VolkerChristian merged commit 4fd7a33 into master Aug 22, 2026
1 check passed
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.

1 participant