leerness 1.9.424 → 1.9.426
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 +41 -0
- package/README.md +5 -5
- package/bin/leerness.js +31 -607
- package/lib/health.js +1 -1
- package/lib/session-close.js +614 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,46 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.9.426 — 2026-06-07 — 10번째 외부평가: 모듈화 회귀(health) 수정 + contract/rule 일관성 (UR-0128~0131)
|
|
4
|
+
|
|
5
|
+
**🔍 10번째 외부 멀티모델 리뷰(Codex GPT-5.5 + Claude Sonnet/Opus 4.8, README 미참조 클린룸, 1.9.425)로 6회 모듈화 직후 무결성 독립 검증 — 모듈화 회귀 1건 적발·수정.**
|
|
6
|
+
|
|
7
|
+
### 배경
|
|
8
|
+
6회 큰 핸들러 추출 직후 코드-위험 0인 독립 리뷰로 회귀 여부 확인. 모든 발견 직접 재현·검증(맹신 X).
|
|
9
|
+
|
|
10
|
+
### 수정 (확정·저위험)
|
|
11
|
+
- **[P1 모듈화 회귀] health memorySurface 항상 실패**: 1.9.423 health 추출 시 종합 의존 스캔이 **대문자 상수 `STATUSES`를 제외**해 DI 누락 → `health --json` 의 `memorySurface` 가 항상 `{error}`. **Codex·Sonnet 독립 동시 적발**(Opus는 놓침). STATUSES 주입으로 수정. (session-close 1.9.425에서 STATUSES/MARK 교훈을 얻기 전 라운드라 누락됨.)
|
|
12
|
+
- **[P3] contract verify 텍스트 `tick.` 유령 프리픽스**: `## Fields` 범용화(1.9.417) 후에도 누락 필드를 `- tick.createdAt` 로 표기(JSON 은 정상). 레거시 프리픽스 제거.
|
|
13
|
+
- **[P2] rule add 경로/trigger 값 흡수**: `rule add "설명" --trigger X /path` 가 설명에 `X`·`/path` 를 흡수. `_parseAddTitle`(1.9.416) 적용으로 flag/경로 break.
|
|
14
|
+
|
|
15
|
+
### 회귀가드 강화
|
|
16
|
+
- health selftest 가 **STATUSES 주입 + memorySurface 비-error** 를 검증하도록 강화(리뷰 지적: 기존 selftest 가 이 회귀를 못 잡음).
|
|
17
|
+
|
|
18
|
+
### 검증 (회귀 0)
|
|
19
|
+
- **selftest 171→172 PASS** · **E2E 425→426 PASS**.
|
|
20
|
+
|
|
21
|
+
### 3모델 긍정 평가
|
|
22
|
+
데이터무결성·인코딩·시크릿·**동시성(8-way 무손실)**·**DI 모듈 경계**가 동급 대비 견고. P0/P1 데이터손상·크래시 없음. (Opus: "DI 구조 깨끗 + wrapper composition root 견고".)
|
|
23
|
+
|
|
24
|
+
### 후속 백로그 (UR-0128~0131, 다음 라운드)
|
|
25
|
+
--json 전 경로 순수성(drift --auto-fix/check/plan show/review-request/audit --fix) · contract impl 파서 강화(멀티라인/ESM) · health/audit/drift exit code 정책 · selftest DI 완전성 메타체크 + drift 재귀 depth 가드.
|
|
26
|
+
|
|
27
|
+
## 1.9.425 — 2026-06-07 — 무거움 점진 해소 6: sessionClose → lib/session-close.js 모듈화 (UR-0025/UR-0125)
|
|
28
|
+
|
|
29
|
+
**🪶 `bin/leerness.js` 무거움 점진 해소 6단계 — `session close` 핸들러(599줄, 9 카테고리 보고)를 lib/ 로 DI 분리.**
|
|
30
|
+
|
|
31
|
+
### 변경
|
|
32
|
+
- `lib/session-close.js` 신설(615줄): `sessionClose(root, opts, deps)` — io는 `./io`, `_sanitizeFences`/`_parseArchiveBlocks`는 `./pure-utils`, cp/os/path/fs 빌트인, harness 고유 의존 41종(STATUSES·MARK 포함) DI 주입, `__filename`→`harnessPath`.
|
|
33
|
+
- `bin/leerness.js`: 599줄 → **3줄 thin wrapper**. **19,588 → 19,003줄(−585)**.
|
|
34
|
+
- 동작/출력 무변경(9 카테고리 + 활성 룰 검증 + retro + pre-wake/idempotency audit + --json 동일).
|
|
35
|
+
|
|
36
|
+
### 검증 (회귀 0)
|
|
37
|
+
- **selftest 170→171 PASS** (모듈 + DI 위임 + STATUSES/MARK 주입 + 본문 이동(recommendedDirection)).
|
|
38
|
+
- 기존 selftest 2건(UR-0066 agents·1.9.316 drift-marker)의 본문 소스 검사를 해당 lib 파일 참조로 갱신(모듈 이동 동반 패턴).
|
|
39
|
+
- **E2E 424→425 PASS** (session close 다수 경로).
|
|
40
|
+
|
|
41
|
+
### 누적 효과 (UR-0125) — 6회 추출
|
|
42
|
+
bin **21,177 → 19,003줄(−2,174, 10.3%)**. lib/ 모듈 17개. 남은 최대: handoff(1434줄, 최고결합 — 별도 신중 다단계 작업 권장).
|
|
43
|
+
|
|
3
44
|
## 1.9.424 — 2026-06-07 — 무거움 점진 해소 5: agentsCmd → lib/agents.js 모듈화 (UR-0025/UR-0125)
|
|
4
45
|
|
|
5
46
|
**🪶 `bin/leerness.js` 무거움 점진 해소 5단계 — `agents` 오케스트레이션 핸들러(442줄)를 lib/ 로 DI 분리. bin이 2만 줄 아래로.**
|
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
> **AI 코딩 에이전트의 거짓 완료·중복·망각·충돌을 막아주는 검수·기억·협업 CLI 하네스.**
|
|
4
4
|
> **A CLI harness that stops AI coding agents from faking completion, duplicating work, forgetting context, and colliding.**
|
|
5
5
|
|
|
6
|
-
[](https://www.npmjs.com/package/leerness) [](https://www.npmjs.com/package/leerness) []() []() []() []() []() []()
|
|
7
7
|
|
|
8
8
|
```
|
|
9
9
|
╔══════════════════════════════════════════════════════════════╗
|
|
@@ -471,7 +471,7 @@ MIT — © leerness contributors
|
|
|
471
471
|
<!-- leerness:project-readme:start -->
|
|
472
472
|
## Leerness Project Harness
|
|
473
473
|
|
|
474
|
-
이 프로젝트는 Leerness v1.9.
|
|
474
|
+
이 프로젝트는 Leerness v1.9.426 하네스를 사용합니다. AI 에이전트는 작업 전 `leerness handoff`로 컨텍스트를 적재하고, 작업 후 `leerness check`/`leerness audit`/`leerness session close`를 수행해야 합니다.
|
|
475
475
|
|
|
476
476
|
### 정체성 — AI 에이전트 운영 레이어 (UR-0030)
|
|
477
477
|
|
|
@@ -525,7 +525,7 @@ leerness memory restore decision <date|title>
|
|
|
525
525
|
|
|
526
526
|
### MCP server (외부 AI 통합)
|
|
527
527
|
|
|
528
|
-
Leerness v1.9.
|
|
528
|
+
Leerness v1.9.426는 stdio JSON-RPC MCP server를 내장합니다 — Claude Code · Cursor · Codex CLI 등 외부 AI에 **85개 도구**를 노출:
|
|
529
529
|
|
|
530
530
|
```jsonc
|
|
531
531
|
// 카테고리별
|
|
@@ -546,7 +546,7 @@ Leerness v1.9.424는 stdio JSON-RPC MCP server를 내장합니다 — Claude Cod
|
|
|
546
546
|
`<<autonomous-loop-dynamic>>` 신호만 보내면 AI가:
|
|
547
547
|
1) 다음 라운드 후보 선정 → 2) 코드 변경 → 3) stress-v* 신규 작성 + 누적 회귀 → 4) e2e 219/219 → 5) npm pack + git tag + GitHub release → 6) main 자동 push (1.9.140+) → 7) session close → 8) 다음 라운드 예약.
|
|
548
548
|
|
|
549
|
-
현재 누적: **70 라운드 (1.9.40 → 1.9.
|
|
549
|
+
현재 누적: **70 라운드 (1.9.40 → 1.9.426)** · 매 라운드 GitHub release/태그 생성 · _reports/는 비공개 보존.
|
|
550
550
|
|
|
551
551
|
### 성능 가이드 (1.9.140 측정)
|
|
552
552
|
|
|
@@ -584,6 +584,6 @@ leerness release pack --close --auto-main-push
|
|
|
584
584
|
- `.harness/session-handoff.md`: 다음 세션 인수인계 (자동 작성)
|
|
585
585
|
- `.harness/lessons.md` / `decisions.md` / `rules.md`: 영구 메모리 (5 surface)
|
|
586
586
|
|
|
587
|
-
Last synced by Leerness v1.9.
|
|
587
|
+
Last synced by Leerness v1.9.426: 2026-06-07
|
|
588
588
|
<!-- leerness:project-readme:end -->
|
|
589
589
|
|