Development record
checkDraftFaceSize's probe minter uses constant entropy, so on a draft with two or more unmarked scope-condition bullets the second mint exhausts its redraws with a collision error that the check swallows as though it were a structural refusal, and the pre-write size judgement is silently skipped for the common case; Plan then stamps, writes kind, moves to planned, mints a spec and refuses the spec_id write, leaving the half-planned record and dangling spec the resolution of iss-2608300335369473 claims can no longer happen. Give the probe an advancing entropy source keeping every id sixteen digits wide, narrow or remove the error swallow, and extend the pre-write test to two conditions. Also re-run the check with the real spec id immediately after spec.Create and before the first write, since NextID is predicted outside the mint lock and a width crossing costs the same half-planned state; correct the comment and the resolution text.
checkDraftFaceSize's probe minter uses constant entropy, so on a draft with two or more unmarked scope-condition bullets the second mint exhausts its redraws with a collision error that the check swallows as though it were a structural refusal, and the pre-write size judgement is silently skipped for the common case; Plan then stamps, writes kind, moves to planned, mints a spec and refuses the spec_id write, leaving the half-planned record and dangling spec the resolution of iss-2608300335369473 claims can no longer happen. Give the probe an advancing entropy source keeping every id sixteen digits wide, narrow or remove the error swallow, and extend the pre-write test to two conditions. Also re-run the check with the real spec id immediately after spec.Create and before the first write, since NextID is predicted outside the mint lock and a width crossing costs the same half-planned state; correct the comment and the resolution text.
Frontmatter
| id | iss-2608300352403199 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | major |
.abcd/work/issues/resolved/iss-2608300352403199-pre-write-size-check-skipped-for-multi.md
open on GitHub ↗ · commit history ↗
mentions1
- iss-2608300335369473itd-177 fourth-round residue, all Low: the write cap is applied per write but the final size is known before the first, so a draft within one byte of the cap passes the kind write, is moved to planned, then has its spec_id write refused, leaving a half-planned record neither Plan nor Link repairs (compute the largest intermediate before any write); opensComment resolves code spans before comment openers, so a backtick inside a live comment re-pairs the rest of the line and the mask diverges from CommonMark in both directions (one left-to-right cursor where the first construct wins); the three audit-block upserts and the create-path seed write still call WriteFileAtomic directly and are uncapped, so the helper's one-way claim overstates (pre-existing on the base branch).