leerness 1.36.184 → 1.36.185

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,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.36.185 — 2026-09-04
4
+
5
+ - T-0165/T-0166/T-0167/T-0171/T-0172: adds honest provider-capacity observation, exact-file TTL leases, strict Role/Agent/Routing v2 schemas, a fail-closed legacy role-store loader, and availability-aware role fallback with revision-bound execution provenance. Compatibility fields remain explicit, high-risk reviewer independence requires concrete model identities, corrupt state is preserved without provider execution, and all new surfaces are covered by adversarial regression probes.
6
+
3
7
  ## 1.36.184 — 2026-09-01
4
8
 
5
9
  - T-0164: English-mode mode output now emits zero Hangul across stored, environment, and explicit locale paths, including pre-dispatch and stale-version diagnostics, while preserving Korean and locale-independent JSON contracts. Lock-time manifest rereads fail closed on corruption and normalize concurrent valid mode values before writing, with deterministic real-EEXIST regressions; the 39-command leakage ratchet tightens exactly from 30 to 27 lines.
package/README.ko.md CHANGED
@@ -13,7 +13,7 @@
13
13
 
14
14
  > **어떤 언어, 어떤 AI 에이전트로 작업하든 — "증거 없이는 끝났다고 말할 수 없게" 만드는 AI 코딩 운영 레이어.** 코드를 대신 쓰는 도구가 아니라, AI 에이전트의 **기억·인수인계·검증·감사·보안 가드**를 프로젝트에 영속화하는 CLI + MCP 서버입니다.
15
15
 
