Skip to content

Commit 0af842d

Browse files
committed
계획: 완료된 04 legacySunset 폴더를 회수하고 일몰 조건을 계약 실태 표에 남긴다
mainPlan/04_legacySunset을 삭제하고 실행 순서와 의존 관계를 갱신했다. 05의 입장 조건이 충족됐다. 계약 실태 표에 구 세대 reader 행을 열었다. 지금 지우지 않는 이유가 문서에 있어야 한다: writer는 이미 하나이고 reader는 자기 파일에 갇혔지만, pack/prune의 live 판정이 커널 세대와 구 세대의 합집합이라 아직 이관되지 않은 저널이 그 갈래에 의존한다. 은퇴는 리팩터가 아니라 릴리즈 경계의 판단이다. 검증: npm test 3229 passed 0 failed
1 parent 0495024 commit 0af842d

3 files changed

Lines changed: 8 additions & 114 deletions

File tree

docs/operations/contractReality.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ It is consulted whenever the engine version moves or a capability changes.
99

1010
| Item | Contract | Actual | Next action |
1111
|---|---|---|---|
12+
| The legacy journal generation reader | The journal writes one on-disk format | The writer has been single since the state-kernel rebase, and the old root `HEAD.json` v2/v3 path is read-only. It now lives alone in `src/capabilities/journal/journalLegacyGeneration.js` so retiring it is one file deletion, but it is not dead weight yet: `pack`/`prune` compute live keys as the **union** of kernel and legacy generations, so an un-migrated journal still depends on it. Removing that branch deletes live blobs, which the browser gate now proves by refusing to recover | Retire the file once an un-migrated journal can no longer plausibly exist in the field. That judgement needs a release boundary, so it belongs to the next breaking release rather than a refactor |
1213
| Implicit FFI/fetch assumptions | Survives an engine swap or update | Direct `toJs` is isolated to PyodideEngine alone, and the host contract is `proxyMode`/`fallback`. EngineContract validates version, kind, and capabilities at construction, and WASI and Pyodide share a minimum RuntimeContract | A new engine must pass both `tests/contracts/runtimeContract.mjs` and browser measurement |
1314
| Reactive and %undo memory | Safe even in long sessions | A resident base is a foundational premise. `history.stats()` and the retention budget observe base, delta, hash, and node pressure, and off-path branches can be auto-pruned. There is still no automatic rebase of the live path | Collect pressure events from real long-lived workloads and judge a safe-rebase design as its own initiative |
1415
| The GPU subpath has no headless execution gate | Every shipped public surface has the strongest automated evidence the runner can provide | Edge headless still returns `null` from `requestAdapter()` with the repository's SwiftShader switches, so CI verifies every registered WGSL kernel and the exact shader bytes handed to WebGPU but cannot verify GPU result values. The socket subpath no longer shares this debt: `test:socket` starts the in-repo relay and local TCP origin hermetically in CI | Keep GPU under the Experimental freeze and the evidence ceiling explicit until a runner with a real adapter is available |

mainPlan/04_legacySunset/README.md

Lines changed: 0 additions & 111 deletions
This file was deleted.

mainPlan/README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@
4949
스폰되는 워커의 자산 매니페스트 누락. 셋 다 게이트를 함께 냈고 음성 시험으로 이빨을 봤다.
5050
자산 그래프가 23파일에서 59파일로 늘었다(그 차이가 그동안 SRI preflight 밖이던 범위다).
5151

52+
- **04 legacySunset 완료(2026-08-03)**: 저널의 구 포맷 reader를 자기 파일로 갈랐고(은퇴가 파일 하나
53+
삭제가 된다), JSON 판독 두 벌을 하나로 모았다. PYMACHINE2 시대의 죽은 코드를 회수해 session 세 파일이
54+
99/46/265줄로 줄었다. pack/prune의 live 판정이 구 세대를 덮는지 게이트가 문다(음성 시험에서 실제로
55+
live blob이 지워지고 recover가 거부했다). 계획의 "fixture 삭제" 항목은 틀린 것으로 판정해 버렸다.
56+
5257
- **03 memoryJudgment 완료(2026-08-03)**: 다섯 축 중 판정이 0이던 메모리 축에 예산을 세웠다.
5358
bootHeapBytes/reactiveTotalMb/journalPackMb/forkDeltaMb/sessionDeltaMb + 설치 레인 machineMB.
5459
pruneTo가 바이트를 돌려주는지, terminate가 스냅샷 SAB를 놓는지 단정한다. 음성 시험 3종 통과.
@@ -60,8 +65,7 @@
6065

6166
| 순서 | 덩어리 | 주 축 | 선정 근거 | 입장 조건 |
6267
|---:|---|---|---|---|
63-
| 04 | [legacySunset](04_legacySunset/README.md) | 클린코드 | 죽은 포맷 리더 두 벌이 05의 대상 파일을 두 배로 만든다 | 충족(02 완료) |
64-
| 05 | [commitIncremental](05_commitIncremental/README.md) | 속도, 메모리 | 계약을 안 바꾸고 여는 최대 항목. 커밋 비용이 누적 델타에 비례한다 | 04 (03은 완료) |
68+
| 05 | [commitIncremental](05_commitIncremental/README.md) | 속도, 메모리 | 계약을 안 바꾸고 여는 최대 항목. 커밋 비용이 누적 델타에 비례한다 | 충족(03, 04 완료) |
6569
| 06 | [moduleBoundaries](06_moduleBoundaries/README.md) | 모듈화, 폴더구조 | 타입 그래프가 값 그래프와 반대로 흐르고, 순수 집합이 손유지 목록이다 | 충족(02 완료) |
6670
| 07 | [bootPath](07_bootPath/README.md) | 속도, 클린코드 | 기본 부팅이 탭 전역으로 직렬화된다. 01의 patchScope 수리가 여는 자리 | 충족(01 완료) |
6771
| 08 | [kernelDecomposition](08_kernelDecomposition/README.md) | 클린코드 | 최대 파일에서 커밋 정책이 이미 두 벌로 갈렸다 | 04, 05 |
@@ -72,7 +76,7 @@
7276
## 의존 관계
7377

7478
```text
75-
04 -> 05 -> 08 (legacy 분리가 _liveKeys 교차점을 없앤 뒤 증분화, 그 뒤 분해)
79+
05 -> 08 (증분화가 커밋 경로를 안정시킨 뒤 분해)
7680
10 == 05(rebase) (h0 브레이킹은 한 커밋에 모은다. 나누면 두 번 깨진다)
7781
11 (독립)
7882
```

0 commit comments

Comments
 (0)