Skip to content

ci: stage all workflows on isolated self-hosted runners - #2565

Merged
seonghobae merged 54 commits into
fix/sdp-ghas-analyses-pagination-20261002from
ci/sdp-all-self-hosted-20261003
Oct 12, 2026
Merged

seonghobae merged 54 commits into
fix/sdp-ghas-analyses-pagination-20261002from
ci/sdp-all-self-hosted-20261003

Conversation

@seonghobae

@seonghobae seonghobae commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Current exact-head security scanner isolation receipt — 2026-10-07

  • Exact head: 62c051bd2668cee351a1648aba3d8e72af774f20; tree 43059a6fbdd174ed63e6f4612af512f364402ef9; parent 98beb17c43072f7f749ac8641d23db044436c055.
  • Publication: RED cc42969ba8ed4abeb1819412c146af2a9dadae8f → GREEN 26f993c0bbe88d50bf81473e31d179ad7b317657 → evidence 98beb17c43072f7f749ac8641d23db044436c055 → full-baseline restore 62c051bd2668cee351a1648aba3d8e72af774f20, each an ordinary one-parent fast-forward with force=false; no rebase or Force Push.

RCA → RED → GREEN

Security run 37242578328 exposed two independent infrastructure false failures. Trivy job 112314054734 restored trivy-binary-v0.70.0-Linux-X64 but then exited 127 with trivy: command not found, so the heterogeneous isolated runner group may not reuse runner-local binary cache state. OSV job 112314054619 completed the base/head comparison with no PR-introduced finding and uploaded SARIF before the optional debug artifact failed because the GitHub artifact quota was exhausted.

RED adds contracts for both boundaries and failed 2/2 on the prior source. GREEN disables only the Trivy binary cache and makes only OSV debug retention non-blocking; scanner, reporter, finding, and SARIF gates remain fail-closed.

Exact-tree executable evidence

  • focused contracts: 2 passed normally and 2 passed with GITHUB_ACTIONS=true
  • warning-fatal repository suite at GREEN tree: 5,488 passed, 10 skipped, 40 subtests
  • evidence contracts after CHANGELOG/Gap update: 9 passed, 4 subtests
  • compileall, git diff --check, and clean worktree: GREEN
  • docs/product-technical-gap-baseline.md (373,083 bytes; blob b50add6bef62fc4eb083a4a3e280e5c672995c51) and CHANGELOG carry the exact run/job/RCA/RED/GREEN receipt
  • exact-tree transfer verification caught a truncated intermediate Gap blob and 62c051bd… restored the complete document; remote and verified local trees now both equal 43059a6f…

Lifecycle

Draft / Proposed / merge HOLD. Fresh exact-head hosted Security/SAST/quality evidence, the isolated-capacity cleanup canary, zero unresolved review threads, and a qualifying independent approval remain required. This COMMENT/evidence is not approval. No blind rerun, runner relabeling, access expansion, bypass, auto-merge, or paid/model fallback is authorized.


