Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
3937190
fix(arm64): prove typed contiguous SVE pool-load footprints
cpunion Sep 27, 2026
5faa523
fix(arm64): retain pool flag provenance across SVE broadcasts
cpunion Sep 27, 2026
15a96c1
fix(arm64): cover complete 512-bit indexed SVE broadcasts
cpunion Sep 27, 2026
4e00663
fix(arm64): model predicated SVE copy pool effects
cpunion Sep 27, 2026
ab4c0ff
fix(arm64): retain affine relations for proved logical masks
cpunion Sep 27, 2026
a880ec1
docs: condense current CI repair and verified SVE handoff
cpunion Sep 27, 2026
86a21fe
fix(arm64): prove constant register CMP and CMN bounds
cpunion Sep 27, 2026
6e8ff7d
fix(arm64): prove single-iteration relational pool loops
cpunion Sep 27, 2026
8a3cb6c
docs: preserve uninterrupted CI and local proof checkpoint
cpunion Sep 27, 2026
23cdeed
fix(arm64): exclude independently proved impossible pool branches
cpunion Sep 27, 2026
d947727
fix(arm64): prove power-of-two loop strides with exact residues
cpunion Sep 27, 2026
75962bd
fix(arm64): retain integral carried-address stride relations
cpunion Sep 27, 2026
f271511
fix(arm64): retain masked differences and centered loop invariants
cpunion Sep 27, 2026
a2ee6fd
docs: checkpoint uninterrupted CI evidence and verified loop batches
cpunion Sep 27, 2026
9dfb793
test: refresh pending ledger provenance for the new proof batch
cpunion Sep 27, 2026
95ab1bc
fix(arm64): intersect masked-difference guards before displacement
cpunion Sep 27, 2026
96e78ed
docs: record eleven CI reports and completed frozen regression
cpunion Sep 27, 2026
0318235
test: bind pending ledger to the final local guard checkpoint
cpunion Sep 27, 2026
7c07c82
fix(arm64): preserve invariant relations across sequential pool loops
cpunion Sep 27, 2026
58679be
docs: checkpoint sequential-loop repair and uninterrupted CI evidence
cpunion Sep 27, 2026
5805df4
test: refresh pending assembly provenance after sequential-loop repair
cpunion Sep 27, 2026
0186a07
fix(arm64): preserve flags across scalable count and address families
cpunion Sep 27, 2026
c433e78
fix(arm64): retain disjoint logical sums with proved alignment
cpunion Sep 27, 2026
0a128ec
docs: checkpoint SIMD SVE runtime and current CI failures
cpunion Sep 27, 2026
2265cb1
test: bind pending assembly ledger to SIMD compatibility checkpoint
cpunion Sep 27, 2026
f083204
test: retain audited partial SIMD-shard replay progress
cpunion Sep 27, 2026
05c4f68
test: checkpoint 103 audited external-version passes
cpunion Sep 27, 2026
66ef396
test: retain passing SIMD mirror shard and canonical replay progress
cpunion Sep 27, 2026
46ca52a
test: retain both complete passing SIMD corpus shards
cpunion Sep 27, 2026
fe8f8e4
fix: keep mixed corpus infrastructure failures out of source N/A
cpunion Sep 27, 2026
ffa7718
test: reject infrastructure N/A evidence before ledger publication
cpunion Sep 27, 2026
7278933
fix: retry premature HTTP EOF from module and checksum proxies
cpunion Sep 27, 2026
f063972
docs: refresh CI repair and frozen verification handoff
cpunion Sep 27, 2026
f972ff0
test: bind current ledger to checksum-proxy repair replay
cpunion Sep 27, 2026
7903271
test: checkpoint current-source checksum-proxy shard replay
cpunion Sep 27, 2026
3e8331f
test: retain audited progress of the repaired proxy shard
cpunion Sep 27, 2026
b98e6fc
docs: stage PR 40 repairs through isolated fork CI
cpunion Sep 27, 2026
e831f87
test: bind pending evidence to the fork CI staging checkpoint
cpunion Sep 27, 2026
ca9ad3d
test: retain complete passing fork staging shard 23
cpunion Sep 27, 2026
a233de9
test: resolve checksum-pinned embedded module self-imports
cpunion Sep 27, 2026
a48ebfc
test: rebind fork staging ledger after embedded module repair
cpunion Sep 27, 2026
804df99
fix: repair corpus asmdecl attribution and Go symbol offsets
cpunion Sep 28, 2026
1a8f37c
test: bind pending fork corpus ledger to repaired source
cpunion Sep 28, 2026
9848c6c
ci: start previously failing corpus shards before other jobs
cpunion Sep 28, 2026
ded20b1
test: rebind pending ledger after CI startup scheduling
cpunion Sep 28, 2026
407f0c5
fix(amd64): normalize complete raw FSGSBASE family
cpunion Sep 28, 2026
454a807
ci: require failing shards to pass before remaining jobs
cpunion Sep 28, 2026
be561a2
test: rebind pending ledger to raw segment-base repair
cpunion Sep 28, 2026
08d2b5f
ci: remove discovery matrix concurrency caps
cpunion Sep 28, 2026
012790c
test: rebind pending ledger after CI scheduling change
cpunion Sep 28, 2026
54959b8
ci: verify discovered modules against direct signed sumdb
cpunion Sep 28, 2026
9c5e102
test: rebind pending ledger after checksum routing change
cpunion Sep 28, 2026
c7fa31f
ci: prioritize newly failed corpus shards
cpunion Sep 28, 2026
53aff0f
test: rebind pending ledger after priority gate change
cpunion Sep 28, 2026
e0441b7
corpus: retry HTTP2 stream resets from module services
cpunion Sep 28, 2026
4060214
test: rebind pending ledger after HTTP2 retry fix
cpunion Sep 28, 2026
4e015d1
ci: split discovered corpus into 64 shards
cpunion Sep 28, 2026
60a113b
test: rebind pending ledger to 64-shard corpus
cpunion Sep 28, 2026
dd8f274
ci: pin failed-version priority hashes and correct shard sizing
cpunion Sep 28, 2026
7e9bebc
test: rebind pending ledger after priority regression
cpunion Sep 28, 2026
2284955
test: accept direct signed checksum database in CI policy
cpunion Sep 28, 2026
347265f
test: rebind pending ledger after CI policy correction
cpunion Sep 28, 2026
176df1f
docs: checkpoint fork CI and shard timing
cpunion Sep 28, 2026
d48456c
test: rebind pending ledger after CI checkpoint
cpunion Sep 28, 2026
6eff69c
ci: preflight workflow policy before costly jobs
cpunion Sep 28, 2026
fcc9771
test: rebind pending ledger after CI preflight
cpunion Sep 28, 2026
26d58cf
fix: retry authenticated module fetch after HTTP2 GOAWAY
cpunion Sep 28, 2026
4fa556d
test: rebind pending ledger after GOAWAY retry
cpunion Sep 28, 2026
082861a
docs: record complete fork CI failure audit
cpunion Sep 28, 2026
456ca85
test: rebind pending ledger after complete CI audit
cpunion Sep 28, 2026
f274e08
ci: install LLVM 22 before root policy preflight
cpunion Sep 28, 2026
5a894a2
test: rebind pending ledger after preflight toolchain fix
cpunion Sep 28, 2026
b57b635
perf: batch Go package checks within discovery target
cpunion Sep 28, 2026
be711e2
test: verify batched asmdecl isolates invalid package ABI
cpunion Sep 28, 2026
904b77d
perf: bound parallel translation of independent corpus packages
cpunion Sep 28, 2026
27bd419
docs: checkpoint full fork CI and staged corpus speedup
cpunion Sep 28, 2026
9ff1f52
test: rebind pending ledger for optimized corpus runner
cpunion Sep 28, 2026
09cc485
test: record verified optimized corpus evidence
cpunion Sep 28, 2026
4c806bf
ci: use common runner for corpus aggregate
cpunion Sep 29, 2026
eadc7a7
test: reset corpus evidence for runner fix
cpunion Sep 29, 2026
f66c019
ci: use common runners on fork jobs
cpunion Sep 29, 2026
f263750
test: rebind pending ledger for common runners
cpunion Sep 29, 2026
6745bcc
ci: use stable public Linux runners on fork
cpunion Sep 29, 2026
5856a99
test: reset corpus ledger for stable fork runners
cpunion Sep 29, 2026
cfeddc0
ci: use proven ubuntu-24.04 fork runners
cpunion Sep 29, 2026
d897d46
test: reset corpus ledger for proven fork runners
cpunion Sep 29, 2026
44cfa71
ci: use official GitHub runners on fork
cpunion Sep 29, 2026
5a0699c
test: reset corpus ledger for official fork runners
cpunion Sep 29, 2026
e1fb891
fix: stop discovery cache writers before workspace cleanup
cpunion Sep 29, 2026
fe02870
test: bind pending corpus evidence to cleanup repair
cpunion Sep 29, 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
45 changes: 45 additions & 0 deletions .github/scripts/priority-completion.test.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
const assert = require('node:assert/strict');
const fs = require('node:fs');
const path = require('node:path');
const { test } = require('node:test');

