leerness 1.36.39 → 1.36.40

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 CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.36.40 — 2026-07-16 — 사용자-대면 주장 사실성 감사 — 드리프트 수치 소거 (정기 정직성 점검)
4
+
5
+ 22 릴리스 동안 README/docs 의 정량 주장이 코드와 어긋났는지 전수 대조(주기 점검 — 과거 1.36.5 감사의 후속).
6
+
7
+ - **정확 확인**: "0 runtime dependencies"(실측 0) · 템플릿 관리 구간의 MCP 도구 수(`_mcpToolCount()` 동적 — 86 실측 일치).
8
+ - **드리프트 3건 교정**: ① README "e2e **219/219**"(현재 386 — 릴리스마다 거짓이 되는 고정 수치) → "전체 e2e 스위트 통과" 서술로. ② "**70 라운드** 누적"(실제 태그 427) → "v1.9.x → 현재 릴리스 태그 이력(수백 라운드)". ③ README.ko **내부 모순**(같은 문서에 86 과 85 공존) + 수동 구간 배지/문구의 하드코드 → 산문은 **80+ 표기**, 배지는 정확 수치 유지 — 게이트 e2e 가 배지==tools/list 실측 정합을 매 릴리스 강제하는 가드-검증형 표면임을 재확인(80+ 시도는 그 가드가 차단 — 가드-검증형엔 정확 수치가 우월).
9
+ - 원칙: 자동 동기화되지 않는 표면에는 릴리스마다 낡는 고정 수치를 쓰지 않는다 — 정확 수치는 동적 주입 구간에만.
10
+ - **검증**: readme sync 재생성 후 잔여 스윕 0, selftest 310/310, exit 전파형 게이트 e2e, 클린룸.
11
+
3
12
  ## 1.36.39 — 2026-07-16 — 판정 정직화 배치 B — codex 4차 헌트 10건 전건 처분 완결 (#3/#5/#6/#7/#8)
4
13
 
5
14
  - **#3 MCP 파라미터 검증**: `arguments: null`/비객체가 args 접근 throw → stdin 캐치가 -32700 "Parse error"(id null)로 오보 + `{"title":{...}}` 같은 비문자열이 `[object Object]` 로 영속. → 비객체 arguments/스키마 타입 위반/필수 누락은 **-32602 + 원 id**, 파싱과 핸들링 캐치 분리(-32603 은 원 id 유지). 원 재현 2종 실측 + 정상 호출 무회귀.
package/README.ko.md CHANGED
@@ -108,7 +108,7 @@ leerness verify-claim T-0001 --require-evidence
108
108
  - **외부 에이전트**: `agents list/check/dispatch` · `provider` · `roles` · `adapter`
109
109
  - **운영/확장**: `release` · `migrate` · `team` · `install-safety` · `route` · `review`(페르소나)
110
110
  - **브리지(opt-in)**: `web`(playwright) · `pc`(robotjs) · `lsp`
111
- - **MCP**: `mcp serve` — stdio JSON-RPC 서버로 86개 도구 노출 (verify-claim --all 일괄 검증 포함, 1.33.3)
111
+ - **MCP**: `mcp serve` — stdio JSON-RPC 서버로 80+ 도구 노출 (verify-claim --all 일괄 검증 포함, 1.33.3)
112
112
 
113
113
  전체 명령은 `leerness commands` 또는 `leerness --help` 로 확인하세요.
114
114
 
@@ -142,7 +142,7 @@ leerness agents dispatch "코드 리뷰" --to codex # 실행 명령 생성(직
142
142
 
143
143
  **MCP (외부 AI 에이전트에 도구로 노출)**
144
144
  ```bash
145
- leerness mcp serve # JSON-RPC over stdio, 85 도구
145
+ leerness mcp serve # JSON-RPC over stdio, 80+ 도구
146
146
  ```
147
147
 
148
148
  ---
package/README.md CHANGED
@@ -49,7 +49,7 @@ You never have to type a command yourself. Paste this into Claude Code, Cursor,
49
49
 
50
50
  The agent installs and operates it for you — `leerness init` also writes the instructions into CLAUDE.md / AGENTS.md so future sessions pick them up automatically.
51
51
 
52
- Prefer pure natural language? leerness ships an **MCP server with 86 tools** (`leerness mcp serve`). Connect it once to Claude Desktop / Claude Code and just ask: *"what was I working on?"*, *"did the AI actually finish T-0001?"*
52
+ Prefer pure natural language? leerness ships an **MCP server with 80+ tools** (`leerness mcp serve`). Connect it once to Claude Desktop / Claude Code and just ask: *"what was I working on?"*, *"did the AI actually finish T-0001?"*
53
53
 
54
54
  ---
55
55
 
@@ -121,7 +121,7 @@ MIT
121
121
  <!-- leerness:project-readme:start -->
122
122
  ## Leerness Project Harness
123
123
 
124
- 이 프로젝트는 Leerness v1.36.39 하네스를 사용합니다. AI 에이전트는 작업 전 `leerness handoff`로 컨텍스트를 적재하고, 작업 후 `leerness check`/`leerness audit`/`leerness session close`를 수행해야 합니다.
124
+ 이 프로젝트는 Leerness v1.36.40 하네스를 사용합니다. AI 에이전트는 작업 전 `leerness handoff`로 컨텍스트를 적재하고, 작업 후 `leerness check`/`leerness audit`/`leerness session close`를 수행해야 합니다.
125
125
 
126
126
  ### 정체성 — AI 에이전트 운영 레이어 (UR-0030)
