diff --git a/README.md b/README.md index ae612ff..a67fd44 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ DevGuard centralizes resource admission for development workloads while preserving the resources needed to inspect and stop them. -The repository implements **DG-0 contracts and a durable authority core** and **DG-1**, whose macOS SLO is qualified for release `0.1.0-5daee5d-b3fa569e` on the measured host and policy. C01 supplies canonical paths/bootstrap/storage checks; C02 supplies authenticated, bounded local communication with a small client and private credential-FD transfer; C03 supplies the native macOS boot clock, process identity and host pressure evidence that activate the service's journal; C04 supplies cooperative QoS/nice application with readback and observed process-group scope evidence; C05 supplies registration over the wire and the fenced `devguard-launch` helper; C06 supplies reconciliation, and with native evidence the service opens all three; C07 supplies the `devguard` command-line owner with doctor diagnostics, receipts and explicit bounded waits; C08 supplies the Cargo adapters, which fit compiler jobs to the reservation and share one jobserver; C09 installs a packaged release as the current user's LaunchAgent, selected only after launchd is verified to run it; C10 supplies parent leases, whose children are admitted only against the lease, and candidate authorities bounded by them; C11 supplies upgrade and repair that drain charged work, back up the journal and verify the new release before admission reopens; C12 supplies the SLO qualification harness: a control probe, bounded workloads and a foreground browser fixture measured under a fixed protocol, with promotion of a qualified release. PR and post-merge main delivery evidence is tracked separately from implementation. Linux cgroups are not yet available. Use the operating guide for actual command availability; the design also contains future interfaces. +The repository implements **DG-0 contracts and a durable authority core** and **DG-1**, whose macOS SLO is qualified for release `0.1.0-6e7e065-94d85365` on the measured host and policy. C01 supplies canonical paths/bootstrap/storage checks; C02 supplies authenticated, bounded local communication with a small client and private credential-FD transfer; C03 supplies the native macOS boot clock, process identity and host pressure evidence that activate the service's journal; C04 supplies cooperative QoS/nice application with readback and observed process-group scope evidence; C05 supplies registration over the wire and the fenced `devguard-launch` helper; C06 supplies reconciliation, and with native evidence the service opens all three; C07 supplies the `devguard` command-line owner with doctor diagnostics, receipts and explicit bounded waits; C08 supplies the Cargo adapters, which fit compiler jobs to the reservation and share one jobserver; C09 installs a packaged release as the current user's LaunchAgent, selected only after launchd is verified to run it; C10 supplies parent leases, whose children are admitted only against the lease, and candidate authorities bounded by them; C11 supplies upgrade and repair that drain charged work, back up the journal and verify the new release before admission reopens; C12 supplies the SLO qualification harness: a control probe, bounded workloads and a foreground browser fixture measured under a fixed protocol, with promotion of a qualified release. PR and post-merge main delivery evidence is tracked separately from implementation. Linux cgroups are not yet available. Use the operating guide for actual command availability; the design also contains future interfaces. - [Authoritative design reference](docs/design.md) · [Korean translation](docs/ko/design.md) - [Historical approved design (Korean, immutable)](docs/design.ko.md) diff --git a/docs/ko/planning/README.md b/docs/ko/planning/README.md index f0bd88b..6696bf4 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-5daee5d-b3fa569e`의 macOS SLO qualification을 마쳤다. Linux 강제 보호와 CodeSpace 결합은 아직 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을 마쳤다. Linux 강제 보호와 CodeSpace 결합은 아직 qualification하지 않았다. 실제 이행 기록은 [DG-0](milestones/DG-0.md), 선택 근거와 immutable source는 [결정 기록](decisions.md)에 있다. ## 읽는 순서와 문서 소유권 @@ -43,7 +43,7 @@ DG-1은 독립 CLI/daemon·개발 workload·자기 적용을 검증한다. CS-RG | 마일스톤 | 소유 | 예정 작업 commit 수 | 예정 PR 묶음 수 | 현재 구현 | | --- | --- | --- | --- | --- | | [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-5daee5d-b3fa569e`에 대해 macOS SLO qualified | +| [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 | 미착수 | | [DG-LINUX](milestones/DG-LINUX.md) | DevGuard + CodeSpace | 6 | 3 | 미착수; 전체 제품 필수 | diff --git a/docs/ko/planning/consumer-readiness.md b/docs/ko/planning/consumer-readiness.md index 48d35a5..0ef9838 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-5daee5d-b3fa569e`로 R2와 RS를 허용하며, R3에는 여전히 CS-RG가 필요하며, 그 첫 묶음 CSRG-P0은 CSP-D04가 전달된 뒤 시작한다([PR 전달](pr-delivery.md)). 실제 코드 경로를 대조한 소비자는 CodeSpace이며 다른 저장소의 구현 적합성까지 검증한 문서가 아니다. 구현 상태의 원본은 [milestones.json](../../../milestones.json), 선택 근거는 [decisions.md](decisions.md)다. +이 문서는 특정 언어나 제품에 독립적인 도입 gate다. DG-1은 측정한 호스트에서 release `0.1.0-6e7e065-94d85365`로 R2와 RS를 허용하며, R3에는 여전히 CS-RG가 필요하며, 그 첫 묶음 CSRG-P0은 CSP-D04가 전달된 뒤 시작한다([PR 전달](pr-delivery.md)). 실제 코드 경로를 대조한 소비자는 CodeSpace이며 다른 저장소의 구현 적합성까지 검증한 문서가 아니다. 구현 상태의 원본은 [milestones.json](../../../milestones.json), 선택 근거는 [decisions.md](decisions.md)다. ## 도입 수준 diff --git a/docs/ko/planning/milestones/CS-RG.md b/docs/ko/planning/milestones/CS-RG.md index 00326c8..2d0ea9e 100644 --- a/docs/ko/planning/milestones/CS-RG.md +++ b/docs/ko/planning/milestones/CS-RG.md @@ -2,7 +2,7 @@ > **상태: 구현 지시로서 효력 중지.** 이 계획의 작업 단위, 특히 CSRG-C00·CSRG-C03·CSRG-C09와 이들이 전제한 CodeSpace 소유 관리형 실행 전송은 구현하지 않습니다. 다른 단위는 모두 CSRG-C00에 의존하므로 어떤 CS-RG 단위도 시작할 수 없습니다. CodeSpace 통합 계획에 대해 소유자가 지시한 검토인 CS-RG 통합 경계 재검증(작업 단위가 아닙니다)이 끝날 때까지 적용됩니다. 대체 구조는 승인되지 않았으며, 소유자가 재검증 결과를 검토한 뒤 결정합니다. 이 표기는 지시의 효력만 중지하며 어떤 안전 요구도 완화하지 않습니다. 아래 내용은 이력 추적을 위해 바꾸지 않고 남깁니다. > -> *2026-10-12 현재 상태:* 소유자는 2026-10-02에 이 효력 중지와 별도로 CS-RG 구현을 CodeSpace의 U1–U6 단위로 지시했으며, 이 효력 중지는 이 계획의 단위에 계속 적용됩니다. U1과 그 보강, U2, U3, U4, U5는 병합·검증되었고 U6이 진행 중인 단위입니다. 2026-10-12부터 관리 PTY 실행도 관리 pipe 실행처럼 회수 전에 관찰하며, 고정된 Codex에 얹은 기록된 패치를 씁니다(novelKR/CodeSpace#93과 novelKR/CodeSpace#95, CodeSpace main `181a020`). 이는 2026-10-11 소유자의 선택입니다. 그 전까지 U5는 PTY 실행을 Codex가 회수한 뒤에만 관찰했습니다. 원장은 CS-RG를 `in-progress`, qualification `not-run`으로 기록합니다. 아래의 기준 상태는 시작하지 않은 이 계획의 단위에 대한 것입니다. +> *2026-10-13 현재 상태:* 소유자는 2026-10-02에 이 효력 중지와 별도로 CS-RG 구현을 CodeSpace의 U1–U6 단위로 지시했으며, 이 효력 중지는 이 계획의 단위에 계속 적용됩니다. U1과 그 보강, U2, U3, U4, U5는 병합·검증되었고 U6이 진행 중인 단위입니다. 2026-10-12부터 관리 PTY 실행도 관리 pipe 실행처럼 회수 전에 관찰하며, 고정된 Codex에 얹은 기록된 패치를 씁니다(novelKR/CodeSpace#93과 novelKR/CodeSpace#95, CodeSpace main `181a020`). 이는 2026-10-11 소유자의 선택입니다. 그 전까지 U5는 PTY 실행을 Codex가 회수한 뒤에만 관찰했습니다. 2026-10-13에는 설치된 release `0.1.0-6e7e065-94d85365`(CodeSpace의 DevGuard client pin `6e7e065`에서 빌드)의 DG-1 SLO를 CodeSpace의 `codespace` 소비자를 더한 정책에서 다시 측정했고, 그 release를 승격했습니다. U6은 이 release를 기준으로 CS-RG를 qualification합니다. 원장은 CS-RG를 `in-progress`, qualification `not-run`으로 기록합니다. 아래의 기준 상태는 시작하지 않은 이 계획의 단위에 대한 것입니다. 소유 저장소: CodeSpace. 상태: `not-started` / `not-run`. 진입: DG1-C12의 검증된 macOS 조합과 설계 개정 1의 CodeSpace 대응 문서 CSP-D04의 전달([PR 전달](../pr-delivery.md)). DG1-C12는 완료되었고, macOS qualification을 마친 release `0.1.0-5daee5d-b3fa569e`가 pin 후보다. 계약 검토·adapter 초안은 앞서 준비할 수 있지만 일상 `required` 소비 자격을 앞당기지 않는다. 완료: CSRG-C09의 backend 결정 뒤 남은 head에서 고정 client·artifact·wire 조합이 기존 권한/승인/workspace/PTY 계약과 관제 SLO를 함께 통과. diff --git a/docs/ko/planning/milestones/DG-1.md b/docs/ko/planning/milestones/DG-1.md index ed9f2f0..9873044 100644 --- a/docs/ko/planning/milestones/DG-1.md +++ b/docs/ko/planning/milestones/DG-1.md @@ -1,6 +1,6 @@ # DG-1 — macOS 개발 적용과 자기 적용 -소유 저장소: DevGuard. 현재 구현 상태: `implemented`(C01–C12) / qualification: 측정한 호스트와 정책에서 release `0.1.0-5daee5d-b3fa569e`에 대해 macOS `qualified`, Linux `not-run`. 진입: DG-0 정확한 source의 계약 검증. 종료: 실제 macOS 실행·회수, generic/Cargo 소비, 상위 예산 안의 후보 시험, 독립 복구, 개발·foreground SLO를 통과한 artifact/정책/환경 조합 확보. +소유 저장소: DevGuard. 현재 구현 상태: `implemented`(C01–C12) / qualification: 측정한 호스트와 정책에서 release `0.1.0-6e7e065-94d85365`에 대해 macOS `qualified`, Linux `not-run`. 진입: DG-0 정확한 source의 계약 검증. 종료: 실제 macOS 실행·회수, generic/Cargo 소비, 상위 예산 안의 후보 시험, 독립 복구, 개발·foreground SLO를 통과한 artifact/정책/환경 조합 확보. 아래 ID·제목·PR 묶음은 **예정 값**이다. 실제 SHA나 GitHub PR 번호가 아니다. 모듈 경로는 구현 전까지 예정 책임을 나타낸다. 현재 daemon/client crate는 존재하며 launcher·platform-macos·cli·adapters는 후속 책임이다. crate 추가는 해당 PR에서 명시적 의존 allowlist와 전체 그래프 검증을 함께 확장하고 검사를 제거하지 않는다. 실제 상태는 ledger가 소유한다. @@ -180,6 +180,7 @@ P1은 runtime을 닫아 두고 P2는 실제 probe, P3는 launch·안전 정리, - 시험: generic/Cargo 동시 소비 정상; daemon/probe/후보 실패; 부하 중 취소·재시작·late helper; foreground와 standalone 조회/종료 지연 측정. - 검증 명령: 현재 공통 회귀 + **제공** `python3 scripts/qualify.py dg1-macos --offline`. macOS 전용이며 다른 플랫폼은 `not_run`으로 기록한다. SLO가 아니라 harness를 검사한다. SLO protocol 자체는 **제공** `python3 scripts/measure.py macos --release ID ...`이다. 따로 비워 둔 시간에 대상 호스트의 설치 release에 대해 실행하며, 그 판정과 승격은 완료 증거로 기록한다. 실제 CodeSpace 결합은 CSRG-C08에서 수행한다. - 결과: 2026-09-25~26에 harness `72c4220`으로 실행한 protocol-2가 release `0.1.0-5daee5d-b3fa569e`를 측정했다. 두 조합 모두 세 반복을 통과했다. 입력부터 다음 paint까지 p99는 최대 56 ms, 상태 p99는 최대 47 ms, 종료 확인 p99는 최대 67 ms였다. Frame 정지는 없었고, 부하 실행 1,408회는 연결 유실·불확실한 실행·중복 launch 없이 모두 성공했다. `measure.py promote`는 서비스가 그 release를 실행함을 확인한 뒤 qualification을 기록했다. 첫 실행 protocol-1은 harness 자신의 증거 기록 때문에 실패했으며, 분석과 함께 보존한다. +- 재측정: 2026-10-13에 같은 protocol을 harness `ea98d7f`(protocol-2와 같은 `measure.py`와 fixture)로 실행해, 업그레이드로 측정 release를 대체한 release `0.1.0-6e7e065-94d85365`(source `6e7e065`)를 CS-RG가 CodeSpace의 `codespace` 소비자를 더한 정책에서 측정했다. 두 조합 모두 세 반복을 통과했다. 입력부터 다음 paint까지 p99는 최대 56 ms, 상태 p99는 최대 46.2 ms였고, 종료 확인 p99는 idle 구간 하나에서 최대 167.9 ms, 나머지 구간에서 최대 77.1 ms였다. Frame 정지는 없었고, 부하 실행 1,370회는 연결 유실·불확실한 실행·중복 launch 없이 모두 성공했다. `measure.py promote`는 서비스가 그 release를 실행함을 확인한 뒤 qualification을 기록했고, 이 release가 이제 원장의 qualified release다. - 완료 증거: source/artifact/policy/host 조합, 유효 baseline, 모든 원시 표본·p99·실패/거절/peak/처리량, 자기 적용 제한과 통과 범위. - rollback: 기준 artifact로 신규 개발 진입을 전환하고 실패한 조합 승격을 취소; 보존된 증거는 삭제하지 않는다. - 인계: CSRG-C01은 이 qualification 조합에서 pin 후보를 선정한다. DG-CACHE/DG-ADAPTERS도 이 결과 이후 시작하며 구현 완료와 플랫폼 자격은 별도 기록한다. diff --git a/docs/ko/planning/verification.md b/docs/ko/planning/verification.md index 1588d40..5a09fa7 100644 --- a/docs/ko/planning/verification.md +++ b/docs/ko/planning/verification.md @@ -11,7 +11,7 @@ | V-DOC-DG | 이번 DevGuard 문서/메타데이터 | checksum·license·ID·DAG·링크·48작업/25묶음·필수 항목·상태 보존 | 문서 검토 및 아래 재현 검사 가능 | | V-DG0 | contract/core, DevGuard | Rust1.95.0 fmt/clippy·44개 계약·의존 graph·source fingerprint | 기존 validator 제공 | | V-DG1-FUNCTION | 실제 auth/probe/launch/reconcile/CLI/운영 | DG1-C01~C11 정상·실패·경쟁 및 기능 artifact | C01 authority·C02 로컬 인증/transport·C03 native probe·C04 native scope 제공; 후속 범위는 각 묶음에서 제공 | -| V-DG1-SLO | 독립 CLI/daemon·개발·self-use | DG1-C12 개발/foreground 및 standalone control 측정 | 대상 호스트에서 release `0.1.0-5daee5d-b3fa569e`에 대해 qualified(protocol-2: cold·warm 각 세 반복 모두 통과, 승격); CS-RG 기능을 선행 요구하지 않음 | +| V-DG1-SLO | 독립 CLI/daemon·개발·self-use | DG1-C12 개발/foreground 및 standalone control 측정 | 대상 호스트에서 release `0.1.0-6e7e065-94d85365`에 대해 qualified(2026-10-13, CodeSpace의 `codespace` 소비자를 포함한 정책: cold·warm 각 세 반복 모두 통과, 승격). 2026-09-26의 protocol-2는 `0.1.0-5daee5d-b3fa569e`를 qualified로 기록; CS-RG 기능을 선행 요구하지 않음 | | 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 | 미구현 | diff --git a/docs/milestones.md b/docs/milestones.md index 8ec1aaf..5b71f2e 100644 --- a/docs/milestones.md +++ b/docs/milestones.md @@ -7,7 +7,7 @@ The [detailed planning index](planning/README.md) owns the 48 proposed commit un | Milestone | Deliverable and gate | Current implementation | |---|---|---| | 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-5daee5d-b3fa569e` on the measured host and policy; Linux is not qualified | +| 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 | In progress, not qualified: implemented in CodeSpace as the owner-directed units U1–U6 (2026-10-02), outside the suspended C-series plan. U1, its hardening, U2, U3, U4 and U5 are merged and verified (CodeSpace #82, #83, #84, #88, #90, #92); U6 is the active unit | | P1-RECOVERY | Opt-in Gateway restart/reconnection while an independent Runner retains processes and I/O; reconcile workspace, approvals and DevGuard leases | Not started; depends on CS-RG; InProcess and Runner-loss I/O restoration excluded | | DG-LINUX | Actual Linux controller, ancestor capacity, complete sandbox/proxy scope, control protection and reclaim evidence | Not started; required for product completion | diff --git a/docs/planning/README.md b/docs/planning/README.md index 7602ee3..aa7715b 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-5daee5d-b3fa569e` on the measured host and policy. Linux enforcement and CodeSpace integration remain 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. Linux enforcement and CodeSpace integration remain 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 @@ -42,7 +42,7 @@ Design revision 1 (2026-09-27) makes CodeSpace's execution state and ownership c | Milestone | Owner | Proposed work commits | Logical PR groups | Baseline state | | --- | --- | --- | --- | --- | | [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-5daee5d-b3fa569e` | +| [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 | | [DG-LINUX](milestones/DG-LINUX.md) | DevGuard and CodeSpace | 6 | 3 | Not started; required overall | diff --git a/docs/planning/consumer-readiness.md b/docs/planning/consumer-readiness.md index f90f8fa..4f6ecb5 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-5daee5d-b3fa569e`; R3 still requires CS-RG, whose first group CSRG-P0 starts only after CSP-D04 is delivered ([PR delivery](pr-delivery.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`; R3 still requires CS-RG, whose first group CSRG-P0 starts only after CSP-D04 is delivered ([PR delivery](pr-delivery.md)). ## Adoption levels diff --git a/docs/planning/milestones/CS-RG.md b/docs/planning/milestones/CS-RG.md index 8ab0b1e..68ce081 100644 --- a/docs/planning/milestones/CS-RG.md +++ b/docs/planning/milestones/CS-RG.md @@ -2,7 +2,7 @@ > **Status: suspended as an implementation directive.** This plan's work units, in particular CSRG-C00, CSRG-C03 and CSRG-C09 and the CodeSpace-owned managed execution transport they assume, must not be implemented. Every other unit depends on CSRG-C00, so no CS-RG unit may start. 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. > -> *Current state, 2026-10-12:* on 2026-10-02 the owner directed CS-RG implementation as units U1–U6 in CodeSpace, outside this suspension, which still applies to this plan's units. U1, its hardening, U2, U3, U4 and U5 are merged and verified, and U6 is the active unit. Since 2026-10-12, governed PTY executions are observed before the reap, as governed pipe executions are, through a recorded patch on the pinned Codex (novelKR/CodeSpace#93 and novelKR/CodeSpace#95, CodeSpace main `181a020`), as the owner chose on 2026-10-11. Until then U5 observed PTY executions only after Codex reaped them. The ledger records CS-RG as `in-progress`, qualification `not-run`. The baseline status below is that of this plan's units, which have not started. +> *Current state, 2026-10-13:* on 2026-10-02 the owner directed CS-RG implementation as units U1–U6 in CodeSpace, outside this suspension, which still applies to this plan's units. U1, its hardening, U2, U3, U4 and U5 are merged and verified, and U6 is the active unit. Since 2026-10-12, governed PTY executions are observed before the reap, as governed pipe executions are, through a recorded patch on the pinned Codex (novelKR/CodeSpace#93 and novelKR/CodeSpace#95, CodeSpace main `181a020`), as the owner chose on 2026-10-11. Until then U5 observed PTY executions only after Codex reaped them. On 2026-10-13 DG-1's SLO was measured again for the installed release `0.1.0-6e7e065-94d85365`, built from CodeSpace's DevGuard client pin `6e7e065`, under the policy that adds CodeSpace's `codespace` consumer, and that release was promoted; U6 qualifies CS-RG against it. The ledger records CS-RG as `in-progress`, qualification `not-run`. The baseline status below is that of this plan's units, which have not started. Owner: CodeSpace. Baseline implementation: `not-started`; qualification: `not-run`. Entry: DG1-C12, which is complete, and delivery of CSP-D04, the CodeSpace counterpart documentation of design revision 1 ([PR delivery](../pr-delivery.md)); release `0.1.0-5daee5d-b3fa569e` is macOS-qualified and is the pin candidate. Completion: Qualify the pinned client/artifact/wire combination on the head left by the CSRG-C09 backend decision, while preserving authorization, approvals, workspace and PTY contracts. Preparation may precede qualification, but required runtime adoption may not. diff --git a/docs/planning/milestones/DG-1.md b/docs/planning/milestones/DG-1.md index 1372434..aba1a29 100644 --- a/docs/planning/milestones/DG-1.md +++ b/docs/planning/milestones/DG-1.md @@ -1,6 +1,6 @@ # DG-1 — macOS development and bounded self-use -Owner: DevGuard. Current implementation: `implemented` (C01–C12); qualification: macOS `qualified` for release `0.1.0-5daee5d-b3fa569e` on the measured host and policy, Linux `not-run`. Entry: DG-0. Completion: DG1-C12 qualifies actual macOS launch/reconciliation, generic/Cargo consumption, parent-budget self-use, independent repair and development/foreground SLO for the measured artifact/policy/environment. +Owner: DevGuard. Current implementation: `implemented` (C01–C12); qualification: macOS `qualified` for release `0.1.0-6e7e065-94d85365` on the measured host and policy, Linux `not-run`. Entry: DG-0. Completion: DG1-C12 qualifies actual macOS launch/reconciliation, generic/Cargo consumption, parent-budget self-use, independent repair and development/foreground SLO for the measured artifact/policy/environment. All work IDs, commit titles and logical PR labels below are **proposed values**, not future SHAs or GitHub numbers. Module paths describe planned responsibilities until implemented. Each added workspace crate updates the explicit dependency allowlist in the same PR without removing full-graph validation. The ledger owns actual status. @@ -183,3 +183,4 @@ DG1-P1 keeps runtime readiness closed; P2 provides actual probes; P3 ships launc - Handoff: CSRG-C01 may select a pin from this combination; DG-CACHE/DG-ADAPTERS follow separately. Record implementation and each platform qualification independently. - Verification command: available regression above plus **available** `python3 scripts/qualify.py dg1-macos --offline`. It is macOS only; other platforms record `not_run`. It checks the harness, never the SLO. The SLO protocol itself is **available** `python3 scripts/measure.py macos --release ID ...`, run against the installed release on the target host in a window set aside for it; its verdicts and any promotion are recorded as completion evidence. - Result: protocol-2, run on 2026-09-25 and 26 with harness `72c4220`, measured release `0.1.0-5daee5d-b3fa569e`. Both combinations passed all three repetitions. Input to next paint had p99 at most 56 ms, status p99 at most 47 ms and termination acknowledgement p99 at most 67 ms. No frame stalled, and all 1,408 load runs succeeded without connection loss, uncertain execution or duplicate launch. `measure.py promote` recorded the qualification after verifying that the service runs that release. The first run, protocol-1, failed on the harness's own evidence writes; it is preserved with its analysis. +- Re-measurement: on 2026-10-13 the same protocol, with harness `ea98d7f` (protocol-2's `measure.py` and fixture), measured release `0.1.0-6e7e065-94d85365`, built from source `6e7e065`, which had replaced the measured release by upgrade, under the policy to which CS-RG had added CodeSpace's `codespace` consumer. Both combinations passed all three repetitions. Input to next paint had p99 at most 56 ms, status p99 at most 46.2 ms and termination acknowledgement p99 at most 167.9 ms, in one idle interval; the other intervals stayed at most 77.1 ms. No frame stalled, and all 1,370 load runs succeeded without connection loss, uncertain execution or duplicate launch. `measure.py promote` recorded the qualification after verifying that the service runs that release, which is now the ledger's qualified release. diff --git a/docs/planning/verification.md b/docs/planning/verification.md index 451e02a..ff0928f 100644 --- a/docs/planning/verification.md +++ b/docs/planning/verification.md @@ -11,7 +11,7 @@ Preserve the approved [design SLOs](../design.md#verification-and-promotion). De | V-DOC-DG | DevGuard docs/metadata | Original checksum/license, English/Korean hashes, IDs/DAG/links, 48 units/25 groups, required fields | Documentation checker and review | | V-DG0 | Contract/core | Rust 1.95.0 fmt/Clippy, 44-test baseline, full dependency graph and source fingerprint | Existing validator | | V-DG1-FUNCTION | Real auth/probe/launch/reconcile/CLI/operations | DG1-C01–C11 normal/failure/race cases and functional artifacts | C01 authority, C02 local authentication/transport, C03 native probes and C04 native scopes available; later scopes supplied with each group | -| V-DG1-SLO | Standalone daemon/CLI, development and self-use | DG1-C12 control and foreground measurements | Qualified on the target host for release `0.1.0-5daee5d-b3fa569e` (protocol-2: cold and warm, three repetitions each, all passed; promoted); no CS-RG prerequisite | +| V-DG1-SLO | Standalone daemon/CLI, development and self-use | DG1-C12 control and foreground measurements | Qualified on the target host for release `0.1.0-6e7e065-94d85365` (2026-10-13, under the policy with CodeSpace's `codespace` consumer: cold and warm, three repetitions each, all passed; promoted). Protocol-2 qualified `0.1.0-5daee5d-b3fa569e` on 2026-09-26; no CS-RG prerequisite | | 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 | Future | diff --git a/docs/translations.json b/docs/translations.json index 9197212..0ee10a0 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": "5ae20eb9f6ad702fa41bb3885cba1c6ea01f2d55d612cc0b97388d4ff9b14fe8", - "reviewed_translation_sha256": "d002f8bdabe99376b40d4668674a255f29b399818c4073a9362cd932025a1ed9" + "reviewed_source_sha256": "0babde68472ae41a45cc7197346fb90c0181683f92d5a1936fca39f01c0fe799", + "reviewed_translation_sha256": "839a5aa85daeacdaf220f5956641e5d52bcf21eecca8baff678725001c1242aa" }, { "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": "2afd896591a1c5004624dbc70e0c71afb9f25e3e52666436d805034e88e57239", - "reviewed_translation_sha256": "885624e1b4401805884039be8d6118db29d6724de0fee3fff75d5bf2f6039c91" + "reviewed_source_sha256": "17f9e5205199064d905f0fae2730baa6ee269b677d6dddd05b085e405fb2790f", + "reviewed_translation_sha256": "5a125fa4583da3de543db23c34af8ecabc6cb2de44810d5ab4d94644f285f372" }, { "id": "planning-decisions", @@ -56,8 +56,8 @@ "id": "planning-milestones-cs-rg", "source": "docs/planning/milestones/CS-RG.md", "translation": "docs/ko/planning/milestones/CS-RG.md", - "reviewed_source_sha256": "0c4af70d5fb9552144e4e196735726ffaf5c3aad11b17fa6c2a40db68dc6ea03", - "reviewed_translation_sha256": "87b3dd90b6184c497e039b27f93065162cd97b3f64e79324de1c08fdcb1f97f7" + "reviewed_source_sha256": "10bfcf3e4bad642445d38b86440cd4ae0788e23d1f32d1427645f99924eaccc5", + "reviewed_translation_sha256": "40b68c11e36f2bcbd7773a41176f5cffb3d39442724862c7d623af3756cf3ce7" }, { "id": "planning-milestones-dg-0", @@ -70,8 +70,8 @@ "id": "planning-milestones-dg-1", "source": "docs/planning/milestones/DG-1.md", "translation": "docs/ko/planning/milestones/DG-1.md", - "reviewed_source_sha256": "10de8d6b2d7a23b8f4ccd934456ef538ac8693b394d54b8bd946eace7028daf6", - "reviewed_translation_sha256": "46d250ef90658382b38ef578d6f057b0a9c2aa1a3804b27674e8b7cf027257a9" + "reviewed_source_sha256": "678f7c973340fc152dbb2e06e479137ea98100af41fb40adcef050485a7d4ce5", + "reviewed_translation_sha256": "a47255abea60e03e4d6260c51138c6a91914435af74ca53e364ed8b868b4678d" }, { "id": "planning-milestones-dg-adapters", @@ -112,8 +112,8 @@ "id": "planning-verification", "source": "docs/planning/verification.md", "translation": "docs/ko/planning/verification.md", - "reviewed_source_sha256": "c8afea075d25a82255ead448fb18873fa31668362eab628c96de3502f6420c73", - "reviewed_translation_sha256": "528a502e836684d24b2273747e75d9bdb82b2d4fd87a5f2151da8fa2bac97a6e" + "reviewed_source_sha256": "1827b33df20f2e89e18d2e30cabf256583bf67413e481fcde8b611066405a6b0", + "reviewed_translation_sha256": "b6149aea58970342f478ccd4e30346137381536a7b825508f915a98648b7b920" }, { "id": "operations", diff --git a/milestones.json b/milestones.json index 9920874..701e420 100644 --- a/milestones.json +++ b/milestones.json @@ -6,7 +6,7 @@ "critical_path": ["DG-0", "DG-1", "CS-RG", "P1-RECOVERY"], "milestones": [ {"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-5daee5d-b3fa569e", "planning_document": "docs/planning/milestones/DG-1.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": "in-progress", "qualification": "not-run", "planning_document": "docs/planning/milestones/CS-RG.md", "units": {"directed": "2026-10-02", "as_of": "2026-10-12", "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": "active"}}, {"id": "P1-RECOVERY", "owner": "CodeSpace", "requires": ["CS-RG"], "design_status": "accepted", "implementation_status": "not-started", "qualification": "not-run", "planning_document": "docs/planning/milestones/P1-RECOVERY.md"}, {"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"},