const workflow = fs.readFileSync(path.join(__dirname, '../workflows/go-ci.yml'), 'utf8');

function jobSection(name) {
const start = workflow.indexOf(`\n ${name}:\n`);
assert.notEqual(start, -1, `missing job ${name}`);
const rest = workflow.slice(start + 1);
const next = rest.slice(1).search(/^ [a-zA-Z0-9_-]+:\s*$/m);
return next < 0 ? rest : rest.slice(0, next + 1);
}

test('all other entry jobs require successful priority completion', () => {
for (const name of [
'fmt', 'build', 'benchmark', 'reported_library_list', 'discovered_library_corpus',
'stdlib-corpus', 'cross-runtime', 'test', 'arm-scan', 'race', 'coverage',
]) {
const section = jobSection(name);
assert.match(section, /^ needs: discovered_library_priority$/m, name);
// Native needs success gating must not be bypassed by always()/!cancelled().
assert.doesNotMatch(section, /^ if:/m, name);
}
assert.doesNotMatch(workflow, /^ priority_started:/m);
});

test('all failed shards run and no priority failure can become success', () => {
const priority = jobSection('discovered_library_priority');
assert.match(priority, /^ fail-fast: false$/m);
assert.doesNotMatch(priority, /continue-on-error:/);
assert.match(priority, /^ needs: ci_policy$/m);
assert.doesNotMatch(priority, /^ if:/m);
});