127
127
 
@@ -175,7 +175,7 @@ leerness memory restore decision <date|title>
175
175
 
176
176
  ### MCP server (외부 AI 통합)
177
177
 
178
- Leerness v1.36.39는 stdio JSON-RPC MCP server를 내장합니다 — Claude Code · Cursor · Codex CLI 등 외부 AI에 **86개 도구**를 노출:
178
+ Leerness v1.36.40는 stdio JSON-RPC MCP server를 내장합니다 — Claude Code · Cursor · Codex CLI 등 외부 AI에 **86개 도구**를 노출:
179
179
 
180
180
  ```jsonc
181
181
  // 카테고리별
@@ -194,9 +194,9 @@ Leerness v1.36.39는 stdio JSON-RPC MCP server를 내장합니다 — Claude Cod
194
194
  ### Autonomous mode (자율 모드)
195
195
 
196
196
  `<<autonomous-loop-dynamic>>` 신호만 보내면 AI가:
197
- 1) 다음 라운드 후보 선정 → 2) 코드 변경 → 3) stress-v* 신규 작성 + 누적 회귀 → 4) e2e 219/219 → 5) npm pack + git tag + GitHub release → 6) main 자동 push → 7) session close → 8) 다음 라운드 예약.
197
+ 1) 다음 라운드 후보 선정 → 2) 코드 변경 → 3) 회귀 테스트 갱신 → 4) 전체 e2e 스위트 통과 → 5) npm publish + git tag → 6) main push → 7) session close → 8) 다음 라운드 예약.
198
198
 
199
- 현재 누적: **70 라운드 (1.9.40 → 1.36.39)** · 라운드 GitHub release/태그 생성 · _reports/는 비공개 보존.
199
+ 현재 누적: **v1.9.x → 1.36.40 릴리스 태그 이력** (수백 라운드) · _reports/는 비공개 보존.
200
200
 
201
201
  ### 성능 가이드
202
202
 
@@ -234,6 +234,6 @@ leerness release pack --close --auto-main-push
234
234
  - `.harness/session-handoff.md`: 다음 세션 인수인계 (자동 작성)
235
235
  - `.harness/lessons.md` / `decisions.md` / `rules.md`: 영구 메모리 (5 surface)
236
236
 
237
- Last synced by Leerness v1.36.39: 2026-07-16
237
+ Last synced by Leerness v1.36.40: 2026-07-16
238
238
  <!-- leerness:project-readme:end -->
239
239
 
package/bin/leerness.js CHANGED
@@ -34,7 +34,7 @@ const { CAPABILITY_SURFACE, POWERFUL_COMMANDS, ADAPTERS, REUSE_CATEGORIES, REUSE
34
34
  const { tokenizeForRank: _tokenizeForRank, expandQuery: _expandQuery, scoreHits: _scoreHits, suggestTerms: _suggestTerms } = require('../lib/search-core'); // 1.36.23: memory search 랭킹 코어(순수·0-deps)
35
35
  const { findCorruptedStateJson: _findCorruptedStateJson } = require('../lib/state-integrity'); // 1.36.1 (클린룸 리뷰 FN): .harness/*.json 상태 무결성 (audit/health/check 공유)
36
36
 
37
- const VERSION = '1.36.39';
37
+ const VERSION = '1.36.40';
38
38
 
39
39
  // 1.9.290 (UR-0037, Codex gpt-5.5 #4 수렴): CLI 전용 부작용은 require 시 실행하지 않는다.
40
40
  // 이전: warning listener 제거 / NODE_OPTIONS 변경 / chcp IIFE 가 top-level 즉시 실행 → require('harness') 시 호스트 프로세스 오염.
@@ -365,10 +365,11 @@ function managedReadmeBlock(project) {
365
365
  '',
366
366
  '### Autonomous mode (자율 모드)',
367
367
  '',
368
+ // 1.36.40 (주장 사실성 감사): 고정 수치(e2e 219/219, 70 라운드)는 릴리스마다 드리프트해 거짓이 됨 — 비드리프트 서술로.
368
369
  '`<<autonomous-loop-dynamic>>` 신호만 보내면 AI가:',
369
- '1) 다음 라운드 후보 선정 → 2) 코드 변경 → 3) stress-v* 신규 작성 + 누적 회귀 → 4) e2e 219/219 → 5) npm pack + git tag + GitHub release → 6) main 자동 push → 7) session close → 8) 다음 라운드 예약.',
370
+ '1) 다음 라운드 후보 선정 → 2) 코드 변경 → 3) 회귀 테스트 갱신 → 4) 전체 e2e 스위트 통과 → 5) npm publish + git tag → 6) main push → 7) session close → 8) 다음 라운드 예약.',
370
371
  '',
371
- `현재 누적: **70 라운드 (1.9.40 → ${VERSION})** · 라운드 GitHub release/태그 생성 · _reports/는 비공개 보존.`,
372
+ `현재 누적: **v1.9.x → ${VERSION} 릴리스 태그 이력** (수백 라운드) · _reports/는 비공개 보존.`,
372
373
  '',
373
374
  '### 성능 가이드',
374
375
  '',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "leerness",
3
- "version": "1.36.39",
3
+ "version": "1.36.40",
4
4
  "description": "The AI-coding operations layer that makes \"done\" require evidence — persistent memory, evidence-gated completion checks, and clean handoffs for any AI agent (Claude Code, Codex, Cursor). State lives as plain files in your repo. CLI + MCP, 0 runtime dependencies.",
5
5
  "keywords": [
6
6
  "leerness",