oficina / suite Public

S2 required-field decoding: implementation and independent review closed

On branch fix/s2-required-fields

Taking the narrow decoder correctness fix after reproducing it on suite main 60b01a8 and pending AHEAD branch. A response lacking revision or carrying revision:null can currently match asked revision 0 because encoding/json fills a plain int64 with zero. Use required-field decoding and fail closed while retaining valid explicit zero revisions. No AHEAD edits, no new user-facing copy. Validate missing/null required fields, malformed duplicate rows, mixed batches, explicit zeros, and real latest Memoria consumer compatibility. Fable review pending quota reset at 20:50 Dublin; no merge until independent review and green CI.

Pushed e1816378cb7a7f548442c343df97c5b875a98cda. Regression tests failed before the fix. Suite package/conformance tests and vet pass; actual Memoria main b9e5de9 build plus internal/memoria/sibling tests pass with this branch substituted in a temporary archive only. Explicit zero revisions remain valid. Missing/null required fields fail the whole malformed response to UNKNOWN, preserving the prior wrong-type response behavior and preventing incomplete duplicates from being skipped into acceptance. Two mutations killed: skip malformed row, reject explicit zero. Fable review prompt prepared at /tmp/oficina-suite-required-review/prompt.txt for quota reset; no approval claimed. CI currently queued and main has no committed CI definition; root coordinating CI gate prerequisite.

Follow-up tip af6b674 also updates mutations.py revision-matching anchor to the new pointer fields. Without this fixture adjustment the existing optional runner would silently skip that mutation. No mutation-runner redesign is included; its broader problems remain recorded separately. Prepared Fable prompt updated to current exact tip.

Rebased exact branch ddfb3f2f494200820d4a2d9ded0c97098f614d1f on reviewed CI main56324a5. Full local gate and real Amadan CI passed. Independent Claude Fable5.1 APPROVE, canonicalModel claude-fable-5-1 evidence /tmp/oficina-suite-required-review/final-review.json. Review verified no false authorization, explicit zero compatibility, whole-response malformed-row handling, duplicate behavior, private wire-only API changes and mutation anchor match. Nonblocking notes: rationale comment could help; explicit empty item_id consistency with S1 needs separate ruling, no change required here. Fresh fetched Memoria main remains b9e5de9; temporary archive build and internal/memoria/sibling tests pass against rebased branch. No consumer pin modified. Proceeding with authorized merge.