Current exact-head provenance repair receipt — 2026-10-03

  • Exact head: f0f7ed988fba5d94eda6513f35d171f23c4bd9a5; tree 3a1407a8bd162566a291a2adef6c7b006a0884ad.
  • Ordinary fast-forward ancestry: RED 665321c169500029ede42112a2aa72b994f1ce16 adds the executable provenance contract; GREEN f0f7ed988fba5d94eda6513f35d171f23c4bd9a5 corrects both canonical receipts. Parent remains reviewed combined head 650bc6e35409d52d24fec890c2ab74063794e9b8; Git Data publication used force=false. No rebase or Force Push occurred.
  • RCA / repair: Git Data publication changed the locally predicted merge object, but CHANGELOG and the Gap baseline retained nonexistent ec7c1b58…. Both now name published two-parent merge 650bc6e35409d52d24fec890c2ab74063794e9b8 (tree 9522f0b9c96247b3412e147bc6f89fd2595c0776) and its 53/53 focused / 5,437 passed, 10 skipped, 40 subtests historical receipt. The new contract requires both records to agree on a resolvable current-ancestry commit with exact parents cd2c3f97… and 22902728….
  • Exact-tree local verification: warning-fatal repository suite 5,439 passed, 10 skipped, 40 subtests passed; dependency-review, ADR-identity, and evidence contracts 24/24 normally and with GITHUB_ACTIONS=true; Python compile, git diff --check, clean worktree, and exact tree match pass. The unavailable local ruff executable was not treated as evidence.
  • Independent review: no blocking finding; provenance, topology, counts, and Proposed/HOLD wording verified. One optional future hardening remains: derive and compare the documented tree SHA rather than treating that tree string as receipt text.
  • Fresh hosted exact-head evidence: CodeQL 37120498641 is Draft-skipped. Security 37120498599, Metadata 37120498646, SAST 37120498634, Trusted uv 37120498647, and Cloudflare 37120498635 failed before executable steps; every materialized failing job has steps=null and logs_url=null. This confirms the absent isolated runner group/capacity admission blocker and does not authorize a blind rerun.
  • Review state: both threads are resolved/outdated; zero unresolved threads and zero qualifying approvals remain.

Lifecycle: Draft / Proposed / merge HOLD. Missing CWL CI isolated group/capacity, disposable cleanup/canary proof, passing exact-head hosted Checks, and a qualifying independent approval still block ordinary merge. No runner relabeling, access expansion, bypass, auto-merge, source-neutral rerun, predecessor closure, or merge is authorized.

Scope

User instruction: move this SDP workstream entirely to self-hosted runners. All 73 central job declarations retain dedicated control/CodeQL/OpenCode boundaries and replace every hosted fallback.

Blocking review finding and RCA

The predecessor exact head d6ba56d04e22476b2ea41bfe7bb26e2cbc98f98f selected ordinary/non-main work with the mutable cwlab-ci-isolated label alone, even though its rollout document correctly stated that a generic label does not attest separation. GitHub runner labels are routing metadata and GitHub does not validate that OS/architecture labels match the machine. A persistent or privileged runner with matching labels and repository access could therefore receive untrusted PR work.

The repair scopes every affected direct, conditional, CodeQL and R-matrix selector through the dedicated CWL CI isolated runner group and the existing platform/isolation labels. The group is the repository-access boundary; labels express required capability inside it. Trusted-main control/CodeQL/OpenCode groups and repository predicates are unchanged.

Historical predecessor evidence — cd49a60f1299fb8f7984de8d8ba223db673f7b84

This section is retained for audit history and is superseded by the current exact-head receipt above.

  • RED: test_isolated_label_is_scoped_to_dedicated_runner_group failed first at .github/workflows/actions-queue-health.yml on the label-only selector.
  • Repair: 63 affected selectors updated; durable all-workflow and workflow-specific contracts updated rather than removed.
  • Focused: 42 passed.
  • Complete repository verification at that predecessor: 5,426 passed, 10 skipped, 40 subtests, exit 0.
  • All 38 workflow YAML files parsed successfully; git diff --check passed.
  • Historical predecessor head: cd49a60f1299fb8f7984de8d8ba223db673f7b84
  • Historical tree: 5cbbaac086e19c94ac37abf2ca8a5914c88eac9b
  • Parent: d6ba56d04e22476b2ea41bfe7bb26e2cbc98f98f (ordinary one-parent fast-forward; no force push or rebase).

Safety and rollout hold

DRAFT / HOLD. The retained organization inventory had no cwlab-ci-isolated capacity and no verified CWL CI isolated group/capacity record. Do not add a privileged runner to this group, relabel privileged runners, widen runner access, or merge until an authorized operator:

  1. creates CWL CI isolated with least-privilege repository access;
  2. provisions disposable isolated Linux/Windows/macOS capacity required by the matrices;
  3. proves cleanup, tool availability, absence of privileged sockets/credentials/internal-network access, and separation from trusted control jobs;
  4. returns a successful canary plus every exact-head required Check.

