Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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-12:* 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, its hardening, U2, U3, U4 and U5 are merged, U6 is active, and the suspension still applies to the CSRG-C units.
- 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-14:* 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. P1-RECOVERY starts only with the owner's separate authorization.
- 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.
Expand Down
4 changes: 2 additions & 2 deletions docs/ko/planning/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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을 마쳤다. 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을 마쳤다. CodeSpace 결합(CS-RG)은 정확히 한 조합에 대해 macOS에서 qualification을 마쳤고, Linux 강제 보호는 아직 qualification하지 않았다. 실제 이행 기록은 [DG-0](milestones/DG-0.md), 선택 근거와 immutable source는 [결정 기록](decisions.md)에 있다.

## 읽는 순서와 문서 소유권

Expand All @@ -23,7 +23,7 @@

## 마일스톤과 우선 경로

> **상태:** 설계 개정 1의 실행 소유권 선택을 포함한 CS-RG는 CS-RG 통합 경계 재검증이 끝날 때까지 구현 지시로서 효력이 중지되며, 어떤 CS-RG 단위도 시작할 수 없습니다. CS-RG 계획의 표기를 참고하십시오. *2026-10-12 현재 상태:* 소유자는 2026-10-02에 이 효력 중지와 별도로 CS-RG 구현을 CodeSpace의 U1–U6 단위로 지시했습니다. U1과 그 보강, U2, U3, U4, U5는 병합되었고 U6이 진행 중입니다. 이 계획의 단위는 여전히 효력이 중지된 채 시작하지 않았습니다.
> **상태:** 설계 개정 1의 실행 소유권 선택을 포함한 CS-RG는 CS-RG 통합 경계 재검증이 끝날 때까지 구현 지시로서 효력이 중지되며, 어떤 CS-RG 단위도 시작할 수 없습니다. CS-RG 계획의 표기를 참고하십시오. *2026-10-14 현재 상태:* 소유자는 2026-10-02에 이 효력 중지와 별도로 CS-RG 구현을 CodeSpace의 U1–U6 단위로 지시했습니다. U1부터 U6까지 병합·검증되었고, CS-RG는 정확히 한 조합에 대해 macOS에서 qualification을 마쳤습니다. 이 계획의 단위는 여전히 효력이 중지된 채 시작하지 않았습니다.

```mermaid
flowchart LR
Expand Down
2 changes: 1 addition & 1 deletion docs/ko/planning/consumer-readiness.md
Original file line number Diff line number Diff line change
Expand Up @@ -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를 허용하며, 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를 허용한다. 이 계획의 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)다.

## 도입 수준

Expand Down
2 changes: 1 addition & 1 deletion docs/ko/planning/milestones/CS-RG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

> **상태: 구현 지시로서 효력 중지.** 이 계획의 작업 단위, 특히 CSRG-C00·CSRG-C03·CSRG-C09와 이들이 전제한 CodeSpace 소유 관리형 실행 전송은 구현하지 않습니다. 다른 단위는 모두 CSRG-C00에 의존하므로 어떤 CS-RG 단위도 시작할 수 없습니다. CodeSpace 통합 계획에 대해 소유자가 지시한 검토인 CS-RG 통합 경계 재검증(작업 단위가 아닙니다)이 끝날 때까지 적용됩니다. 대체 구조는 승인되지 않았으며, 소유자가 재검증 결과를 검토한 뒤 결정합니다. 이 표기는 지시의 효력만 중지하며 어떤 안전 요구도 완화하지 않습니다. 아래 내용은 이력 추적을 위해 바꾸지 않고 남깁니다.
>
> *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`으로 기록합니다. 아래의 기준 상태는 시작하지 않은 이 계획의 단위에 대한 것입니다.
> *2026-10-14 현재 상태:* 소유자는 2026-10-02에 이 효력 중지와 별도로 CS-RG 구현을 CodeSpace의 U1–U6 단위로 지시했으며, 이 효력 중지는 이 계획의 단위에 계속 적용됩니다. U1부터 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은 CodeSpace의 고정 절차에 따라 정확히 한 조합으로 macOS에서 CS-RG qualification을 마쳤습니다. 그 조합은 CodeSpace `ca306ee`, DevGuard client `6e7e065`, 같은 정책의 그 release, 기록된 패치를 적용한 Codex `6b9826e`, Rust 1.95.0이고, runner 모드는 `in-process`와 `--runtime-bin`을 쓴 `uds`(각각 pipe와 PTY 실행)이며, 한 gateway 안의 `off`와 `required` workspace를 포함합니다([qualification 보고서](https://github.com/novelKR/CodeSpace/blob/241cf6c4ee95111a70f581319ac04ee16beaf94e/docs/cs-rg-qualification-report.md), novelKR/CodeSpace#99). Linux `required`는 DG-LINUX 전까지 지원하지 않습니다. 원장은 CS-RG를 `implemented`, qualification `macos-qualified`로 기록합니다. 아래의 기준 상태는 시작하지 않은 이 계획의 단위에 대한 것입니다.

소유 저장소: 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를 함께 통과.

Expand Down
2 changes: 1 addition & 1 deletion docs/ko/planning/verification.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
| 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 | 미구현 |
| 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-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의 해당 조합 | 미구현 |
Expand Down
4 changes: 2 additions & 2 deletions docs/milestones.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ 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 | 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 |
| 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 | 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 |
| 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 |

> **CS-RG status: suspended as an implementation directive.** Pending the CS-RG integration-boundary revalidation, no CS-RG unit may start; no replacement architecture has been approved. See the notice in the [CS-RG plan](planning/milestones/CS-RG.md).
>
> *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 the plan's CSRG-C00–C09 units. U1, its hardening, U2, U3, U4 and U5 are merged and verified, and U6 is the active unit. CS-RG is not qualified.
> *Current state, 2026-10-14:* on 2026-10-02 the owner directed CS-RG implementation as units U1–U6 in CodeSpace, outside this suspension, which still applies to the plan's CSRG-C00–C09 units. U1 to U6 are merged and verified, and CS-RG is qualified on macOS for one exact combination.

DG-0's SQLite and fake-backend tests do not qualify a running resource governor. The `devguardd` bootstrap/path/check commands and foreground `serve` with authenticated status and native C03 host evidence are available. With native evidence the service opens registration over the wire, fenced launch through `devguard-launch` and reconciliation. The `devguard` command-line owner (C07) runs commands through that service, with Cargo adapters (C08). A packaged release can be installed as the current user's LaunchAgent (C09), a candidate build verified under a parent lease with `devguard test-candidate` (C10), and the installed release upgraded or repaired with `devguard upgrade` and `devguard repair` (C11). The SLO protocol measures the installed release with `scripts/measure.py` (C12). CodeSpace resources settings and Runner wire changes remain future work; see [operations](operations.md). The approved design's examples must not be represented as currently runnable commands.

Expand Down
Loading