deepseek-harness/docs
Yichen Jiang 7e95a00c8a fix(llm): align replay state with assembled content and degrade unusable state
A max-tokens response that included a tool call persisted assembler-transformed
content next to replay metadata projected from the untransformed native message,
so the next request died in history reconstruction with INVALID_REPLAY_STATE and
the session stayed permanently stuck.

Write side: the finish chunk's replayState becomes a typed ReplayEnvelope —
opaque response-level metadata plus optional per-block entries aligned with the
emitted block sequence. BlockAssembler computes one keep/drop decision for
blocks and entries together, so stored metadata always describes stored content
and retained blocks keep their signatures. pi-ai splits its state into a
version-2 response half and per-block signature entries.

Read side: durable content is authoritative. toPiAssistant degrades any
unusable state — foreign kind, other versions (including the flat v1 form
already on disk), malformed metadata, or content/block mismatches — to the
existing provider-neutral conversion with an onReplayDegrade diagnostic instead
of failing the request, which un-bricks sessions poisoned before this change.

Covered by assembler and replay unit tests, an agent-loop continuation
regression, keyless real-composition continuation tests (native pruned-envelope
replay and legacy flat-state degrade), and the authored keyless snapshot
scenario max-tokens-continue through the assembled ACP app.
2026-08-15 16:07:30 +08:00
..
cookbook docs: fix release smoke test failures 2026-08-13 14:20:09 +08:00
cordis-api fix: test/docs 2026-08-13 01:30:49 +08:00
cordis-tutorial docs: fix release smoke test failures 2026-08-13 14:20:09 +08:00
i18n docs: capitalize Service Provider across repository 2026-08-13 13:31:30 +08:00
postmortem refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
subsystems fix(llm): align replay state with assembled content and degrade unusable state 2026-08-15 16:07:30 +08:00
user docs: add source build prerequisite to plugin tutorial 2026-08-13 18:02:12 +08:00
agent-lifecycle.i18n.yaml refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
agent-lifecycle.md refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
agent-lifecycle.zh.md refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
AGENTS.md update architeture.md 2026-08-12 21:01:11 +08:00
api-gateway.i18n.yaml refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
api-gateway.md refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
api-gateway.zh.md refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
architecture.i18n.yaml docs: fix release smoke test failures 2026-08-13 14:20:09 +08:00
architecture.md docs: capitalize Service Provider across repository 2026-08-13 13:31:30 +08:00
architecture.zh.md docs: fix release smoke test failures 2026-08-13 14:20:09 +08:00
capability-seams.i18n.yaml fix: rebase 2 2026-08-13 02:22:10 +08:00
capability-seams.md fix: rebase 2 2026-08-13 02:22:10 +08:00
capability-seams.zh.md fix: rebase 2 2026-08-13 02:22:10 +08:00
config-catalog.i18n.yaml feat(llm-deepseek): support low reasoning effort 2026-08-14 11:47:59 +08:00
config-catalog.md feat(llm-deepseek): support low reasoning effort 2026-08-14 11:47:59 +08:00
config-catalog.zh.md feat(llm-deepseek): support low reasoning effort 2026-08-14 11:47:59 +08:00
cordis-primer.i18n.yaml docs: fix release smoke test failures 2026-08-13 14:20:09 +08:00
cordis-primer.md refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
cordis-primer.zh.md docs: fix release smoke test failures 2026-08-13 14:20:09 +08:00
defensive-patterns.i18n.yaml docs: add junction-safe unlink rule to defensive patterns 2026-08-13 15:16:12 +08:00
defensive-patterns.md docs: add junction-safe unlink rule to defensive patterns 2026-08-13 15:16:12 +08:00
defensive-patterns.zh.md docs: add junction-safe unlink rule to defensive patterns 2026-08-13 15:16:12 +08:00
development.i18n.yaml refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
development.md refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
development.zh.md refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
event-producer-consumer.i18n.yaml fix: rebase 2 2026-08-13 02:22:10 +08:00
event-producer-consumer.md fix: rebase 2 2026-08-13 02:22:10 +08:00
event-producer-consumer.zh.md fix: rebase 2 2026-08-13 02:22:10 +08:00
glossary.i18n.yaml docs: capitalize Service Provider across repository 2026-08-13 13:31:30 +08:00
glossary.md docs: capitalize Service Provider across repository 2026-08-13 13:31:30 +08:00
glossary.zh.md docs: capitalize Service Provider across repository 2026-08-13 13:31:30 +08:00
graph-atlas.i18n.yaml refactor: replace overloaded surface terminology 2026-08-11 15:23:05 +08:00
graph-atlas.md refactor: replace overloaded surface terminology 2026-08-11 15:23:05 +08:00
graph-atlas.zh.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
module-graph.i18n.yaml fix(session-query): rename session log export package 2026-08-13 05:02:00 +08:00
module-graph.md fix(session-query): rename session log export package 2026-08-13 05:02:00 +08:00
module-graph.zh.md fix(session-query): rename session log export package 2026-08-13 05:02:00 +08:00
persistence-catalog.i18n.yaml docs: fix release smoke test failures 2026-08-13 14:20:09 +08:00
persistence-catalog.md docs: fix release smoke test failures 2026-08-13 14:20:09 +08:00
persistence-catalog.zh.md docs: fix release smoke test failures 2026-08-13 14:20:09 +08:00
rescope.i18n.yaml build(vendor): add the @deepseek-ai rescope codemod, its mapping doc, and its Agent Note 2026-08-10 22:04:10 +08:00
rescope.md build(vendor): add the @deepseek-ai rescope codemod, its mapping doc, and its Agent Note 2026-08-10 22:04:10 +08:00
rescope.zh.md build(vendor): add the @deepseek-ai rescope codemod, its mapping doc, and its Agent Note 2026-08-10 22:04:10 +08:00
testing.i18n.yaml refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
testing.md refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
testing.zh.md refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
tool-catalog.i18n.yaml docs: fix release smoke test failures 2026-08-13 14:20:09 +08:00
tool-catalog.md docs: fix release smoke test failures 2026-08-13 14:20:09 +08:00
tool-catalog.zh.md docs: fix release smoke test failures 2026-08-13 14:20:09 +08:00
tool-execution-pipeline.i18n.yaml refactor: replace overloaded surface terminology 2026-08-11 15:23:05 +08:00
tool-execution-pipeline.md refactor: replace overloaded surface terminology 2026-08-11 15:23:05 +08:00
tool-execution-pipeline.zh.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
web-styling.i18n.yaml docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
web-styling.md docs: rescan rebased documentation hierarchy 2026-08-05 16:16:57 +08:00
web-styling.zh.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00