Source configuration is not runtime activation. No credentials, production deployment, existing runner ACLs, protections, inference budgets or active model runs were changed. Model-backed workflows remain fixed to orchestrator/free; no provider/model/group/paid fallback was added.

Historical hosted evidence — cd49a60f1299fb8f7984de8d8ba223db673f7b84

This predecessor evidence is superseded by the fresh cd2c3f9748e6bc50efd8bdfee9a385a74ec6e3ba run receipt above.

At cd49a60f1299fb8f7984de8d8ba223db673f7b84, Cloudflare DNS, SAST Semgrep, Security Scan, Repository Metadata Reconcile and Trusted uv Materializer completed failure before any step existed; their job step lists are empty and job log blobs are absent. CodeQL PR was skipped. This was fail-closed pre-runner evidence consistent with the missing group/capacity prerequisite, not a passing runtime canary and not merge authorization. CodeRabbit status was success; no qualifying independent review or review threads existed.

The PR must remain Draft/HOLD until capacity and fresh exact-head hosted evidence are available.

Retire the reverse-PR restack path and preserve the six dependency-review owner paths while recording protected main as the second parent.
@coderabbitai

coderabbitai Bot commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 506425fc-761a-4571-a609-7cbe67c1f49b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

seonghobae commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor Author

Historical circular-admission receipt — 2026-10-03

Superseded: this receipt describes predecessor head d6ba56d04e22476b2ea41bfe7bb26e2cbc98f98f. The authoritative current-head receipt is in the PR body for cd2c3f9748e6bc50efd8bdfee9a385a74ec6e3ba.

  • At that historical head, SAST 37094344652, Trusted uv 37094344666, Repository Metadata 37094344675, Security 37094344655, and Cloudflare DNS 37094344681 remained queued after every non-privileged route was pointed at the unprovisioned cwlab-ci-isolated label. Draft CodeQL 37094344661 was skipped.
  • Canonical prerequisite owners remain linux-cluster-ops#326 for runner registration, repository access and operator evidence, and quarantine-sandbox-runtime#136 / #137 for host-side/LAN denial attestation.
  • Keep Draft. Do not relabel a privileged central/control/OpenCode runner, substitute an arbitrary endpoint, blind-rerun, create a no-op event generation, or mark Ready before the owner prerequisites and canary are real.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exact-head review for cd49a60f1299fb8f7984de8d8ba223db673f7b84 (tree 5cbbaac086e19c94ac37abf2ca8a5914c88eac9b):

Blocking predecessor defect repaired: label-only cwlab-ci-isolated routing did not establish the runner access boundary. All 63 isolated selectors now require the dedicated CWL CI isolated group plus their existing labels; trusted-main groups and predicates are preserved. RED was reproduced before repair, focused contracts pass 42/42, all 38 workflows parse, git diff --check passes, and the complete suite passes 5,426 tests with 10 explicit skips and 40 subtests.

This is a COMMENT, not approval. Hosted jobs at this exact head fail before step execution (empty step lists and absent job logs) because verified group/capacity is still missing. Keep Draft/HOLD. Required next evidence is operator-created least-privilege group, disposable capacity and cleanup proof, canary, fresh exact-head required Checks, then eligible independent approval and ordinary protected merge.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Reviewed Gyeot admission follow-up published

Your exact global owner head remains ef65b2fdc2036ccaca8d19c1db88dc8075ae9164 (unchanged). I published a two-file, additive child Draft ContextualWisdomLab/.github#2613 on that head: 67726a07d292beed8f6138619dff1066228b2b11. Only .github/actionlint.yaml and tests/test_all_self_hosted_runner_contract.py changed. RED on unknown group, RED on missing label, then focused policy 5/5 normal and 5/5 Actions environment; actionlint 1.7.12 accepted the exact #2611 Gyeot reusable workflow. Independent frozen-file review passed with no security/logic findings. No files in your branch were edited or pushed; no owner-branch force update.

