Repository navigation
program: 2026-09-03 CI·Agent·Contextual Orchestrator 구조 복구 추적 #1802
Description
목표
2026년 9월 2일과 9월 3일에도 계속된 GitHub Actions 적체와 41개 제품·Agent·Contextual Orchestrator 요구사항을 저장소별 canonical owner에서 해결하고, exact-head GREEN·독립 리뷰·병합·consumer canary까지 추적합니다.
완료율은 보호된 기본 브랜치에 병합되고 운영 검증까지 끝난 항목만 계산합니다. 분석, 이슈 생성, Draft PR, predecessor의 과거 GREEN은 완료가 아닙니다.
현재 기준
- 완료: 4/41 = 9.8%
- 조사·owner 지정 또는 부분 구현: 11개 이상
- 중앙 선행 완화:
.github#1245→232107a0b6235efaa4a221a41443c436eac3dd00 - concurrency epic: epic(actions): make Noema, Strix, and OpenCode concurrency exact-PR and current-head safe #1800
- duplicate organization queue-hygiene owner: fix(actions): remove duplicate queue hygiene from the organization sweep #1796
- Noema sibling dispatch credential: fix(noema-review): authorize sibling repository_dispatch cleanup with a target-scoped token #1799
- startup-before-job /
runner_id=0queue health: feat: add read-only Actions queue health evidence #1150
A. GitHub Actions 처리량·중앙화·동시성
- 13 Noema·Strix·OpenCode가 같은 PR의 구형 HEAD만 정리하고 다른 PR/저장소를 방해하지 않음 — epic(actions): make Noema, Strix, and OpenCode concurrency exact-PR and current-head safe #1800, fix(noema-review): close item13 stale-head native-cancellation race #1797, fix(noema-review): authorize sibling repository_dispatch cleanup with a target-scoped token #1799
- 15
org-queue-sweep의 기본 문법 대체 또는 bounded owner 확정 — fix(actions): remove duplicate queue hygiene from the organization sweep #1796; current-head 정리는 target-repository coalescer로 이관 - 16 동일 성격 중앙 workflow 단일 파일 통합 완료 — #1673은 18개 hourly caller를 통합했으나 전체 fleet inventory 필요
- 17 GitHub Actions 파일 최대 통합·개별 repository thin caller 삭제 — 중앙 inventory와 consumer 삭제 receipt 필요
- 18
ghs_...stateless installation token 길이 가정 제거 — 전체 조직 code search·fixture 필요 - 29 모든 model-backed Actions가
orchestrator/free만 요청 — provider/model/group/유료 fallback 잔존 검색 필요 - 30 OpenCode Agent startup UX 결함 재현·수정 — 지정 run + 현재 successor 추적 필요
- 31 Chicken-and-eggs bypass 정책을 구조적 CI owner fix에 적용 — fix(scheduler): retry and gracefully defer shared installation rate limits #1245 병합; 무제한 bypass가 아니라 exact 범위·후속 Gap 기록
- 39 Repair 900초 상한 제거/관리자 timeout·provider termination 구분 — owner 계약 및 consumer workflow 잔존 검색 필요
- 40 fast-mlsirm Noema credential 실패가 후속 실패를 만드는 causal chain 수정 — run 33646974279 재검증 필요
- 41 PR startup failure 류 해소 — feat: add read-only Actions queue health evidence #1150; run 33761818467 0-job canary 추가
B. Agent 실행·리뷰·격리·보안
- 1 OpenCode Review가 실질적으로 Contextual Orchestrator를 통해 실행
- 2 Strix가 실질적으로 Contextual Orchestrator를 통해 실행
- 3 Noema가 실질적으로 Contextual Orchestrator를 통해 실행
- 4 응답 정합성 오류의 typed reason·평가·telemetry와 900초 원인 제거
- 5 Noema가 naruon의 제품 Agent로 기능하고 review workflow와 domain runtime을 분리
- 6 quarantine-sandbox-runtime을 Noema·OpenCode의 실제 코드 실행에 연결
- 7 통신 보안 authority를 EgressWeave·Wardnet으로 이관하고 중복 HTTP policy 제거
- 23 Noema 리뷰 실패 사례 재수집·분모·taxonomy·개선안
- 24 Noema/OpenCode 리뷰 품질을 CodeRabbit/Devin과 비교하는 blind benchmark·ablation
- 28 일반지침 기반 PR·리뷰·웹·논문·표준·issue 대행 Agent capability
- 38 새 저장소·새 stack 감지 후 CodeQL PR 자동 생성
C. Contextual Orchestrator provider·OpenAI API·batch
- 8 Bytez auto-discovery — CO fix(redaction): preserve raw JSON layout atomically #929 raw auth, [Fleet incident] Resolve independent-review bootstrap deadlock for sole-collaborator repositories #948
meterPrice; protected main source·tests 존재 - 9
orchestrator/free에 OpenRouter 포함 — CO fix(review): consume leftover path:start-end receipts #996 및 protected main free-pool admission - 10
zdr_only=false에서 ZDR 모델도 포함 — CO security(deploy-pages): declare minimal secret contract #901 +test_zdr_only_selects_only_zdr_group_members_and_default_is_unchanged - 11 Models.dev와 provider evidence field-level 합성 — CO 🛡️ Sentinel: [보안 개선] 커맨드 인젝션 위험 완화를 위해 shell=False 명시 #1007 auto-merge 대기; OpenRouter 자체는 provider pricing authority
- 12 OpenCode Zen·Go가 같은 OpenCode key로 별도 catalog discovery — CO fix(redaction): keep Actions group markers from wiping JSON evidence #1031 canonical Draft; #1008은 잘못된 별도 key라 Draft, 완전 승계 후 종결
- 26 Chat↔Responses 변환, 양 endpoint, upstream surface 감지, provider API version 자동 처리
- 32 batch-capable 모델만 native batch endpoint, 나머지는 명시적 emulation; pg-llm-batch contract
- 33 소비자가 OpenAI SDK만으로 표준 기능 조작
- 34 OpenAI SDK 기능 중 CO 미지원 Gap inventory·구현
- 35 SDK/CO 규격 충돌 시 OpenAI SDK 규격 준수
- 36 Files API와 S3/object storage lifecycle
- 37 관리 API는 OpenAI SDK 호환 표면과 분리
D. Search·MCP·A2A·Browser
- 14 MCP Gateway·A2A Gateway, 내부 검색 판단, SearXNG 복수 메타 검색, Camoufox, quarantine session isolation — CO #1009은 SearXNG
web_search()만 병합된 부분 완료
E. 관리자 Web·Identity·조직 모델
- 19 Noema·CO·Keyverse 관리자 Web과 상호 연계, Keyverse secret/KV 경계
- 20 naruon 제품 form이 Keyverse REST API로 login/signup/recovery, ABAC/RBAC 사용
- 21 naruon이 OpenAI
json_schema로 통신 - 22 Keyverse를 identity federation + credential store + service ABAC/RBAC + 관리 UI로 확장
- 25 CO model_groups save/delete 후
/admin/state재조회와 feedback 상태 색 — CO feat(actions): inventory orphaned workflow identities #1026, protected main 계약 테스트 - 27 지주→지역 HQ→계열사→사업부문→사업부→파트/팀 및 역전·겸직·TFT를 시간가변 graph로 모델링하고 SCIM/OIDC/SAML 교환
공통 Definition of Done
각 체크는 다음을 모두 만족해야 닫습니다.
- canonical owner에 RED test와 causal fix
- PRD·TRD·ADR·ARCHITECTURE·CHANGELOG·
docs/product-technical-gap-baseline.md추적 - 목적을 마친 source-fix/self-modifying workflow 제거
- exact-head tests/security/contracts/provenance GREEN
- 미해결 유효 review thread 0
- 보호된 기본 브랜치 병합 또는 검증된 successor 완전 승계
- consumer canary 또는 실제 장애 run 재검증
- 운영 지표의 전후 비교
진척률 산식
완료율 = 보호된 기본 브랜치 + 운영 재검증까지 끝난 항목 수 / 41
하위 PR·이슈의 진행률은 별도이며 합산해 완료율을 부풀리지 않습니다.
협업 지시
여유가 있는 로컬 세션은 위 체크 중 파일 writer가 겹치지 않는 하나를 맡아 owner repo, exact base/head, RED, 최소 fix, GREEN, merge/successor evidence를 이 이슈에 남기십시오. 구독 중인 PR을 이관할 때는 delta inventory와 unresolved finding을 함께 넘깁니다.
기다리는 동안 다른 로컬 세션에게 지속적으로 지시 받아 도우세요. 계속 묻고 계속 피드백하고 계속 지원하세요. 더 주도적이고 더 적극적으로요.
60-job ceiling 또는 API rate limit이 원인인 경우 sleep·no-op retrigger·workflow 복제로 우회하지 말고 중앙 owner에서 trigger fan-out, token scope, startup failure, runner materialization, concurrency를 수리합니다.
Activity
seonghobae commentedon Sep 3, 2026
실행 중간 기록 — 지정 장애 run RCA와 진척률
완료율은 그대로 **4/41 = 9.8%**로 유지합니다. 아래 source fix·RCA·owner 지정은 운영 재검증 전까지 완료로 올리지 않습니다.
Item 4 — 응답 정합성·구체적 telemetry: 미완료
newsdom-apirun33510285421, job99864028341orchestrator/freepreflight 성공html4treerun33560972491, job100033086428NoemaRepairDeadlineExceeded900초에 도달보호된 central source의 commit
a28fc2f4e185df7847e2f2f5f6ec561d1e84805d는 caller repair·900초 deadline·두 번째 모델 호출을 제거하고 CO에 timeout/repair/failover를 귀속했습니다. 하지만 새 source로 실제 consumer canary가 성공하기 전에는 item 4를 닫지 않습니다. 남은 acceptance는 provider/model/phase/attempt/elapsed/schema violation을 typed receipt로 남기고 malformed raw output을 노출하지 않으면서 운영자가 고칠 수 있는 원인을 제공하는 것입니다.Item 39 — 900초 제한: source-fixed, 운영 미검증
지정 CO run
33580381913, job100093226133에서:request_changes인데adversarial_validation.status=failed가 없어 local semantic contract failurea28fc2f4...에서 이 경로는 제거됐습니다. 사용자 지시의 “3시간으로 늘리기”보다, 공통 기본 timeout null·CO owner·provider termination이라는 현행 아키텍처가 더 정확합니다. 다만 queued old-source runs가 계속 materialize되므로 운영 canary 전까지 미완료입니다.Item 40 — fast-mlsirm Noema failure: 전제 정정, 미완료
run
33646974279, job100304078562:orchestrator/free: 성공, 54 routes admitted, 5 readyphase=connecting,served_model=unknown따라서 credential failure가 step 13을 유발했다는 전제는 로그와 다릅니다. 실제 문제는 오래 queue된 run이 옛 workflow/sidecar source로 실행된 것, gateway internal 500의 구체적 원인이
unknown으로 남는 것, current source canary 부재입니다.Item 41 — startup failure: 미완료
33710719228:CodeQL PR,startup_failure, Jobs API[], job/runner/checkout 없음46ede...와 연결 PR auto-merge 대기 PR의 update-branch 처리 보강 #140 current head9389a...불일치.githubsource-fix run33761818467: 같은 형태의 job 0개 failure#712와 #1150에
startup_failure_before_job_materialization,stale_workflow_source_materialized,runner_id=0, source/test/credential/gateway failure를 분리하도록 증거를 전달했습니다.Item 30 — OpenCode startup UX: source-fixed, 운영 미검증
옛 run
33548447878은 stale event head가 live head와 다르다는 이유로 step 2에서 red 처리했습니다. 보호된 main은 이제 open/ready PR의 moved head를 성공적으로 self-retire하고 fresh dispatch를 기다리도록 변경되어 있습니다. current-source canary가 없는 관계로 완료 체크는 보류합니다.다음 owner 작업
다른 세션은 위 owner 중 파일 충돌이 없는 하나를 맡고 RED→GREEN→exact-head→merge/canary를 이 이슈에 남겨 주십시오.
seonghobae commentedon Sep 3, 2026
Item 40 fresh causal evidence from
ContextualWisdomLab/fast-mlsirm#1536confirms the Noema credential-lifetime defect remains live and is not a leaf/source failure.Exact consumer canary:
main@b5a3a0c1057d4b53d7a4bb18e0de69f630c2b45c77bef27cff780b909be484b52be35e97be75278033634978342/100263465886.github@9330d41c92b1e6ab35261f3f5189936ea1ad8bffcwl-noema-reviewinstallation token was minted at2026-09-03T00:26:23Z.orchestrator/freepreflight was healthy;Prepare Noema model verdictstarted at00:49:57Z.01:44:26Z, ~78 minutes after token mint, the prepare phase failed at a GitHub CLI call withgh: Bad credentials (HTTP 401); post-job cleanup independently reportedToken expired, skipping token revocation.This exactly matches the defect previously RED/implemented in
.github#1745(12b44ee781daf7bcd88954e62c8ecb2d8784d20f), but #1745 is closed, unmerged. Fresh comparison against protected.github/main@269e5bd9e65c38770a827af1291a5657d5cfcd01isdiverged,ahead_by=1,behind_by=75; its unique delta still changesscripts/ci/noema_review_gate.py,two_phase.py, focused tests, doctoring, and CHANGELOG. Default-branch code search finds noNoemaRepairRecheckUnavailableError, so no verified successor carryover is visible.A second fast canary (#1690,
f811f471..., run33633945304) shows a related but distinct prepare-path failure: the model contract repair hit the hard 900-secondNoemaRepairDeadlineExceeded; cleanup again reported the repository App token expired. Do not collapse that deadline defect into the 401 defect; item 39 owns the 900s policy, item 40 owns credential lifecycle.Required owner repair / acceptance for item 40:
.githubsuccessor plus a fresh unchanged fast-mlsirm canary where the same long-running path survives past the old token lifetime, performs post-model GitHub revalidation with a fresh credential, and publishes only after exact-head/base revalidation.No fast-mlsirm source churn or retrigger commit is indicated by this failure.
seonghobae commentedon Sep 3, 2026
Item 40 revalidation requested in the program body is now completed against the named fast-mlsirm canary
33646974279(#1518@b8e72773c34cd2f383bf44f492e52bf61736c680, job100304078562).Result: the designated run does not reproduce the earlier GitHub-App credential-expiry failure. Trusted workflow source was
.github@bbe65f08b1ae663c467be343e8fd5a98881eb686. It minted the repository-scoped reviewer token at ~02:32Z, performed live-head validation, provisioned contextual-orchestrator, and later post-job cleanup reportedToken revokedat 02:52Z. There was nogh: Bad credentials/ expired-token failure. The workflow also contains a separateRefresh repository-scoped Noema GitHub App token for publicationstep, although that publication refresh was skipped because verdict preparation failed first.The run instead failed at a different owner boundary: after healthy
orchestrator/freediscovery/readiness and a successful chat/completions preflight, the actual Noema request spent649.5sinphase=connectingand returned gateway HTTP 500 withserved_model=unknown. That new causal evidence has been handed to canonical contextual-orchestrator owner issueContextualWisdomLab/contextual-orchestrator#1016(comment5527940637) because the leaf cannot safely identify selected/attempted provider/fallback outcomes from the public error contract.Do not mark item 40 fully complete from this canary alone: its credential lifetime was only ~20 minutes, so it does not prove the >1h path that failed on fast-mlsirm#1536 run/job
33634978342/100263465886. The earlier acceptance still stands: prove a long model phase crossing the old installation-token lifetime, obtain/revalidate fresh GitHub authority at the post-model boundary, keep publication on a separately fresh credential, and preserve exact live-head/base validation. But the named33646974279recheck itself is now classified: credential failure not reproduced; terminal failure moved to the contextual-orchestrator transport/evidence lane.seonghobae commentedon Sep 7, 2026
2026-09-07 추적 원장 정합성 점검
현재 본문 완료 체크는 8·9·10·25·31의 5개인데 상단은 **4/41 = 9.8%**입니다. 이를 곧바로 5/41로 올리면 안 됩니다. 본문 근거 중 source/tests·정책 적용과 공통 DoD의 운영 재검증은 범위가 다릅니다. 각 완료 항목의 보호 병합 SHA와 consumer canary/운영 원시 증거를 재확인하기 전까지 이 원장의 전체 완료율은 재검증 필요 상태입니다. 이번 점검으로 새로 완료 인정한 항목은 0개입니다.
추가 조사 연결: #2000의 실패 후 route 반복 선택 보고는 항목 4·39와 Actions runner 점유에 연결됩니다. 보고된 909회 시도/837회 단일 route/소진 이벤트 0회는 아직 이 작업에서 원본 artifact를 독립 검증하지 않았습니다. CO 담당 작업에 request-ID별 분모, 동일 logical request와 caller 재호출 구분, 기존 owner의 소진 계약 조사를 요청했습니다. 경과 시간만으로 model timeout을 추가하는 근거로 사용하지 않습니다.
항목 13·16·17의 현재 변경은 #1962 exact f162c6b(Draft, 로컬 전체 2994 passed/1 skipped), #1996 후속 로컬 9f08ed0(282 passed, 미push)입니다. #1996 기존 Strix job101590121689는 API에서 실제 in_progress를 확인해 유지했습니다. 이 수치들은 보호 병합이나 조직 전체 처리량 개선의 증거가 아닙니다.