Cancel withdrawn approval operator reader without inventing auth
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a07ff8-19d0-7820-b4d0-1353833cb7fc
This commit is contained in:
codex 2026-09-10 08:10:33 +02:00
parent 07b6b63fe6
commit 3109f950f9
7 changed files with 152 additions and 26 deletions

View file

@ -90,12 +90,20 @@ superseded
cancelled
```
`in_flight` is the only state that may explicitly omit completion-only fields.
`in_flight` is the only nonterminal state that may explicitly omit completion-only fields.
It must declare every omission in `in_flight.missing_fields`, name the owner and
blocking reason, and remain non-resolvable. The validator still checks every
other field. This is not an applyable state and must never be used to hide a
malformed active lane.
An incomplete request withdrawn by its owner may instead be `cancelled`, retaining
its `in_flight` declaration as history. This requires `cancellation.owner`,
`cancellation.reason` and a non-secret `cancellation.source_ref`, with front-door
readiness `disabled` and `resolvable: false`. Only the same declared omissions are
allowed; all other validation remains. Cancellation cannot authorize apply or
resolve a reader. Moving back to an approval/apply state requires completing the
binding; keeping the historical declaration does not bypass that requirement.
Only `approved` requests may be applied. Only `verified` requests may become
`active`.