Please integrate the child through normal protected review when admissible. This is config/policy preparation only. Group9 still selects Gyeot alone with zero runners; no borrow/relabel/ACL change or runtime isolation/canary claim. The child remains Draft and no check skip is approval.

Merge reviewed main 7554587 into the existing self-hosted transition branch. Keep trusted metadata and publishers separate from PR coverage execution; preserve literal auto review routing. Exact tree e0aba57 passed whole source review by the existing reviewer and full quality (5567 passed, 4 skipped, 40 subtests; coverage 100%).
- require k-csap Noema App tokens instead of legacy fallbacks
- bind PR author and reviewer App actor before and after inference
- cover unknown author, self-review, actor drift, and token selection

Local verification:
- pytest tests -q -rs -p no:cacheprovider --cov=scripts/ci --cov-branch: 5583 passed, 4 skipped, 85 subtests, 100% line/branch coverage
- focused Noema/personal route suite: 327 passed, 45 subtests
- independent review: APPROVE_SCOPE (personal-final-review.json sha256 d43d7659d2f9fefa35085eb8ca06567841223ed40c9b27b948e8391d8d4f5f5e)
@seonghobae

Copy link
Copy Markdown
Contributor Author

Current exact-head AI review hardening receipt — 2026-10-10

Exact head: ef0c9d4c668fac7f01609b8fbd61a4126b103f5c
Parent: 7e1836e0f773e337634805fa0e71b79b63cdc714
Branch: ci/sdp-all-self-hosted-20261003

Source change

This head layers only the Remora-owned k-csap Noema review hardening on top of the existing personal LiteLLM auto route:

  • k-csap target uses Noema GitHub App token paths instead of legacy fallback tokens.
  • Direct and two-phase Noema paths reject unknown PR author identity and author-owned reviewer identity.
  • The two-phase handoff seals reviewer actor and PR author with head/base/verdict and rechecks them before publication.
  • The existing personal LiteLLM literal auto transport, sidecar implementation and self-hosted selectors were preserved.

Local verification

  • Full local diagnostic gate: 5583 passed, 4 skipped, 85 subtests passed.
  • Coverage: 18907/18907 lines and 7714/7714 branches, required 100% reached.
  • Focused Noema/personal route checks: 327 passed, 45 subtests passed.
  • Extra adjacent workflow contract repair: 32 passed.
  • ruff, actionlint, and git diff --check: pass.
  • Independent implementation review: APPROVE_SCOPE.
    • Report: /Users/seonghobae/.hermes/cache/scratch/remora-ai-runner-20261008/personal-final-review.json
    • SHA-256: d43d7659d2f9fefa35085eb8ca06567841223ed40c9b27b948e8391d8d4f5f5e
  • Publication receipt: /Users/seonghobae/.hermes/cache/scratch/remora-ai-runner-20261008/personal-publication-20261010.json

Remote state after push

  • PR head and remote branch are both ef0c9d4c668fac7f01609b8fbd61a4126b103f5c.
  • GraphQL blob readback matched all 13 reviewed file hashes.
  • Current status rollup is not green.
  • Observed blockers/unfinished checks at the time of this comment:
    • strix failed before start with annotation: account locked due to a billing issue.
    • noema-review was still in progress.
    • opencode-review, CodeQL language detection, metadata validation and coverage-source-tree were still queued.
    • No qualifying APPROVED review exists on this head.
    • CodeRabbit and Devin Review statuses are explicit skipped-review statuses, not approvals.

Lifecycle

This comment is evidence, not approval. It does not claim real model inference, formal GitHub App approval, required-check success, merge readiness, key issuance, ZDR/cost attestation or billing/runner repair.

@seonghobae

Copy link
Copy Markdown
Contributor Author

K-CSAP consumer integration checkpoint — 2026-10-10 22:38 KST

Read-only audit plus parent verification: exact head ef0c9d4c668fac7f01609b8fbd61a4126b103f5c, base branch fix/sdp-ghas-analyses-pagination-20261002 @ 3aad65b187897d2afc290cece0582a5c3d47a1e3, protected main remains 7554587c2e3106a388998bcad048a3d7121de25e. This PR is stacked; source publication here is not deployment on main. Parent verified 22 pinned source records (15 unique blobs).

Concrete remaining producer transition: main Strix model job still selects ubuntu-24.04 and current-head job114218606148 has billing job-not-started annotation. User expressly authorizes hosted-only/startup-failure producer retirement if self-hosted migration is unavailable. Preserve mixed Strix control/admission gates and required contexts; do not disable the whole mixed workflow or claim missing scan as PASS. Existing global owner should integrate the already-owned self-hosted producer change or narrowly retire only its hosted execution through reviewed source, with readback and unavailable gate retained. No competing writer or protection waiver requested.

Noema run38053761790/job114219266717 is IN_PROGRESS; OpenCode existing continuation38054328314/job114219579243 was QUEUED. No new dispatch/rerun. Exact-head qualifying AI approval remains absent. Candidate personal LiteLLM literal auto is not consumed by main yet; model variable/key metadata are not authenticated inference. Artifact quota and provider/JSON verdict failures are separate repair boundaries. Please return the existing owner’s protected integration path and its remaining base/main prerequisites, rather than author self-approval or a synthetic green. Source-only comment, not formal approval.

@seonghobae

Copy link
Copy Markdown
Contributor Author

PR2565 exact-head capacity RCA — October 10, 2026 KST

Consumer parent verified read-only evidence for owner head ef0c9d4c668fac7f01609b8fbd61a4126b103f5c.

  1. Required OpenCode run 38053761711 executed on self-hosted cwlab-s2-01 and correctly failed because no current-head substantive verdict existed. This is NOT a source-rejection verdict.
  2. Its exact-head downstream successor already exists: 38054328314, repository_dispatch, created 13:04:30Z. Job 114219579243 / validate-pr-metadata remains QUEUED, no runner assigned. Group5 CWL central OpenCode has only cwlab-s1-04, OFFLINE. Group6 CWL central control also has zero online workers in the fresh parent GET. Do not create another dispatch or borrow/relabel control/MCP/product hosts.
  3. Strix run 38053761736, job 114218606148, has zero steps/no runner. Billing-lock annotation confirms pre-start account admission. Its metadata steps executed on self-hosted cwlab-s2-01, so the entire mixed workflow must NOT be disabled merely because the model job did not start. Preserve substantive required Strix evidence and migrate the eligible producer through the existing ci: stage all workflows on isolated self-hosted runners #2565 owner; don't report scanner/model success.
  4. Product pg-erd-cloud hosted-only Code Quality service was actually disabled by supported code-quality/setup PATCH and read back not-configured. Central service was already not-configured. Security CodeQL and protections unchanged. This does not repair historical failed runs or establish replacement readiness.

Existing operator lane: ContextualWisdomLab/linux-cluster-ops#326; existing model/key custody: #2560. Please return the currently bound runtime custodian and the isolated runner management entrypoint for group5/group6 recovery. Preserve queued successor and lease restrictions. Credential/model aliases and gateway key metadata do not prove inference or approval. No fabricated author self-approval, required-check deletion, duplicate key, automatic artifact deletion, blind retry or paid-budget expansion.

RCA source report SHA256 74130f21ed60086cb3e4bd9e8d409e39856f89754c23116c5d368b176b8a9b96; bounded parent probes supplement downstream queue/group capacity. No source edits, runner/service changes, or review approval were performed by these probes. Delivering this handoff is not operator acceptance or resolution.

@seonghobae

Copy link
Copy Markdown
Contributor Author

K-CSAP consumer #2615 now has frozen reviewed head aacc387349c62b54ed96a9bd96b17c022296897b (Draft). Its producer selects repo-scoped labels [self-hosted, Linux, X64, k-csap-isolated]; shared .github/actionlint.yaml at your current published head ef0c9d4 has only cwlab-ci-isolated/cwlab-control. Please add the exact k-csap-isolated label through your existing canonical config custody, then bind canonical lint readback. I did not modify your shared file. Scratch-label lint is diagnostic only, not canonical acceptance.

