leerness 1.9.229 β 1.9.230
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 +32 -0
- package/README.md +3 -3
- package/bin/harness.js +39 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.9.230 β 2026-05-23
|
|
4
|
+
|
|
5
|
+
**π handoff/session close/health --json milestones ν΅ν© (7 νλ μμ±) + ν€λλΌμΈ ETA μλ° νμ.**
|
|
6
|
+
|
|
7
|
+
### 1. handoff/session close/health --json 7λ²μ§Έ ν΅ν© νλ `milestones`
|
|
8
|
+
- 1.9.229 milestones λ°μ΄ν°λ₯Ό JSON 3 λͺ
λ Ή λͺ¨λμ ν΅ν©
|
|
9
|
+
- λμΌ νμ: `{ reachedCount, reached: [{milestone, version, reachedAt}], next, avgRoundsPerDay }`
|
|
10
|
+
- 1.9.218 (4 νλ) β 1.9.223 (5) β 1.9.227 (6) β 1.9.230 (**7 νλ**)
|
|
11
|
+
|
|
12
|
+
### 2. 3 λͺ
λ Ή milestones λμΌ νμ μΌκ΄μ±
|
|
13
|
+
- handoff/session close/health λͺ¨λ λμΌν `milestones` κ°μ²΄ λ°ν
|
|
14
|
+
- μΈλΆ μλν/CI κ° μ΄λ λͺ
λ ΉμΌλ‘ μ‘°νν΄λ λμΌ κ²°κ³Ό
|
|
15
|
+
- μΌκ΄μ± λ§€νΈλ¦μ€: 3 λͺ
λ Ή Γ 7 νλ = **21 ν΅ν© ν¬μΈνΈ**
|
|
16
|
+
|
|
17
|
+
### 3. handoff ν€λλΌμΈ μλ° ETA νμ (1.9.230)
|
|
18
|
+
- λ€μ λ§μΌμ€ν€μ΄ **10R μ΄λ΄** + ETAκ° **7μΌ μ΄λ΄** μΌ λλ§ λ³λ λ
ΈμΆ
|
|
19
|
+
- `π― R200 ETA 2026-05-24` νμ (νμ¬λ 14R λ¨μ λ³΄νΈ κ°λ λ°λ X)
|
|
20
|
+
- λ§μΌμ€ν€ μλ° μ μλ κ°μ‘° (μ€νΈ λ°©μ§: 쑰건 μΆ©μ‘± μλ§)
|
|
21
|
+
|
|
22
|
+
### 4. λμ νκ· (1.9.207~229) β λͺ¨λ μ μ§
|
|
23
|
+
|
|
24
|
+
### 5. stress-v175 β 17/17 PASS
|
|
25
|
+
- 1.9.230 (7): VERSION + handoff/session close/health JSON + 3 λͺ
λ Ή μΌκ΄μ± + 7 νλ κ²μ¦ + ν€λλΌμΈ ETA
|
|
26
|
+
- μ±λ₯ (2): cold_start avg 439ms / handoff --json (7 νλ) 1019ms
|
|
27
|
+
- λμ νκ· (8): 1.9.207~229
|
|
28
|
+
|
|
29
|
+
### 6. μλ release (92 λΌμ΄λ main-push streak Β· 53 λΌμ΄λ npm publish streak)
|
|
30
|
+
|
|
31
|
+
π **JSON ν΅ν© λ§€νΈλ¦μ€ 7 νλ μμ±** β μΈλΆ μλνκ° leerness μνλ₯Ό 7 μ°¨μ λκΈ° νμ (3 λͺ
λ Ή μΌκ΄μ±)
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
3
35
|
## 1.9.229 β 2026-05-23
|
|
4
36
|
|
|
5
37
|
**π― leerness milestones CLI + MCP 63λ²μ§Έ λꡬ (λλ¬ λ§μΌμ€ν€ + ETA μμΈ‘).**
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> **AI μ½λ© μμ΄μ νΈμ κ±°μ§ μλ£Β·μ€λ³΅Β·λ§κ°Β·μΆ©λμ λ§μμ£Όλ κ²μΒ·κΈ°μ΅Β·νμ
CLI νλ€μ€.**
|
|
4
4
|
|
|
5
|
-
[](https://www.npmjs.com/package/leerness) [](https://www.npmjs.com/package/leerness) []() []() []() []() []() []() [-brightgreen)]() []() []() []() []() []()
|
|
6
6
|
|
|
7
7
|
```
|
|
8
8
|
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
β βββ ββββββ ββββββ ββββββββββββββββββββββββ ββββββββ β
|
|
13
13
|
β βββββββββββββββββββββββββββ ββββββ ββββββββββββββββββββββ β
|
|
14
14
|
β βββββββββββββββββββββββββββ ββββββ βββββββββββββββββββββ β
|
|
15
|
-
β v1.9.
|
|
15
|
+
β v1.9.230 AI Agent Reliability Harness + Sandbox β
|
|
16
16
|
β verify Β· remember Β· orchestrate Β· audit Β· sandbox Β· drift β
|
|
17
|
-
β
|
|
17
|
+
β π JSON 3 λͺ
λ Ή Γ 7 νλ = 21 ν΅ν© ν¬μΈνΈ β
|
|
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.
|
|
10
|
+
const VERSION = '1.9.230';
|
|
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 μ²λ¦¬).
|
|
@@ -6006,6 +6006,16 @@ function handoff(root) {
|
|
|
6006
6006
|
avgRoundsPerDay: rh.avgRoundsPerDay
|
|
6007
6007
|
};
|
|
6008
6008
|
} catch {}
|
|
6009
|
+
// 1.9.230: milestones ν΅ν© (handoff JSON 7λ²μ§Έ ν΅ν© νλ) β λλ¬ λ§μΌμ€ν€ + ETA
|
|
6010
|
+
try {
|
|
6011
|
+
const ms = _computeMilestones(root);
|
|
6012
|
+
result.milestones = {
|
|
6013
|
+
reachedCount: ms.reached.length,
|
|
6014
|
+
reached: ms.reached.map(m => ({ milestone: m.milestone, version: m.version, reachedAt: m.reachedAt })),
|
|
6015
|
+
next: ms.next,
|
|
6016
|
+
avgRoundsPerDay: ms.avgRoundsPerDay
|
|
6017
|
+
};
|
|
6018
|
+
} catch {}
|
|
6009
6019
|
} catch {}
|
|
6010
6020
|
try {
|
|
6011
6021
|
const pwState = _loadPreWakeReport(root);
|
|
@@ -6169,6 +6179,7 @@ function handoff(root) {
|
|
|
6169
6179
|
}
|
|
6170
6180
|
} catch {}
|
|
6171
6181
|
// 17) 1.9.226: round-history ν€λλΌμΈ β μμ¨ λΌμ΄λ μΉ΄μ΄ν° + λ€μ λ§μΌμ€ν€ (5 λΌμ΄λ μ΄μ μλ§ νμ)
|
|
6182
|
+
// 1.9.230: λ€μ λ§μΌμ€ν€ ETA (10R μ΄λ΄ + ETA 7μΌ μ΄λ΄μΌ λ κ°μ‘°)
|
|
6172
6183
|
try {
|
|
6173
6184
|
const rh = _computeRoundHistory(root);
|
|
6174
6185
|
if (rh.roundCount >= 5) {
|
|
@@ -6177,6 +6188,13 @@ function handoff(root) {
|
|
|
6177
6188
|
label += ` β R${rh.nextMilestone} (${rh.roundsToNextMilestone}R λ¨μ)`;
|
|
6178
6189
|
}
|
|
6179
6190
|
parts.push(label);
|
|
6191
|
+
// 1.9.230: μλ° λ§μΌμ€ν€ ETA λ³λ λ
ΈμΆ (λ€μ λ§μΌμ€ν€μ΄ λ§€μ° κ°κΉμΈ λλ§)
|
|
6192
|
+
try {
|
|
6193
|
+
const ms = _computeMilestones(root);
|
|
6194
|
+
if (ms.next && ms.next.roundsRemaining <= 10 && ms.next.etaDays != null && ms.next.etaDays <= 7) {
|
|
6195
|
+
parts.push(`π― R${ms.next.milestone} ETA ${ms.next.etaDate}`);
|
|
6196
|
+
}
|
|
6197
|
+
} catch {}
|
|
6180
6198
|
}
|
|
6181
6199
|
} catch {}
|
|
6182
6200
|
// 12) 1.9.204: μλ λͺ¨λ νμ± νμ (μ¬μ©μ λͺ
μ) β R-0001 every-round λ£° νμ± μ ν€λλΌμΈ λ
ΈμΆ
|
|
@@ -10143,6 +10161,16 @@ function sessionClose(root, opts = {}) {
|
|
|
10143
10161
|
avgRoundsPerDay: rh.avgRoundsPerDay
|
|
10144
10162
|
};
|
|
10145
10163
|
} catch {}
|
|
10164
|
+
// 1.9.230: milestones ν΅ν© (session close JSON 7λ²μ§Έ ν΅ν© νλ)
|
|
10165
|
+
try {
|
|
10166
|
+
const ms = _computeMilestones(root);
|
|
10167
|
+
jsonResult.milestones = {
|
|
10168
|
+
reachedCount: ms.reached.length,
|
|
10169
|
+
reached: ms.reached.map(m => ({ milestone: m.milestone, version: m.version, reachedAt: m.reachedAt })),
|
|
10170
|
+
next: ms.next,
|
|
10171
|
+
avgRoundsPerDay: ms.avgRoundsPerDay
|
|
10172
|
+
};
|
|
10173
|
+
} catch {}
|
|
10146
10174
|
} catch {}
|
|
10147
10175
|
try {
|
|
10148
10176
|
// 1.9.209: pre-wake-audit μλ μ€ν + μ μ₯ (sleep μ μλ μ κ²)
|
|
@@ -16474,6 +16502,16 @@ function healthCmd(root) {
|
|
|
16474
16502
|
avgRoundsPerDay: rh.avgRoundsPerDay
|
|
16475
16503
|
};
|
|
16476
16504
|
} catch { out.roundHistory = { error: 'roundHistory μ κ² μ€ν¨' }; }
|
|
16505
|
+
// 1.9.230: health --json milestones ν΅ν© (handoff/session close/health 3 λͺ
λ Ή μΌκ΄μ± μ μ§)
|
|
16506
|
+
try {
|
|
16507
|
+
const ms = _computeMilestones(root);
|
|
16508
|
+
out.milestones = {
|
|
16509
|
+
reachedCount: ms.reached.length,
|
|
16510
|
+
reached: ms.reached.map(m => ({ milestone: m.milestone, version: m.version, reachedAt: m.reachedAt })),
|
|
16511
|
+
next: ms.next,
|
|
16512
|
+
avgRoundsPerDay: ms.avgRoundsPerDay
|
|
16513
|
+
};
|
|
16514
|
+
} catch { out.milestones = { error: 'milestones μ κ² μ€ν¨' }; }
|
|
16477
16515
|
// 1.9.163: 5λ₯λ ₯ λ§€νΈλ¦μ€ μλ νκ° (1.9.155 sub-agent μ κ² β μ½λ κΈ°λ° μλν)
|
|
16478
16516
|
// κ° λ₯λ ₯μ μ½λ grep μΌλ‘ κ²μΆ β 0~100 μ μ. μ¬μ©μκ° λ§€ health νΈμΆ μ leerness μκΈ° νκ° νμΈ.
|
|
16479
16517
|
try {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "leerness",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.230",
|
|
4
4
|
"description": "Leerness: λΉνκ΄΄ λ§μ΄κ·Έλ μ΄μ
, μλ λ²μ κ°μ§Β·μ
λ°μ΄νΈ, κ³ν/μ§ν/νΈλμ€ν μλν, κ²μΌλ¦Β·μν¬λ¦ΏΒ·μΈμ½λ© μλ κ°λ, Claude Code μ¬λμ ν΅ν©μ κ°μΆ νκ΅μ΄ μ°μ AI κ°λ° νλ€μ€.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"leerness",
|