Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
58222b2
measure true idle from worker completion
TheGreenCedar Jul 29, 2026
8f5f799
merge release-lineage guard
TheGreenCedar Jul 29, 2026
a73c25c
merge the calibration harness repair
TheGreenCedar Jul 29, 2026
3c2e1b7
Merge remote-tracking branch 'origin/dev/codestory-next' into codex/1…
TheGreenCedar Jul 29, 2026
e5d0295
use a fresh calibration live query
TheGreenCedar Jul 29, 2026
ab2d267
merge gpu-only calibration repair
TheGreenCedar Jul 29, 2026
5cd73eb
accept native gpu backend families
TheGreenCedar Jul 29, 2026
7c24527
freeze embedding server constants
TheGreenCedar Jul 29, 2026
7933576
Merge remote-tracking branch 'origin/dev/codestory-next' into codex/1…
TheGreenCedar Jul 29, 2026
4f425de
unfreeze embedding constants for repaired candidate
TheGreenCedar Jul 29, 2026
f511689
freeze embedding server constants
TheGreenCedar Jul 29, 2026
553786c
Merge remote-tracking branch 'origin/dev/codestory-next' into codex/1…
TheGreenCedar Jul 29, 2026
08451fa
unfreeze constants after workflow repair
TheGreenCedar Jul 29, 2026
e38fbe5
freeze constants from repaired calibration
TheGreenCedar Jul 29, 2026
ef9ee2c
Merge commit 'f2b2457661d36cd24d19f3d74657ea7c3f486fd7' into codex/15…
TheGreenCedar Jul 30, 2026
34154f2
unfreeze embedding constants
TheGreenCedar Jul 30, 2026
c2318eb
freeze embedding server constants
TheGreenCedar Jul 30, 2026
f1fb7af
stage cargo-linked qualification drivers
TheGreenCedar Jul 30, 2026
1506118
freeze calibrated embedding constants
TheGreenCedar Jul 30, 2026
29ddaeb
Merge remote-tracking branch 'origin/dev/codestory-next' into codex/1…
TheGreenCedar Jul 30, 2026
74dd8b0
bind true idle to product completion
TheGreenCedar Jul 30, 2026
76dfa93
freeze calibrated embedding constants
TheGreenCedar Jul 30, 2026
d318b48
merge windows artifact selector repair
TheGreenCedar Jul 30, 2026
04605eb
freeze calibrated embedding constants
TheGreenCedar Jul 30, 2026
f265f76
enforce atomic candidate archive admission
TheGreenCedar Jul 30, 2026
196fd36
Merge remote-tracking branch 'origin/dev/codestory-next' into codex/1…
TheGreenCedar Jul 30, 2026
c6c1379
enforce release freeze barrier
TheGreenCedar Jul 30, 2026
c5c0c2f
authenticate the release freeze
TheGreenCedar Jul 30, 2026
ca16670
move freeze authority into actions
TheGreenCedar Jul 30, 2026
ab962dd
bind freeze to live dev head
TheGreenCedar Jul 30, 2026
e980b82
freeze embedding server constants
TheGreenCedar Jul 30, 2026
9b2a26d
paginate active proof cancellation
TheGreenCedar Jul 30, 2026
69a82a6
merge windows package repair
TheGreenCedar Jul 30, 2026
6c28714
restore unfrozen calibration input
TheGreenCedar Jul 30, 2026
681ca99
prove only the frozen candidate once
TheGreenCedar Jul 30, 2026
c72c87a
freeze embedding server constants
TheGreenCedar Jul 30, 2026
d79c298
reconcile frozen candidate proof
TheGreenCedar Jul 30, 2026
4e63f63
align freeze with frozen candidate
TheGreenCedar Jul 30, 2026
d94e8e6
seal acceptance job bodies
TheGreenCedar Jul 30, 2026
1a7c8a4
authenticate workflow execution context
TheGreenCedar Jul 30, 2026
47e4137
refresh release evidence fixture binding
TheGreenCedar Jul 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/scripts/candidate-archive-store.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -874,6 +874,7 @@ function publishStoreEntry(storeRoot, inputRoot, record) {
removeOwnedTemporary(temporary, paths.parent, path.basename(paths.entry));
return { admitted: false, ...concurrent };
}
const prepared = lstatSync(temporary, { bigint: true });
try {
renameSync(temporary, paths.entry);
} catch (error) {
Expand All @@ -884,6 +885,15 @@ function publishStoreEntry(storeRoot, inputRoot, record) {
removeOwnedTemporary(temporary, paths.parent, path.basename(paths.entry));
return { admitted: false, ...concurrent };
}
const published = lstatSync(paths.entry, { bigint: true });
if (
!published.isDirectory()
|| published.isSymbolicLink()
|| published.dev !== prepared.dev
|| published.ino !== prepared.ino
) {
fail("candidate archive store entry was not published by atomic directory rename");
}
return { admitted: true, ...verifyStoreEntry(storeRoot, expected) };
} catch (error) {
if (existsSync(temporary)) {
Expand Down
41 changes: 40 additions & 1 deletion .github/scripts/candidate-archive-store.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import os from "node:os";
import path from "node:path";
import { spawnSync } from "node:child_process";
import test from "node:test";
import { fileURLToPath } from "node:url";
import { fileURLToPath, pathToFileURL } from "node:url";

import {
admitCandidateArchive,
Expand Down Expand Up @@ -291,6 +291,45 @@ test("admission and a later hit materialize the complete exact payload as fresh
}
});

test("admission rejects sequential publication beneath the final store key", async () => {
const fixture = createFixture();
try {
const source = readFileSync(SCRIPT, "utf8");
const atomicPublication = " renameSync(temporary, paths.entry);";
assert.equal(
source.split(atomicPublication).length - 1,
1,
"atomic store publication must have one mutation target",
);
const sequentialPublication = [
" mkdirSync(paths.entry, { mode: 0o700 });",
" renameSync(temporaryPayload, paths.payload);",
" renameSync(path.join(temporary, RECORD_FILE), paths.recordFile);",
" rmSync(temporary, { recursive: true });",
].join("\n");
const mutantFile = path.join(fixture.root, "candidate-archive-store-mutant.mjs");
writeFileSync(
mutantFile,
source.replace(atomicPublication, sequentialPublication),
{ flag: "wx" },
);
const mutant = await import(pathToFileURL(mutantFile).href);
assert.throws(
() => mutant.admitCandidateArchive({
inputRoot: fixture.inputRoot,
outputDir: outputDir(fixture),
outputRoot: fixture.outputRoot,
record: fixture.record,
storeRoot: fixture.storeRoot,
}),
/not published by atomic directory rename/u,
);
assert.equal(statExists(outputDir(fixture)), false);
} finally {
cleanup(fixture);
}
});

test("the public checksum companion pair is mandatory", () => {
const fixture = createFixture();
try {
Expand Down
9 changes: 9 additions & 0 deletions .github/scripts/check-calibration-release-lineage.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,21 @@ def main() -> int:
)
parser.add_argument("--repo", required=True, type=Path)
parser.add_argument("--expected-sha", required=True)
parser.add_argument(
"--allow-promotion-commit",
action="store_true",
help=(
"Permit one tree-preserving main promotion commit whose release "
"parent is the direct constant-freeze child."
),
)
arguments = parser.parse_args()

repository_root = arguments.repo.resolve(strict=True)
result = verify_release_head_calibration_lineage(
repository_root,
arguments.expected_sha,
allow_promotion_commit=arguments.allow_promotion_commit,
)
print(json.dumps({"status": "passed", **result}, sort_keys=True))
return 0
Expand Down
Loading