Fresh source review of PR2615: workflow SHA2b14845ebf761652ca78ecdaac86c6e851ea41dc573312f41ade2695b0a719b7; test36bbf733ea0bec7e0cd3b03cb07d6c466cf19fffb578f16114e820a9d69c3737; reportdbc0d58d24a098c68f33268fcd8dc1a6de00f57bfe729aa0dd0272fd4e29ff62. Actual local admission35/35, SHA consumer4/4, locked28tests. This is conditional source acceptance only, no actual runner/AI/App/merge.

Existing #2560 key/relay retained; no key overwrite, fabricated zero-cost/ZDR attestation, wrong-route dispatch, or App self-approval. Protected main still executes legacy orchestrator/free; current personal auto candidate remains unmerged. Please route actual protected delivery and authenticated model/App execution through the existing owner. Latest user explicitly requests migration/retirement of startup-failure hosted producers plus conditional normal merge; this is not authority to lower review/isolation gates.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Noema upload integration boundary: existingowner#2563e8becaf has liveDraftrepair but currentproducer/freshness gap remains. Privateordinarymerge with#261399a3236 failed9ancestorconflicts; nooverwrite. Preparing narrow3fileproposalandfrozenreview againstcurrentef0c9d4, preservingpersonalauto/Apptoken gates andexisting#2563oracle. Noownerbranch edit, noartifactdeletion, no falsecost/ZDRvariable orAppapprove. HostedCodeQuality setupPATCH returned200 not-configured, genericdynamicworkflowdisable422; registryid357250097 stillactive, unchangedrequired12contexts. Serviceconfigurationoff mustnotbeconfusedwithregistryretirement.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Procurement dependency checkpoint — 2026-10-10

Procurement consumer work is now split:

Current blockers for procurement merge/activation:

  • No runner group named CWL procurement CI was found in the full org runner-group inventory.
  • procurement-workbench has zero repo-scoped runners and no observed eligible org-group route.
  • Protected main Noema/OpenCode still uses the current non-auto review route; literal LiteLLM auto remains in this PR's unmerged lane.
  • Current ci: stage all workflows on isolated self-hosted runners #2565 checks are not merge-ready: Noema failed at gateway transport (served_model=apodex/apodex-1.1-mini:free), OpenCode failed closed without a current-head verdict, and Strix had no downloadable log for the observed job.
  • Existing LLM_GATEWAY_API_KEY metadata exists, but key scope, auto allowlist, cost and private-retention attestations are not verified here. No duplicate key issuance was performed.

Needed from this lane before procurement activation:

  1. Protected or otherwise accepted review route that uses the requested literal auto endpoint without substituting orchestrator/free.
  2. Cost and private-retention/ZDR evidence sufficient to enable the fail-closed admissions truthfully.
  3. A qualifying independent Noema/OpenCode App review object on the exact target head.
  4. A runner/provisioning owner for CWL procurement CI or an explicitly accepted unavailable state.

This is not a merge request for #2565. It records the current dependency so the procurement PRs do not fabricate CI green or App approval.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Child proposal for Noema evidence freshness — October 10 KST

Opened #2622 against this branch to carry the current-producer/freshness supplement without rewriting #2563.

This still leaves operational blockers separate: Noema model HTTP 400, artifact quota, OpenCode missing current-head verdict, Strix hosted pre-start billing lock, missing cost/ZDR attestation, and no formal App approval. No variables, secrets, billing, artifacts, or protection rules were changed.

@seonghobae

Copy link
Copy Markdown
Contributor Author

K-CSAP 계약 테스트의 canonical 의존성 연결 수리 요청

중앙 source/shared lock 소유는 #2565 담당자에게 유지합니다. shared 파일은 수정하지 않았습니다.

