Skip to content

docs(postmortem): 0007 - deployed into a scored run, and dropped a field no test watched - #149

Merged
wefio merged 1 commit into
mainfrom
docs/postmortem-0007
Nov 1, 2026
Merged

wefio merged 1 commit into
mainfrom
docs/postmortem-0007

Conversation

@wefio

@wefio wefio commented Nov 1, 2026

Copy link
Copy Markdown
Owner

Doc owner: docs/postmortem/0007-deployed-into-a-run-and-dropped-a-field.{md,zh-CN.md,terms.yaml} (new) and the index rows in docs/postmortem/README{,.zh-CN}.md.

Two failures reached main and the live endpoint on 2026-11-01, and neither was caught by anything that existed:

  1. A deployment during a scored run took every function route down for ~10 minutes (schedules in edgeone.json → 404 on /health, /add, /search). The rule against it already existed in postmortem 0006 and was not consulted at deploy time.
  2. A refactor dropped persistence.inline_bytes from every search response. verify stayed green because no test asserted the field; a linter reported the correct symptom of the wrong class ("unused variable").

Failure class: rule not on the action path.

This record also exists because I first wrote the self-criticism into the v1.4 tag message, which is the wrong owner: a tag answers "what is this version", a post-mortem answers "why did this get through". The tag was rewritten to describe the release only.

Guardrails land on artefacts rather than prose: the built edgeone.json must not contain schedules (test), and every search page must carry a numeric inline_bytes (test).

…eld no test watched

Two failures reached main and the live endpoint on 2026-11-01 and neither was caught
by anything that existed. The release tag is not their home: a tag answers 'what is
this version', a post-mortem answers 'why did this get through'.

Failure class: rule not on the action path. The 'no deployment between the start and
the end of a scored run' rule lived in 0006 and was not consulted at deploy time,
because the deploy is a shell command and the run's state is a browser tab. The second
case is the same shape: a refactor removed persistence.inline_bytes and the suite stayed
green because no test asserted the field; a linter reported the correct symptom of the
wrong class ('unused variable').

Guardrails now on the artefact rather than in prose: the built edgeone.json must not
contain schedules, and every search page must carry a numeric inline_bytes.
@wefio
wefio merged commit 3977d5a into main Nov 1, 2026
8 checks passed
@wefio
wefio deleted the docs/postmortem-0007 branch November 1, 2026 13:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant