diff --git a/AGENTS.md b/AGENTS.md index 43079c5..7a87174 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,7 +2,7 @@ Read the English editorial reference `docs/design.md`, the design revisions it links (currently `docs/design-revision-1.md` and `docs/design-revision-2.md`), the immutable approval `docs/design.ko.md`, `docs/contracts.md`, and `milestones.json` before changing a contract or milestone boundary. The historical approval preserves the decisions of its time; the editorial reference and its revisions are the current baseline; contracts describe implemented behavior only. The user's current instructions take precedence over this file. -- CS-RG implementation is suspended: pending the CS-RG integration-boundary revalidation, do not implement any CS-RG unit (CSRG-C00, CSRG-C03 and CSRG-C09 in particular) or design revision 1's CodeSpace execution-ownership choices. No replacement architecture has been approved. *Current state, 2026-10-15:* the owner directed CS-RG implementation as units U1–U6 in CodeSpace on 2026-10-02, outside this suspension: each unit starts only on the owner's direction, after the previous one is merged and verified. U1 to U6 are merged and verified, CS-RG is qualified on macOS for one exact combination, and the suspension still applies to the CSRG-C units. On 2026-10-14 the owner directed P1-RECOVERY's implementation in CodeSpace, outside this suspension, as one pull request per unit from P1R-C01 to P1R-C06, re-baselined in its plan: each unit starts on the owner's approval after the previous one is merged and verified. P1R-C01 to P1R-C05 are merged and verified, and P1R-C06 is active. +- CS-RG implementation is suspended: pending the CS-RG integration-boundary revalidation, do not implement any CS-RG unit (CSRG-C00, CSRG-C03 and CSRG-C09 in particular) or design revision 1's CodeSpace execution-ownership choices. No replacement architecture has been approved. *Current state, 2026-10-19:* the owner directed CS-RG implementation as units U1–U6 in CodeSpace on 2026-10-02, outside this suspension: each unit starts only on the owner's direction, after the previous one is merged and verified. U1 to U6 are merged and verified, CS-RG is qualified on macOS for one exact combination, and the suspension still applies to the CSRG-C units. On 2026-10-14 the owner directed P1-RECOVERY's implementation in CodeSpace, outside this suspension, as one pull request per unit from P1R-C01 to P1R-C06, re-baselined in its plan: each unit starts on the owner's approval after the previous one is merged and verified. P1R-C01 to P1R-C06 are merged and verified, and P1-RECOVERY is qualified on macOS for one exact combination. - Keep CodeSpace/Codex types, process ownership, PTY and output management outside this repository's authority core. - External implementations, Codex included, enter DevGuard only through a declared adapter or binding with a reviewed, immutable pin, justified by what it replaces and by how its cost is contained ([design revision 2](docs/design-revision-2.md)). The authority core and the generic client contract carry no CodeSpace or Codex product types. `scripts/validate.py` still rejects every `codex-` and `codespace-` package; only the reviewed PR that adds the first real adapter component changes that gate, together with tests of its boundary. Adapted or patched upstream code records its provenance and divergence. - Keep reservation, planned policy, applied evidence, and successful user executable startup distinct. diff --git a/docs/ko/planning/README.md b/docs/ko/planning/README.md index 98e5ccc..7ee746a 100644 --- a/docs/ko/planning/README.md +++ b/docs/ko/planning/README.md @@ -4,7 +4,7 @@ 문서 기준일: 2026-09-22, 설계 개정 1로 2026-09-27 개정, 설계 개정 2로 2026-09-30 개정. 기준 저장소: `/Volumes/DevData/Projects/IdeaProjects/DevGuard`. 이 문서 집합은 승인 설계를 구현 가능한 작업·도입 gate·시험·PR 경계로 구체화한다. 영문 문서가 편집 정본이며 이 문서는 검토된 한국어 번역이다. CodeSpace 소비 안내도 영어·한국어를 함께 유지한다. -**계약 기준은 DG-0 회계·영속성·fake backend 시험이다.** DG-1은 완료되었다. 여섯 구현 PR로 C01~C12를 전달했고, 측정한 호스트와 정책에서 release `0.1.0-6e7e065-94d85365`의 macOS SLO qualification을 마쳤다. CodeSpace 결합(CS-RG)은 정확히 한 조합에 대해 macOS에서 qualification을 마쳤고, Linux 강제 보호는 아직 qualification하지 않았다. 실제 이행 기록은 [DG-0](milestones/DG-0.md), 선택 근거와 immutable source는 [결정 기록](decisions.md)에 있다. +**계약 기준은 DG-0 회계·영속성·fake backend 시험이다.** DG-1은 완료되었다. 여섯 구현 PR로 C01~C12를 전달했고, 측정한 호스트와 정책에서 release `0.1.0-6e7e065-94d85365`의 macOS SLO qualification을 마쳤다. CodeSpace 결합(CS-RG)과 독립 Runner를 둔 Gateway 복구(P1-RECOVERY)는 각각 정확히 한 조합에 대해 macOS에서 qualification을 마쳤고, Linux 강제 보호는 아직 qualification하지 않았다. 실제 이행 기록은 [DG-0](milestones/DG-0.md), 선택 근거와 immutable source는 [결정 기록](decisions.md)에 있다. ## 읽는 순서와 문서 소유권 @@ -23,7 +23,7 @@ ## 마일스톤과 우선 경로 -> **상태:** 설계 개정 1의 실행 소유권 선택을 포함한 CS-RG는 CS-RG 통합 경계 재검증이 끝날 때까지 구현 지시로서 효력이 중지되며, 어떤 CS-RG 단위도 시작할 수 없습니다. CS-RG 계획의 표기를 참고하십시오. *2026-10-15 현재 상태:* 소유자는 2026-10-02에 이 효력 중지와 별도로 CS-RG 구현을 CodeSpace의 U1–U6 단위로 지시했습니다. U1부터 U6까지 병합·검증되었고, CS-RG는 정확히 한 조합에 대해 macOS에서 qualification을 마쳤습니다. 이 계획의 단위는 여전히 효력이 중지된 채 시작하지 않았습니다. P1-RECOVERY는 소유자 지시로 2026-10-14에 시작해 그 계획의 재기준대로 진행하며, P1R-C01부터 P1R-C05까지 병합·검증되었고 지금은 P1R-C06을 진행합니다. +> **상태:** 설계 개정 1의 실행 소유권 선택을 포함한 CS-RG는 CS-RG 통합 경계 재검증이 끝날 때까지 구현 지시로서 효력이 중지되며, 어떤 CS-RG 단위도 시작할 수 없습니다. CS-RG 계획의 표기를 참고하십시오. *2026-10-19 현재 상태:* 소유자는 2026-10-02에 이 효력 중지와 별도로 CS-RG 구현을 CodeSpace의 U1–U6 단위로 지시했습니다. U1부터 U6까지 병합·검증되었고, CS-RG는 정확히 한 조합에 대해 macOS에서 qualification을 마쳤습니다. 이 계획의 단위는 여전히 효력이 중지된 채 시작하지 않았습니다. P1-RECOVERY는 소유자 지시로 2026-10-14에 시작해 그 계획의 재기준대로 진행하며, P1R-C01부터 P1R-C06까지 병합·검증되었고, P1-RECOVERY는 정확히 한 조합에 대해 macOS에서 qualification을 마쳤습니다. ```mermaid flowchart LR @@ -45,7 +45,7 @@ DG-1은 독립 CLI/daemon·개발 workload·자기 적용을 검증한다. CS-RG | [DG-0](milestones/DG-0.md) | DevGuard | 실제 초기 commit 1개에 대한 이행 기록 | 과거 PR 재구성 없음 | 계약·fake backend 구현 | | [DG-1](milestones/DG-1.md) | DevGuard | 12 | 6 | 구현(C01–C12); release `0.1.0-6e7e065-94d85365`에 대해 macOS SLO qualified | | [CS-RG](milestones/CS-RG.md) | CodeSpace | 10 | 6 | 미착수 | -| [P1-RECOVERY](milestones/P1-RECOVERY.md) | CodeSpace | 6 | 3 | 미착수 | +| [P1-RECOVERY](milestones/P1-RECOVERY.md) | CodeSpace | 6 | 3 | 구현(C01–C06, 2026-10-14 재기준대로); 정확히 한 조합에 대해 macOS qualified | | [DG-LINUX](milestones/DG-LINUX.md) | DevGuard + CodeSpace | 6 | 3 | 미착수; 전체 제품 필수 | | [DG-CACHE](milestones/DG-CACHE.md) | DevGuard | 6 | 3 | 미착수; P1 선행 아님 | | [DG-ADAPTERS](milestones/DG-ADAPTERS.md) | DevGuard | 8 | 4 | 미착수; P1 선행 아님 | diff --git a/docs/ko/planning/consumer-readiness.md b/docs/ko/planning/consumer-readiness.md index de663b2..32ce2bb 100644 --- a/docs/ko/planning/consumer-readiness.md +++ b/docs/ko/planning/consumer-readiness.md @@ -2,7 +2,7 @@ > **상태: 구현 지시로서 효력 중지.** R3 CodeSpace runtime 항목과 CS-RG 단위를 인용한 gate는 효력이 중지된 CS-RG 작업에 의존하므로 구현 목표로 쓰지 않습니다. 나머지는 영향이 없습니다. CodeSpace 통합 계획에 대해 소유자가 지시한 검토인 CS-RG 통합 경계 재검증(작업 단위가 아닙니다)이 끝날 때까지 적용됩니다. 대체 구조는 승인되지 않았으며, 소유자가 재검증 결과를 검토한 뒤 결정합니다. 이 표기는 지시의 효력만 중지하며 어떤 안전 요구도 완화하지 않습니다. 아래 내용은 이력 추적을 위해 바꾸지 않고 남깁니다. -이 문서는 특정 언어나 제품에 독립적인 도입 gate다. DG-1은 측정한 호스트에서 release `0.1.0-6e7e065-94d85365`로 R2와 RS를 허용한다. 이 계획의 CSRG-C 단위 대신 CodeSpace의 소유자 지시 단위 U1–U6으로 2026-10-14에 qualification을 마친 CS-RG는 그 호스트에서 qualification한 조합과 모드에 R3을 허용한다([CodeSpace qualification 보고서](https://github.com/novelKR/CodeSpace/blob/241cf6c4ee95111a70f581319ac04ee16beaf94e/docs/cs-rg-qualification-report.md)). 실제 코드 경로를 대조한 소비자는 CodeSpace이며 다른 저장소의 구현 적합성까지 검증한 문서가 아니다. 구현 상태의 원본은 [milestones.json](../../../milestones.json), 선택 근거는 [decisions.md](decisions.md)다. +이 문서는 특정 언어나 제품에 독립적인 도입 gate다. DG-1은 측정한 호스트에서 release `0.1.0-6e7e065-94d85365`로 R2와 RS를 허용한다. 이 계획의 CSRG-C 단위 대신 CodeSpace의 소유자 지시 단위 U1–U6으로 2026-10-14에 qualification을 마친 CS-RG는 그 호스트에서 qualification한 조합과 모드에 R3을 허용한다([CodeSpace qualification 보고서](https://github.com/novelKR/CodeSpace/blob/241cf6c4ee95111a70f581319ac04ee16beaf94e/docs/cs-rg-qualification-report.md)). P1R-C06으로 2026-10-19에 qualification을 마친 P1-RECOVERY는 opt-in인 독립 Runner 모드(`uds`에 `--runner-lifecycle independent`)를, 그 호스트에서 qualification한 조합에 대해 R3의 qualification한 모드에 더한다([CodeSpace recovery qualification 보고서](https://github.com/novelKR/CodeSpace/blob/d0f2e49c1c4d14652172a87f95be4d67d25d0cf6/docs/recovery-qualification-report.md)). 실제 코드 경로를 대조한 소비자는 CodeSpace이며 다른 저장소의 구현 적합성까지 검증한 문서가 아니다. 구현 상태의 원본은 [milestones.json](../../../milestones.json), 선택 근거는 [decisions.md](decisions.md)다. ## 도입 수준 diff --git a/docs/ko/planning/milestones/P1-RECOVERY.md b/docs/ko/planning/milestones/P1-RECOVERY.md index 48e2062..f2ca324 100644 --- a/docs/ko/planning/milestones/P1-RECOVERY.md +++ b/docs/ko/planning/milestones/P1-RECOVERY.md @@ -1,6 +1,6 @@ # P1-RECOVERY — 독립 Runner 생존 중 Gateway 복구 -> *2026-10-15 현재 상태:* 소유자는 2026-10-14에 P1-RECOVERY 구현을 CodeSpace에서 P1R-C01부터 P1R-C06까지 단위마다 PR 하나로 차례로 진행하도록 지시했습니다. 각 단위는 앞 단위가 병합·검증된 뒤 소유자의 승인으로 시작합니다. P1R-C01부터 P1R-C05까지 병합·검증되었고(novelKR/CodeSpace#102부터 #105까지와 #108, CodeSpace `main` `dadb58c`), 지금 진행하는 단위는 P1R-C06입니다. 원장은 P1-RECOVERY를 `in-progress`, qualification `not-run`으로 기록하고, 새 모드는 P1R-C06의 qualification 전까지 지원 모드가 아닙니다. 아래 [재기준](#재기준-2026-10-14)이 이 계획의 나머지와 다르면 재기준을 따르며, 나머지는 이력으로 바꾸지 않고 남깁니다. +> *2026-10-19 현재 상태:* 소유자는 2026-10-14에 P1-RECOVERY 구현을 CodeSpace에서 P1R-C01부터 P1R-C06까지 단위마다 PR 하나로 차례로 진행하도록 지시했습니다. 각 단위는 앞 단위가 병합·검증된 뒤 소유자의 승인으로 시작합니다. P1R-C01부터 P1R-C06까지 병합·검증되었습니다(novelKR/CodeSpace#102부터 #105까지, #108과 #112, 하네스 수정 #113부터 #115까지). 이어서 P1R-C06은 CodeSpace의 고정 절차에 따라 정확히 한 조합으로 macOS에서 독립 Runner의 qualification을 마쳤습니다. 그 조합은 CodeSpace `1c0eadd`, DevGuard client `6e7e065`, CS-RG를 qualification한 정책의 release `0.1.0-6e7e065-94d85365`, 기록된 패치를 적용한 Codex `6b9826e`, Rust 1.95.0이고, runner 모드는 `--runner-lifecycle independent`와 운영자가 띄운 Runner를 쓴 `uds`(pipe와 PTY 실행)이며, 한 gateway 안의 `off`와 `required` workspace를 포함합니다([qualification 보고서](https://github.com/novelKR/CodeSpace/blob/d0f2e49c1c4d14652172a87f95be4d67d25d0cf6/docs/recovery-qualification-report.md), novelKR/CodeSpace#116). Linux `off`는 CI 기능 검증일 뿐이고, Linux `required`는 DG-LINUX 전까지, Runner 자체가 재시작한 뒤 프로세스를 되살리는 일은 계속 지원하지 않습니다. 이 모드는 계속 opt-in이며, 기본값으로 바꾸는 것은 별도 결정입니다. 원장은 P1-RECOVERY를 `implemented`, qualification `macos-qualified`로 기록합니다. 아래 [재기준](#재기준-2026-10-14)이 이 계획의 나머지와 다르면 재기준을 따르며, 나머지는 이력으로 바꾸지 않고 남깁니다. 소유 저장소: CodeSpace. 상태: `not-started` / `not-run`. 진입: CSRG-C08. 완료: 운영자 선택 모드에서 독립 Runner가 기존 프로세스·입출력·timeout을 계속 소유하고 Gateway 반복 재시작과 재연결을 복구한다. InProcess 및 Runner 자체 재시작 후 PTY 복원은 최초 범위에 포함하지 않는다. diff --git a/docs/ko/planning/verification.md b/docs/ko/planning/verification.md index 3854595..5c8f3c7 100644 --- a/docs/ko/planning/verification.md +++ b/docs/ko/planning/verification.md @@ -15,7 +15,7 @@ | V-CS-DOC | CodeSpace 한·영 registry/site | paired hash·기존 docs tests·고정 환경 build·integrity·화면 검토 | 기존 명령 제공 | | V-CS-UPSTREAM | CodeSpace 기존 Codex qualification | pin/policy/format/dependency/adapter/PTY/filesystem/platform gates | 기존 제공, 실제 platform별 수행 | | V-CS-RG | CodeSpace 결합 | CSRG-C00 실행 경계 적합성, 한 프로세스 안의 혼합 실행을 포함한 C07 모드 동등성, C09 backend 결정, C08 승인·replay·관제 포화 SLO | 대상 호스트에서 2026-10-14에 이 계획의 단위 대신 CodeSpace의 소유자 지시 단위 CSRG-U6으로 정확히 한 조합에 대해 qualified([qualification 보고서](https://github.com/novelKR/CodeSpace/blob/241cf6c4ee95111a70f581319ac04ee16beaf94e/docs/cs-rg-qualification-report.md)): 두 runner 모드와 pipe·PTY의 기능 행렬, 장애, authority 장애, 관제 경로 SLO, 한 gateway 안의 혼합 실행, 기존 `off` 경로 결정 | -| V-P1 | 독립 Runner+Gateway 재시작 | P1R-C06의 동일 실행·fence·timeout·출력/unknown | 미구현 | +| V-P1 | 독립 Runner+Gateway 재시작 | P1R-C06의 동일 실행·fence·timeout·출력/unknown | 대상 호스트에서 2026-10-19에 P1R-C06으로 정확히 한 조합에 대해 qualified, 재시작 측정은 2026-10-18([qualification 보고서](https://github.com/novelKR/CodeSpace/blob/d0f2e49c1c4d14652172a87f95be4d67d25d0cf6/docs/recovery-qualification-report.md)): `off`와 `required`의 기능 suite 다섯, idle과 부하 구간의 Gateway 반복 재시작(각 3회), pipe·PTY, 한 gateway 안의 `off`와 `required` workspace, 같은 후보에서 다시 돌린 CS-RG suite. Runner 자체가 재시작한 뒤 프로세스를 되살리는 일은 계속 미지원 | | V-LINUX | 실제 Linux scope와 제품 조합 | DGL-C05/C06 controller·ancestor·권한·자손·SLO | 미구현; fake cgroup과 분리 | | V-CACHE / V-ADAPTER | cache/tool/executor | DGC-C06, DGA-C02/C04/C06/C08의 해당 조합 | 미구현 | diff --git a/docs/milestones.md b/docs/milestones.md index 6b9e072..05b1703 100644 --- a/docs/milestones.md +++ b/docs/milestones.md @@ -9,7 +9,7 @@ The [detailed planning index](planning/README.md) owns the 48 proposed commit un | DG-0 | Independent repository, approved design, resource and compatibility contracts, durable state transitions, fake-backend fault tests, reproducible 1.95.0 validation | Implemented; use the exact-source qualification report for validation status | | DG-1 | Real macOS host probes, daemon and CLI, launch gate, Cargo/generic adapters, parent-budget candidate tests, safe service update/repair, three measured SLO runs per target backend | Implemented: C01 configuration/storage, C02 authenticated foreground transport, C03 native boot/process/pressure evidence, C04 cooperative policy/scope evidence, C05 fenced launch helper, C06 reconciliation, C07 command-line owner, C08 Cargo adapters, C09 installation as the current user's LaunchAgent, C10 parent leases with candidate authorities, C11 upgrade and repair and C12 the SLO qualification harness. The macOS SLO is qualified for release `0.1.0-6e7e065-94d85365` on the measured host and policy (measured 2026-10-13, after `0.1.0-5daee5d-b3fa569e` on 2026-09-26); Linux is not qualified | | CS-RG | Execution-boundary fitness (C00), full-SHA consumer pin, a common execution supervisor with pre-spawn slots and one reaper, PrepareExec/ExecPrepared, approval preservation, bounded control/data lanes, output and replay, InProcess/UDS and pipe/PTY parity, the legacy-backend decision (C09) and upstream regression qualification of the resulting head | Implemented, and qualified on macOS for one exact combination: implemented in CodeSpace as the owner-directed units U1–U6 (2026-10-02), outside the suspended C-series plan, all merged and verified (CodeSpace #82, #83, #84, #88, #90 and #92, the governed PTY observer #93 and #95, and for U6 #97, #98 and #99). U6 qualified CodeSpace `ca306ee` with DevGuard's client `6e7e065`, release `0.1.0-6e7e065-94d85365` and Codex `6b9826e` with its recorded patch, in the runner modes `in-process` and `uds`, pipe and PTY ([qualification report](https://github.com/novelKR/CodeSpace/blob/241cf6c4ee95111a70f581319ac04ee16beaf94e/docs/cs-rg-qualification-report.md)); Linux `required` stays unsupported until DG-LINUX | -| P1-RECOVERY | Opt-in Gateway restart/reconnection while an independent Runner retains processes and I/O; reconcile workspace, approvals and DevGuard leases | In progress, not qualified: implemented in CodeSpace one pull request per unit on the owner's direction of 2026-10-14, as re-baselined in its [plan](planning/milestones/P1-RECOVERY.md#re-baseline-2026-10-14); P1R-C01 to P1R-C05 are merged and verified (CodeSpace #102 to #105 and #108), and P1R-C06 is the active unit. InProcess and Runner-loss I/O restoration excluded | +| P1-RECOVERY | Opt-in Gateway restart/reconnection while an independent Runner retains processes and I/O; reconcile workspace, approvals and DevGuard leases | Implemented, and qualified on macOS for one exact combination: implemented in CodeSpace one pull request per unit on the owner's direction of 2026-10-14, as re-baselined in its [plan](planning/milestones/P1-RECOVERY.md#re-baseline-2026-10-14), all merged and verified (CodeSpace #102 to #105, #108 and #112, with the follow-ups #106, #111 and #113 to #115, and the report #116). P1R-C06 qualified CodeSpace `1c0eadd` with DevGuard's client `6e7e065`, release `0.1.0-6e7e065-94d85365` and Codex `6b9826e` with its recorded patch, in the runner mode `uds` with `--runner-lifecycle independent` and a Runner the operator starts, pipe and PTY, `off` and `required` ([qualification report](https://github.com/novelKR/CodeSpace/blob/d0f2e49c1c4d14652172a87f95be4d67d25d0cf6/docs/recovery-qualification-report.md)). The mode stays opt-in. Linux `required` stays unsupported until DG-LINUX, and InProcess and restoring processes after the Runner itself restarts are excluded | | DG-LINUX | Actual Linux controller, ancestor capacity, complete sandbox/proxy scope, control protection and reclaim evidence | Not started; required for product completion | | DG-CACHE | Registered-root lease/reclaim exclusion, protected artifacts/evidence, interrupted trash sweep and measured physical recovery | Not started; not a P1 prerequisite | | DG-ADAPTERS | Tool-specific Python, Node/Bun, make/ninja and container/VM verification, without language branches in core | Not started; not a P1 prerequisite | diff --git a/docs/planning/README.md b/docs/planning/README.md index a60b326..ba818b1 100644 --- a/docs/planning/README.md +++ b/docs/planning/README.md @@ -5,7 +5,7 @@ Reference date: 2026-09-22; revised 2026-09-27 by design revision 1 and 2026-09-30 by design revision 2. Repository: `/Volumes/DevData/Projects/IdeaProjects/DevGuard`. English is the authoritative editorial source. [Reviewed Korean translations](../ko/planning/README.md) are maintained through the [translation registry](../translations.json). -The contract baseline is DG-0: accounting, persistence and fake-backend tests. DG-1 is complete: its six implementation PRs delivered C01–C12, and its macOS SLO is qualified for release `0.1.0-6e7e065-94d85365` on the measured host and policy. CodeSpace's integration (CS-RG) is qualified on macOS for one exact combination; Linux enforcement remains unqualified. The [ledger](../../milestones.json) owns milestone IDs, dependencies and status. Individual milestone documents own work IDs, commit boundaries, tests, evidence and rollback. +The contract baseline is DG-0: accounting, persistence and fake-backend tests. DG-1 is complete: its six implementation PRs delivered C01–C12, and its macOS SLO is qualified for release `0.1.0-6e7e065-94d85365` on the measured host and policy. CodeSpace's integration (CS-RG) and its Gateway recovery with an independent Runner (P1-RECOVERY) are each qualified on macOS for one exact combination; Linux enforcement remains unqualified. The [ledger](../../milestones.json) owns milestone IDs, dependencies and status. Individual milestone documents own work IDs, commit boundaries, tests, evidence and rollback. ## Reading order and ownership @@ -22,7 +22,7 @@ The contract baseline is DG-0: accounting, persistence and fake-backend tests. D ## Dependencies -> **Status:** CS-RG, including design revision 1's execution-ownership choices, is suspended as an implementation directive while the CS-RG integration-boundary revalidation is pending; no CS-RG unit may start. See the notice in the CS-RG plan. *Current state, 2026-10-15:* the owner directed CS-RG implementation as units U1–U6 in CodeSpace on 2026-10-02, outside this suspension; U1 to U6 are merged and verified, and CS-RG is qualified on macOS for one exact combination. This plan's units remain suspended and not started. P1-RECOVERY started on the owner's direction of 2026-10-14, as re-baselined in its plan; P1R-C01 to P1R-C05 are merged and verified, and P1R-C06 is active. +> **Status:** CS-RG, including design revision 1's execution-ownership choices, is suspended as an implementation directive while the CS-RG integration-boundary revalidation is pending; no CS-RG unit may start. See the notice in the CS-RG plan. *Current state, 2026-10-19:* the owner directed CS-RG implementation as units U1–U6 in CodeSpace on 2026-10-02, outside this suspension; U1 to U6 are merged and verified, and CS-RG is qualified on macOS for one exact combination. This plan's units remain suspended and not started. P1-RECOVERY started on the owner's direction of 2026-10-14, as re-baselined in its plan; P1R-C01 to P1R-C06 are merged and verified, and P1-RECOVERY is qualified on macOS for one exact combination. ```mermaid flowchart LR @@ -44,7 +44,7 @@ Design revision 1 (2026-09-27) makes CodeSpace's execution state and ownership c | [DG-0](milestones/DG-0.md) | DevGuard | One actual initial commit, documented retrospectively | No invented historical PRs | Implemented contract/fake scope | | [DG-1](milestones/DG-1.md) | DevGuard | 12 | 6 | Implemented (C01–C12); macOS SLO qualified for release `0.1.0-6e7e065-94d85365` | | [CS-RG](milestones/CS-RG.md) | CodeSpace | 10 | 6 | Not started | -| [P1-RECOVERY](milestones/P1-RECOVERY.md) | CodeSpace | 6 | 3 | Not started | +| [P1-RECOVERY](milestones/P1-RECOVERY.md) | CodeSpace | 6 | 3 | Implemented (C01–C06, as re-baselined on 2026-10-14); qualified on macOS for one exact combination | | [DG-LINUX](milestones/DG-LINUX.md) | DevGuard and CodeSpace | 6 | 3 | Not started; required overall | | [DG-CACHE](milestones/DG-CACHE.md) | DevGuard | 6 | 3 | Not started; not a P1 prerequisite | | [DG-ADAPTERS](milestones/DG-ADAPTERS.md) | DevGuard | 8 | 4 | Not started; not a P1 prerequisite | diff --git a/docs/planning/consumer-readiness.md b/docs/planning/consumer-readiness.md index 36153dd..484361c 100644 --- a/docs/planning/consumer-readiness.md +++ b/docs/planning/consumer-readiness.md @@ -2,7 +2,7 @@ > **Status: suspended as an implementation directive.** The R3 CodeSpace runtime entry and the gates that cite CS-RG units depend on suspended CS-RG work and must not be used as implementation targets; the rest of this document is unaffected. This is pending the CS-RG integration-boundary revalidation, an owner-directed review of the CodeSpace integration plan; it is not a work unit. No replacement architecture has been approved; the owner decides after reviewing its results. This notice suspends directives only and relaxes no safety requirement. The text below is retained unchanged for historical traceability. -These gates are language/product independent. Only CodeSpace's actual code paths have been inspected. The [ledger](../../milestones.json) owns implementation status; [decisions](decisions.md) own rationale. DG-1 now permits R2 and RS on the measured host with release `0.1.0-6e7e065-94d85365`; CS-RG, qualified on 2026-10-14 through CodeSpace's owner-directed units U1–U6 instead of this plan's CSRG-C units, permits R3 for its qualified combination and modes on that host ([CodeSpace's qualification report](https://github.com/novelKR/CodeSpace/blob/241cf6c4ee95111a70f581319ac04ee16beaf94e/docs/cs-rg-qualification-report.md)). +These gates are language/product independent. Only CodeSpace's actual code paths have been inspected. The [ledger](../../milestones.json) owns implementation status; [decisions](decisions.md) own rationale. DG-1 now permits R2 and RS on the measured host with release `0.1.0-6e7e065-94d85365`; CS-RG, qualified on 2026-10-14 through CodeSpace's owner-directed units U1–U6 instead of this plan's CSRG-C units, permits R3 for its qualified combination and modes on that host ([CodeSpace's qualification report](https://github.com/novelKR/CodeSpace/blob/241cf6c4ee95111a70f581319ac04ee16beaf94e/docs/cs-rg-qualification-report.md)). P1-RECOVERY, qualified on 2026-10-19 by P1R-C06, adds the opt-in independent Runner mode, `uds` with `--runner-lifecycle independent`, to R3's qualified modes for its combination on that host ([CodeSpace's recovery qualification report](https://github.com/novelKR/CodeSpace/blob/d0f2e49c1c4d14652172a87f95be4d67d25d0cf6/docs/recovery-qualification-report.md)). ## Adoption levels diff --git a/docs/planning/milestones/P1-RECOVERY.md b/docs/planning/milestones/P1-RECOVERY.md index bb72bde..81d0c4a 100644 --- a/docs/planning/milestones/P1-RECOVERY.md +++ b/docs/planning/milestones/P1-RECOVERY.md @@ -1,6 +1,6 @@ # P1-RECOVERY — Gateway recovery with a surviving independent Runner -> *Current state, 2026-10-15:* on 2026-10-14 the owner directed P1-RECOVERY's implementation in CodeSpace, one pull request per unit from P1R-C01 to P1R-C06, in order. Each unit starts on the owner's approval after the previous one is merged and verified. P1R-C01 to P1R-C05 are merged and verified (novelKR/CodeSpace#102 to #105 and #108, CodeSpace `main` `dadb58c`), and P1R-C06 is the active unit. The ledger records P1-RECOVERY as `in-progress`, qualification `not-run`, and the new mode is not a supported mode until P1R-C06 qualifies it. Where the [re-baseline](#re-baseline-2026-10-14) below differs from the rest of this plan, the re-baseline applies; the rest is kept unchanged as history. +> *Current state, 2026-10-19:* on 2026-10-14 the owner directed P1-RECOVERY's implementation in CodeSpace, one pull request per unit from P1R-C01 to P1R-C06, in order. Each unit starts on the owner's approval after the previous one is merged and verified. P1R-C01 to P1R-C06 are merged and verified (novelKR/CodeSpace#102 to #105, #108 and #112, with the harness fixes #113 to #115). P1R-C06 then qualified the independent Runner on macOS for one exact combination under CodeSpace's frozen protocol: CodeSpace `1c0eadd`, DevGuard's client `6e7e065`, the release `0.1.0-6e7e065-94d85365` under the policy CS-RG was qualified with, Codex `6b9826e` with its recorded patch and Rust 1.95.0, in the runner mode `uds` with `--runner-lifecycle independent` and a Runner the operator starts, with pipe and PTY executions and with `off` and `required` workspaces in one gateway ([qualification report](https://github.com/novelKR/CodeSpace/blob/d0f2e49c1c4d14652172a87f95be4d67d25d0cf6/docs/recovery-qualification-report.md), novelKR/CodeSpace#116). Linux `off` is CI functional verification only, Linux `required` stays unsupported until DG-LINUX, and restoring processes after the Runner itself restarts stays unsupported. The mode stays opt-in; making it the default is a separate decision. The ledger records P1-RECOVERY as `implemented`, qualification `macos-qualified`. Where the [re-baseline](#re-baseline-2026-10-14) below differs from the rest of this plan, the re-baseline applies; the rest is kept unchanged as history. Owner: CodeSpace. Baseline implementation: `not-started`; qualification: `not-run`. Entry: CSRG-C08. Completion: Qualify repeated Gateway restart/reconnect while the same independent Runner retains processes, I/O and original deadlines. Preserve existing modes; exclude InProcess and I/O restoration after Runner restart. diff --git a/docs/planning/verification.md b/docs/planning/verification.md index ebb99fc..9d6bc3d 100644 --- a/docs/planning/verification.md +++ b/docs/planning/verification.md @@ -15,7 +15,7 @@ Preserve the approved [design SLOs](../design.md#verification-and-promotion). De | V-CS-DOC | CodeSpace bilingual registry/site | Reviewed hashes, existing tests, pinned build, integrity and visual review | Existing commands | | V-CS-UPSTREAM | Existing Codex integration | Pin/policy/format/dependencies/adapter/PTY/filesystem/platform gates | Existing; actual platforms required | | V-CS-RG | Integrated CodeSpace | CSRG-C00 boundary fitness, C07 parity including mixed execution in one process, the C09 backend decision, and C08 approvals, replay and saturation SLO | Qualified on the target host on 2026-10-14 for one exact combination by CodeSpace's owner-directed unit CSRG-U6 instead of these planned units ([qualification report](https://github.com/novelKR/CodeSpace/blob/241cf6c4ee95111a70f581319ac04ee16beaf94e/docs/cs-rg-qualification-report.md)): functional matrix, faults, authority failure and the control-path SLO in both runner modes, pipe and PTY, mixed execution in one gateway, and the legacy `off` path decision | -| V-P1 | Independent Runner/Gateway recovery | P1R-C06 identity, fencing, deadlines and output/unknown | Future | +| V-P1 | Independent Runner/Gateway recovery | P1R-C06 identity, fencing, deadlines and output/unknown | Qualified on the target host on 2026-10-19 for one exact combination by P1R-C06, with the restart measurement of 2026-10-18 ([qualification report](https://github.com/novelKR/CodeSpace/blob/d0f2e49c1c4d14652172a87f95be4d67d25d0cf6/docs/recovery-qualification-report.md)): the five functional suites with `off` and `required`, repeated Gateway restarts in idle and loaded intervals, three repetitions each, pipe and PTY, `off` and `required` workspaces in one gateway, and CS-RG's suites again on the same candidate; restoring processes after the Runner itself restarts stays unsupported | | V-LINUX | Actual Linux scopes/product | DGL-C05/C06 controllers, ancestors, privileges, descendants and SLO | Future; fake cgroups do not qualify | | V-CACHE / V-ADAPTER | Cache/tools/executors | DGC-C06; DGA-C02/C04/C06/C08 supported combinations | Future | diff --git a/docs/translations.json b/docs/translations.json index b1ca9ec..3c51e4a 100644 --- a/docs/translations.json +++ b/docs/translations.json @@ -28,8 +28,8 @@ "id": "planning-readme", "source": "docs/planning/README.md", "translation": "docs/ko/planning/README.md", - "reviewed_source_sha256": "6d35c252ddef36c799c0f0d941570c9ad9bb203d302997a4cbff62b9e3358c45", - "reviewed_translation_sha256": "e25aeffb9b2a560b78ec5438061c830c1f9dbee65830c526a6b9ed7881cd1e14" + "reviewed_source_sha256": "4ddd770fb0bf2e9f32fe6e44acfaf691c301fdb4aa575abfc49fb47320fc3708", + "reviewed_translation_sha256": "cd923917d99877c655fb0d2273ff3579ea161fc92289e373e808ef9b95fb8fa9" }, { "id": "planning-codespace-integration", @@ -42,8 +42,8 @@ "id": "planning-consumer-readiness", "source": "docs/planning/consumer-readiness.md", "translation": "docs/ko/planning/consumer-readiness.md", - "reviewed_source_sha256": "7c2a2c56b4d82f176933852ddf521a8f61028413427e23cb04d2a8285cf04f90", - "reviewed_translation_sha256": "de95384d9a0a59349bb687aba97afe8707533fd9fe0834a173c058c75ed4734f" + "reviewed_source_sha256": "760a60cffb0e57ee66a1f68bbf7f0e3ba9e052f0ffd958216f4ddd05a9d449b6", + "reviewed_translation_sha256": "8c450331feda4bb4c22cfc867438e4494cc79e7c1264d9560c7935227499fee5" }, { "id": "planning-decisions", @@ -98,8 +98,8 @@ "id": "planning-milestones-p1-recovery", "source": "docs/planning/milestones/P1-RECOVERY.md", "translation": "docs/ko/planning/milestones/P1-RECOVERY.md", - "reviewed_source_sha256": "adfa84758db9b793381a7a04f76403751c8180b81a1530b16b736a4d79ae374d", - "reviewed_translation_sha256": "fe62c68770449ec7f0ea67297c42dc222c1b48380d674774989880473aa29bd7" + "reviewed_source_sha256": "d24befc7d1e93ef100622ec21cc64e1d839282a206a76f958ffdc1f7e8a6a75a", + "reviewed_translation_sha256": "a39453381b99cbf52e96fcf6cb68a65d44f369d2b80c852a2de632be2cbba814" }, { "id": "planning-pr-delivery", @@ -112,8 +112,8 @@ "id": "planning-verification", "source": "docs/planning/verification.md", "translation": "docs/ko/planning/verification.md", - "reviewed_source_sha256": "a2d35a4f5f3f733ad01514a613c3ab36801be467502e7707ee9b836bcc946d0b", - "reviewed_translation_sha256": "13f7ed4b423f7bd8110fb3942dc9d2d0ead667f06f644ee85e4e6013d14f99c6" + "reviewed_source_sha256": "8a2bea6957737316dbdb44b47c88920bb062000a073dbfec51c0fcaeb014195a", + "reviewed_translation_sha256": "a787e457c2e947d031c891139fdc4d48ae4501a4694bebe108f33c684064acd9" }, { "id": "operations", diff --git a/milestones.json b/milestones.json index 8c2e1ea..5864d17 100644 --- a/milestones.json +++ b/milestones.json @@ -8,7 +8,7 @@ {"id": "DG-0", "owner": "DevGuard", "requires": [], "design_status": "accepted", "implementation_status": "implemented", "qualification": "report-required", "report_command": "python3 scripts/validate.py", "planning_document": "docs/planning/milestones/DG-0.md"}, {"id": "DG-1", "owner": "DevGuard", "requires": ["DG-0"], "design_status": "accepted", "implementation_status": "implemented", "qualification": "macos-qualified", "qualified_release": "0.1.0-6e7e065-94d85365", "planning_document": "docs/planning/milestones/DG-1.md"}, {"id": "CS-RG", "owner": "CodeSpace", "requires": ["DG-1"], "design_status": "accepted", "implementation_status": "implemented", "qualification": "macos-qualified", "qualified_combination": {"codespace": "ca306eeaec42818c5fdb2a6ca3b6765507e8af8c", "devguard_client": "6e7e065a0dd5b3876dc7f4546ab76069489937d1", "devguard_release": "0.1.0-6e7e065-94d85365", "codex": "6b9826e3aa83b1a5947db50f4332cb9c65f1b340", "codex_patched_tree": "1999937194e3a68d982be85679557f0e50fe5408", "rust": "1.95.0", "runner_modes": ["in-process", "uds"]}, "planning_document": "docs/planning/milestones/CS-RG.md", "units": {"directed": "2026-10-02", "as_of": "2026-10-14", "CSRG-U1": "merged-verified", "CSRG-U1-hardening": "merged-verified", "CSRG-U2": "merged-verified", "CSRG-U3": "merged-verified", "CSRG-U4": "merged-verified", "CSRG-U5": "merged-verified", "CSRG-U6": "merged-verified"}}, - {"id": "P1-RECOVERY", "owner": "CodeSpace", "requires": ["CS-RG"], "design_status": "accepted", "implementation_status": "in-progress", "qualification": "not-run", "planning_document": "docs/planning/milestones/P1-RECOVERY.md", "units": {"directed": "2026-10-14", "as_of": "2026-10-15", "P1R-C01": "merged-verified", "P1R-C02": "merged-verified", "P1R-C03": "merged-verified", "P1R-C04": "merged-verified", "P1R-C05": "merged-verified", "P1R-C06": "active"}}, + {"id": "P1-RECOVERY", "owner": "CodeSpace", "requires": ["CS-RG"], "design_status": "accepted", "implementation_status": "implemented", "qualification": "macos-qualified", "qualified_combination": {"codespace": "1c0eaddd81fdd17d35da673b0c8fbe750fe4ac60", "devguard_client": "6e7e065a0dd5b3876dc7f4546ab76069489937d1", "devguard_release": "0.1.0-6e7e065-94d85365", "codex": "6b9826e3aa83b1a5947db50f4332cb9c65f1b340", "codex_patched_tree": "1999937194e3a68d982be85679557f0e50fe5408", "rust": "1.95.0", "runner_modes": ["uds"], "runner_lifecycle": "independent"}, "planning_document": "docs/planning/milestones/P1-RECOVERY.md", "units": {"directed": "2026-10-14", "as_of": "2026-10-19", "P1R-C01": "merged-verified", "P1R-C02": "merged-verified", "P1R-C03": "merged-verified", "P1R-C04": "merged-verified", "P1R-C05": "merged-verified", "P1R-C06": "merged-verified"}}, {"id": "DG-LINUX", "owner": "DevGuard + CodeSpace", "requires": ["CS-RG"], "design_status": "accepted", "implementation_status": "not-started", "qualification": "not-run", "required_for_product_completion": true, "planning_document": "docs/planning/milestones/DG-LINUX.md"}, {"id": "DG-CACHE", "owner": "DevGuard", "requires": ["DG-1"], "design_status": "accepted", "implementation_status": "not-started", "qualification": "not-run", "planning_document": "docs/planning/milestones/DG-CACHE.md"}, {"id": "DG-ADAPTERS", "owner": "DevGuard", "requires": ["DG-1"], "design_status": "accepted", "implementation_status": "not-started", "qualification": "not-run", "planning_document": "docs/planning/milestones/DG-ADAPTERS.md"}