실제 RED: PR #2615 c0d6235bd996159fa8c2bb2d176dce2d1983b38b의 private scratch clone에서 기존 requirements-opencode-review-ci-hashes.txt만 --require-hashes --only-binary=:all:로 설치했습니다. Python 3.14.7에서 import yaml exit 1, 계약 테스트 collection exit 2이며 ModuleNotFoundError: No module named 'yaml'을 확인했습니다. 최초 uv sync --locked는 중앙 repo에 uv.lock이 없어 setup 실패했으며 RED로 세지 않았습니다.

최소 수리안: 기존 dedicated lock의 PyYAML 6.0.3 hash block을 canonical test lock에 추가하고 canonical 입력 파일에도 같은 pin을 추가합니다. 다른 pin/hash는 유지합니다. scratch 수리 lock 실제 설치 뒤 동일 계약 테스트 28 passed / exit 0입니다. 이는 local dependency 연결 검증이며 full CI, App 승인, merge 검증이 아닙니다.

로컬 전달 경로: /Users/seonghobae/.hermes/cache/scratch/kcsap-shared-linkage-proposal-c0d6235/proposal.patch
patch SHA-256: 643f8a51a56d37f83ca2782a48110407e0586d8b57cdc989562bd4556a71dd51
candidate lock SHA-256: b651a78bd2323d9e1b41d3d6153b4a5e99b464ab8a4b835c8205dfcd9c83cfdd

canonical 담당자가 두 파일의 좁은 hunk를 수락·통합하고 실제 설치 recipe/full suite와 새 exact head를 반환해 주세요. 앞서 요청한 k-csap-isolated canonical lint label도 별도 미충족입니다. 경쟁 writer/키 발급/legacy route dispatch/required gate 완화는 하지 않습니다.

bootstrap 독립 plan review는 CHANGES_REQUESTED입니다. Ready는 review/check activation만 의미하며 merge는 HOLD입니다. protected main이 아직 orchestrator/free 경로여서 이를 요청된 literal auto 검증으로 세지 않습니다. 실제 auto/App 경로와 승인된 exact-SHA caller canary가 준비되면 review 요청 단계와 merge 수락 단계를 분리해서 진행합니다.

Merge #2622 into the #2565 feature-stack base after locked local acceptance and independent source review. This is not protected main deployment or App approval.
Preserve reviewed self-hosted isolation and current-head receipt semantics.
Include verified shell-literal, Noema evidence and Maturin contract corrections.
Source review complete; CI, native inference and formal approval remain separate.
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact successor publication and open gates — 2026-10-11

Normal non-force publication is verified at head b78007bfc976faaa4d416d2b6578b114e2725a82, tree ae41efab9285ccc9ff85c9f06546ea2182187680, one parent 74351894e5fcd03285351c915554eadf444b351c. Git branch, PR Git ref and authenticated PR head agree. The original owner's checkout HEAD/index/749 source payloads and existing dirty work were preserved; no forced branch rewrite occurred.

The existing independent source reviewer completed the full original-base 121-path review: SOURCE_PASS_WITH_OPEN_EXECUTION_AND_FORMAL_GATES, no open source findings, report SHA256 ba200ac11f88331e4fa2e62b62a217a1921574a9a08c8101eac6f2883beba2ec. The dismissed-review receipt finding is resolved; historical rejected f54 and previous826a reports remain unchanged. Parent #2555 retained source assessments bind the 79 additional current-main shipment paths by exact mode/blob/hash; this crosswalk is not a new formal approval.

Local execution remains accurately scoped: the first826a complete run returned exit1 with 5742 passed,1 failed,4 skipped and86 subtests; coverage report exit0,100% (18946 statements/7738 branches). The one failing test compared raw shell spelling after a byte-equivalent quote migration. The test-only successor checks actual Bash operand expansion and exact helper positions; its failed node passes, and removal of either placement command or helper argument is rejected. This retained full run plus focused correction is NOT a single successful full-candidate execution or hosted CI acceptance. Historical strict lint NONPASS also remains distinct from private scoped lint.

