gizmoduck: row 270 (264c, #1775) round 2 for duckworth-0223 B1-B3 (sage-3030, sage-3031, mos-1352, sage-3033): pi streams read in 1 MiB chunks under a budget from the system config's compactionReadBytes (default 64 MiB, 1 MiB to 1 GiB, a bad value takes the default and logs), not-collected past it; Claude history from before the ledger is harness-unsupported for good; launcher, runtime reader, clear and legacy tests; mutants M13-M21; BUILD.md round 2 with sizes, schema change, rollback hazard, N1-N3; not run

This commit is contained in:
jason.woltje committed 2026-10-22 21:07:51 -05:00
1 parent 01b57f48bb
commit bce4917154
10 files changed
+761 -30

No files matched your search

+6 -1
View File
@@ -294,9 +294,13 @@ async function validate(document, file) {
if (!isPlainObject(document)) {
fail(2, "configuration must be a JSON object");
}
// Row 270 r2 (mos-1352, DECISIONS Q222): compactionReadBytes, optional and human-only, passes
// on as written; the launcher takes the default for a missing or bad value
// (packages/seat/src/compactions.mjs readBudget). The first list stays as it was:
// packages/cli/tests/stack-release-fixture.mjs edits it to make an older loader.
rejectUnknownKeys(
document,
["configVersion", "environment", "dataRoot", "execution", "console", "federation"],
["configVersion", "environment", "dataRoot", "execution", "console", "federation"].concat(["compactionReadBytes"]),
"configuration",
);
@@ -349,6 +353,7 @@ async function validate(document, file) {
},
...(consoleKey === undefined ? {} : { console: consoleKey }),
...(federationKey === undefined ? {} : { federation: federationKey }),
...(Object.hasOwn(document, "compactionReadBytes") ? { compactionReadBytes: document.compactionReadBytes } : {}),
};
}
+10
View File
@@ -263,6 +263,16 @@ EXPECTED="$(printf '{\n "configVersion": 1,\n "environment": "development",\n
[ "$(MOSAIC_CONFIG="$SANDBOX/no-console.json" timeout 20 $CONFIG_OP validate)" = "$EXPECTED" ]
check "config without console loads with unchanged output" $?
# --- Row 270 r2 (mos-1352, DECISIONS Q222): the optional compactionReadBytes key ---
# The loader passes it on as written, a bad value too: the launcher takes the default for a
# missing or bad one (packages/seat/src/compactions.mjs readBudget), so it never refuses a config.
for v in 8388608 '"x"'; do
cfg budget.json '{"configVersion":1,"environment":"development","dataRoot":"'$DATA_ROOT'","execution":{"backend":"docker","provider":"zai","model":"m"},"compactionReadBytes":'"$v"'}'
OUT="$(MOSAIC_CONFIG="$SANDBOX/budget.json" timeout 20 $CONFIG_OP validate 2>&1)"
[ $? -eq 0 ] && printf '%s' "$OUT" | grep -qxF " \"compactionReadBytes\": $v"
check "compactionReadBytes $v loads and is in the output as written" $?
done
# --- validation must not modify the file ---
SUM_INVALID_BEFORE=$(sha256sum "$SANDBOX/invalid.json" | cut -d' ' -f1)
MOSAIC_CONFIG="$SANDBOX/invalid.json" $CONFIG_OP validate >/dev/null 2>&1