test('cheap CI policy checks pass before expensive corpus or test jobs start', () => {
const policy = jobSection('ci_policy');
assert.match(policy, /bash scripts\/install-ci-llvm22-ubuntu\.sh/);
assert.match(policy, /node --test \.github\/scripts\/priority-\*\.test\.cjs/);
assert.match(policy, /go test \. -run '\^TestCI' -count=1/);
assert.doesNotMatch(policy, /^ (needs|if):/m);
assert.ok(workflow.indexOf('\n ci_policy:\n') <
workflow.indexOf('\n discovered_library_priority:\n'));
});
88 changes: 88 additions & 0 deletions .github/scripts/priority-jobs.test.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
const assert = require('node:assert/strict');
const { createHash } = require('node:crypto');
const fs = require('node:fs');
const path = require('node:path');
const { test } = require('node:test');

const workflow = fs.readFileSync(path.join(__dirname, '../workflows/go-ci.yml'), 'utf8');

function jobSection(name) {
const start = workflow.indexOf(`\n ${name}:\n`);
assert.notEqual(start, -1, `missing job ${name}`);
const rest = workflow.slice(start + 1);
const next = rest.slice(1).search(/^ [a-zA-Z0-9_-]+:\s*$/m);
return next < 0 ? rest : rest.slice(0, next + 1);
}

