leerness 1.36.185 → 1.36.187
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/README.ko.md +5 -0
- package/README.md +14 -4
- package/bin/leerness.js +291 -57
- package/docs/e2e-observation-contract.md +51 -0
- package/docs/runtime-compatibility-api.md +183 -0
- package/docs/state-paths-api.md +92 -0
- package/docs/state-scopes.md +266 -0
- package/docs/worktree-runtime-migration.md +278 -0
- package/lib/claims-baseline.js +1 -1
- package/lib/file-leases.js +2 -2
- package/lib/git.js +64 -15
- package/lib/io.js +9 -3
- package/lib/migrate.js +1 -1
- package/lib/preview-serve.js +5 -1
- package/lib/pure-utils.js +20 -0
- package/lib/role-fallback.js +3 -3
- package/lib/role-store.js +2 -2
- package/lib/runtime-layout.js +395 -0
- package/lib/runtime-writes.js +166 -0
- package/lib/session-close.js +1 -1
- package/lib/state-git.js +138 -0
- package/lib/state-inspect.js +39 -0
- package/lib/state-inventory.js +69 -0
- package/lib/state-paths.js +59 -0
- package/lib/workspace-dir.js +34 -10
- package/package.json +10 -6
- package/scripts/command-flags-probe.js +1 -1
- package/scripts/dead-flags-probe.js +1 -1
- package/scripts/e2e-child-diagnostics-probe.js +143 -0
- package/scripts/e2e-child-diagnostics.js +33 -0
- package/scripts/e2e-temp-scope-probe.js +127 -0
- package/scripts/e2e.js +108 -27
- package/scripts/encoding-selftest-probe.js +222 -0
- package/scripts/false-claim-probe.js +34 -3
- package/scripts/file-lease-probe.js +5 -2
- package/scripts/legacy-runtime-negative-probe.js +72 -0
- package/scripts/mutation-integrity-probe.js +3 -0
- package/scripts/role-fallback-probe.js +67 -6
- package/scripts/runtime-admission-probe.js +282 -0
- package/scripts/runtime-git-write-probe.js +116 -0
- package/scripts/runtime-layout-probe.js +1198 -0
- package/scripts/runtime-repl-probe.js +271 -0
- package/scripts/runtime-replacement-probe.js +190 -0
- package/scripts/runtime-write-probe.js +458 -0
- package/scripts/selftest-cleanup-probe.js +168 -0
- package/scripts/state-inspect-cli-probe.js +209 -0
- package/scripts/state-scopes-probe.js +590 -0
- package/scripts/workspace-dir-lock-order-probe.js +310 -35
- package/scripts/workspace-dir-migration-probe.js +17 -2
- package/scripts/workspace-selection-probe.js +230 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.36.187 — 2026-09-05
|
|
4
|
+
|
|
5
|
+
- feat(state): add read-only runtime compatibility diagnosis and observed-layout write guards; keep legacy storage without migration or activation
|
|
6
|
+
- fix(runtime): recheck CLI/MCP/REPL, direct I/O, retained descriptors, lock heartbeat, Windows replacement and Git mutation boundaries; preserve standalone concurrent producers
|
|
7
|
+
- perf(state): reuse operation-local Git topology and workspace ownership while re-reading compatibility indicators; add real writer and old-client negative controls
|
|
8
|
+
- fix(selftest): retain bounded UR-0113 encoding failure diagnostics and restore prior exit status; preserve the original Windows Node24 replay failure as inconclusive
|
|
9
|
+
- fix(windows): allow 30 seconds per metadata-preserving replacement attempt; keep uncertain timeouts non-retryable and retain original/recovery artifacts
|
|
10
|
+
- fix(runtime): join in-flight legacy migrations read-only before writer admission and share canonical identity across Windows namespace, short-path and junction aliases; preserve bounded denial and rollback
|
|
11
|
+
- fix(selftest): bound transient Windows cleanup retries for three owned diagnostic fixtures, retain exact directory identity and report exhausted cleanup failures instead of leaving silent leaks
|
|
12
|
+
- fix(compatibility): preserve successive standalone producer commands with exact output-name/type admission; cover real repeated CLI use early and restore missing glossary marker imports for lossless rebuilds
|
|
13
|
+
- fix(test): observe temporary probe residue in the actual child-owned directory; retain foreign-parent and real-child negative controls without deleting unrelated files
|
|
14
|
+
- fix(test): retain bounded child/setup failure diagnostics for handoff and doctor E2E checks; align only JSON121's doctor wrapper with its nested selftest deadline, preserving original assertions and other command budgets
|
|
15
|
+
|
|
16
|
+
## 1.36.186 — 2026-09-05
|
|
17
|
+
|
|
18
|
+
- T-0174: add read-only five-scope state inspection with worktree/project isolation and honest legacy inventory; reuse workspace snapshots, skip unused npm skill discovery and bookkeeping, preserve all existing state.
|
|
19
|
+
|
|
3
20
|
## 1.36.185 — 2026-09-04
|
|
4
21
|
|
|
5
22
|
- T-0165/T-0166/T-0167/T-0171/T-0172: adds honest provider-capacity observation, exact-file TTL leases, strict Role/Agent/Routing v2 schemas, a fail-closed legacy role-store loader, and availability-aware role fallback with revision-bound execution provenance. Compatibility fields remain explicit, high-risk reviewer independence requires concrete model identities, corrupt state is preserved without provider execution, and all new surfaces are covered by adversarial regression probes.
|
package/README.ko.md
CHANGED
|
@@ -162,6 +162,11 @@ leerness mcp serve # JSON-RPC over stdio, 98개 도구
|
|
|
162
162
|
|
|
163
163
|
## 아키텍처 (외부 리뷰 검증)
|
|
164
164
|
|
|
165
|
+
`leerness state inspect . --json`으로 현재 상태 위치와 Project / Worktree /
|
|
166
|
+
Common-Control / Immutable-Record / Generated-View의 제안 경로를 확인할 수 있습니다.
|
|
167
|
+
읽기 전용 진단이며 데이터 이동·runtime 활성화·모델 호출은 하지 않습니다.
|
|
168
|
+
[진단 API](docs/state-paths-api.md)와 [단계별 구조 전환 계획](docs/state-scopes.md)을 참고하세요.
|
|
169
|
+
|
|
165
170
|
- **런타임 의존성 0 / install-script 0** — `package.json` 의 dependencies/optional/peer 가 전부 비어 있고 postinstall 도 없습니다. 순수 Node stdlib(`fs`/`path`/`child_process`/`readline`). 공급망 공격면 최소. `leerness install-safety` 로 확인 가능.
|
|
166
171
|
- **canonical JSON 단일 진실소스 + 마크다운 projection** — 메모리는 JSON 으로 저장하고 사람이 읽는 `.md` 는 파생물. 파이프(`|`)·개행·백틱·이모지·한글이 마크다운 테이블에서도 안전(셀 이스케이프 + round-trip).
|
|
167
172
|
- **원자적 UTF-8 쓰기** — temp + rename 으로 부분쓰기 손상 방지, BOM 자동 strip.
|
package/README.md
CHANGED
|
@@ -93,6 +93,16 @@ Resolution never silently executes a fallback. Each applied choice is bound to t
|
|
|
93
93
|
|
|
94
94
|
## Make it enforced, not optional
|
|
95
95
|
|
|
96
|
+
Before changing a multi-agent project's storage, inspect its actual workspace and proposed
|
|
97
|
+
Git-private/common scopes with `leerness state inspect . --json`. It is read-only: no data
|
|
98
|
+
migration, runtime activation, or provider calls. See [the state inspection API](docs/state-paths-api.md)
|
|
99
|
+
and [the staged architecture plan](docs/state-scopes.md).
|
|
100
|
+
|
|
101
|
+
`leerness state compatibility . --json` separately checks whether the observed runtime
|
|
102
|
+
layout permits this client's legacy writes. It creates no state and exposes bounded
|
|
103
|
+
failure reasons. This is a pre-migration compatibility guard, not a migration or a way
|
|
104
|
+
to stop older clients. See [the compatibility API and limits](docs/runtime-compatibility-api.md).
|
|
105
|
+
|
|
96
106
|
By default leerness is **cooperative**: your AI agent runs the commands because CLAUDE.md / AGENTS.md tell it to. A determined agent could skip them. To turn the guideline into a guardrail:
|
|
97
107
|
|
|
98
108
|
```bash
|
|
@@ -156,7 +166,7 @@ MIT
|
|
|
156
166
|
<!-- leerness:project-readme:start -->
|
|
157
167
|
## Leerness Project Harness
|
|
158
168
|
|
|
159
|
-
이 프로젝트는 Leerness v1.36.
|
|
169
|
+
이 프로젝트는 Leerness v1.36.187 하네스를 사용합니다. AI 에이전트는 작업 전 `leerness handoff`로 컨텍스트를 적재하고, 작업 후 `leerness check`/`leerness audit`/`leerness session close`를 수행해야 합니다.
|
|
160
170
|
|
|
161
171
|
### 정체성 — AI 에이전트 운영 레이어 (UR-0030)
|
|
162
172
|
|
|
@@ -210,7 +220,7 @@ leerness memory restore decision <date|title>
|
|
|
210
220
|
|
|
211
221
|
### MCP server (외부 AI 통합)
|
|
212
222
|
|
|
213
|
-
Leerness v1.36.
|
|
223
|
+
Leerness v1.36.187는 stdio JSON-RPC MCP server를 내장합니다 — Claude Code · Cursor · Codex CLI 등 외부 AI에 **98개 도구**를 노출:
|
|
214
224
|
|
|
215
225
|
```jsonc
|
|
216
226
|
// 카테고리별
|
|
@@ -231,7 +241,7 @@ Leerness v1.36.185는 stdio JSON-RPC MCP server를 내장합니다 — Claude Co
|
|
|
231
241
|
`<<autonomous-loop-dynamic>>` 신호만 보내면 AI가:
|
|
232
242
|
1) 다음 라운드 후보 선정 → 2) 코드 변경 → 3) 회귀 테스트 갱신 → 4) 전체 e2e 스위트 통과 → 5) npm publish + git tag → 6) main push → 7) session close → 8) 다음 라운드 예약.
|
|
233
243
|
|
|
234
|
-
현재 누적: **v1.9.x → 1.36.
|
|
244
|
+
현재 누적: **v1.9.x → 1.36.187 릴리스 태그 이력** (수백 라운드) · _reports/는 비공개 보존.
|
|
235
245
|
|
|
236
246
|
### 성능 가이드
|
|
237
247
|
|
|
@@ -269,5 +279,5 @@ leerness release pack --close --auto-main-push
|
|
|
269
279
|
- `.leerness/session-handoff.md`: 다음 세션 인수인계 (자동 작성)
|
|
270
280
|
- `.leerness/lessons.md` / `decisions.md` / `rules.md`: 영구 메모리 (5 surface)
|
|
271
281
|
|
|
272
|
-
Last synced by Leerness v1.36.
|
|
282
|
+
Last synced by Leerness v1.36.187: 2026-09-06
|
|
273
283
|
<!-- leerness:project-readme:end -->
|