Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1293 commits
Select commit Hold shift + click to select a range
4f75f77
chore: preserve SBOM inventory publication lineage
Oct 1, 2026
24986b0
chore: refresh org SBOM inventory
Oct 2, 2026
1da7377
chore: preserve SBOM inventory publication lineage
Oct 2, 2026
930586d
fix(ci): exercise GHAS identity and pagination contracts
seonghobae Oct 2, 2026
32dd90c
test(ci): scope exact-artifact compiler checks to owned steps
seonghobae Oct 2, 2026
084225a
chore: refresh org SBOM inventory
Oct 2, 2026
4f377d7
chore: preserve SBOM inventory publication lineage
Oct 2, 2026
d912b71
chore: refresh org SBOM inventory
Oct 2, 2026
e6ddfc2
chore: preserve SBOM inventory publication lineage
Oct 2, 2026
1cda48b
fix(ci): integrate reviewed security and GHAS prerequisite repairs
seonghobae Oct 2, 2026
3aad65b
fix(tests): collect release fallback contracts on Python 3.10
seonghobae Oct 2, 2026
d6ba56d
ci: stage isolated self-hosted routing for all workflow jobs
seonghobae Oct 3, 2026
cd49a60
ci: bind isolated runners to dedicated group
seonghobae Oct 3, 2026
1b9c710
Merge current main into dependency review owner
seonghobae Oct 3, 2026
fe9d193
test(security): reproduce incomplete 200 compare
seonghobae Oct 3, 2026
2290272
fix(security): require completed dependency compare
seonghobae Oct 3, 2026
f921189
test(ci): reproduce invalid R runner format template
seonghobae Oct 3, 2026
7fc1e2e
fix(ci): escape R runner format braces
seonghobae Oct 3, 2026
cd2c3f9
docs(ci): record R runner format repair
seonghobae Oct 3, 2026
650bc6e
merge(security): preserve dependency-review fail-closed owner
seonghobae Oct 3, 2026
665321c
test(docs): reject unpublished merge evidence
seonghobae Oct 3, 2026
f0f7ed9
docs(evidence): bind published dependency merge
seonghobae Oct 3, 2026
ab0c865
fix(ci): serialize R runner matrix labels
seonghobae Oct 3, 2026
13d536c
fix(ci): bind Strix scope and current-head review evidence
seonghobae Oct 4, 2026
1b85b11
test(ci): cover Strix report container rejection and CLI exits
seonghobae Oct 4, 2026
6ae0dcf
test(ci): retain modality evidence normalization coverage
seonghobae Oct 4, 2026
3b35d3d
fix(ci): publish reviewed typed runner selectors and isolation oracle
seonghobae Oct 4, 2026
9e482e1
[verified] ci: centralize law-agent quality on isolated self-hosted r…
seonghobae Oct 5, 2026
67bf8de
[verified] test: remove Hermes-home dependency from central law CI fi…
seonghobae Oct 5, 2026
9a1aa12
ci: run billing-locked central schedules on existing self-hosted runners
seonghobae Oct 6, 2026
d165b4e
Merge pull request #2586 from ContextualWisdomLab/infra/hosted-schedu…
seonghobae Oct 6, 2026
2161ef0
ci: attach trusted schedules to the MCP runner group
seonghobae Oct 6, 2026
7554587
Merge pull request #2590 from ContextualWisdomLab/infra/mcp-expressio…
seonghobae Oct 6, 2026
32f2e16
fix(ci): bound and close HTTP error diagnostics in CodeQL identity an…
seonghobae Oct 6, 2026
b8c8c98
chore: refresh org SBOM inventory
Oct 6, 2026
0255a05
chore: preserve SBOM inventory publication lineage
Oct 6, 2026
544e452
chore: refresh org SBOM inventory
Oct 6, 2026
81c2edb
chore: preserve SBOM inventory publication lineage
Oct 6, 2026
dd561bc
chore: refresh org SBOM inventory
Oct 7, 2026
92a7700
chore: preserve SBOM inventory publication lineage
Oct 7, 2026
cc42969
test(security): capture runner cache and artifact quota failures
seonghobae Oct 7, 2026
26f993c
fix(security): isolate scanner setup from runner cache
seonghobae Oct 7, 2026
98beb17
docs(security): record scanner runner isolation evidence
seonghobae Oct 7, 2026
62c051b
fix(docs): restore complete product gap baseline
seonghobae Oct 7, 2026
4bd80e0
chore: refresh org SBOM inventory
Oct 7, 2026
00ad5e3
chore: preserve SBOM inventory publication lineage
Oct 7, 2026
d8aeb75
test(strix): reject colon-suffixed report identities
seonghobae Oct 7, 2026
983e31f
fix(strix): bind numeric report line references only
seonghobae Oct 7, 2026
d1cd946
Merge protected main into PR 2574 repair
seonghobae Oct 7, 2026
822a968
docs: register Strix report identity gap
seonghobae Oct 7, 2026
d858708
chore: refresh org SBOM inventory
Oct 7, 2026
01937c8
chore: preserve SBOM inventory publication lineage
Oct 7, 2026
74aa562
chore: refresh org SBOM inventory
Oct 7, 2026
be09ff2
chore: preserve SBOM inventory publication lineage
Oct 7, 2026
4a258a1
chore: refresh org SBOM inventory
Oct 8, 2026
2a01610
chore: preserve SBOM inventory publication lineage
Oct 8, 2026
d694e85
fix(ci): admit only supported isolated Linux R matrix legs
seonghobae Oct 8, 2026
6e924f3
chore(ci): stop hosted Dependabot version-update scheduling
seonghobae Oct 8, 2026
27a11dd
chore: refresh org SBOM inventory
Oct 8, 2026
94c6b4a
chore: preserve SBOM inventory publication lineage
Oct 8, 2026
91f0ccc
ci(qsr): add central self-hosted runtime workflow
seonghobae Oct 8, 2026
f007e73
chore: refresh org SBOM inventory
Oct 8, 2026
23e7ed6
chore: preserve SBOM inventory publication lineage
Oct 8, 2026
fc65349
chore: refresh org SBOM inventory
Oct 8, 2026
3197434
chore: preserve SBOM inventory publication lineage
Oct 8, 2026
d5432b2
chore: refresh org SBOM inventory
Oct 9, 2026
f97fbba
chore: preserve SBOM inventory publication lineage
Oct 9, 2026
9d03f53
ci(pg-erd): add reviewed isolated central quality workflow
seonghobae Oct 9, 2026
539a517
ci(fast-mlsirm): centralize Linux workflows on isolated self-hosted r…
seonghobae Oct 9, 2026
7173890
test(ci): preserve fast-mlsirm gates and isolated runner contracts
seonghobae Oct 9, 2026
b978218
ci(codeql): coalesce reusable scans before runner admission
seonghobae Oct 9, 2026
a206770
fix(ci): reject mixed unsupported isolated platforms
seonghobae Oct 9, 2026
6478054
ci(noema): use LiteLLM auto for public reviews
seonghobae Oct 9, 2026
807011a
ci(opencode): use LiteLLM auto for public reviews
seonghobae Oct 9, 2026
deb86d0
ci: centralize release control and remove fast-mlsirm hosted scanner …
seonghobae Oct 9, 2026
e8d7015
ci(codeql): keep migrated branch revisions off hosted runners
seonghobae Oct 9, 2026
5bc93fa
ci: route fast-mlsirm reusable workflows to online self-hosted linux
seonghobae Oct 9, 2026
f47dbe2
Revert "ci: route fast-mlsirm reusable workflows to online self-hoste…
seonghobae Oct 9, 2026
740a206
fix(ci): preserve free review boundary and runner contracts
seonghobae Oct 9, 2026
73db3e7
fix(release): fail closed while publication is unavailable
seonghobae Oct 9, 2026
7558db6
fix: preserve law CI scratch on inconclusive PostgreSQL cleanup
seonghobae Oct 9, 2026
8a5e912
fix(release): keep provider credentials behind gateway
seonghobae Oct 9, 2026
ef082ea
merge(ci): stack fast-mlsirm migration on isolated runner owner
seonghobae Oct 9, 2026
8ba032a
test(codeql): keep current-time fixtures fresh
seonghobae Oct 9, 2026
b8194df
merge: stack pg-erd quality after runner-policy owner
seonghobae Oct 9, 2026
9c209b3
merge: include current-time CodeQL fixture prerequisite
seonghobae Oct 9, 2026
83cb10f
test(law-ci): reject symlinked cluster cleanup boundaries
seonghobae Oct 9, 2026
70e701b
fix(law-ci): retain symlinked cluster evidence
seonghobae Oct 9, 2026
fcb997e
Merge protected main into law-agent central CI
seonghobae Oct 9, 2026
8d4a2eb
fix(ci): admit law runner group with exact label
seonghobae Oct 9, 2026
431c575
merge: stack law-agent quality after runner-policy and fixture owners
seonghobae Oct 9, 2026
0975955
merge(ci): refresh fast-mlsirm stack on runner owner
seonghobae Oct 9, 2026
56c1435
merge: consume exact law runner-policy owner repair
seonghobae Oct 9, 2026
036f597
chore: refresh org SBOM inventory
Oct 9, 2026
bcb2070
chore: preserve SBOM inventory publication lineage
Oct 9, 2026
5886df8
fix(ci): bind law migrations to source and installed checksums
seonghobae Oct 9, 2026
8dff053
fix(ci): reject linked law migration ancestors before import
seonghobae Oct 9, 2026
ef65b2f
fix(ci): complete cost-fenced auto review routing and regression cont…
seonghobae Oct 9, 2026
58a35b6
Merge remote-tracking branch 'origin/ci/sdp-all-self-hosted-20261003'…
seonghobae Oct 9, 2026
9996a21
ci: K-CSAP 중앙 self-hosted 품질 callee 추가
seonghobae Oct 9, 2026
6bd6fad
docs: update K-CSAP central quality PR status
seonghobae Oct 9, 2026
e3e3e3f
chore: refresh org SBOM inventory
Oct 9, 2026
f85f3b5
chore: preserve SBOM inventory publication lineage
Oct 9, 2026
7e1836e
fix(ci): isolate PR coverage and reconcile trusted main runner routes
seonghobae Oct 9, 2026
401afce
chore: refresh org SBOM inventory
Oct 9, 2026
bd4f03c
chore: preserve SBOM inventory publication lineage
Oct 9, 2026
1473dea
chore: refresh org SBOM inventory
Oct 10, 2026
1b3eea4
chore: preserve SBOM inventory publication lineage
Oct 10, 2026
ede72cb
chore: refresh org SBOM inventory
Oct 10, 2026
9950d75
chore: preserve SBOM inventory publication lineage
Oct 10, 2026
2e48318
merge(ci): preserve current auto routing and runner owner changes
seonghobae Oct 10, 2026
06053ba
fix(review): keep diagnostic artifact quota separate from Noema verdict
seonghobae Oct 10, 2026
ef0c9d4
ci: enforce k-csap Noema App reviewer identity
seonghobae Oct 10, 2026
77fb898
docs: update authorized startup-failure retirement goal
seonghobae Oct 10, 2026
d2493e0
chore: refresh org SBOM inventory
Oct 10, 2026
691b57f
chore: preserve SBOM inventory publication lineage
Oct 10, 2026
aacc387
fix(ci): bind K-CSAP admission and private uv tooling
seonghobae Oct 10, 2026
c0d6235
docs: set K-CSAP conditional merge goal and execution gates
seonghobae Oct 10, 2026
5c1196a
fix(noema): bind sidecar evidence to current producer
seonghobae Oct 10, 2026
7435189
fix(noema): bind sidecar evidence to current producer (#2622)
seonghobae Oct 10, 2026
4f319ec
Merge runner-owner Noema review hardening
seonghobae Oct 10, 2026
7dad40e
Fix fast-mlsirm CodeQL diagnostic quota handling
seonghobae Oct 10, 2026
5e99363
Publish fast-mlsirm CodeQL SARIF without artifacts
seonghobae Oct 10, 2026
b6c1b42
chore: refresh org SBOM inventory
Oct 10, 2026
d6c1d62
chore: preserve SBOM inventory publication lineage
Oct 10, 2026
6723a2b
Allow owner-authorized public auto review routing
seonghobae Oct 10, 2026
23562c4
chore: refresh org SBOM inventory
Oct 10, 2026
bb74afb
chore: preserve SBOM inventory publication lineage
Oct 10, 2026
049d0c6
chore: refresh org SBOM inventory
Oct 11, 2026
07309e0
chore: preserve SBOM inventory publication lineage
Oct 11, 2026
1943082
chore: refresh org SBOM inventory
Oct 11, 2026
a5c4b38
chore: preserve SBOM inventory publication lineage
Oct 11, 2026
b78007b
fix(ci): reconcile auto review and fail closed on dismissed receipts
seonghobae Oct 11, 2026
ad10996
fix(ci): create private K-CSAP directories and separate review gates
seonghobae Oct 11, 2026
f102fdc
chore: refresh org SBOM inventory
Oct 11, 2026
8bc54ae
chore: preserve SBOM inventory publication lineage
Oct 11, 2026
afa7e01
chore: refresh org SBOM inventory
Oct 11, 2026
3218f5d
chore: preserve SBOM inventory publication lineage
Oct 11, 2026
cd5c629
chore: refresh org SBOM inventory
Oct 12, 2026
de73477
chore: preserve SBOM inventory publication lineage
Oct 12, 2026
0dbffa4
fix(ci): validate raw QSR event heads before every checkout
seonghobae Oct 12, 2026
32eced9
fix(ci): publish reviewed production review caller and lint successor
seonghobae Oct 12, 2026
aca3701
chore: refresh org SBOM inventory
Oct 12, 2026
5b1b0f1
chore: preserve SBOM inventory publication lineage
Oct 12, 2026
41c7ab5
fix(ci): enforce product-owned QSR caller contract tests
seonghobae Oct 12, 2026
a55eb2a
ci(law): reconcile reviewed law lane with current self-hosted base
seonghobae Oct 12, 2026
362fed6
fix(ci): bind existing App issuer and final source quality controls
seonghobae Oct 12, 2026
f31d7e6
fix(law): preserve spaced PostgreSQL socket paths
seonghobae Oct 12, 2026
8e174d7
chore: refresh org SBOM inventory
Oct 12, 2026
ed96759
chore: preserve SBOM inventory publication lineage
Oct 12, 2026
728db8a
Merge pull request #2565 from ContextualWisdomLab/ci/sdp-all-self-hos…
seonghobae Oct 12, 2026
75bdd69
Merge pull request #2581 from ContextualWisdomLab/feat/law-agent-cent…
seonghobae Oct 12, 2026
1fd6f93
fix(ci): register K-CSAP canonical actionlint label
seonghobae Oct 12, 2026
3c80cc6
test(ci): register reviewed k-csap and procurement source targets
seonghobae Oct 12, 2026
d728a8a
Merge pull request #2624 from ContextualWisdomLab/fix/review-targets-…
seonghobae Oct 12, 2026
491a914
chore: refresh org SBOM inventory
Oct 13, 2026
8276e3a
chore: preserve SBOM inventory publication lineage
Oct 13, 2026
6511762
Merge pull request #2555 from ContextualWisdomLab/fix/sdp-ghas-analys…
seonghobae Oct 13, 2026
f60a81b
Merge origin/main 65117620 (PR #2555) into PR #2574
seonghobae Oct 13, 2026
bf87ed9
test(ci): drop merge leftovers and keep main's rerun-message assertion
seonghobae Oct 13, 2026
9788562
fix(ci): reject period-then-suffix lookalikes in Strix report scope
seonghobae Oct 13, 2026
b9e9803
test: keep CodeQL current-time and sandbox HOME fixtures valid
seonghobae Oct 13, 2026
86f20b3
merge owner CodeQL base into central self-hosted routing
seonghobae Oct 13, 2026
f160d0d
Merge pull request #2607 from ContextualWisdomLab/seonghobae/fmls-cen…
seonghobae Oct 13, 2026
da631c1
merge: sync K-CSAP central quality with protected main
seonghobae Oct 13, 2026
20e6cf9
merge: sync QSR central CI with current main
seonghobae Oct 13, 2026
b7e2687
Merge origin/main f160d0d2 (PR #2607) into PR #2574
seonghobae Oct 13, 2026
9b85f32
fix(noema): fail closed on non-boolean repository visibility fallback
seonghobae Oct 13, 2026
d239e2e
require exact fast-mlsirm GPU JUnit evidence
seonghobae Oct 13, 2026
a422fa2
Merge pull request #2626 from ContextualWisdomLab/seonghobae/fmls-gpu…
seonghobae Oct 13, 2026
52976e9
fix(ci): address K-CSAP quality review findings
seonghobae Oct 13, 2026
6a8d347
merge: sync K-CSAP central quality with protected main
seonghobae Oct 13, 2026
a1bbd6d
Merge remote-tracking branch 'origin/main' into fix/noema-typed-visib…
seonghobae Oct 13, 2026
d0bac43
Merge origin/main a422fa25 (PR #2626) into PR #2574
seonghobae Oct 13, 2026
07bfd25
fix(ci): admit QSR hostile runner group in central runner policy
seonghobae Oct 13, 2026
2ec9c34
Merge pull request #2615 from ContextualWisdomLab/feat/kcsap-central-…
seonghobae Oct 13, 2026
5fcc991
fix(policy): remove duplicate modality normalizer and date baseline d…
seonghobae Oct 13, 2026
0a8573d
Merge pull request #2627 from ContextualWisdomLab/fix/noema-typed-vis…
seonghobae Oct 13, 2026
75abb26
Merge origin/main 0a8573dd into PR #2574\n\nKeep the branch current w…
seonghobae Oct 13, 2026
230db49
Keep fast-mlsirm release license selection in central workflow
seonghobae Oct 13, 2026
ae4d929
fix(security): patch Noema reader transitive vulnerabilities
seonghobae Oct 13, 2026
376727e
Merge pull request #2574 from ContextualWisdomLab/fix/central-b5f-res…
seonghobae Oct 13, 2026
b21c936
Fail early when release source lacks license helpers
seonghobae Oct 13, 2026
3d4b48d
Merge remote-tracking branch 'origin/main' into fix/noema-reader-vuln…
seonghobae Oct 13, 2026
2777b8a
chore: refresh org SBOM inventory
Oct 13, 2026
58e91c9
chore: preserve SBOM inventory publication lineage
Oct 13, 2026
ec25fcd
ci: restore isolated runner workspace access after ClusterFuzzLite
seonghobae Oct 13, 2026
930078a
Merge pull request #2630 from ContextualWisdomLab/seonghobae/cflite-w…
seonghobae Oct 13, 2026
b352899
fix(noema): restore provisioner-free two-phase review path
seonghobae Oct 13, 2026
b1674f8
test(noema): align contracts with normal two-phase review
seonghobae Oct 13, 2026
635c0f3
Merge pull request #2631 from ContextualWisdomLab/fix/noema-normal-re…
seonghobae Oct 13, 2026
ce207e9
record acceptance of public auto review routing
seonghobae Oct 13, 2026
3e0709c
assert Noema App write scope follows read-only review preparation
seonghobae Oct 13, 2026
fcebff6
enforce Noema read-before-write token ordering
seonghobae Oct 13, 2026
4e32b99
Merge pull request #2632 from ContextualWisdomLab/seonghobae/accept-p…
seonghobae Oct 13, 2026
7ad86ae
ci: reconcile pg-erd central quality with current main
seonghobae Oct 13, 2026
9ad7654
Merge pull request #2606 from ContextualWisdomLab/ci/pg-erd-central-q…
seonghobae Oct 13, 2026
58d12a9
fix(ci): keep Noema approvals evidence-bound and review follow-up rea…
seonghobae Oct 13, 2026
2739317
merge(ci): reconcile QSR with main and reject missing LSM execution
seonghobae Oct 13, 2026
0161bd2
ci(traveling): add central isolated PoC quality workflow
seonghobae Oct 13, 2026
6d864c7
fix(ci): provision pinned job-local gh before Strix and CodeQL calls
seonghobae Oct 13, 2026
ed99420
Merge commit '58d12a9f1b46d611f75cfcf3e6c5a3fe19a55f96' into fix/cent…
seonghobae Oct 13, 2026
29c14c6
ci(psychometrics): centralize runtime validation on isolated runners
seonghobae Oct 13, 2026
9dab3c2
ci(tepp): centralize reusable foundation and documentation workloads …
seonghobae Oct 13, 2026
e3a2d4a
fix(traveling-ci): inspect committed whitespace and separate caller e…
seonghobae Oct 13, 2026
c70f08f
merge: compose reviewed Traveling supplier with current central main
seonghobae Oct 13, 2026
f52a0d7
Merge pull request #2637 from ContextualWisdomLab/ci/traveling-centra…
seonghobae Oct 13, 2026
029d446
chore: refresh org SBOM inventory
Oct 13, 2026
01b9dbd
chore: preserve SBOM inventory publication lineage
Oct 13, 2026
af81ef4
ci(tepp): bootstrap supplier Rust and Python tools (#2641)
seonghobae Oct 13, 2026
2757ca4
merge(ci): reconcile QSR workflow with current central main
seonghobae Oct 13, 2026
3e21f09
[verified] fix(ci): 공개 OpenCode 소스 전달의 artifact 의존 제거
seonghobae Oct 13, 2026
6597e37
Merge pull request #2601 from ContextualWisdomLab/feat/qsr-central-se…
seonghobae Oct 13, 2026
3136c94
fix(tepp): isolate Rust tool state per job and verify plugin consumer…
seonghobae Oct 13, 2026
36ef8c7
Merge pull request #2643 from ContextualWisdomLab/fix/opencode-public…
seonghobae Oct 13, 2026
1d05e2e
Merge commit '36ef8c76a52168f889dd6c2e2e5b6426492d3e5d' into fix/cent…
seonghobae Oct 13, 2026
4ec6098
fix(ci): preserve docs-only admission and Strix bootstrap policy
seonghobae Oct 13, 2026
26446ef
fix(ci): clean up only the original job-local gh directory
seonghobae Oct 13, 2026
d3d6a44
fix(ci): provision pinned gh before self-hosted first use (#2645)
seonghobae Oct 13, 2026
50344a2
chore: refresh org SBOM inventory
Oct 13, 2026
baf49bc
chore: preserve SBOM inventory publication lineage
Oct 13, 2026
e249236
Merge pull request #2629 from ContextualWisdomLab/fix/noema-reader-vu…
seonghobae Oct 13, 2026
0d8d6d9
verification-only merge tree for central PR 2628
Oct 13, 2026
0098f5a
ci(fast-mlsirm): pin license gate to merged control plane
seonghobae Oct 13, 2026
acb8b34
Merge pull request #2646 from ContextualWisdomLab/codex/fmls-license-…
seonghobae Oct 13, 2026
4c5817e
chore: refresh org SBOM inventory
Oct 14, 2026
1b66af9
chore: preserve SBOM inventory publication lineage
Oct 14, 2026
274ae2e
fix(opencode): bound coverage CPU and private artifact destination
seonghobae Oct 14, 2026
82e4f3c
fix(opencode): recheck receiving visibility before private upload
seonghobae Oct 14, 2026
6a03ae9
Merge pull request #2652 from ContextualWisdomLab/fix/opencode-review…
seonghobae Oct 14, 2026
7ff6cbf
chore: refresh org SBOM inventory
Oct 14, 2026
0a17b2d
chore: preserve SBOM inventory publication lineage
Oct 14, 2026
f282bb6
chore: refresh org SBOM inventory
Oct 14, 2026
e57fea0
chore: preserve SBOM inventory publication lineage
Oct 14, 2026
785bf95
chore: refresh org SBOM inventory
Oct 14, 2026
3280ddb
chore: preserve SBOM inventory publication lineage
Oct 14, 2026
d013329
chore: refresh org SBOM inventory
Oct 14, 2026
6f5c1b0
chore: preserve SBOM inventory publication lineage
Oct 14, 2026
f9c3954
chore: refresh org SBOM inventory
Oct 14, 2026
a5cf4b2
chore: preserve SBOM inventory publication lineage
Oct 14, 2026
6a5eeeb
chore: refresh org SBOM inventory
Oct 15, 2026
2653940
chore: preserve SBOM inventory publication lineage
Oct 15, 2026
fbff0a4
chore: refresh org SBOM inventory
Oct 15, 2026
800f213
chore: preserve SBOM inventory publication lineage
Oct 15, 2026
d753ff2
chore: refresh org SBOM inventory
Oct 15, 2026
5513a01
chore: preserve SBOM inventory publication lineage
Oct 15, 2026
7e5aef7
chore: refresh org SBOM inventory
Oct 15, 2026
d80b45d
chore: preserve SBOM inventory publication lineage
Oct 15, 2026
e77f339
chore: refresh org SBOM inventory
Oct 16, 2026
6393057
chore: preserve SBOM inventory publication lineage
Oct 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 5 additions & 3 deletions .Jules/palette.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
## 2024-05-20 - Repository without UI Codebase
**Learning:** This repository is a GitHub organization profile consisting entirely of Markdown documentation and static assets, and does not contain an active UI or frontend application codebase.
**Action:** Since there is no UI, no UX enhancements can be applied. Aborting UX enhancements and PR creation as per instructions.
## 2026-09-29 - Product UI boundary confirmed

**Learning:** This repository owns the ContextualWisdomLab GitHub Actions control plane, including production CI scripts, tests, workflows, and documentation. It does not own an interactive product UI or frontend application.

**Action:** Do not invent product UI work in this repository. Improve the control-plane artifacts here and route reusable product UI work to its canonical product owner.
8 changes: 8 additions & 0 deletions .github/actionlint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Source validation only; labels do not attest runtime isolation.
self-hosted-runner:
labels:
- cwlab-ci-isolated
- cwlab-control
- cwl-hostile-workload
- selinux
- k-csap-isolated
76 changes: 66 additions & 10 deletions .github/actions/noema-review/two_phase.py
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ def prepare_verdict(repo: str, number: int, expected_head: str, path: Path) -> i
return 0
expected_base = _canonical_base(pull_request)
actor = _reviewer_actor()
author = gate.require_distinct_pr_author(pull_request, actor)
if pull_request.get("isDraft"):
print("PR is draft; Noema verdict preparation skipped.")
return 0
Expand All @@ -167,16 +168,20 @@ def prepare_verdict(repo: str, number: int, expected_head: str, path: Path) -> i
changed_files = gate.fetch_changed_files(repo, number)
changed_paths = tuple(file_path for file_path, _status in changed_files)
review_context = gate.build_review_context(repo, number, pull_request, changed_files)
verdict = gate.call_llm(
repo,
number,
pull_request,
diff,
truncated,
expected,
review_context,
changed_paths,
)
try:
verdict = gate.call_llm(
repo,
number,
pull_request,
diff,
truncated,
expected,
review_context,
changed_paths,
)
except gate.NoemaTransportError as exc:
_emit_transport_capacity_outputs(exc, expected_head=expected)
raise

_write_envelope(
path,
Expand All @@ -186,6 +191,8 @@ def prepare_verdict(repo: str, number: int, expected_head: str, path: Path) -> i
"pull_request_number": number,
"expected_head": expected,
"expected_base": expected_base,
"reviewer_actor": actor,
"pull_request_author": author,
"verdict": verdict,
},
)
Expand All @@ -196,6 +203,45 @@ def prepare_verdict(repo: str, number: int, expected_head: str, path: Path) -> i
return 0


def _emit_transport_capacity_outputs(
exc: gate.NoemaTransportError,
*,
expected_head: str,
) -> None:
"""Publish typed capacity evidence for the workflow's bounded re-dispatch step."""
retry_attempt = gate.current_transport_retry_attempt()
delay = gate.transport_redispatch_delay_seconds(
transport_retry_attempt=retry_attempt,
head_sha=expected_head,
retry_after_seconds=exc.retry_after_seconds,
)
eligible = bool(exc.capacity_unavailable and delay is not None)
outputs = {
"transport_capacity_unavailable": "true" if exc.capacity_unavailable else "false",
"transport_retry_eligible": "true" if eligible else "false",
"prepared": "false",
}
if type(exc.http_status) is int:
outputs["transport_http_status"] = str(exc.http_status)
if type(exc.provider_attempt_count) is int:
outputs["provider_attempt_count"] = str(exc.provider_attempt_count)
if delay is not None:
outputs["transport_retry_delay_seconds"] = str(delay)
outputs["transport_retry_next_attempt"] = str(retry_attempt + 1)
gate.append_github_output(outputs)
if eligible:
print(
"::notice::Noema provider capacity unavailable after gateway failover; "
f"bounded continuation re-dispatch is eligible in {delay}s "
f"(attempt {retry_attempt + 1}/{gate.MAX_TRANSPORT_REDISPATCH_ATTEMPTS})."
)
elif exc.capacity_unavailable:
print(
"::error::Noema provider capacity unavailable after gateway failover; "
"automatic re-dispatch budget is exhausted. Review remains required."
)


def publish_verdict(repo: str, number: int, expected_head: str, path: Path) -> int:
"""Publish a prepared verdict only with fresh exact-head/base reviewer authority."""
expected = _canonical_head(expected_head)
Expand All @@ -207,6 +253,8 @@ def publish_verdict(repo: str, number: int, expected_head: str, path: Path) -> i
"pull_request_number",
"expected_head",
"expected_base",
"reviewer_actor",
"pull_request_author",
"verdict",
}
if set(payload) != required_keys:
Expand Down Expand Up @@ -234,6 +282,14 @@ def publish_verdict(repo: str, number: int, expected_head: str, path: Path) -> i
print("Pull request base advanced after model review; stale prepared verdict was not published.")
return 0
actor = _reviewer_actor(allow_refreshed_app=True)
author = gate.require_distinct_pr_author(current_pull_request, actor)
if payload["pull_request_author"] != author:
raise RuntimeError("Noema pull request author changed after verdict preparation")
reviewer_actor = payload["reviewer_actor"]
if not isinstance(reviewer_actor, str) or not reviewer_actor.strip():
raise RuntimeError("Noema prepared reviewer actor is invalid")
if reviewer_actor.strip().casefold() != actor.strip().casefold():
raise RuntimeError("Noema refreshed reviewer actor differs from verdict preparation")
if current_pull_request.get("isDraft"):
print("PR became draft after model review; prepared verdict was not published.")
return 0
Expand Down
11 changes: 9 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 All @@ -23,9 +23,16 @@ runs:
ref: ${{ github.action_ref }}
path: ${{ runner.temp }}/cwl-control-plane
persist-credentials: false
- name: Set up lock-compatible sidecar Python
id: sidecar_python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: "3.12"
update-environment: false
- name: Provision contextual-orchestrator orchestrator/free
shell: bash --noprofile --norc -e -o pipefail {0}
env:
SIDECAR_PYTHON: ${{ steps.sidecar_python.outputs.python-path }}
CONTEXTUAL_ORCHESTRATOR_REQUIRE_ZDR: ${{ inputs.require_zdr }}
ORCHESTRATOR_CATALOG_LIMIT: ${{ inputs.catalog_limit }}
ORCHESTRATOR_CATALOG_ACCOUNT_CAP: ${{ inputs.catalog_account_cap }}
Expand Down
15 changes: 0 additions & 15 deletions .github/dependabot.yml

This file was deleted.

8 changes: 8 additions & 0 deletions .github/runner-images/law-ai-agent/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM ghcr.io/actions/actions-runner@sha256:e5496277be5d09bc968b3d64911b74e219ac4a3f2edce956a3ecf9271bea1ef4
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends postgresql-16 postgresql-client-16 libpq-dev python3-venv ca-certificates git curl \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
USER runner
WORKDIR /home/runner
57 changes: 57 additions & 0 deletions .github/workflows/actions-queue-health.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: GitHub Actions queue health

on:
schedule:
- cron: "7 * * * *"

concurrency:
group: github-actions-queue-health
cancel-in-progress: false

permissions:
contents: read
actions: read

jobs:
collect:
name: Collect exact-head queue evidence
runs-on:
group: ${{ (github.repository == 'ContextualWisdomLab/.github' && github.ref == 'refs/heads/main' && endsWith(github.workflow_ref, '@refs/heads/main') && fromJSON('{"group":"CWL MCP remediation","labels":["self-hosted","linux","x64"]}') || fromJSON('{"group":"CWL CI isolated","labels":["self-hosted","linux","x64","cwlab-ci-isolated"]}')).group }}
labels: ${{ (github.repository == 'ContextualWisdomLab/.github' && github.ref == 'refs/heads/main' && endsWith(github.workflow_ref, '@refs/heads/main') && fromJSON('{"group":"CWL MCP remediation","labels":["self-hosted","linux","x64"]}') || fromJSON('{"group":"CWL CI isolated","labels":["self-hosted","linux","x64","cwlab-ci-isolated"]}')).labels }}
timeout-minutes: 30
permissions:
contents: read
actions: read
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@b09bb98e06d4d774595224525879c09bc6e98c40 # v2.20.1
with:
egress-policy: audit

- name: Checkout trusted queue-health source
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false

- name: Collect read-only repository and runner evidence
env:
GH_TOKEN: ${{ secrets.PR_REVIEW_MERGE_TOKEN || secrets.OPENCODE_APPROVE_TOKEN }}
run: |
if [ -z "${GH_TOKEN:-}" ]; then
echo "::error::PR_REVIEW_MERGE_TOKEN or OPENCODE_APPROVE_TOKEN is required for cross-repository queue reads."
exit 1
fi
echo "::add-mask::$GH_TOKEN"
python3 scripts/ci/actions_queue_health.py \
--allowlist config/actions_queue_health_repositories.json \
--output-json "$RUNNER_TEMP/actions-queue-health.json" \
--output-html "$RUNNER_TEMP/actions-queue-health.html"

- name: Upload queue-health evidence
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: github-actions-queue-health-${{ github.run_id }}
path: |
${{ runner.temp }}/actions-queue-health.json
${{ runner.temp }}/actions-queue-health.html
if-no-files-found: error
21 changes: 17 additions & 4 deletions .github/workflows/agent-mention-noema-dispatch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,29 @@ on:
repository_dispatch:
types: [agent-mention-noema]

concurrency:
# 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

jobs:
validate-and-forward:
if: github.repository == 'ContextualWisdomLab/.github'
concurrency:
group: agent-mention-noema-${{ github.event.client_payload.target_repository }}-${{ github.event.client_payload.pr_number || github.run_id }}
cancel-in-progress: true
runs-on: ubuntu-24.04
runs-on:
group: ${{ (github.repository == 'ContextualWisdomLab/.github' && endsWith(github.workflow_ref, '@refs/heads/main') && fromJSON('{"group":"CWL MCP remediation","labels":["self-hosted","linux","x64"]}') || fromJSON('{"group":"CWL CI isolated","labels":["self-hosted","linux","x64","cwlab-ci-isolated"]}')).group }}
labels: ${{ (github.repository == 'ContextualWisdomLab/.github' && endsWith(github.workflow_ref, '@refs/heads/main') && fromJSON('{"group":"CWL MCP remediation","labels":["self-hosted","linux","x64"]}') || fromJSON('{"group":"CWL CI isolated","labels":["self-hosted","linux","x64","cwlab-ci-isolated"]}')).labels }}
timeout-minutes: 5
permissions:
actions: read
Expand Down
21 changes: 17 additions & 4 deletions .github/workflows/agent-mention-opencode-dispatch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,29 @@ on:
repository_dispatch:
types: [agent-mention-opencode]

concurrency:
# 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

jobs:
validate-and-forward:
if: github.repository == 'ContextualWisdomLab/.github'
concurrency:
group: agent-mention-opencode-${{ github.event.client_payload.target_repository }}-${{ github.event.client_payload.pr_number || github.run_id }}
cancel-in-progress: true
runs-on: ubuntu-24.04
runs-on:
group: ${{ (github.repository == 'ContextualWisdomLab/.github' && endsWith(github.workflow_ref, '@refs/heads/main') && fromJSON('{"group":"CWL MCP remediation","labels":["self-hosted","linux","x64"]}') || fromJSON('{"group":"CWL CI isolated","labels":["self-hosted","linux","x64","cwlab-ci-isolated"]}')).group }}
labels: ${{ (github.repository == 'ContextualWisdomLab/.github' && endsWith(github.workflow_ref, '@refs/heads/main') && fromJSON('{"group":"CWL MCP remediation","labels":["self-hosted","linux","x64"]}') || fromJSON('{"group":"CWL CI isolated","labels":["self-hosted","linux","x64","cwlab-ci-isolated"]}')).labels }}
timeout-minutes: 5
permissions:
actions: read
Expand Down
10 changes: 9 additions & 1 deletion .github/workflows/agent-mention-router-quality-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@ on:
- "scripts/ci/agent_mention_sweep.py"
- "tests/test_agent_mention_*.py"
- "tests/test_pr_review_fix_scheduler_coverage.py"
- "requirements-opencode-review-ci.txt"
- "requirements-noema-document-ci.txt"
- "requirements-opencode-review-ci-hashes.txt"
- "scripts/ci/compile_opencode_review_lock.sh"
push:
branches: [main]
paths:
Expand All @@ -26,7 +29,10 @@ on:
- "scripts/ci/agent_mention_sweep.py"
- "tests/test_agent_mention_*.py"
- "tests/test_pr_review_fix_scheduler_coverage.py"
- "requirements-opencode-review-ci.txt"
- "requirements-noema-document-ci.txt"
- "requirements-opencode-review-ci-hashes.txt"
- "scripts/ci/compile_opencode_review_lock.sh"

concurrency:
group: agent-mention-router-quality-${{ github.repository }}-${{ github.event.pull_request.number || github.ref }}
Expand All @@ -40,7 +46,9 @@ env:

jobs:
quality:
runs-on: ubuntu-24.04
runs-on:
group: CWL CI isolated
labels: [self-hosted, linux, x64, cwlab-ci-isolated]
timeout-minutes: 20
steps:
- name: Harden runner
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/agent-mention-router.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@ jobs:
concurrency:
group: review-agent-mention-router-local-${{ github.repository }}-${{ github.event.issue.number || github.run_id }}
cancel-in-progress: true
runs-on: ubuntu-24.04
runs-on:
group: CWL central control
labels: [self-hosted, linux, x64]
timeout-minutes: 5
permissions:
actions: read
Expand Down Expand Up @@ -74,7 +76,9 @@ jobs:
concurrency:
group: review-agent-mention-router-sweep-${{ github.repository }}
cancel-in-progress: false
runs-on: ubuntu-24.04
runs-on:
group: CWL central control
labels: [self-hosted, linux, x64]
timeout-minutes: 15
permissions:
actions: read
Expand Down
Loading
Loading