leerness 1.9.226 β†’ 1.9.227

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,46 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.227 β€” 2026-05-23
4
+
5
+ **πŸ“Š handoff/session close --json roundHistory 톡합 (6 ν•„λ“œ μ™„μ„±) + CLAUDE/AGENTS drift 차단.**
6
+
7
+ ### 1. handoff --json 6번째 톡합 ν•„λ“œ `roundHistory`
8
+ - `{ roundCount, baselineVersion, nextMilestone, roundsToNextMilestone, daysActive, avgRoundsPerDay }`
9
+ - μ™ΈλΆ€ CI/λͺ¨λ‹ˆν„°λ§μ΄ λΌμš΄λ“œ 진행도 + λ‹€μŒ λ§ˆμΌμŠ€ν†€ 직접 회수
10
+ - 1.9.218 (4 ν•„λ“œ) β†’ 1.9.223 (5 ν•„λ“œ) β†’ 1.9.227 (**6 ν•„λ“œ μ™„μ„±**)
11
+
12
+ ### 2. session close --json 6번째 톡합 ν•„λ“œ `roundHistory`
13
+ - 마감 μ‹œ 진행도 톡계 동기 λ…ΈμΆœ
14
+ - handoff/session close JSON 동일 νŒ¨ν„΄ μœ μ§€
15
+
16
+ ### 3. CLAUDE.md / AGENTS.md drift 차단 κ°±μ‹ 
17
+ - 1.9.222~227 6 λΌμš΄λ“œ λˆ„μ  톡합 (이전 κ°±μ‹ : 1.9.214)
18
+ - μ‹ κ·œ μ„Ήμ…˜: "μ‚¬μš©μž μš”μ²­ μžλ™ μ™„λ£Œ μ‹œμŠ€ν…œ (1.9.223~225)" + "λΌμš΄λ“œ 진행도 κ°€μ‹œν™” (1.9.226~227)"
19
+ - μƒˆ λ©”νƒ€νŒŒμΌ (last update: 1.9.214 β†’ 1.9.227, 6 λΌμš΄λ“œ λˆ„μ )
20
+
21
+ ### 4. 6 톡합 ν•„λ“œ 맀트릭슀 μ™„μ„± (handoff/session close --json 일관성)
22
+ - userRequestsAudit (1.9.207/218)
23
+ - preWakeAudit (1.9.209/218)
24
+ - idempotencyAudit (1.9.212/218)
25
+ - abnormalShutdown (1.9.220/221)
26
+ - deliveredRequests (1.9.223)
27
+ - **roundHistory** (1.9.226/227) ⭐
28
+
29
+ ### 5. λˆ„μ  νšŒκ·€ (1.9.207~226) β€” λͺ¨λ‘ μœ μ§€
30
+
31
+ ### 6. stress-v172 β€” 17/17 PASS
32
+ - 1.9.227 (7): VERSION + handoff JSON + session close JSON + 6 ν•„λ“œ 검증 (handoff) + 6 ν•„λ“œ 검증 (session close) + CLAUDE λˆ„μ  + AGENTS λˆ„μ 
33
+ - μ„±λŠ₯ (2): cold_start avg 400ms / handoff --json 641ms
34
+ - λˆ„μ  νšŒκ·€ (8): 1.9.207~226
35
+
36
+ ### 7. μžλ™ release (89 λΌμš΄λ“œ main-push streak Β· 50 λΌμš΄λ“œ npm publish streak πŸŽ‰)
37
+
38
+ πŸ“Š **JSON 톡합 맀트릭슀 μ™„μ„±** β€” μ™ΈλΆ€ μžλ™ν™”/CI κ°€ leerness μƒνƒœ 6 차원 동기 회수
39
+
40
+ πŸŽ‰ **50 λΌμš΄λ“œ npm publish streak 달성**
41
+
42
+ ---
43
+
3
44
  ## 1.9.226 β€” 2026-05-23
4
45
 
