@pleach/replay changelog
Release history for @pleach/replay — site-docs entries that materially touched the @pleach/replay surface, newest-first. Canonical runtime history lives upstream.
This page collects the site-content changelog entries that
materially touched the @pleach/replay docs
surface or named a @pleach/replay symbol. It is not the runtime
changelog — the canonical record of @pleach/replay runtime
behavior lives in the upstream package
CHANGELOG.md and on
npmjs.org/package/@pleach/replay.
See the combined site changelog at
/docs/changelog/combined for the
chronological unified view across every SKU.
Unreleased
Fixed
-
Region-pinned agent replay snippet corrected to the shipped
ReplayRuntimeshapes (devharness FINDING 100–102).createReplayRuntimetakessessionRuntime, notliveRuntime(ReplayRuntimeConfig={ tenantId (required), sessionRuntime?, cacheReadMode?, clock?, eventSource? },replay/src/runtime/types.ts:499).replayTurninput is{ chatId, tenantId, messageId }—turnId→messageId,modeis not a field, andtenantIdis required (ReplayRuntime.ts:521;ReplayTurnInput,types.ts:95). Its output is{ chatId, tenantId, messageId, state, sequenceNumberRange }(ReplayRuntime.ts:573) — there is no.difffield, so the cross-family parity read was rewritten to compare the returnedstateyourself, with a pointer to the hash-chainverifyIntegrityverdict ({ valid, brokenAt? }) for tamper-evidence. -
@pleach/replayeval-coupling snippet corrected (devharness FINDING 89). The DI example constructednew EvalSuite({ replay }), butEvalSuiteOptions(eval/src/index.ts) has noreplayfield and requiressuiteId; the real cross-wire issuite.setReplayClient(client). Corrected tonew EvalSuite({ suiteId, runtime })+suite.setReplayClient(replay)(the source doc comment atreplay/src/index.tswas likewise corrected).
Added
/docs/replay—createStrictHandleReplaydeterminism gate. New@pleach/replay/strictexport (re-exported at the root) that walks N independent handles over the same(chatId, tenantId, window)and byte-compares the folded per-step state, returning{ deterministic, steps, firstDivergenceAt? }. Documented in the Status section, a new "Determinism gate" subsection, and the Roadmap. Sibling ofcreateStrictReplay(which gates theReplayRuntime.replayTurnsurface)./docs/replay—cacheKeyreplay slot.@pleach/core'stool.completed/turn.completedevents gained an optionalcacheKeypayload field; theReplayHandleconsults a wiredcacheBackendfor rows that carry it (percacheReadMode). The "What's NOT" list notes core does not populate it (thecore → replayboundary forbids importingderiveContentHashKey) — host- /createCacheMiddleware- populated.
Changed
/docs/replay—ReplayHandlestepper documented as wired.step()/seek()/replayTurn()no longer throwNotImplementedError; they walk the event log viaruntime.events.iterateand fold throughhydrateFromEvents. Updated the Status section, theReplayHandlemember table (all six members Live), thestep()/seek()/replayTurn()behavior section, the determinism contract (one shared reducer →seek(N)== N steps == a full fold), the error-hierarchy note onNotImplementedError, and the "What's NOT in this package" list (now: noStrictReplaydiff over the handle, no automatic cache-key derivation from rows). Mirrored the one-line status flip on/docs/eval-and-replay.
Added
<StatusBadge>reference adoption —/docs/replayadopts<StatusBadge status="in-flight">Phase A + Phase B</StatusBadge>under its Status heading as the reference adoption of the new first-party enterprise-shape component.
Changed
/docs/replayerror hierarchy diagram — the ASCII tree renderingReplayError/ReplayDivergenceError/ReplayCacheMissError/ReplayUnknownEventError/NotImplementedErroris now a mermaidclassDiagramwith inheritance arrows and per-class fields. Matches the established mermaid idiom used on/docs/overviewand elsewhere.- Cross-docs status-flip pass —
@pleach/replay'sReplayRuntimeinvokes the@pleach/core/eventLoghash-chain verifier (verifyChainForChat/generateProoflive in@pleach/core/eventLog), with writer-side stamping in@pleach/core/eventLogbehindc9PhaseBEnabled. Touched the Replay and Hash chain pages.
2026-06-08
Changed
- Packages table corrected to real published
version —
@pleach/replay 0.7.0(was largely stale "Reserved · placeholder" framing). - @pleach/replay Phase B note now distinguishes
the landed
replayTurnbody from the still-throwingfromSnapshot/fork/multiTenantAggregate.
@pleach/recipes changelog
Release history for @pleach/recipes — site-docs entries that materially touched the recipes surface, newest-first. Canonical runtime history lives upstream.
@pleach/sandbox changelog
Release history for @pleach/sandbox — site-docs entries that materially touched the @pleach/sandbox surface, newest-first. Canonical runtime history lives upstream.