Development record
2026-10-17 — Refines dcn-2610161814279204, the two-preflights trial (iss-2610161639025702), on a machine config.json that cannot be read for load.preflights. The load gate now reads past it: a file that others can write, that is not valid JSON, or whose load is not an object gives the default of one preflight at a time, and the waiter prints one line on stderr naming the file, the cause and how to fix it; a key under load that nothing reads is named on that line, and a usable load.preflights beside it still counts. Only a load.preflights that is there and unusable (out of range, or not a whole number), or an unusable ABCD_LOAD_PREFLIGHTS, refuses the wait. Reason: with one slot the gate never read that file before the setting existed, so refusing made a file that holds other machine settings stop every make preflight of a person who never set the count, a regression against main. This departs from the layered reader's rule that an unreadable file fails loudly; the note is what stays loud, and what a read past drops is only a count the file could not be trusted to carry, falling back to the setting's safe default. Rejected: keeping the refusal with a clearer message, which the branch had, since a person who never set the count still could not run a preflight without editing a file they did not know mattered.
2026-10-17 — Refines dcn-2610161814279204, the two-preflights trial (iss-2610161639025702), on a machine config.json that cannot be read for load.preflights. The load gate now reads past it: a file that others can write, that is not valid JSON, or whose load is not an object gives the default of one preflight at a time, and the waiter prints one line on stderr naming the file, the cause and how to fix it; a key under load that nothing reads is named on that line, and a usable load.preflights beside it still counts. Only a load.preflights that is there and unusable (out of range, or not a whole number), or an unusable ABCD_LOAD_PREFLIGHTS, refuses the wait. Reason: with one slot the gate never read that file before the setting existed, so refusing made a file that holds other machine settings stop every make preflight of a person who never set the count, a regression against main. This departs from the layered reader's rule that an unreadable file fails loudly; the note is what stays loud, and what a read past drops is only a count the file could not be trusted to carry, falling back to the setting's safe default. Rejected: keeping the refusal with a clearer message, which the branch had, since a person who never set the count still could not run a preflight without editing a file they did not know mattered.
Frontmatter
| id | dcn-2610170144591742 |
|---|---|
| type | decision |
| date | 2026-10-17 |
.abcd/work/decisions/dcn-2610170144591742-refines-dcn-2610161814279204-the.md
open on GitHub ↗ · commit history ↗
mentions2
- dcn-26101618142792042026-10-16 — The product thinker approved a measured trial of two preflights in their test stages at once, with the race stage kept to one at a time; the default stays one, and a person may raise it only for their own machine (load.preflights in ~/.abcd.noindex/config.json, or ABCD_LOAD_PREFLIGHTS), never from a repository file. So the setting takes 1 or 2 and nothing more: 3 and 4 are refused, saying the limit rises once a measured trial supports it. At the default of one the preflight runs exactly as before, its race gate opening at once.
- iss-2610161639025702Preflight throughput sets the pace of all work on this machine, and nothing keeps it in bounds. On 2026-10-16 the load gate admitted one make preflight at a time, each took about 40 minutes, and about 20 waiters were queued across seven sessions. Every reviewed branch had its own preflight, so a seven-step feature needed seven full runs, and records-only branches paid the same full cost as code. Sessions waited hours, and the queue's ordering after the reboot starved late waiters (fixed separately on fix/load-queue-start-order). No rule tells sessions to batch work, and no part of preflight scales its cost to what a change touches.