5
46
  **πŸ”„ round-history CLI + handoff ν—€λ“œλΌμΈ λΌμš΄λ“œ μΉ΄μš΄ν„° + MCP 62번째 도ꡬ.**
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > **AI μ½”λ”© μ—μ΄μ „νŠΈμ˜ κ±°μ§“ μ™„λ£ŒΒ·μ€‘λ³΅Β·λ§κ°Β·μΆ©λŒμ„ λ§‰μ•„μ£ΌλŠ” κ²€μˆ˜Β·κΈ°μ–΅Β·ν˜‘μ—… CLI ν•˜λ„€μŠ€.**
4
4
 
5
- [![npm](https://img.shields.io/badge/npm-leerness-blue)](https://www.npmjs.com/package/leerness) [![version](https://img.shields.io/badge/version-1.9.226-green)]() [![tests](https://img.shields.io/badge/e2e-217%2F217-success)]() [![stress](https://img.shields.io/badge/stress--v171-16%2F16-success)]() [![mcp](https://img.shields.io/badge/MCP--tools-62-brightgreen)]() [![rounds](https://img.shields.io/badge/autonomous--rounds-182-blueviolet)]() [![main-push](https://img.shields.io/badge/release--main--push-88_rounds-success)]() [![goal-matrix](https://img.shields.io/badge/λͺ©μ _맀트릭슀-100%2F100_(5μΆ•)-brightgreen)]() [![round-history](https://img.shields.io/badge/πŸ”„_round--history-R182_β†’_R200-blueviolet)]() [![perf](https://img.shields.io/badge/cold_start-336ms-success)]() [![install](https://img.shields.io/badge/npm_i_leerness-μ¦‰μ‹œ_μ‚¬μš©_κ°€λŠ₯-success)]() [![sandbox](https://img.shields.io/badge/runCommandSafe-cwd_jail%2Benv_scrub-success)]() [![license](https://img.shields.io/badge/license-MIT-lightgrey)]()
5
+ [![npm](https://img.shields.io/badge/npm-leerness-blue)](https://www.npmjs.com/package/leerness) [![version](https://img.shields.io/badge/version-1.9.227-green)]() [![tests](https://img.shields.io/badge/e2e-217%2F217-success)]() [![stress](https://img.shields.io/badge/stress--v172-17%2F17-success)]() [![mcp](https://img.shields.io/badge/MCP--tools-62-brightgreen)]() [![rounds](https://img.shields.io/badge/autonomous--rounds-183-blueviolet)]() [![main-push](https://img.shields.io/badge/release--main--push-89_rounds-success)]() [![goal-matrix](https://img.shields.io/badge/λͺ©μ _맀트릭슀-100%2F100_(5μΆ•)-brightgreen)]() [![json-fields](https://img.shields.io/badge/πŸ“Š_JSON_톡합_ν•„λ“œ-6%2F6-blueviolet)]() [![perf](https://img.shields.io/badge/cold_start-400ms-success)]() [![install](https://img.shields.io/badge/npm_i_leerness-μ¦‰μ‹œ_μ‚¬μš©_κ°€λŠ₯-success)]() [![sandbox](https://img.shields.io/badge/runCommandSafe-cwd_jail%2Benv_scrub-success)]() [![license](https://img.shields.io/badge/license-MIT-lightgrey)]()
6
6
 
7
7
  ```
8
8
  ╔══════════════════════════════════════════════════════════════╗
@@ -12,9 +12,9 @@
12
12
  β•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β• β–ˆβ–ˆβ•”β•β•β• β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β• β•šβ•β•β•β•β–ˆβ–ˆβ•‘ β•‘
13
13
  β•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘ β•‘
14
14
  β•‘ β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β• β•šβ•β•β•šβ•β• β•šβ•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β• β•‘
15
- β•‘ v1.9.226 AI Agent Reliability Harness + Sandbox β•‘
15
+ β•‘ v1.9.227 AI Agent Reliability Harness + Sandbox β•‘
16
16
  β•‘ verify Β· remember Β· orchestrate Β· audit Β· sandbox Β· drift β•‘
17
- β•‘ πŸ”„ round-history CLI + handoff R182 β†’ R200 λ§ˆμΌμŠ€ν†€ β•‘
17
+ β•‘ πŸ“Š handoff/session close --json 6 톡합 ν•„λ“œ μ™„μ„± β•‘
18
18
  β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•
19
19
  ```
20
20
 
package/bin/harness.js CHANGED
@@ -7,7 +7,7 @@ const cp = require('child_process');
7
7
  const os = require('os'); // 1.9.178: _publishToNpm μ—μ„œ os.tmpdir() μ‚¬μš© (μ „μ—­ import)
8
8
  const readline = require('readline');
9
9
 
10
- const VERSION = '1.9.226';
10
+ const VERSION = '1.9.227';
11
11
 
12
12
  // 1.9.184: DEP0190 (child_process shell: true) deprecation warning μ–΅μ œ (μ‚¬μš©μž λͺ…μ‹œ).
13
13
  // leerness λŠ” cross-platform PATH resolution 을 μœ„ν•΄ shell: true λ₯Ό μ˜λ„μ μœΌλ‘œ μ‚¬μš© (claude.cmd / ollama.cmd λ“± Windows .cmd 처리).
@@ -5903,6 +5903,18 @@ function handoff(root) {
5903
5903
  ids: delivered.candidates.map(c => c.id)
5904
5904
  };
5905
5905
  } catch {}
5906
+ // 1.9.227: roundHistory 톡합 (handoff JSON 6번째 톡합 ν•„λ“œ) β€” 자율 진행도 μ™ΈλΆ€ 회수
5907
+ try {
5908
+ const rh = _computeRoundHistory(root);
5909
+ result.roundHistory = {
5910
+ roundCount: rh.roundCount,
5911
+ baselineVersion: rh.baselineVersion,
5912
+ nextMilestone: rh.nextMilestone,
5913
+ roundsToNextMilestone: rh.roundsToNextMilestone,
5914
+ daysActive: rh.daysActive,
5915
+ avgRoundsPerDay: rh.avgRoundsPerDay
5916
+ };
5917
+ } catch {}
5906
5918
  } catch {}
5907
5919
  try {
5908
5920
  const pwState = _loadPreWakeReport(root);
@@ -10028,6 +10040,18 @@ function sessionClose(root, opts = {}) {
10028
10040
  autoCompleteAvailable: delivered.candidates.length > 0
10029
10041
  };
10030
10042
  } catch {}
10043
+ // 1.9.227: roundHistory 톡합 (session close JSON 6번째 톡합 ν•„λ“œ)
10044
+ try {
10045
+ const rh = _computeRoundHistory(root);
10046
+ jsonResult.roundHistory = {
10047
+ roundCount: rh.roundCount,
10048
+ baselineVersion: rh.baselineVersion,
10049
+ nextMilestone: rh.nextMilestone,
10050
+ roundsToNextMilestone: rh.roundsToNextMilestone,
10051
+ daysActive: rh.daysActive,
10052
+ avgRoundsPerDay: rh.avgRoundsPerDay
10053
+ };
10054
+ } catch {}
10031
10055
  } catch {}
10032
10056
  try {
10033
10057
  // 1.9.209: pre-wake-audit μžλ™ μ‹€ν–‰ + μ €μž₯ (sleep μ „ μžλ™ 점검)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "leerness",
3
- "version": "1.9.226",
3
+ "version": "1.9.227",
4
4
  "description": "Leerness: λΉ„νŒŒκ΄΄ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜, μžλ™ 버전 κ°μ§€Β·μ—…λ°μ΄νŠΈ, κ³„νš/μ§„ν–‰/ν•Έλ“œμ˜€ν”„ μžλ™ν™”, κ²ŒμœΌλ¦„Β·μ‹œν¬λ¦ΏΒ·μΈμ½”λ”© μžλ™ κ°€λ“œ, Claude Code μŠ¬λž˜μ‹œ 톡합을 κ°–μΆ˜ ν•œκ΅­μ–΄ μš°μ„  AI 개발 ν•˜λ„€μŠ€.",
5
5
  "keywords": [
6
6
  "leerness",