function shards(section) {
const match = section.match(/^ shard:\n((?: - \d+\n)+)/m);
assert.ok(match, 'missing shard matrix');
return Array.from(match[1].matchAll(/^ - (\d+)$/gm),
([, value]) => Number(value));
}

test('priority and remaining matrices partition all 64 shards exactly once', () => {
const priority = shards(jobSection('discovered_library_priority'));
const remaining = shards(jobSection('discovered_library_corpus'));
// Retain instruction/ABI regressions and the cache cleanup failure from
// fork run 36509240233.
assert.deepEqual(priority, [5, 29, 36, 38, 42]);
assert.deepEqual([...priority, ...remaining].sort((a, b) => a - b),
Array.from({ length: 64 }, (_, index) => index));
for (const name of ['discovered_library_priority', 'discovered_library_corpus']) {
const section = jobSection(name);
assert.match(section, /discovered-corpus \(shard \$\{\{ matrix\.shard \}\}\/64\)/);
assert.match(section, /check-discovered-library-corpus\.sh "\$\{\{ matrix\.shard \}\}" 64/);
}
});

test('failed exact versions rehash into priority shards', () => {
const priority = shards(jobSection('discovered_library_priority'));
for (const exactVersion of [
'github.com/Qitmeer/go-ethereum@v1.10.12',
'github.com/RookieCoderrr/neo3fura-ctrverification@v0.0.0-20221201045318-9878de6dbeed',
'github.com/SysVerification/gokv@v0.0.0-20250508184610-d007325b6ee8',
'github.com/reddit/milvus/pkg/v3@v3.0.0-20260702082229-182134e29ebf',
'github.com/apernet/hysteria/app/v2@v2.12.3',
'github.com/HyNetwork/hysteria/app@v1.3.5',
]) {
const hash = createHash('sha256').update(exactVersion).digest();
const shard = Number(hash.readBigUInt64BE(0) % 64n);
assert.ok(priority.includes(shard), `${exactVersion} belongs to shard ${shard}`);
}
});

test('priority and remaining shards use identical test and artifact steps', () => {
function steps(name) {
const section = jobSection(name);
return section.slice(section.indexOf(' steps:\n')).trim();
}
assert.equal(steps('discovered_library_priority'), steps('discovered_library_corpus'));
assert.match(jobSection('discovered_library_corpus_verify'),
/needs: \[discovered_library_priority, discovered_library_corpus\]/);
});

test('discovery matrices have no explicit concurrency cap', () => {
for (const name of ['discovered_library_priority', 'discovered_library_corpus']) {
assert.doesNotMatch(jobSection(name), /^ max-parallel:/m, name);
}
});

test('local discovery helpers use the CI shard count by default', () => {
for (const name of [
'check-discovered-library-corpus.sh',
'discovery-status.sh',
'update-assembly-ledger.sh',
]) {
const script = fs.readFileSync(path.join(__dirname, '../../scripts', name), 'utf8');
assert.match(script, /shard_count=\$\{2:-64\}/, name);
}
});

test('discovery matrices verify checksums against direct signed databases', () => {
for (const name of ['discovered_library_priority', 'discovered_library_corpus']) {
const section = jobSection(name);
assert.match(section, /^ GOSUMDB:.*sum\.golang\.google\.cn.*sum\.golang\.org https:\/\/sum\.golang\.org/m, name);
assert.doesNotMatch(section, /^ GOSUMDB: ['"]?off/m, name);
}
});
Loading
Loading