16
- [![npm](https://img.shields.io/npm/v/leerness)](https://www.npmjs.com/package/leerness) · ![MCP tools](https://img.shields.io/badge/MCP--tools-89-blue) · **런타임 의존성 0** · **install-script 0** · offline-first · Node ≥ 18 · MIT
16
+ [![npm](https://img.shields.io/npm/v/leerness)](https://www.npmjs.com/package/leerness) · ![MCP tools](https://img.shields.io/badge/MCP--tools-98-blue) · **런타임 의존성 0** · **install-script 0** · offline-first · Node ≥ 18 · MIT
17
17
 
18
18
  ---
19
19
 
@@ -25,7 +25,7 @@ AI 코딩 에이전트(Claude Code, Cursor, Codex, Aider, Goose 등)는 코드
25
25
  2. **거짓 완료를 선언합니다** — 증거(파일·테스트·로그) 없이 "완료했습니다"라고 말합니다.
26
26
  3. **표준이 없습니다** — 여러 에이전트 간 인수인계, 보안/인코딩 점검, 드리프트 관리가 제각각입니다.
27
27
 
28
- leerness는 이 문제들을 해결하는 **외부 운영 substrate**입니다. 어떤 에이전트 위에도 얹어, 프로젝트의 상태를 `.leerness/` 파일로 영속화하고 CLI · MCP 도구로 노출합니다. **leerness 자체는 LLM을 호출하거나 코드를 실행하지 않습니다.**
28
+ leerness는 이 문제들을 해결하는 **외부 운영 substrate**입니다. 어떤 에이전트 위에도 얹어, 프로젝트의 상태를 `.leerness/` 파일로 영속화하고 CLI · MCP 도구로 노출합니다. 기본 상태에서는 외부 모델을 임의 호출하지 않습니다. 다만 사용자가 `agents multi --execute`, `agents bench` 같은 실행 명령을 명시하면 opt-in 된 외부 CLI를 시작하고 실제 실행 결과를 원장에 기록할 수 있습니다.
29
29
 
30
30
  ---
31
31
 
@@ -111,10 +111,10 @@ leerness verify-claim T-0001 --require-evidence
111
111
  - **메모리**: `task` · `plan` · `decision` · `lesson` · `rule` · `feature` · `memory status/search`
112
112
  - **인수인계/세션**: `handoff` · `session close` · `pulse` · `health`
113
113
  - **검증/감사**: `check` · `gate` · `audit` · `drift check` · `lazy detect` · `scan secrets` · `encoding check` · `verify-code` · `verify-claim` · `contract verify`
114
- - **외부 에이전트**: `agents list/check/dispatch` · `provider` · `roles` · `adapter`
114
+ - **외부 에이전트**: `agents list/check/quota/resolve/fallback/availability/record/history/dispatch` · `provider` · `roles` · `adapter`
115
115
  - **운영/확장**: `release` · `migrate` · `team` · `install-safety` · `route` · `review`(페르소나)
116
116
  - **브리지(opt-in)**: `web`(playwright) · `pc`(robotjs) · `lsp`
117
- - **MCP**: `mcp serve` — stdio JSON-RPC 서버로 80+ 도구 노출 (verify-claim --all 일괄 검증 포함, 1.33.3)
117
+ - **MCP**: `mcp serve` — stdio JSON-RPC 서버로 98개 도구 노출 (verify-claim --all 일괄 검증 포함)
118
118
 
119
119
  전체 명령은 `leerness commands` 또는 `leerness --help` 로 확인하세요.
120
120
 
@@ -140,15 +140,22 @@ leerness contract verify spec.md src/api.js # 명세 함수/필드 누락 → ex
140
140
  leerness verify-claim T-0001 --require-evidence
141
141
  ```
142
142
 
143
- **다중 에이전트 조율**
143
+ **역할 우선 다중 에이전트 조율**
144
144
  ```bash
145
- leerness agents list # 설치된 외부 AI CLI 가용성
146
- leerness agents dispatch "코드 리뷰" --to codex # 실행 명령 생성(직접 실행은 사용자/메인 에이전트)
145
+ leerness roles set coder --provider codex --model gpt-model-id \
146
+ --candidate claude:claude-model-id --policy balanced
147
+ leerness roles validate --json
148
+ leerness agents resolve "API 구현" --role coder --json
149
+ leerness agents fallback provider "API 구현" --role coder \
150
+ --provider claude --model claude-model-id --approved-by owner --json
151
+ leerness agents history --json
147
152
  ```
148
153
 
154
+ 역할은 유지하고 Provider/모델만 교체합니다. 해석 결과는 설치·활성화·인증·모델 권한·쿼터·도달성·정책을 별도 축으로 공개하며, 폴백을 묵시적으로 실행하지 않습니다. 적용할 선택은 해석 당시 role-store와 availability revision에 묶입니다. 고위험 대체는 가시적인 승인자가 필요하고, 감지된 고위험 등급을 낮추려면 `--approved-by`와 `--reason`이 모두 필요하며, 고위험 검수는 구체적인 모델 ID에서 서로 다른 family를 입증할 때만 선택할 수 있습니다. `dispatch`와 `fallback`은 기본적으로 명령 준비·선택 기록만 하므로 `executed:false`입니다. 역할 없는 `agents multi --execute`와 `agents bench`는 opt-in 외부 CLI를 시작해 결과를 기록할 수 있지만, provider 기본 모델 fan-out으로 하나의 역할/모델 계약을 입증할 수 없으므로 `--role`을 거부합니다.
155
+
149
156
  **MCP (외부 AI 에이전트에 도구로 노출)**
150
157
  ```bash
151
- leerness mcp serve # JSON-RPC over stdio, 80+ 도구
158
+ leerness mcp serve # JSON-RPC over stdio, 98개 도구
152
159
  ```
153
160
 
154
161
  ---
package/README.md CHANGED
@@ -12,7 +12,7 @@
12
12
  > **The AI-coding operations layer that makes "done" require evidence — for any language, any AI agent.**
13
13
  > leerness does not write code. It gives your AI agent persistent memory, verified completion, and clean handoffs — stored inside your repo as plain files, exposed via CLI + MCP.
14
14
 
15
- [![npm](https://img.shields.io/npm/v/leerness)](https://www.npmjs.com/package/leerness) · ![MCP tools](https://img.shields.io/badge/MCP--tools-89-blue) · **0 runtime deps** · **0 install scripts** · offline-first · Node ≥ 18 · MIT
15
+ [![npm](https://img.shields.io/npm/v/leerness)](https://www.npmjs.com/package/leerness) · ![MCP tools](https://img.shields.io/badge/MCP--tools-98-blue) · **0 runtime deps** · **0 install scripts** · offline-first · Node ≥ 18 · MIT
16
16
 
17
17
  **🇰🇷 한국어 전문: [README.ko.md](./README.ko.md)**
18
18
 
@@ -55,7 +55,7 @@ You never have to type a command yourself. Paste this into Claude Code, Cursor,
55
55
 
56
56
  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.
57
57
 
58
- 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?"*
58
+ Prefer pure natural language? leerness ships an **MCP server with 98 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?"*
59
59
 
60
60
  ---
61
61
 
@@ -73,6 +73,24 @@ Built-in harnesses remember what the AI **said**. leerness verifies what the AI
73
73
 
74
74
  ---
75
75
 
76
+ ## Role-first model routing and fallback
77
+
78
+ Roles remain stable while providers and models are replaceable execution resources. Configure a role with a primary executor, ordered candidates, and a fallback policy, then resolve the current task against separate installation, opt-in, authentication, entitlement, quota, reachability, and policy signals:
79
+
80
+ ```bash
81
+ leerness roles set coder --provider codex --model gpt-model-id \
82
+ --candidate claude:claude-model-id --policy balanced
83
+ leerness roles validate --json
84
+ leerness agents resolve "implement the API" --role coder --json
85
+ leerness agents fallback provider "implement the API" --role coder \
86
+ --provider claude --model claude-model-id --approved-by owner --json
87
+ leerness agents history --json
88
+ ```
89
+
90
+ Resolution never silently executes a fallback. Each applied choice is bound to the role-store and availability revisions it inspected. High-risk substitutions require a visible approver, lowering detected high risk requires both `--approved-by` and `--reason`, and high-risk review is selectable only when different families can be inferred from concrete model IDs. `dispatch` and `fallback` normally prepare or record a choice with `executed:false`. Role-free `agents multi --execute` and `agents bench` can spawn opted-in external CLIs and record their outcomes; both reject `--role` because provider-default fan-out cannot prove one role/model contract.
91
+
92
+ ---
93
+
76
94
  ## Make it enforced, not optional
77
95
 
78
96
  By default leerness is **cooperative**: your AI agent runs the commands because CLAUDE.md / AGENTS.md tell it to. A determined agent could skip them. To turn the guideline into a guardrail:
@@ -138,7 +156,7 @@ MIT
138
156
  <!-- leerness:project-readme:start -->
139
157
  ## Leerness Project Harness
140
158
 
141
- 이 프로젝트는 Leerness v1.36.184 하네스를 사용합니다. AI 에이전트는 작업 전 `leerness handoff`로 컨텍스트를 적재하고, 작업 후 `leerness check`/`leerness audit`/`leerness session close`를 수행해야 합니다.
159
+ 이 프로젝트는 Leerness v1.36.185 하네스를 사용합니다. AI 에이전트는 작업 전 `leerness handoff`로 컨텍스트를 적재하고, 작업 후 `leerness check`/`leerness audit`/`leerness session close`를 수행해야 합니다.
142
160
 
143
161
  ### 정체성 — AI 에이전트 운영 레이어 (UR-0030)
144
162
 
@@ -192,7 +210,7 @@ leerness memory restore decision <date|title>
192
210
 
193
211
  ### MCP server (외부 AI 통합)
194
212
 
195
- Leerness v1.36.184는 stdio JSON-RPC MCP server를 내장합니다 — Claude Code · Cursor · Codex CLI 등 외부 AI에 **89개 도구**를 노출:
213
+ Leerness v1.36.185는 stdio JSON-RPC MCP server를 내장합니다 — Claude Code · Cursor · Codex CLI 등 외부 AI에 **98개 도구**를 노출:
196
214
 
197
215
  ```jsonc
198
216
  // 카테고리별
@@ -205,7 +223,7 @@ Leerness v1.36.184는 stdio JSON-RPC MCP server를 내장합니다 — Claude Co
205
223
  // • Workflow: session_close / agents_list / task_export / env_check / usage_stats / reuse_map / whats_new
206
224
 
207
225
  // MCP server 실행: leerness mcp serve
208
- // tools/list 응답: 89 도구
226
+ // tools/list 응답: 98 도구
209
227
  ```
210
228
 
211
229
  ### Autonomous mode (자율 모드)
@@ -213,7 +231,7 @@ Leerness v1.36.184는 stdio JSON-RPC MCP server를 내장합니다 — Claude Co
213
231
  `<<autonomous-loop-dynamic>>` 신호만 보내면 AI가:
214
232
  1) 다음 라운드 후보 선정 → 2) 코드 변경 → 3) 회귀 테스트 갱신 → 4) 전체 e2e 스위트 통과 → 5) npm publish + git tag → 6) main push → 7) session close → 8) 다음 라운드 예약.
215
233
 
216
- 현재 누적: **v1.9.x → 1.36.184 릴리스 태그 이력** (수백 라운드) · _reports/는 비공개 보존.
234
+ 현재 누적: **v1.9.x → 1.36.185 릴리스 태그 이력** (수백 라운드) · _reports/는 비공개 보존.
217
235
 
218
236
  ### 성능 가이드
219
237
 
@@ -251,5 +269,5 @@ leerness release pack --close --auto-main-push
251
269
  - `.leerness/session-handoff.md`: 다음 세션 인수인계 (자동 작성)
252
270
  - `.leerness/lessons.md` / `decisions.md` / `rules.md`: 영구 메모리 (5 surface)
253
271
 
254
- Last synced by Leerness v1.36.184: 2026-09-01
272
+ Last synced by Leerness v1.36.185: 2026-09-05
255
273
  <!-- leerness:project-readme:end -->