Files
deepseek-harness/docs/postmortem
Tianyi Cui e5120d2193 fix(docs): address Codex review round 3 — last three moved-policy citations
vitest.config.ts coverage comments (excessive-tests welcome -> docs/testing.md;
v8-ignore reason rule -> the quality-gates RFC) and the acp bridge.spec
resource-ownership comment -> docs/testing.md. Postmortem 0001's summary now
names packages/AGENTS.md as the export-shape rule's home. Repo-wide sweep from
the root (all file types, vendor/lib excluded) shows every remaining AGENTS.md
citation resolves to a rule that exists where cited.
2026-07-04 16:02:39 +08:00
..

Post-mortems

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 RFC (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