This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

The implement loop's lane receipt reader (internal/core/implement/loop/receipt.go readReceipt) decodes the receipt strictly by hand, refusing an unknown field and a second document, but reads a repeated key last-wins: a receipt carrying "exit_code":1,"exit_code":0 (or a case twin such as EXIT_CODE) verifies as a passing definition of done. Every other trust-boundary JSON reader refuses a repeated key through internal/core/jsonstrict; this one was written before jsonstrict reached its base, so its strict decode is an inline copy that lacks the check.

issueresolvedminoriss-2609262123574454

The implement loop's lane receipt reader (internal/core/implement/loop/receipt.go readReceipt) decodes the receipt strictly by hand, refusing an unknown field and a second document, but reads a repeated key last-wins: a receipt carrying "exit_code":1,"exit_code":0 (or a case twin such as EXIT_CODE) verifies as a passing definition of done. Every other trust-boundary JSON reader refuses a repeated key through internal/core/jsonstrict; this one was written before jsonstrict reached its base, so its strict decode is an inline copy that lacks the check.

Grounds

  • pursued: a receipt repeating exit_code (exactly or as a case twin) is refused naming the key and the lane is not advanced; a receipt that verifies with a repeated key, or a second inline strict decode in readReceipt, would show it wrong

Frontmatter

idiss-2609262123574454
typeissue
lifecycleresolved
severityminor

mentions1