Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
236 commits
Select commit Hold shift + click to select a range
8f7b8ae
feat(workflows): add reusable r-package-check.yml for kaefa/nonnest2
seonghobae Sep 2, 2026
5aecb9b
docs(workflows): correct r-package-check.yml's caller example to SHA-pin
seonghobae Sep 2, 2026
5e838ab
test(workflows): reject caller-authored shell in reusable R check
seonghobae Sep 2, 2026
931c8f3
fix(workflows): bound reusable R pre-check input
seonghobae Sep 2, 2026
6ca3080
test(workflows): bind bounded R pre-check contract
seonghobae Sep 2, 2026
0747ae1
docs(adr): record bounded R workflow security decision
seonghobae Sep 2, 2026
8691ac6
docs(workflows): record reusable R shell-input RCA
seonghobae Sep 2, 2026
9ec686e
Merge 8691ac6c7365c1ee99148bbb5bfbd5d609be0c3c into 63bf49835da44aa82…
seonghobae Sep 2, 2026
6b39b87
docs(gap-baseline): record org-queue-sweep rate-limit investigation, …
seonghobae Sep 2, 2026
4eab872
Merge remote-tracking branch 'origin/main' into claude/item15-org-que…
seonghobae Sep 2, 2026
bf5970d
docs(doctoring): verify loop-brief items 4, 15-18, 38, 39 already res…
seonghobae Sep 3, 2026
7d09388
fix(ci): job-level runner-admission gate for required workflows (#1766)
seonghobae Sep 3, 2026
d302322
docs(doctoring): record codeql-pr.yml required-workflow platform rest…
seonghobae Sep 3, 2026
bf28b5d
fix(actions): let the current-head coalescer finish under push bursts…
seonghobae Sep 3, 2026
76513a2
[QUEUE_SATURATION_CHICKEN_EGG] feat(audit): close CodeQL gap, add per…
seonghobae Sep 3, 2026
cbd1280
fix(actions): coalescer needs queue:max, not just cancel-in-progress:…
seonghobae Sep 3, 2026
64e67ef
[QUEUE_SATURATION_CHICKEN_EGG] fix(ci): restore PR-scoped concurrency…
seonghobae Sep 3, 2026
8141b99
fix(opencode-review): drop head-SHA concurrency scoping, structurally…
seonghobae Sep 3, 2026
87352d9
fix(strix): resolve strix.interface.main package-attribute shadow (#1…
seonghobae Sep 3, 2026
fc6cd63
fix(ci): dedupe strix.yml's cancel-superseded-pr-runs cleanup job (#1…
seonghobae Sep 3, 2026
8122fff
fix(opencode-review): scope concurrency to opencode-review-target onl…
seonghobae Sep 3, 2026
2fb81cc
docs(doctoring): verify item 13's stale-head-cancellation hypothesis …
seonghobae Sep 3, 2026
f109078
docs(doctoring): pr-review-merge-scheduler.yml's trigger surface is b…
seonghobae Sep 3, 2026
ff332ea
docs(gap-baseline): record fresh item 4 evidence -- gateway 500 after…
seonghobae Sep 3, 2026
211f167
docs(adr): 0025 restore central CodeQL as a required workflow via rep…
seonghobae Sep 3, 2026
0e195d3
refactor(codeql): extract the SARIF Medium+ gate into a shared script…
seonghobae Sep 3, 2026
c594efa
feat(codeql): add the native CodeQL scan dispatch handler (#1776)
seonghobae Sep 3, 2026
403da71
feat(codeql): rewrite codeql-pr.yml as dispatch+poll (#1778)
seonghobae Sep 3, 2026
bc9c081
fix(ci): sync stale strix.yml concurrency-format assertion with PR #1…
seonghobae Sep 3, 2026
9899c3d
fix(ci): update test_strix_quick_gate.sh's stale cron assertion from …
seonghobae Sep 3, 2026
62d512e
docs(item23): Noema review-gate failure retrospective and improvement…
seonghobae Sep 3, 2026
0070e37
docs(adr): record ecosystem admin-web architecture (Keyverse SSO + Ke…
seonghobae Sep 3, 2026
122d202
docs(item7): correct "zero work started" claim on EgressWeave/wardnet…
seonghobae Sep 3, 2026
08d83f7
docs(opencode-review): fix stale comment describing the pre-#1781 des…
seonghobae Sep 3, 2026
bd866a2
fix(release): make exact artifact handoff acyclic (#1791)
seonghobae Sep 3, 2026
6b2bc9d
Merge branch 'main' into feat/r-package-check-reusable-workflow
opencode-agent[bot] Sep 3, 2026
0c9a5ab
test(codeql): guard against any branches: filter reappearing on codeq…
seonghobae Sep 3, 2026
09ac636
fix(governance): audit all required code-scanning workflows (#1719)
seonghobae Sep 3, 2026
51b812d
feat(scorecard): centralize default-branch analysis as reusable workf…
seonghobae Sep 3, 2026
232107a
fix(scheduler): defer shared installation rate limits (#1245)
seonghobae Sep 3, 2026
2ed66f2
fix(scheduler): mirror hourly-caller targets against the dispatch all…
seonghobae Sep 3, 2026
d548c19
chore(deps): bump uv from 0.11.25 to 0.12.7 (#1512)
dependabot[bot] Sep 3, 2026
bf21572
chore(deps): bump protobuf from 6.33.6 to 7.36.0 (#1513)
dependabot[bot] Sep 3, 2026
abdc4bd
chore(deps): bump openai-agents from 0.19.4 to 0.22.0 (#1514)
dependabot[bot] Sep 3, 2026
cff0447
chore(deps): bump openai from 2.54.0 to 3.6.0 (#1516)
dependabot[bot] Sep 3, 2026
a7a317d
chore(deps): bump google/osv-scanner-action/osv-reporter-action (#1520)
dependabot[bot] Sep 3, 2026
aee4292
chore(deps): bump google/osv-scanner-action/osv-scanner-action from a…
dependabot[bot] Sep 3, 2026
5afbf58
ci(review): consolidate Noema, OpenCode, and Strix quality bootups (#…
seonghobae Sep 3, 2026
c13fea1
ci(sbom): combine exact artifact quality runners (#1805)
seonghobae Sep 3, 2026
b4221e7
⚡ Bolt: opencode_review_approve_gate.sh 정규표현식 사전 컴파일 최적화 (#1735)
seonghobae Sep 3, 2026
269e5bd
fix(scheduler): fail fast on shared installation rate limits (#1803)
seonghobae Sep 3, 2026
c25be13
fix(ci): close two required-check gaps left open by #1803's scheduler…
seonghobae Sep 3, 2026
bcff4af
perf(ci): O(1) character check bypass for JSON decoding in redact_sen…
seonghobae Sep 3, 2026
0574df2
chore(deps): bump github/codeql-action from v4.37.8 to v4.37.9 (#1801)
seonghobae Sep 3, 2026
72f63c9
perf(ci): add a no-marker fast path to extract_model_prose (#1811)
seonghobae Sep 3, 2026
7c82b66
perf(ci): fetch multiple agent ledger artifacts concurrently (#1813)
seonghobae Sep 3, 2026
07d9ec2
fix(ci): remove dormant nvidia-nim provider block from opencode.jsonc…
seonghobae Sep 3, 2026
f523596
fix(automation): raise hourly-review-repair max_prs from 50 to 200
claude Sep 3, 2026
9129095
docs(automation): correct Clearfolio cancel-in-progress claim
claude Sep 3, 2026
c780268
Merge branch 'main' into feat/r-package-check-reusable-workflow
opencode-agent[bot] Sep 3, 2026
194a30e
docs(gap-baseline): record Actions congestion and noema/strix hot-fil…
claude Sep 4, 2026
37859a4
fix(ci): repoint stale scheduler_file self-test assertions at the cor…
seonghobae Sep 4, 2026
9c79cf7
test(actions): pin org-sweep queue-hygiene owner boundary
seonghobae Sep 4, 2026
7b93e9f
docs(gap-baseline): record 4 more hot-file collision PRs and #1655's …
claude Sep 4, 2026
03a89c7
fix(opencode): break runner-capacity dispatch deadlock (#1823)
seonghobae Sep 4, 2026
72409df
docs(item13): correct the "23h22m queued" Strix run claim, found via …
seonghobae Sep 4, 2026
30425f6
ci(review-repair): limit push quality runs to main (#1825)
seonghobae Sep 4, 2026
c73aadb
merge(main): adopt current queue-control prerequisites
seonghobae Sep 4, 2026
4024a8a
ci(security): consolidate required OSV and Scorecard scans (#1826)
seonghobae Sep 4, 2026
4a9f355
merge(main): adopt consolidated security workflow prerequisite
seonghobae Sep 4, 2026
5ec781d
ci(quality): isolate PR concurrency by repository (#1827)
seonghobae Sep 4, 2026
6c6ca9b
merge(main): adopt repository-isolated quality concurrency
seonghobae Sep 4, 2026
035b3e6
ci(scheduler): reduce organization sweep polling (#1828)
seonghobae Sep 4, 2026
1dd143b
fix(tests): repair required-gate breakage left by #1826 and #1823 (#1…
seonghobae Sep 4, 2026
dafb1e6
fix(coalescer): treat CoalescingRefused as the documented safe no-op …
seonghobae Sep 4, 2026
6382f3f
fix(noema): ground verdicts and classify gateway errors (#1831)
seonghobae Sep 4, 2026
6619f5d
Merge remote-tracking branch 'origin/main' into HEAD
seonghobae Sep 4, 2026
9db155a
ci(opencode): release required runner after dispatch (#1830)
seonghobae Sep 4, 2026
41411c1
fix(tests): sync stale hourly-cron assertion with the current daily c…
seonghobae Sep 4, 2026
b74ac8d
Revert "fix(tests): sync stale hourly-cron assertion with the current…
seonghobae Sep 4, 2026
135264d
fix(tests): sync stale hourly-cron assertion with #1828's daily sweep…
seonghobae Sep 4, 2026
296a1e6
ci: retire duplicate PR security workflows
seonghobae Sep 4, 2026
02bb07e
Merge remote-tracking branch 'origin/main' into codex/retire-standalo…
seonghobae Sep 4, 2026
22a7073
ci: retire duplicate PR security workflows (#1833)
seonghobae Sep 4, 2026
10b28ff
Merge branch 'main' into fix/scheduler-quick-gate-core-file-refs
seonghobae Sep 4, 2026
e9ab98a
ci(security): consolidate PR Gitleaks scanning
seonghobae Sep 4, 2026
e635312
Merge remote-tracking branch 'origin/main' into codex/pr1716-update
seonghobae Sep 4, 2026
816e3e4
feat(workflows): reusable R-CMD-check for kaefa/nonnest2 (#1716)
seonghobae Sep 4, 2026
d738b6d
chore(actions): non-force restack queue owner RED onto current main
seonghobae Sep 4, 2026
fd5cec4
fix(tests): close #1831's stale served_model test, missing docstring,…
seonghobae Sep 4, 2026
6557b9f
Merge remote-tracking branch 'origin/main' into codex/consolidate-git…
seonghobae Sep 4, 2026
d451f19
Merge remote-tracking branch 'origin/main' into codex/pr1834-update
seonghobae Sep 4, 2026
8e7e985
ci: consolidate PR Gitleaks into Security Scan (#1834)
seonghobae Sep 4, 2026
5cf6b2f
chore(actions): adopt current control-plane main without force
seonghobae Sep 4, 2026
3dabaaf
Merge remote-tracking branch 'origin/main' into codex/pr1820-final
seonghobae Sep 4, 2026
0029b5e
test(actions): make queue owner RED executable on exact PR heads
seonghobae Sep 4, 2026
a73f5c9
test(ci): align scheduler wake contracts
seonghobae Sep 4, 2026
0b4a6d9
fix(ci): repoint quick-gate scheduler assertions (#1820)
seonghobae Sep 4, 2026
b306e4a
Merge remote-tracking branch 'origin/main' into codex/pr1821-repair
seonghobae Sep 4, 2026
c78f6cf
ci: retire cross-repository queue cancellation
seonghobae Sep 4, 2026
1cfacad
ci: fold queue ownership check into existing quality job
seonghobae Sep 4, 2026
11bb6a7
Merge pull request #1821 from ContextualWisdomLab/test/1796-org-sweep…
seonghobae Sep 4, 2026
c4dc152
ci(actions): consolidate review repair quality gate
seonghobae Sep 4, 2026
8ec09ba
Merge latest main into hourly review repair cap
seonghobae Sep 4, 2026
87fde45
Merge pull request #1836 from ContextualWisdomLab/codex/consolidate-r…
seonghobae Sep 4, 2026
ec4521f
ci(actions): consolidate commercial readiness quality
seonghobae Sep 4, 2026
b7fe912
Merge pull request #1837 from ContextualWisdomLab/codex/consolidate-c…
seonghobae Sep 4, 2026
e3a8e19
fix(automation): rotate bounded review repair windows
seonghobae Sep 4, 2026
56f315f
Merge latest main into hourly review repair cap
seonghobae Sep 4, 2026
1a96d0a
Merge pull request #1817 from ContextualWisdomLab/fix/hourly-review-r…
seonghobae Sep 4, 2026
0c44363
ci(actions): consolidate SBOM attestation quality
seonghobae Sep 4, 2026
f87bfae
Merge remote-tracking branch 'origin/main' into codex/pr1729-repair
seonghobae Sep 4, 2026
77da414
docs: supersede stale org sweep conclusion
seonghobae Sep 4, 2026
7d44e13
docs: correct historical sweep cost evidence
seonghobae Sep 4, 2026
f8f8f92
Merge pull request #1729 from ContextualWisdomLab/claude/item15-org-q…
seonghobae Sep 4, 2026
2839d29
Merge remote-tracking branch 'origin/main' into codex/pr1838-review
seonghobae Sep 4, 2026
2c5d8ed
ci: skip agent quality runner for changelog-only edits
seonghobae Sep 4, 2026
f0dd406
Merge pull request #1838 from ContextualWisdomLab/codex/consolidate-s…
seonghobae Sep 4, 2026
d57f2ad
Merge remote-tracking branch 'origin/main' into codex/pr1819-repair
seonghobae Sep 4, 2026
f8c3b30
Merge pull request #1819 from ContextualWisdomLab/docs/gap-baseline-a…
seonghobae Sep 4, 2026
baa05ae
fix(actions): group Strix gate outputs
seonghobae Sep 4, 2026
8071969
Merge pull request #1839 from ContextualWisdomLab/codex/strix-group-g…
seonghobae Sep 4, 2026
26cfc33
ci(scheduler): stop required-check completion fanout (#1840)
seonghobae Sep 4, 2026
5d81769
feat(codeql): bootstrap adaptive setup pull requests (#1841)
seonghobae Sep 4, 2026
07db37e
fix(codeql): keep onboarding off pull request heads (#1842)
seonghobae Sep 4, 2026
e64ab9c
fix(actions): deploy current orchestrator runtime (#1843)
seonghobae Sep 4, 2026
ed6d2b5
docs(actions): correct orchestrator pin scope (#1844)
seonghobae Sep 4, 2026
6790cce
fix(actions): admit live review heads before cancellation
seonghobae Sep 4, 2026
d6c636a
Merge pull request #1845 from ContextualWisdomLab/codex/goal13-openco…
seonghobae Sep 4, 2026
b15cb99
fix(actions): recover current startup failures (#1846)
seonghobae Sep 4, 2026
6fb2a1c
ci(scheduler): consolidate empty PR cleanup
seonghobae Sep 4, 2026
9c7d28a
Merge pull request #1847 from ContextualWisdomLab/codex/consolidate-c…
seonghobae Sep 4, 2026
c129aeb
test(actions): sync OpenCode concurrency contract (#1848)
seonghobae Sep 4, 2026
109d79b
ci(actions): replace unsupported queue concurrency
seonghobae Sep 4, 2026
12fe2d1
test(ci): align current-main workflow contracts
seonghobae Sep 4, 2026
df99679
ci(actions): coalesce hourly review admissions
seonghobae Sep 4, 2026
fe59bfe
Merge remote-tracking branch 'origin/main' into codex/repair-current-…
seonghobae Sep 4, 2026
c31d2e5
Merge pull request #1852 from ContextualWisdomLab/codex/repair-curren…
seonghobae Sep 4, 2026
633b4c4
fix(actions): cancel queued superseded model runs
seonghobae Sep 4, 2026
34b7903
Merge pull request #1854 from ContextualWisdomLab/codex/model-workflo…
seonghobae Sep 4, 2026
641297d
docs(actions): start model concurrency runtime proof
seonghobae Sep 4, 2026
b1c353e
docs(actions): include Strix concurrency proof scope
seonghobae Sep 4, 2026
9c7fa72
docs(actions): record first full model run generation
seonghobae Sep 4, 2026
67f3f6e
docs(actions): record native model run cancellation
seonghobae Sep 4, 2026
4aad269
Merge pull request #1855 from ContextualWisdomLab/codex/model-workflo…
seonghobae Sep 4, 2026
7899b48
fix(codeql): restore required startup recovery
seonghobae Sep 4, 2026
fc38e19
Merge remote-tracking branch 'origin/main' into codex/repair-codeql-s…
seonghobae Sep 4, 2026
f893b47
Merge pull request #1856 from ContextualWisdomLab/codex/repair-codeql…
seonghobae Sep 4, 2026
7696915
fix(strix): install required HTTPX2 runtime (#1851)
seonghobae Sep 4, 2026
f871694
fix(scheduler): verify pre-job startup failures (#1859)
seonghobae Sep 4, 2026
3f2f21c
fix(actions): reduce scheduled recovery pressure (#1860)
seonghobae Sep 4, 2026
a23c666
feat(ci): add bounded durable review admission core (#1862)
seonghobae Sep 4, 2026
1114a99
ci(scheduler): connect bounded review admission (#1863)
seonghobae Sep 4, 2026
b5e4b55
fix(noema): preserve gateway and source receipt evidence (#1850)
seonghobae Sep 4, 2026
67fd7e5
fix(noema-review): close item13 stale-head native-cancellation race (…
seonghobae Sep 4, 2026
dcd35b7
fix(codeql): release runners with exact job wake-up (#1865)
seonghobae Sep 4, 2026
e0de9c1
ci(codeql): gate staged default-setup retirement (#1818)
seonghobae Sep 4, 2026
5d55a31
fix(actions): halve current-head coalescer jobs (#1866)
seonghobae Sep 4, 2026
f43dcb8
fix(actions): retire review scans when PRs return to draft (#1869)
seonghobae Sep 4, 2026
a9aeee8
fix(actions): pin opencode-review-dispatch.yml off starved ubuntu-lat…
seonghobae Sep 4, 2026
1b65dbc
fix(actions): remove organization queue sweep (#1878)
seonghobae Sep 5, 2026
b5efbc2
fix(tests): repair changed-scope drift and stale noema cancel-step te…
seonghobae Sep 5, 2026
7ad6d78
fix(strix): remove repository-side scan retries
seonghobae Sep 5, 2026
40e9775
docs(agents): guard event-specific run identity
seonghobae Sep 5, 2026
85f4ef9
ci(actions): fold head coalescing into scheduler
seonghobae Sep 5, 2026
af5932e
Merge pull request #1882 from ContextualWisdomLab/codex/consolidate-c…
seonghobae Sep 5, 2026
cff3907
Merge remote-tracking branch 'origin/main' into codex/actions-run-ide…
seonghobae Sep 5, 2026
bfda38b
Merge pull request #1881 from ContextualWisdomLab/codex/actions-run-i…
seonghobae Sep 5, 2026
fd36a57
Merge branch 'main' into codex/remove-strix-outer-retry
seonghobae Sep 5, 2026
8272e4f
Merge pull request #1880 from ContextualWisdomLab/codex/remove-strix-…
seonghobae Sep 5, 2026
0ee7be8
fix(actions): pin the remaining named-residual workflows off ubuntu-l…
seonghobae Sep 5, 2026
0eb41a3
fix(codeql): isolate language dispatch concurrency (#1888)
seonghobae Sep 5, 2026
8a15cde
fix(actions): verify coalescer cancellation completion (#1887)
seonghobae Sep 5, 2026
3474051
fix(strix): bound scanner runtime to 900 seconds (#1889)
seonghobae Sep 5, 2026
bc59c07
fix(noema): bound model runtime to 900 seconds (#1890)
seonghobae Sep 5, 2026
58c7b04
fix(opencode): bound model runtime to 900 seconds (#1892)
seonghobae Sep 5, 2026
f590a89
fix(noema): restore unbounded model runtime contract (#1891)
seonghobae Sep 5, 2026
1c74d9d
fix(tests): resync opencode-review-dispatch.yml blob-pin after #1892 …
seonghobae Sep 5, 2026
1e84a69
fix(review): restore user-directed model timeout policy (#1895)
seonghobae Sep 5, 2026
947532d
fix(tests): revert opencode-review-dispatch.yml blob-pin after #1895'…
seonghobae Sep 5, 2026
6d7fbeb
fix(tests): stub startup-failure recovery so scheduler tests are GITH…
seonghobae Sep 5, 2026
71dd84d
fix(ci): close the admission-controller coverage/docstring gap on mai…
seonghobae Sep 5, 2026
27d7331
docs(agents): record verification discipline and shared-identity merg…
seonghobae Sep 5, 2026
57210f8
docs(agents): record test-gate regression and stale-PR merge mechanics
seonghobae Sep 5, 2026
b35d1f6
Merge origin/main into docs/test-gate-and-merge-mechanics
seonghobae Sep 5, 2026
0ff7ed2
docs(agents): tighten test-gate rules after adversarial review
seonghobae Sep 5, 2026
e280c4f
docs(agents): name the real categories of forty-hex literal in tests/
seonghobae Sep 5, 2026
525d16b
docs(agents): document how to verify a "superseded" closure claim (#1…
seonghobae Sep 5, 2026
741acc7
Merge origin/main (#1906) into docs/test-gate-and-merge-mechanics
seonghobae Sep 5, 2026
c4a89b3
fix(opencode): stop two echo-only jobs from serializing the review cr…
seonghobae Sep 5, 2026
8aea813
docs(agents): record PR-supersession and constant-change review disci…
seonghobae Sep 5, 2026
6ecc526
Merge origin/main (#1909) into docs/test-gate-and-merge-mechanics
seonghobae Sep 5, 2026
62919d7
docs(items15-17): measure Detect changed scope gate-job runner waste …
seonghobae Sep 5, 2026
a01ffc1
docs(item4): confirm the served_model/phase telemetry fix landed and …
seonghobae Sep 5, 2026
7fcada5
Merge pull request #1914 from ContextualWisdomLab/docs/test-gate-and-…
seonghobae Sep 5, 2026
f250638
fix(ci): restore scheduler CI isolation and contract selection (#1922)
seonghobae Sep 5, 2026
6f8c51d
fix(dispatch): parse the trusted-dispatcher allowlist identically in …
seonghobae Sep 5, 2026
3f88e13
fix(codeql): serialise the dispatched scan matrix with toJSON (#1926)
seonghobae Sep 5, 2026
7f4c5e3
fix(scheduler): hold pre-review branch updates while current-head che…
seonghobae Sep 5, 2026
f2f91b8
fix(review): round-robin catalog fill across accounts within a tier (…
seonghobae Sep 5, 2026
d9eb9f7
fix(sidecar): record the orchestrator's per-attempt trace in the revi…
seonghobae Sep 5, 2026
972b74b
fix(sidecar): let the stream sanitizer pass orchestrator route and ci…
seonghobae Sep 5, 2026
fe827e1
fix(noema): upload the sidecar stderr and preflight report when the v…
seonghobae Sep 5, 2026
0e42fbc
fix(sidecar): keep transient-rejected preflight routes as deferred fa…
seonghobae Sep 6, 2026
53c0a87
docs(sidecar): describe the deferral bound in passthrough terms
seonghobae Sep 6, 2026
37a1129
docs(sidecar): state the deferral bound in terms of the gateway retry…
seonghobae Sep 6, 2026
6d897c9
fix(sidecar): fill the preflight served set lazily to a readiness target
seonghobae Sep 6, 2026
b270bde
fix(sidecar): cap every preflight stage's candidate list at the probe…
seonghobae Sep 6, 2026
a912575
fix(sidecar): keep the exception type and innermost frame per traceback
Sep 6, 2026
efb8926
fix(sidecar): bump vendored contextual-orchestrator pin to fix orches…
seonghobae Sep 6, 2026
e4c9c44
Merge remote-tracking branch 'origin/main' into fix/preflight-defer-t…
seonghobae Sep 6, 2026
384903d
Merge branch 'fix/preflight-defer-transient-routes' into fix/prefligh…
seonghobae Sep 6, 2026
71562e0
Merge branch 'main' into fix/sidecar-sanitizer-traceback-type-20260906
Sep 6, 2026
82ed98d
fix(sidecar): skip an account after two consecutive 429s at preflight
seonghobae Sep 6, 2026
3a1e10b
docs(adr-0029): state the probe cap's wall-time bound with the first …
seonghobae Sep 6, 2026
46f5761
Merge pull request #1947 from ContextualWisdomLab/fix/preflight-defer…
seonghobae Sep 6, 2026
1a49cc9
Merge remote-tracking branch 'origin/main' into fix/preflight-lazy-fill
seonghobae Sep 6, 2026
e18d846
Merge branch 'main' into fix/sidecar-sanitizer-traceback-type-20260906
Sep 6, 2026
ff9848a
Merge pull request #1950 from ContextualWisdomLab/fix/sidecar-sanitiz…
seonghobae Sep 6, 2026
27d478d
Merge remote-tracking branch 'origin/main' into fix/preflight-lazy-fill
seonghobae Sep 6, 2026
fb2ae81
Merge pull request #1949 from ContextualWisdomLab/fix/preflight-lazy-…
seonghobae Sep 6, 2026
4302463
fix(strix): name the sandbox bootstrap failure and give it a bounded …
seonghobae Sep 6, 2026
5ea1cc4
ci(review): coalesce superseded OpenCode review dispatches before adm…
seonghobae Sep 6, 2026
0b0f104
fix(preflight): postpone a rate-limited account's candidates instead …
seonghobae Sep 6, 2026
c232ca0
fix(strix): sanitize strix-agent's recovered transient replay warning…
seonghobae Sep 6, 2026
dd0b96f
fix(review): name the Strix sandbox class in the failed-check finding…
seonghobae Sep 6, 2026
ee5567f
test(actions): pin concurrency group keys against comment leakage (#1…
seonghobae Sep 6, 2026
6e014c9
fix(actions): coalesce superseded agent mentions while they are queue…
seonghobae Sep 6, 2026
9aad23c
test(actions): parse the concurrency group instead of slicing the blo…
seonghobae Sep 6, 2026
ad0779b
fix(scheduler): skip review dispatch for a head whose merge tree cann…
seonghobae Sep 6, 2026
49eb9e7
test(actions): anchor cancel-in-progress contracts so a flipped flag …
seonghobae Sep 6, 2026
5c60b5d
test(concurrency): pin the cancel flag as a value for the PR-keyed sc…
seonghobae Sep 6, 2026
74224b2
fix(scheduler): match the run name GitHub actually sends for central …
seonghobae Sep 6, 2026
2396ddc
Revert "fix(scheduler): skip review dispatch for a head whose merge t…
seonghobae Sep 6, 2026
bf0bf0a
fix(audit): stop a ruleset drift from disabling the CodeQL coverage d…
seonghobae Sep 6, 2026
c9052e6
fix(audit): count the repositories examined, not the ones supplied (#…
seonghobae Sep 6, 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
4 changes: 2 additions & 2 deletions .github/actions/orchestrator-free-sidecar/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ inputs:
required: false
default: "false"
catalog_limit:
description: Maximum discovered route catalog size for the sidecar preflight.
description: Maximum discovered route catalog size for the sidecar preflight (a candidate list probed lazily to a readiness target, ADR-0029).
required: false
default: "12"
default: "24"
catalog_account_cap:
description: Maximum routes admitted from one credential account.
required: false
Expand Down
15 changes: 12 additions & 3 deletions .github/workflows/agent-mention-noema-dispatch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,18 @@ on:
types: [agent-mention-noema]

concurrency:
group: agent-mention-noema-${{ github.event.client_payload.agent_invocation_key || github.run_id }}
cancel-in-progress: false
queue: max
# Workflow-level admission, for the same reason strix.yml, noema-review.yml,
# opencode-review.yml and opencode-review-dispatch.yml carry theirs at this level:
# a job-level group is never evaluated while the whole run waits behind the
# organization job ceiling, so a superseded mention keeps its queue slot until a
# runner frees up and only then cancels. At workflow level the older run is
# coalesced while both are still queued, which is where the slot is actually held.
# This workflow has a single job, so the group lives here and nowhere else --
# every workflow in this repository that carries a group at both levels
# (strix.yml, opencode-review-dispatch.yml) gives the two levels DIFFERENT names,
# because a job requesting the group its own run already holds would wait on itself.
group: agent-mention-noema-${{ github.event.client_payload.target_repository }}-${{ github.event.client_payload.pr_number || github.run_id }}
cancel-in-progress: true

permissions:
contents: read
Expand Down
15 changes: 12 additions & 3 deletions .github/workflows/agent-mention-opencode-dispatch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,18 @@ on:
types: [agent-mention-opencode]

concurrency:
group: agent-mention-opencode-${{ github.event.client_payload.agent_invocation_key || github.run_id }}
cancel-in-progress: false
queue: max
# Workflow-level admission, for the same reason strix.yml, noema-review.yml,
# opencode-review.yml and opencode-review-dispatch.yml carry theirs at this level:
# a job-level group is never evaluated while the whole run waits behind the
# organization job ceiling, so a superseded mention keeps its queue slot until a
# runner frees up and only then cancels. At workflow level the older run is
# coalesced while both are still queued, which is where the slot is actually held.
# This workflow has a single job, so the group lives here and nowhere else --
# every workflow in this repository that carries a group at both levels
# (strix.yml, opencode-review-dispatch.yml) gives the two levels DIFFERENT names,
# because a job requesting the group its own run already holds would wait on itself.
group: agent-mention-opencode-${{ github.event.client_payload.target_repository }}-${{ github.event.client_payload.pr_number || github.run_id }}
cancel-in-progress: true

permissions:
contents: read
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/agent-mention-router-quality-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ on:
- "requirements-opencode-review-ci-hashes.txt"

concurrency:
group: agent-mention-router-quality-${{ github.event.pull_request.number || github.ref }}
group: agent-mention-router-quality-${{ github.repository }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

permissions:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/agent-mention-router.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ jobs:
|| contains(github.event.comment.body, '/oc')
)
concurrency:
group: review-agent-mention-router-local-${{ github.repository }}
queue: max
group: review-agent-mention-router-local-${{ github.repository }}-${{ github.event.issue.number || github.run_id }}
cancel-in-progress: true
runs-on: ubuntu-24.04
timeout-minutes: 5
permissions:
Expand Down
490 changes: 490 additions & 0 deletions .github/workflows/agent-review-runtime-quality-ci.yml

Large diffs are not rendered by default.

152 changes: 151 additions & 1 deletion .github/workflows/audit-central-ruleset.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,17 @@ on:
paths:
- ".github/workflows/audit-central-ruleset.yml"
- "scripts/ci/audit_central_required_workflows.py"
- "scripts/ci/audit_org_codeql_coverage.py"
- "scripts/ci/bootstrap_codeql_pull_requests.py"
- "docs/org-required-workflow-rollout.md"

concurrency:
group: central-required-workflow-ruleset-audit
group: central-required-workflow-ruleset-audit-${{ github.event_name == 'repository_dispatch' && github.event.action || github.event_name }}
cancel-in-progress: true

permissions:
contents: read
id-token: write

jobs:
audit:
Expand Down Expand Up @@ -100,3 +103,150 @@ jobs:
exit 1
fi
python3 scripts/ci/audit_central_required_workflows.py --stacked "$stacked_ruleset_json"

- name: Audit organization CodeQL coverage
# Runs even when the ruleset step above failed. Those two audits share a
# job but not a subject: the ruleset step exits 1 on owner-configured
# governance drift, and on 2026-09-06 it did exactly that ("exactly two
# approving reviews are not required", "last-push approval protection is
# disabled"), which silently took this CodeQL coverage detector down with
# it -- every run since 2026-09-04 failed there and never reached this
# step. This step builds its own repository list into its own temp file
# and the step above exports nothing to GITHUB_ENV or GITHUB_OUTPUT, so
# it has no data dependency to lose. The job still fails overall; what
# changes is that a coverage gap is reported instead of hidden behind an
# unrelated failure.
if: always()
env:
ORG_LOGIN: ContextualWisdomLab
ORG_WIDE_CREDENTIAL_AVAILABLE: ${{ secrets.PR_REVIEW_MERGE_TOKEN != '' || secrets.OPENCODE_APPROVE_TOKEN != '' }}
run: |
set -euo pipefail

if [ "$ORG_WIDE_CREDENTIAL_AVAILABLE" = "false" ]; then
echo "::error::CodeQL coverage audit requires an org-scoped credential (PR_REVIEW_MERGE_TOKEN or OPENCODE_APPROVE_TOKEN) to reliably enumerate private organization repositories; the repository-scoped github.token fallback cannot see them, which would silently narrow this audit to a subset of the organization."
exit 1
fi

repositories_json="$RUNNER_TEMP/codeql-coverage-organization-repositories.json"
coverage_json="$RUNNER_TEMP/codeql-coverage-repositories.json"

if ! gh api --paginate "orgs/${ORG_LOGIN}/repos?type=all&per_page=100" \
| jq -s 'add | map({name, archived}) | unique_by(.name) | sort_by(.name)' >"$repositories_json"; then
echo "::error::CodeQL coverage audit could not enumerate organization repositories for ${ORG_LOGIN}."
exit 1
fi

# ORG_WIDE_CREDENTIAL_AVAILABLE above only proves some org-scoped
# secret exists, not that the specific credential actually used
# (PR_REVIEW_MERGE_TOKEN when present) has complete repository
# visibility: docs/org-required-workflow-rollout.md's
# "Inaccessible-repository posture" entry already documents that
# PR_REVIEW_MERGE_TOKEN may be a fine-grained credential with an
# explicit repository allowlist rather than truly org-wide -- "a
# sibling repository the sweep credential structurally cannot
# read -- the OpenCode app is not installed there, or
# PR_REVIEW_MERGE_TOKEN does not cover it -- returns HTTP 403".
# That per-repo-read pattern doesn't apply here though: the
# enumeration call directly above IS the discovery mechanism, so a
# credential missing coverage does not 403 -- it just silently
# returns a smaller list, with excluded repositories never
# appearing at all and no per-repo error to catch. These three
# repositories are confirmed (2026-09-03, `gh api
# repos/ContextualWisdomLab/<name> --jq '{private,archived}'`) to
# be private and non-archived, so their absence from the
# enumerated list is real evidence of incomplete credential scope.
# If one is ever deleted, made public, or archived, swap in
# another confirmed private, non-archived repository here.
PRIVATE_REPOSITORY_COVERAGE_SENTINELS=(
"xtrmLLMBatchPython"
"linux-cluster-ops"
"gyeot"
)
missing_sentinels=()
for sentinel in "${PRIVATE_REPOSITORY_COVERAGE_SENTINELS[@]}"; do
if ! jq -e --arg name "$sentinel" 'any(.[]; .name == $name)' "$repositories_json" >/dev/null; then
missing_sentinels+=("$sentinel")
fi
done
if [ "${#missing_sentinels[@]}" -gt 0 ]; then
echo "::error::CodeQL coverage audit's organization repository enumeration is missing known-private sentinel repository(ies): ${missing_sentinels[*]}. This means the credential used for this step cannot see the full organization -- PR_REVIEW_MERGE_TOKEN may be a fine-grained credential scoped to a repository allowlist rather than org-wide (see docs/org-required-workflow-rollout.md, 'Inaccessible-repository posture'). Unlike a per-repository 403, an incomplete-coverage credential does not fail this enumeration call; it silently returns a smaller repository list, so this audit would otherwise pass while covering only a subset of the organization. Fix the credential's scope/allowlist rather than ignoring this failure."
exit 1
fi

printf '[]\n' >"$coverage_json"
while IFS=$'\t' read -r repository archived; do
default_setup_state=null
# `state` alone is not coverage: a repository can report
# "configured" with an empty `languages` list, which scans nothing
# and produces no analyses (measured 2026-09-07 on life-os, aFIPC
# and inkspan). Collect both fields so the audit can tell those
# apart from a setup that actually covers a language.
default_setup_languages=null
if [ "$archived" != "true" ]; then
default_setup_json="$RUNNER_TEMP/codeql-default-setup-${repository//[^A-Za-z0-9_.-]/_}.json"
if gh api "repos/${ORG_LOGIN}/${repository}/code-scanning/default-setup" \
>"$default_setup_json" 2>/dev/null; then
default_setup_state=$(jq '.state // null' "$default_setup_json")
default_setup_languages=$(jq '.languages // []' "$default_setup_json")
else
default_setup_state=null
default_setup_languages=null
fi
fi

latest_codeql_analysis=null
if [ "$archived" != "true" ]; then
analysis_json="$RUNNER_TEMP/codeql-analysis-${repository//[^A-Za-z0-9_.-]/_}.json"
if gh api "repos/${ORG_LOGIN}/${repository}/code-scanning/analyses?tool_name=CodeQL&per_page=1" \
--jq '.[0] | if . then {created_at, error} else null end' \
>"$analysis_json" 2>/dev/null; then
latest_codeql_analysis=$(cat "$analysis_json")
else
latest_codeql_analysis=null
fi
fi

echo "CODEQL_COVERAGE repository=${repository} archived=${archived} default_setup_state=${default_setup_state} default_setup_languages=${default_setup_languages} latest_codeql_analysis=${latest_codeql_analysis}"
jq --arg name "$repository" \
--argjson archived "$archived" \
--argjson default_setup_state "$default_setup_state" \
--argjson default_setup_languages "$default_setup_languages" \
--argjson latest_codeql_analysis "$latest_codeql_analysis" \
'. + [{name: $name, archived: $archived, default_setup_state: $default_setup_state, default_setup_languages: $default_setup_languages, latest_codeql_analysis: $latest_codeql_analysis}]' \
"$coverage_json" >"${coverage_json}.next"
mv "${coverage_json}.next" "$coverage_json"
done < <(jq -r '.[] | [.name, (.archived | tostring)] | @tsv' "$repositories_json")

- name: Exchange OpenCode app token for CodeQL setup writes
id: opencode_app_token
env:
OIDC_AUDIENCE: opencode-github-action
OPENCODE_API_BASE_URL: https://api.opencode.ai
run: |
set -euo pipefail
request_url="$ACTIONS_ID_TOKEN_REQUEST_URL"
separator='&'
[[ "$request_url" == *\?* ]] || separator='?'
oidc_token="$(curl -fsS --connect-timeout 5 --max-time 20 \
-H "Authorization: Bearer ${ACTIONS_ID_TOKEN_REQUEST_TOKEN}" \
"${request_url}${separator}audience=${OIDC_AUDIENCE}" | jq -r '.value // empty')"
[ -n "$oidc_token" ] || { echo "::error::OpenCode OIDC token was empty."; exit 1; }
app_token="$(curl -fsS --connect-timeout 5 --max-time 20 -X POST \
-H "Authorization: Bearer ${oidc_token}" \
"${OPENCODE_API_BASE_URL}/exchange_github_app_token" | jq -r '.token // empty')"
[ -n "$app_token" ] || { echo "::error::OpenCode installation token was empty."; exit 1; }
echo "::add-mask::$app_token"
{
echo "token<<OPENCODE_TOKEN"
echo "$app_token"
echo "OPENCODE_TOKEN"
} >> "$GITHUB_OUTPUT"

- name: Create missing CodeQL setup pull requests
env:
OPENCODE_APP_TOKEN: ${{ steps.opencode_app_token.outputs.token }}
run: |
set -euo pipefail
python3 scripts/ci/bootstrap_codeql_pull_requests.py "$RUNNER_TEMP/codeql-coverage-repositories.json"
python3 scripts/ci/audit_org_codeql_coverage.py "$RUNNER_TEMP/codeql-coverage-repositories.json"
88 changes: 0 additions & 88 deletions .github/workflows/close-empty-pr.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/cloudflare-dns.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ on:
# the older validation run. Trusted push/dispatch reconciliation keeps its
# non-cancelling behavior so an in-flight write is never interrupted midway.
concurrency:
group: cloudflare-dns-${{ github.event.pull_request.number || github.ref }}
group: cloudflare-dns-${{ github.repository }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

permissions:
Expand Down
Loading
Loading