leerness 1.9.168 โ†’ 1.9.169

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,49 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.169 โ€” 2026-05-20
4
+
5
+ **๐Ÿ”ง Hotfix โ€” `_collectWorkspacePaths()` --include ๋ช…์‹œ ์‹œ cwd ์ž๋™ ์ถ”๊ฐ€ ์•ˆ ํ•จ.**
6
+
7
+ ์ž์œจ ๋ชจ๋“œ 99 ๋ผ์šด๋“œ. 1.9.168 release ํ›„ ๋ฐœ๊ฒฌ๋œ e2e flake (209/217) ์˜ ์˜๊ตฌ ํ•ด๊ฒฐ.
8
+
9
+ ### ๋ฌธ์ œ ์ง„๋‹จ
10
+ - `cwd: os.tmpdir()` ๋ช…๋ น ์‹คํ–‰ ์‹œ leerness๊ฐ€ cwd์˜ `.harness` ์ž๋™ ๋ฐœ๊ฒฌ โ†’ ์นด์šดํŠธ +1
11
+ - `os.tmpdir()` ์— ์ž”์กด `.harness` ๋””๋ ‰ํ† ๋ฆฌ ์กด์žฌ ์‹œ `--include` ๋ช…์‹œํ–ˆ์–ด๋„ cwd ์ถ”๊ฐ€๋จ
12
+ - ๊ฒฐ๊ณผ: `brainstorm --include p1,p2` ํ˜ธ์ถœ ์‹œ "3๊ฐœ ํ”„๋กœ์ ํŠธ" (cwd + p1 + p2) ์ž˜๋ชป ์นด์šดํŠธ
13
+ - 1.9.168 ํšŒ๊ท€ ์•„๋‹˜ โ€” 1.9.15 ์ด๋ž˜ ๋ˆ„์ ๋œ ์ž ์žฌ ๋ฒ„๊ทธ (ํ™˜๊ฒฝ ์˜์กด flake)
14
+ - 24,877๊ฐœ ๋ˆ„์  leerness-* ์ž„์‹œ ๋””๋ ‰ํ† ๋ฆฌ + ์ž”์กด `Temp/.harness` ๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ
15
+
16
+ ### Fix โ€” _collectWorkspacePaths() (harness.js, 1.9.15 ๋„์ž… ํ•จ์ˆ˜)
17
+ ```javascript
18
+ function _collectWorkspacePaths(rootBase) {
19
+ const set = new Set();
20
+ const include = arg('--include', null);
21
+ // 1.9.169 fix: --include ๋ช…์‹œ ์‹œ cwd ์ž๋™ ์ถ”๊ฐ€ ์Šคํ‚ต (explicit-only)
22
+ if (!include) {
23
+ if (exists(path.join(rootBase, '.harness'))) set.add(rootBase);
24
+ }
25
+ // ... --all-apps ๋™์ž‘ ์œ ์ง€
26
+ if (include) { /* explicit paths only */ }
27
+ return Array.from(set);
28
+ }
29
+ ```
30
+
31
+ **์›์น™**: `--include` ๊ฐ€ ๋ช…์‹œ๋˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์˜๋„ํ•œ explicit ๊ฒฝ๋กœ๋งŒ ์‚ฌ์šฉ. `--all-apps` ๋‹จ๋… ๋˜๋Š” ์ธ์ž ์—†๋Š” ๊ฒฝ์šฐ ๊ธฐ์กด ๋™์ž‘ (cwd ์ž๋™ ์ถ”๊ฐ€) ์œ ์ง€.
32
+
33
+ ### ์˜ํ–ฅ ๋ฒ”์œ„
34
+ - `brainstorm --include`, `insights --include`, `handoff --include`, `reuse-map --include`, `retro --include`
35
+ - ๋ชจ๋“  `--include` / ๋‹ค์ค‘ ํ”„๋กœ์ ํŠธ ๋ช…๋ น ์ •ํ™•ํ•œ ์นด์šดํŠธ
36
+
37
+ ### Verified
38
+ - e2e **217/217 โœ“** (1.9.168 ์‹œ์  209/217 โ†’ 1.9.169 217/217 ํšŒ๋ณต)
39
+ - stress-v114: 14/14 (hotfix 4 + e2e ํšŒ๋ณต 3 + ๋ˆ„์  ํšŒ๊ท€ 7)
40
+ - ์ง„๋‹จ ๊ฒ€์ฆ: `os.tmpdir()/.harness` ์‹œ๋ฎฌ ํ™˜๊ฒฝ์—์„œ๋„ ์ •ํ™• ์นด์šดํŠธ
41
+ - VERSION = 1.9.169 / autonomous-rounds = 99 / main ์ž๋™ push 30 ๋ผ์šด๋“œ ์—ฐ์†
42
+
43
+ ### ๋‹ค์Œ ๋ผ์šด๋“œ (1.9.170) โ€” ๐ŸŽ‰ 100 ๋ผ์šด๋“œ ๋งˆ์ผ์Šคํ†ค ๋„๋‹ฌ
44
+
45
+ ---
46
+
3
47
  ## 1.9.168 โ€” 2026-05-20
4
48
 
5
49
  **MCP bridge 3์ข… ๋…ธ์ถœ (web/pc/lsp) โ€” 50 โ†’ 53 ๋„๊ตฌ + ์™ธ๋ถ€ AI ์ž๋™ํ™” ๋Šฅ๋ ฅ ์ง๊ฒฐ.**
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.168-green)]() [![tests](https://img.shields.io/badge/e2e-217%2F217-success)]() [![stress](https://img.shields.io/badge/stress--v113-17%2F17-success)]() [![mcp](https://img.shields.io/badge/MCP--tools-53-brightgreen)]() [![rounds](https://img.shields.io/badge/autonomous--rounds-98-blueviolet)]() [![main-push](https://img.shields.io/badge/release--main--push-29_rounds-success)]() [![mcp-bridge](https://img.shields.io/badge/MCP_bridge-web%2Fpc%2Flsp_๋…ธ์ถœ-success)]() [![lsp-bridge](https://img.shields.io/badge/lsp_bridge-typescript_opt--in%2Bregex_fallback-success)]() [![pc-bridge](https://img.shields.io/badge/pc_bridge-robotjs%2Fnut--tree_opt--in-success)]() [![web-bridge](https://img.shields.io/badge/playwright_bridge-opt--in_MVP-success)]() [![capability](https://img.shields.io/badge/6_capability-72%25_production--ready-brightgreen)]() [![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.169-green)]() [![tests](https://img.shields.io/badge/e2e-217%2F217-success)]() [![stress](https://img.shields.io/badge/stress--v114-14%2F14-success)]() [![mcp](https://img.shields.io/badge/MCP--tools-53-brightgreen)]() [![rounds](https://img.shields.io/badge/autonomous--rounds-99-blueviolet)]() [![main-push](https://img.shields.io/badge/release--main--push-30_rounds-success)]() [![hotfix](https://img.shields.io/badge/1.9.169-include_explicit--only-success)]() [![mcp-bridge](https://img.shields.io/badge/MCP_bridge-web%2Fpc%2Flsp_๋…ธ์ถœ-success)]() [![lsp-bridge](https://img.shields.io/badge/lsp_bridge-typescript_opt--in%2Bregex_fallback-success)]() [![pc-bridge](https://img.shields.io/badge/pc_bridge-robotjs%2Fnut--tree_opt--in-success)]() [![web-bridge](https://img.shields.io/badge/playwright_bridge-opt--in_MVP-success)]() [![capability](https://img.shields.io/badge/6_capability-72%25_production--ready-brightgreen)]() [![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.168 AI Agent Reliability Harness + Sandbox โ•‘
15
+ โ•‘ v1.9.169 AI Agent Reliability Harness + Sandbox โ•‘
16
16
  โ•‘ verify ยท remember ยท orchestrate ยท audit ยท sandbox ยท drift โ•‘
17
- โ•‘ 53 MCP tools ยท web/pc/lsp bridge ์™ธ๋ถ€ AI ์ง์ ‘ ํ˜ธ์ถœ ๊ฐ€๋Šฅ โ•‘
17
+ โ•‘ hotfix --include explicit-only ยท 30 ๋ผ์šด๋“œ main ์ž๋™ push โ•‘
18
18
  โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
19
19
  ```
20
20
 
package/bin/harness.js CHANGED
@@ -6,7 +6,7 @@ const path = require('path');
6
6
  const cp = require('child_process');
7
7
  const readline = require('readline');
8
8
 
9
- const VERSION = '1.9.168';
9
+ const VERSION = '1.9.169';
10
10
  const MARK = '<!-- leerness:managed -->';
11
11
  const README_START = '<!-- leerness:project-readme:start -->';
12
12
  const README_END = '<!-- leerness:project-readme:end -->';
@@ -6343,9 +6343,16 @@ function _retroOneLine(agg) {
6343
6343
  }
6344
6344
 
6345
6345
  // 1.9.15: --all-apps / --include ๊ฒฝ๋กœ ๋ชจ์Œ
6346
+ // 1.9.169 fix: --include ๋ช…์‹œ๋˜๋ฉด cwd ์ž๋™ ์ถ”๊ฐ€ ์•ˆ ํ•จ (explicit-only).
6347
+ // ๊ธฐ์กด: cwd/.harness ์ž๋™ ์ถ”๊ฐ€ โ†’ ์ž”์กด .harness ์‹œ ์˜๋„์น˜ ์•Š์€ ์นด์šดํŠธ ์ฆ๊ฐ€ (e2e flake ์›์ธ)
6348
+ // ๋ณ€๊ฒฝ: --include ์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ช…์‹œํ•œ ๊ฒฝ๋กœ๋งŒ ์‚ฌ์šฉ. --all-apps ๋‹จ๋…์€ ๊ธฐ์กด ๋™์ž‘ ์œ ์ง€.
6346
6349
  function _collectWorkspacePaths(rootBase) {
6347
6350
  const set = new Set();
6348
- if (exists(path.join(rootBase, '.harness'))) set.add(rootBase);
6351
+ const include = arg('--include', null);
6352
+ // --include ๋ช…์‹œ ์‹œ cwd ์ž๋™ ์ถ”๊ฐ€ ์Šคํ‚ต (explicit-only ๋ณด์žฅ)
6353
+ if (!include) {
6354
+ if (exists(path.join(rootBase, '.harness'))) set.add(rootBase);
6355
+ }
6349
6356
  if (has('--all-apps')) {
6350
6357
  const baseCandidates = [path.resolve(rootBase, '_apps'), path.resolve(rootBase, '..', '_apps')];
6351
6358
  for (const base of baseCandidates) {
@@ -6360,7 +6367,6 @@ function _collectWorkspacePaths(rootBase) {
6360
6367
  }
6361
6368
  }
6362
6369
  }
6363
- const include = arg('--include', null);
6364
6370
  if (include) {
6365
6371
  for (const p of String(include).split(',')) {
6366
6372
  const abs = path.resolve(p.trim());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "leerness",
3
- "version": "1.9.168",
3
+ "version": "1.9.169",
4
4
  "description": "Leerness: ๋น„ํŒŒ๊ดด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜, ์ž๋™ ๋ฒ„์ „ ๊ฐ์ง€ยท์—…๋ฐ์ดํŠธ, ๊ณ„ํš/์ง„ํ–‰/ํ•ธ๋“œ์˜คํ”„ ์ž๋™ํ™”, ๊ฒŒ์œผ๋ฆ„ยท์‹œํฌ๋ฆฟยท์ธ์ฝ”๋”ฉ ์ž๋™ ๊ฐ€๋“œ, Claude Code ์Šฌ๋ž˜์‹œ ํ†ตํ•ฉ์„ ๊ฐ–์ถ˜ ํ•œ๊ตญ์–ด ์šฐ์„  AI ๊ฐœ๋ฐœ ํ•˜๋„ค์Šค.",
5
5
  "keywords": [
6
6
  "leerness",