Repository navigation
refactor: remove the legacy transcript reconcile path - #1243
Merged
Merged
Conversation
jalehman
force-pushed
the
feat/assemble-replay-keys-from-storage
branch
from
October 9, 2026 04:21
1c77bf8 to
60cd216
Compare
jalehman
force-pushed
the
refactor/remove-legacy-reconcile
branch
from
October 9, 2026 04:22
43ca4b6 to
45ab1cb
Compare
jalehman
force-pushed
the
feat/assemble-replay-keys-from-storage
branch
from
October 11, 2026 06:20
60cd216 to
5b58224
Compare
jalehman
force-pushed
the
refactor/remove-legacy-reconcile
branch
from
October 11, 2026 06:26
45ab1cb to
2f8f9aa
Compare
jalehman
changed the base branch from
feat/assemble-replay-keys-from-storage
to
main
October 11, 2026 06:26
jalehman
force-pushed
the
refactor/remove-legacy-reconcile
branch
from
October 11, 2026 06:31
2f8f9aa to
1fa4389
Compare
This was referenced Oct 19, 2026
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.
Stacked on #1239. Review #1238 and #1239 first.
What
This PR deletes the legacy full-transcript reconcile path. That path covers the projection reconcile, transcript-anchor audit, unstamped-row adoption, legacy-prefix epochs, import caps, and runtime-batch dedup/alignment. Since #1238, nothing on a supported host reaches it. Store methods, helpers, and tests that only this path used are removed too. Net change: about 6,800 lines removed (src: +18 / -2,982).
Why
#1238 moved transcript ingestion to OpenClaw's visible-delta cursor. Every supported OpenClaw release (>= 2026.9.2) ships the delta reader. A host without it now gets a logged capability error instead of a fallback. The old code stayed in the tree with skipped tests, and nothing could execute it. Keeping it meant maintaining roughly 3k lines of the riskiest code in the plugin for no runtime benefit.
Changes
commitTurnalways drains the delta and throws if the admission has no read targetafterTurnwithout a session key logs and skips persistence, as before; heartbeat pruning and compaction still runsrc/transcript-anchor-audit.tsandsrc/reconcile-plan.tsBatchDeduplicatornow only providesmatchesPersistedAnchor, which ingest usesConversationStoremethods that only the dead path called, plus their row typesmessageContentCoveredBySummary,filterByCreatedAt,transcriptTimestampMs,messageIdentity)matchesPersistedAnchordirectlyspecs/transcript-reconciliation-by-entry-id.mdsupersededStill live and unchanged: the
ingest/ingestBatchruntime path for sessions without a session key, and the full visible read used by the overflow-recovery coverage check and the replay-key backfill.Data retention (follow-up)
No schema change.
conversation_transcript_epochsno longer has a writer.message_transcript_anchor_trustis still written by ingest and bymigrate-sessions. The doctoranchorsandrollover-splitscommands still read and merge both tables for existing databases. Whether to retire either table is a separate data-retention decision.Testing
npm run typecheckandnpm run build: passnpx vitest run --dir test, run 1: 132 files, 2057 tests passedplugin-tool-session-scopeload flakenpm run plugin-inspector:ci -- --openclaw <openclaw v2026.9.4>: PASS, 0 breakagesfeat/assemble-replay-keys-from-storage): no findingssrc/engine.tssrc/batch-dedup.tssrc/store/conversation-store.tssrc/transcript-anchor-audit.ts,src/reconcile-plan.tssrc/live-coverage.ts,src/transcript.ts,src/message-signatures.tstest/batch-dedup.test.tsmatchesPersistedAnchortest/transcript-anchor-replay.test.tsmatchesPersistedAnchortest/transcript-anchor-trust-store.test.ts,test/lcm-command.test.tstest/sqlite-bootstrap-projection.test.ts,test/engine-commit-turn.test.tstest/transcript-adoption,whitespace-divergence-double-write,transcript-anchor-audit,reconcile-plan,batch-dedup-frontier-logleveltestsspecs/transcript-reconciliation-by-entry-id.md.changeset/remove-legacy-transcript-reconcile.md