You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Record what a history publication means instead of inferring it from row shapes #3870
DetachedHistoryPublication.publish (packages/core/src/services/history/detachedHistoryPublication.ts) decides what to write to the session recording by comparing the old and new rows:
value-identical rebuild: nothing
strict deep-equal prefix: one rewind {itemsRemoved, cutSeq}
one summary replacing an all-marked journal: compressionDetail plus compressed
anything else: full rewind plus content
The shapes are covered by detached-publication-shapes.test.ts, so the recordings are correct today. The design question is whether callers should declare their intent (cut, compression, clear, replace) so the recorder writes the matching record directly. Inferring intent from shapes means a new caller can get a different record type than it meant, and the comparison costs a streamed pass over both journals on every publication.
Proposed
Add an explicit intent to the publication call, derive the record from it, and keep the shape comparison only as an assertion in tests. This also simplifies per-origin fan-out translation (#3865), since each record would carry its meaning.
Activity
github-actions commentedon Oct 13, 2026
LLxprt Issue Planner — infrastructure failure
The autonomous planner failed with exit code 1. Please inspect the workflow logs (Run planner agent section) and re-run once resolved.