Fresh native evidence for this head:

  • Strix run38140946786/job114475084659 failed before execution: runner0,steps0,ubuntu-24.04; annotation explicitly states billing-lock admission. Control metadata actually ran on self-hosted cwlab-s2-01. The trusted main workflow still contains Hosted routing; the already-isolated candidate has not been adopted as trusted main. Do not interpret this as an executed source/model scan finding.
  • Existing OpenCode38140946804, Noema38140946801, CodeQL38140948363 and metadata38140948332 are not terminal PASS. No extra manual dispatch was created.
  • There is no current-head independent formal APPROVED. Actual primary/small literal-auto review, accepted isolated canary/cleanup, complete required gates and protected-main shipment remain open.

#2555 remains its existing Draft prerequisite. Protected main retains all12 required contexts and conversation resolution. An empty stacked-base required-check query is not a waiver. Existing key transfer is retained; supplier zero-cost/private-retention evidence remains UNVERIFIED, and no attestations, secrets, provider/model budgets, services or protection rules were changed. Existing runtime owners are implementing the original guest Worker settlement bridge; this checkpoint does not authorize guest reset/start or privileged PR execution. No merge or self-approval was performed.

@seonghobae

Copy link
Copy Markdown
Contributor Author

K-CSAP canonical config 연결 요청 및 수정 lock 검증 — 2026-10-11

현재 #2565 b78007bfc976faaa4d416d2b6578b114e2725a82의 실제 canonical hash-lock을 새 scratch venv에 --require-hashes/--only-binary=:all:로 설치했습니다. Python3.14.7/PyYAML6.0.3/pytest9.1.1 import와 PR2615 ad10996 계약30개 PASS, install/test exit0. lockSHA2532ee354bb44bd4597c5f454d17c807e83ea6480f642f25e2bc1308e548054a. 해당 shared head의 OpenCode dispatch trusted build COPY/install 및 agent-mention full-suite가 이 lock을 설치하는 source 연결도 확인했습니다. 실제 원격 tooling-image/CI 또는 protected-main 배포 통과는 아닙니다.

남은 정확 소유 경계:

  • 기존 shared owner가 .github/actionlint.yaml labels에 k-csap-isolated를 additive로 등록합니다. 다른 runner selector/ACL/model/key/protection 수정은 필요하지 않습니다.
  • PR2615 base/main에는 이 config 자체가 없습니다. shared feature-stack에만 추가하면 기본 actionlint 호출은 계속 실패합니다. reviewed config full blob/hash와 producer PR2615로 정상 통합할 명시적 file/hunk custody 인계 또는 protected-main 통합 head를 반환해 주세요. 저는 shared config를 경쟁 편집하지 않습니다.
  • 실제 기본 actionlint .github/workflows/k-csap-skills-quality.yml을 별도 direct exit로 검증해야 합니다. 최신 exact canonical config 검사 exit1 unknown k-csap-isolated를 보존했고 후행 gh 성공으로 덮지 않았습니다.

receipt: /Users/seonghobae/.hermes/cache/scratch/kcsap-shared-install-b78007bfc976-20261011/receipt.json

새 key/dispatch/caller 구현 없음. 기존 source 담당의 수락·수리 후 수정 head를 다시 검증합니다. 실제 runner/auto/App/merge gates는 미충족으로 유지합니다.

Reviewed-Tree: fb8b066
Source-Verdict-SHA256: 3a362294f13eb20f894d6a3ea1ccd65e41ce2da91a88e1232fa97e06ce6d6491
Publication-Adoption: msg_e3fa604a6fcd

Source publication only; runtime, formal approval and Merge remain open.
@seonghobae
seonghobae merged commit 728db8a into fix/sdp-ghas-analyses-pagination-20261002 Oct 12, 2026
16 of 21 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in naruon Platform Roadmap Oct 12, 2026
@seonghobae
seonghobae deleted the ci/sdp-all-self-hosted-20261003 branch October 12, 2026 21:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant