deepseek-harness/docs/postmortem
2026-08-09 11:33:14 +08:00
..
0001-acp-default-export-drops-inject.i18n.yaml Merge origin/master into xjt/proofreading-active-docs-2-apply 2026-08-05 10:57:53 +08:00
0001-acp-default-export-drops-inject.md Merge remote-tracking branch 'origin/master' into worktree/acp-automation-protocol 2026-07-24 23:43:10 +08:00
0001-acp-default-export-drops-inject.zh.md Merge origin/master into xjt/proofreading-active-docs-2-apply 2026-08-05 10:57:53 +08:00
0002-js-expression-disabled-filesystem-tools.i18n.yaml Merge origin/master into xjt/proofreading-active-docs-2-apply 2026-08-05 10:57:53 +08:00
0002-js-expression-disabled-filesystem-tools.md Merge refreshed docs/i18n-batch-core into docs/i18n-batch-cds-postmortem 2026-07-22 22:26:24 +08:00
0002-js-expression-disabled-filesystem-tools.zh.md Merge origin/master into xjt/proofreading-active-docs-2-apply 2026-08-05 10:57:53 +08:00
0003-web-agent-gui-feedback-loop.i18n.yaml docs(i18n): standardize contract terminology 2026-08-09 11:33:14 +08:00
0003-web-agent-gui-feedback-loop.md fix(web): verify current GUI updates end to end 2026-07-29 11:22:48 +08:00
0003-web-agent-gui-feedback-loop.zh.md docs(i18n): standardize contract terminology 2026-08-09 11:33:14 +08:00
0004-landlock-partial-notice-misclassified-child-failures.i18n.yaml docs(i18n): standardize contract terminology 2026-08-09 11:33:14 +08:00
0004-landlock-partial-notice-misclassified-child-failures.md docs: rename core-data-structures/ to subsystems/ 2026-08-09 01:27:09 +08:00
0004-landlock-partial-notice-misclassified-child-failures.zh.md docs(i18n): standardize contract terminology 2026-08-09 11:33:14 +08:00
README.i18n.yaml Merge remote-tracking branch 'origin/master' into fix/landlock-runner-failure-classification 2026-08-05 13:17:38 +08:00
README.md fix(sandbox): evidence-gate runner failures (round 1) 2026-08-03 17:31:08 +08:00
README.zh.md Merge remote-tracking branch 'origin/master' into fix/landlock-runner-failure-classification 2026-08-05 13:17:38 +08:00

Post-mortems

English | 中文

Incident write-ups: a bug reached a place it shouldn't have (a real user, a merged PR, a release), and the interesting part is why our process let it through, not just the one-line fix.

A post-mortem is NOT an Agent Note (which records a deliberate design decision and its rejected alternatives, or proposes future work). It is a backward-looking record of a failure: what broke, the mechanism, why every safety net missed it, and the concrete guardrails added so the same class of bug fails loudly next time.

Write one when a bug is subtle (the mechanism is non-obvious and a careful engineer would re-derive it the hard way), systemic (the reason it escaped is a gap in tests/tooling/conventions, not a one-off typo), and costly to rediscover (it cost real debugging time, and would cost it again). Link the guardrails (tests, AGENTS.md rules, ADRs) the post-mortem motivated.

Every post-mortem opens with an Executive summary: one short paragraph a busy reader can absorb in thirty seconds — what broke, the root cause in plain terms, why it escaped, and the durable lesson — before the detailed Summary / Timeline / Root cause / Guardrails sections that follow.

# Title
0001 ACP server crashed on connect: export default dropped the plugin's inject
0002 Filesystem snapshot tools were permanently disabled by a literal !!js object
0003 Web agent validated a replacement server instead of the GUI hosting its session
0004 Landlock partial-enforcement notice misclassified child failures