omnilane 0.10.1 → 0.10.3
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 +62 -3
- package/README.ja.md +213 -49
- package/README.ko.md +209 -48
- package/README.md +226 -53
- package/README.zh-CN.md +188 -40
- package/README.zh-TW.md +191 -43
- package/VERSION +1 -1
- package/package.json +1 -1
- package/routing.local.yaml.example +9 -9
- package/routing.yaml +8 -5
package/README.ko.md
CHANGED
|
@@ -21,47 +21,29 @@
|
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
|
24
|
-
##
|
|
24
|
+
## 🤔 omnilane 이란?
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
**무엇이 문제인가.** 이미 AI 코딩 어시스턴트——**Claude Code, Codex, Cursor,
|
|
27
|
+
Gemini CLI** 같은——를 쓰고 계시죠. 각각은 하나의 모델 계열하고만 대화합니다.
|
|
28
|
+
그래서 맡기는 모든 일이 그 한 모델에서 돌아갑니다, 적합하든 아니든——일회성 파일
|
|
29
|
+
이름 변경이 가장 비싼 모델을 소모하고, 정작 어려운 설계 문제는 마침 열어 둔
|
|
30
|
+
모델에 걸립니다.
|
|
28
31
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
당신 몫으로 남습니다.
|
|
35
|
-
|
|
36
|
-
**omnilane 이 대신 골라 줍니다.** 모든 작업을 그 일에 가장 강한(그리고 가장 저렴한) 모델로
|
|
37
|
-
자동 라우팅합니다——어려운 코딩은 최고 코더에게, 간단한 확인은 빠르고 싼 모델에게, 긴 문서는
|
|
38
|
-
큰 컨텍스트 모델에게——전부 이미 결제 중인 구독과 API 키로. 기본값 그대로 쓰거나, 작은 설정
|
|
39
|
-
파일 하나만 손보면 됩니다. 새로 관리할 대상이 늘지 않고(기존 도구 뒤에서 동작),
|
|
40
|
-
`./install.sh --uninstall` 로 깔끔히 제거됩니다.
|
|
41
|
-
|
|
42
|
-
**[⬇ 60초 시작으로](#-60초-시작)**
|
|
43
|
-
|
|
44
|
-
## v0.10.0 새 기능
|
|
32
|
+
**omnilane 이 하는 일.** 어시스턴트에게 라우팅 표를 줍니다. 작업은 **레인**——
|
|
33
|
+
가장 어려운 코딩, 기계적인 물량, 분류, 어려운 판단, 최종 다듬기——으로 나뉘고,
|
|
34
|
+
각 레인에는 그 일에 가장 강하고(그리고 가장 저렴한) 모델이 지정됩니다.
|
|
35
|
+
어시스턴트는 자신이 잘하는 레인을 직접 처리하고, 나머지는 이미 가진 로그인으로
|
|
36
|
+
다른 벤더의 CLI 에 백그라운드로 넘깁니다.
|
|
45
37
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
Analysis 측정 출력 속도 1위.
|
|
50
|
-
- **근거 재감사** — 라우팅 주석, 모델 능력 노트, Gemini 가격표를 공식 소스에
|
|
51
|
-
맞춰 갱신 (2026-07-21/22).
|
|
52
|
-
|
|
53
|
-
## v0.9.1 새 기능
|
|
54
|
-
|
|
55
|
-
- **수정**: `configure set` 이 더 이상 `routing.local.yaml` 의 수기 주석을
|
|
56
|
-
삭제하지 않습니다. 자체 스탬프 줄과 교체 대상 레인만 다시 씁니다.
|
|
38
|
+
**omnilane 이 아닌 것.** 프록시도, 새 구독도, 계속 돌봐야 할 서비스도 아닙니다.
|
|
39
|
+
표 한 장과 디스패치 스크립트 하나가 기존 도구 뒤에서 돌아갈 뿐입니다.
|
|
40
|
+
`./install.sh --uninstall` 로 흔적 없이 제거됩니다.
|
|
57
41
|
|
|
58
|
-
|
|
42
|
+
**모든 구독이 필요하지는 않습니다.** 각 레인은 대체 체인이며, 실제로 설치된 첫
|
|
43
|
+
후보가 선택됩니다. CLI 가 하나든 일곱이든 동작하고, 아무것도 없는 레인은 실패
|
|
44
|
+
대신 그냥 꺼집니다. 구독이 하나여도 기본 표는 그 벤더로 수렴합니다.
|
|
59
45
|
|
|
60
|
-
|
|
61
|
-
`groq`, `cerebras` 가 `openrouter` 처럼 CLI 없는 레인으로 추가(curl 과
|
|
62
|
-
`<VENDOR>_API_KEY` 만 필요). `lib/common.sh` 레지스트리에 한 줄로 추가되며,
|
|
63
|
-
모델 능력 비교는 [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md) 참고.
|
|
64
|
-
- **Fish 셸 자동완성** — `omnilane completion fish | source`.
|
|
46
|
+
**[⬇ 60초 시작으로](#-60초-시작)** · **[❓ FAQ 보기](#-faq)**
|
|
65
47
|
|
|
66
48
|
## ⚡ 60초 시작
|
|
67
49
|
|
|
@@ -128,10 +110,10 @@ flowchart LR
|
|
|
128
110
|
|
|
129
111
|
| 레인 | 1순위 모델 | 백업 | 용도 |
|
|
130
112
|
|---|---|---|---|
|
|
131
|
-
| 🔥 hardest-coding | GPT-5.6 Sol (max) | Claude Opus 5 (
|
|
113
|
+
| 🔥 hardest-coding | GPT-5.6 Sol (max) | Claude Opus 5 (xhigh) | 가장 어려운 구현, 근본 원인 디버깅, 정확성이 핵심인 수정 |
|
|
132
114
|
| 🏗️ bulk-mechanical | GPT-5.6 Terra (max) | Claude Sonnet 5 (high) | 리팩터링, 마이그레이션, 테스트, 대량 스윕 |
|
|
133
115
|
| 🧹 triage | GPT-5.6 Luna (medium) | Gemini 3.6 Flash (Low) | 대량 1차 선별 |
|
|
134
|
-
| ⚖️ hard-judgment | Claude Opus 5 (
|
|
116
|
+
| ⚖️ hard-judgment | Claude Opus 5 (xhigh) | GPT-5.6 Sol (max) | 아키텍처 중재, 깊은 추론, 세컨드 오피니언 |
|
|
135
117
|
| ✒️ taste-final | Claude Opus 5 (high) | GPT-5.6 Sol (max) | 대외 문장, prompt/문서 다듬기, 스타일 최종심 |
|
|
136
118
|
| 💬 consult | 명시적으로 지정한 벤더/모델 | —(폴백 없음) | 자연어 직접 상담. `--vendor` 를 반드시 유지 |
|
|
137
119
|
| 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Opus 5 (high) | 디자인 시스템/참고 이미지가 있을 때의 UI 초안 |
|
|
@@ -142,15 +124,11 @@ flowchart LR
|
|
|
142
124
|
| 🗳️ arbitrate | off(옵트인) | — | 내장 의견 패널(중대한 결정용)——기본 비활성. `routing.local.yaml` 에서 활성화;투표자×라운드마다 1콜 소모 |
|
|
143
125
|
|
|
144
126
|
**백업**은 체인의 다음 후보입니다——1순위 벤더 CLI 가 설치되지 않았을 때
|
|
145
|
-
디스패치가 강등되는 대상입니다.
|
|
127
|
+
디스패치가 강등되는 대상입니다. 모든 레인이 이런 체인이며, 체인에 아무것도
|
|
128
|
+
설치되어 있지 않으면 레인은 `off` 로 강등됩니다.
|
|
146
129
|
|
|
147
|
-
> **Claude Fable 5 는 어디에?** 의도적으로 기본 테이블에 넣지
|
|
148
|
-
>
|
|
149
|
-
> 가격도 Opus 보다 높습니다. 이는 비용/가드레일/메인 루프 정책이며 능력 평가가
|
|
150
|
-
> 아닙니다. Anthropic 은 Fable 5 를 Opus 5 보다 상위에 둡니다. 설정 메뉴의
|
|
151
|
-
> 모델 목록에는 있으니 원하면 직접
|
|
152
|
-
> 라우팅하세요(예: `routing.local.yaml` 에
|
|
153
|
-
> `taste-final: claude claude-fable-5 high`).
|
|
130
|
+
> **Claude Fable 5 는 어디에?** 의도적으로 기본 테이블에 넣지 않았습니다——
|
|
131
|
+
> 이유와 실측 데이터는 [FAQ](#-faq) 에 정리했습니다.
|
|
154
132
|
|
|
155
133
|
### 자연어 상담
|
|
156
134
|
|
|
@@ -365,12 +343,136 @@ CLI 를 사용할 수 없음, `5` 1라운드 성공 투표자 부족, `6` 2라
|
|
|
365
343
|
`jobs.sh status` 가 `dead` 를 보고.
|
|
366
344
|
- **페이로드 상한** — 과대한 태스크 텍스트는 머리/꼬리만 남기고 자동 절단.
|
|
367
345
|
|
|
346
|
+
## ❓ FAQ
|
|
347
|
+
|
|
348
|
+
<details>
|
|
349
|
+
<summary><b>이 구독들이 전부 필요한가요?</b></summary>
|
|
350
|
+
|
|
351
|
+
<br/>
|
|
352
|
+
|
|
353
|
+
아닙니다. 각 레인은 대체 체인이며 실제로 설치된 첫 후보가 사용됩니다. 구독이
|
|
354
|
+
하나면 표 전체가 그 벤더로 수렴하고, 체인에 아무것도 없는 레인은 오류 대신 그냥
|
|
355
|
+
꺼집니다. `omnilane doctor` 로 이 머신이 지금 실제로 닿을 수 있는 곳을 확인할 수
|
|
356
|
+
있고, `routing.local.yaml.example` 에는 흔한 상황별 시작 프로필(Claude 만,
|
|
357
|
+
Codex 중심, Codex 없음)이 들어 있습니다.
|
|
358
|
+
|
|
359
|
+
</details>
|
|
360
|
+
|
|
361
|
+
<details>
|
|
362
|
+
<summary><b>omnilane 이 제 코드를 새로운 곳으로 보내나요?</b></summary>
|
|
363
|
+
|
|
364
|
+
<br/>
|
|
365
|
+
|
|
366
|
+
새로운 목적지는 생기지 않습니다. 디스패치는 이미 설치하고 로그인해 둔 벤더 CLI 를
|
|
367
|
+
호출할 뿐이라, 코드가 도달하는 곳은 원래 쓰던 벤더뿐입니다. 러너는 구독형 CLI 를
|
|
368
|
+
호출하기 전에 API 키 환경 변수를 제거하므로, 남아 있던 키 때문에 토큰 종량제로
|
|
369
|
+
조용히 전환되는 일도 없습니다. 유일한 예외는 direct-API 벤더군(`openrouter`,
|
|
370
|
+
`deepseek`, `zai`, `mistral`, `groq`, `cerebras`)으로, 이들은 정의상 당신이 설정한
|
|
371
|
+
키로 해당 제공자의 API 를 호출합니다——모두 advise 전용이며 파일을 수정하지 않습니다.
|
|
372
|
+
|
|
373
|
+
</details>
|
|
374
|
+
|
|
375
|
+
<details>
|
|
376
|
+
<summary><b>Claude Fable 5 는 어디에? 왜 기본 테이블에 없나요?</b></summary>
|
|
377
|
+
|
|
378
|
+
<br/>
|
|
379
|
+
|
|
380
|
+
**Claude 최상위 티어는 보통 메인 루프 자신이지 디스패치되는 워커가 아니기
|
|
381
|
+
때문입니다.** 레인은 "지금 당신이 몰고 있는 모델 이외"에 작업을 보내려고 존재합니다.
|
|
382
|
+
Fable 5 가 메인 루프라면 판단과 문장을 다시 Fable 5 로 라우팅하는 것은 호출만 한 번
|
|
383
|
+
늘 뿐 얻는 것이 없습니다——그래서 위의 "메인 모델 고르기" 목록에서 Fable 5 는
|
|
384
|
+
**드라이버**로 독립된 줄을 가지며, hard-judgment, taste-final, 정확성이 핵심인
|
|
385
|
+
가장 어려운 수정을 직접 처리합니다.
|
|
386
|
+
|
|
387
|
+
**측정 데이터도 워커로 쓰는 쪽을 지지하지 않습니다.** Artificial Analysis
|
|
388
|
+
Intelligence Index(2026-07-24)에서 Opus 5(max)는 61점, Fable 5(max)는 60점 ——
|
|
389
|
+
AA 자신이 "사실상 동점"이라 표현했고, Epoch AI 의 Capability Index 는 순위가
|
|
390
|
+
반대입니다(Fable 5 161, Opus 5 159). 종합 지능은 무승부로 보면 됩니다. 실제로
|
|
391
|
+
벌어지는 곳은 에이전트형 전문 산출물이며, 그 격차는 작지 않습니다:
|
|
392
|
+
|
|
393
|
+
| 벤치마크 | Claude Opus 5 (max) | Claude Fable 5 | |
|
|
394
|
+
|---|---:|---:|---|
|
|
395
|
+
| AA-Briefcase(에이전트형 지식 노동, Elo) | 1720 | 1574 | **+146** |
|
|
396
|
+
| GDPval-AA v2(Elo) | 1861 | 1747 | **+114** |
|
|
397
|
+
| AA-Briefcase 작업당 비용 | $17.79 | $22.30 | **-20%** |
|
|
398
|
+
| API 가격, 입력/출력 1M 당 | $5 / $25 | $10 / $50 | **절반** |
|
|
399
|
+
|
|
400
|
+
Opus 5 의 max, xhigh, high 세 티어가 AA-Briefcase 상위 세 자리를 차지하며,
|
|
401
|
+
`high` 티어조차 작업당 비용 절반 이하로 Fable 5 를 이깁니다. 즉 Fable 5 는 가격이
|
|
402
|
+
두 배이면서 레인이 중시하는 어떤 축에서도 우위를 사지 못합니다.
|
|
403
|
+
|
|
404
|
+
**Fable 5 가 실제로 더 나은 지점**: 사실 지식의 폭입니다. AA-Omniscience 에서는
|
|
405
|
+
여전히 Opus 5 를 앞서며(두 모델의 규모 차이를 감안하면 당연), 반대로 Opus 5 는
|
|
406
|
+
확신이 없을 때도 답하는 경향이 있어 환각률이 50%(Opus 4.8 대비 +14 포인트)입니다.
|
|
407
|
+
실행보다 회상이 중심인 작업이라면 명시적으로 지목하세요:
|
|
408
|
+
|
|
409
|
+
```bash
|
|
410
|
+
dispatch.sh --vendor claude --model claude-fable-5 --effort high consult "…"
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
**이는 비용과 메인 루프 정책의 선택이지 능력 평가가 아닙니다.** Fable 5 는 설정
|
|
414
|
+
메뉴의 모델 목록에 있으며, `routing.local.yaml` 한 줄로 기본값을 덮어쓸 수 있습니다:
|
|
415
|
+
|
|
416
|
+
```yaml
|
|
417
|
+
taste-final: claude claude-fable-5 high
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
</details>
|
|
421
|
+
|
|
422
|
+
<details>
|
|
423
|
+
<summary><b>Claude 레인은 왜 <code>max</code> 가 아니라 <code>xhigh</code> 인가요?</b></summary>
|
|
424
|
+
|
|
425
|
+
<br/>
|
|
426
|
+
|
|
427
|
+
노력 수준이 높을수록 좋은 것이 아니기 때문입니다. Anthropic 은 `xhigh` 를 코딩과
|
|
428
|
+
에이전트 작업의 출발점, `high` 를 그 외 지능이 필요한 작업의 하한, `max` 를
|
|
429
|
+
정확성이 비용보다 중요한 경우의 설정으로 문서화합니다. 제3자 측정도 일치합니다:
|
|
430
|
+
Vals.ai 의 Vibe Code Bench 에서 Opus 5 는 `high` 에서 89.8%, `xhigh` 에서 88.3%,
|
|
431
|
+
`max` 에서 88.4% —— 최상위 티어는 더 복잡한 해법을 내놓고 그만큼 더 자주 실패합니다.
|
|
432
|
+
워크로드가 다르다면 레인 단위로 올리세요:
|
|
433
|
+
|
|
434
|
+
```bash
|
|
435
|
+
omnilane configure set hard-judgment "claude claude-opus-5 max"
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
</details>
|
|
439
|
+
|
|
440
|
+
<details>
|
|
441
|
+
<summary><b>레인의 1순위 CLI 가 없으면 어떻게 되나요?</b></summary>
|
|
442
|
+
|
|
443
|
+
<br/>
|
|
444
|
+
|
|
445
|
+
디스패치가 체인을 따라 내려가며 보유한 첫 벤더를 사용합니다. 호출을 쓰지 않고도
|
|
446
|
+
결정을 먼저 확인할 수 있습니다:
|
|
447
|
+
|
|
448
|
+
```bash
|
|
449
|
+
scripts/dispatch.sh --explain hardest-coding # 후보별 추적
|
|
450
|
+
scripts/dispatch.sh --list # 전체 유효 테이블
|
|
451
|
+
scripts/dispatch.sh --dry-run hardest-coding "…" # 완전히 해석된 계획, 제공자 호출 없음
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
</details>
|
|
455
|
+
|
|
456
|
+
<details>
|
|
457
|
+
<summary><b>디스패치된 워커가 제 파일을 수정할 수 있나요?</b></summary>
|
|
458
|
+
|
|
459
|
+
<br/>
|
|
460
|
+
|
|
461
|
+
요청했을 때만 가능합니다. 디스패치의 기본값은 읽기 전용 `advise` 이며 벤더별로
|
|
462
|
+
구현되어 있습니다(읽기 전용 샌드박스, plan 모드, 또는 읽기 전용 도구 집합).
|
|
463
|
+
수정하려면 `--mode work` 와 명시적인 `--workdir` 가 모두 필요합니다. 워커는 다시
|
|
464
|
+
디스패치할 수도 없습니다——깊이 가드가 종료 코드 86 으로 중첩 팬아웃을 거부하므로,
|
|
465
|
+
명령 하나가 에이전트 연쇄로 번져 할당량을 태우는 일은 없습니다.
|
|
466
|
+
|
|
467
|
+
</details>
|
|
468
|
+
|
|
368
469
|
## 📊 기본값과 출처
|
|
369
470
|
|
|
370
471
|
기본 레인 배치는 Artificial Analysis 2026-07 스냅샷(AA 사이트 원본 레코드와
|
|
371
472
|
각사 공식 가격 페이지로 교차 검증)과 공개 비교 리뷰에 근거합니다.
|
|
372
473
|
이는 의견이지 법칙이 아닙니다——설정 메뉴와 `routing.local.yaml` 이
|
|
373
|
-
그래서 존재합니다.
|
|
474
|
+
그래서 존재합니다. 벤치마크별 단서를 포함한 작업 노트는
|
|
475
|
+
[`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md) 에 있습니다.
|
|
374
476
|
|
|
375
477
|
## ⚠️ 알려진 제한
|
|
376
478
|
|
|
@@ -385,8 +487,67 @@ CLI 를 사용할 수 없음, `5` 1라운드 성공 투표자 부족, `6` 2라
|
|
|
385
487
|
|
|
386
488
|
## 📜 릴리스 기록
|
|
387
489
|
|
|
490
|
+
## v0.10.3 새 기능
|
|
491
|
+
|
|
492
|
+
- **5개 언어 README 전면 재구성** — 문서 첫머리에서 "이게 무엇이고 왜 필요한가"를
|
|
493
|
+
먼저 설명하고, 버전 기록은 도입부를 끊지 않도록 맨 아래로 모았습니다. 그리고
|
|
494
|
+
반복해서 들어온 질문에 답하는 FAQ 를 새로 넣었습니다: 구독이 전부 필요한지,
|
|
495
|
+
코드가 어디로 가는지, 왜 Fable 5 가 기본 테이블에 없는지, 왜 `max` 가 아니라
|
|
496
|
+
`xhigh` 인지, CLI 가 없으면 어떻게 되는지, 워커가 파일을 수정할 수 있는지.
|
|
497
|
+
- **수정: 플러그인 매니페스트가 옛 버전을 표시** — `plugin.json` 과
|
|
498
|
+
`.claude-plugin/plugin.json` 이 0.10.1, 0.10.2 릴리스 후에도 `0.10.0` 으로
|
|
499
|
+
남아 있어 플러그인 설치 시 잘못된 버전이 표시되었습니다.
|
|
500
|
+
- **수정: `routing.local.yaml.example` 이 퇴역 모델을 가리킴** — 시작 프로필의
|
|
501
|
+
`claude-opus-4-8` 을 모두 `claude-opus-5`(레인에 맞는 노력 수준 포함)로,
|
|
502
|
+
Gemini 3.5 Flash 후보를 3.6 Flash 로 바꿔 0.10.0 이후 기본값과 맞췄습니다.
|
|
503
|
+
- **Intelligence Index 수치를 원본과 대조해 정정**
|
|
504
|
+
(`docs/model-capabilities-2026-07.md`): 퍼센트가 아니라 지수 점수입니다.
|
|
505
|
+
AA-Briefcase / GDPval-AA v2 비교를 추가하고, 기본값과 반대 방향인 두 결과도
|
|
506
|
+
기록했습니다: 사실 지식은 Fable 5 가, 표현 품질은 GPT-5.6 Sol 이 앞섭니다.
|
|
507
|
+
|
|
508
|
+
## v0.10.2 새 기능
|
|
509
|
+
|
|
510
|
+
- **`hardest-coding` 과 `hard-judgment` 의 Claude 노력 수준을 `max` 에서 `xhigh`
|
|
511
|
+
로 변경**. Claude Opus 5 에 대한 Anthropic 의 문서화된 지침에 맞췄습니다:
|
|
512
|
+
코딩과 에이전트 작업은 `xhigh` 에서 시작, 그 외 지능이 필요한 작업의 하한은
|
|
513
|
+
`high`, `max` 는 정확성이 비용보다 중요한 경우에 한합니다. 되돌리려면
|
|
514
|
+
`omnilane configure set <lane> "<spec>"` 을 쓰세요.
|
|
515
|
+
- **깨진 CHANGELOG 비교 링크 2건 수정** — 공개된 적 없는 `v0.10.0` 태그를
|
|
516
|
+
가리키고 있었습니다.
|
|
517
|
+
|
|
518
|
+
## v0.10.1 새 기능
|
|
519
|
+
|
|
520
|
+
- **기본 라우팅에 `claude-opus-5` 추가**. `hard-judgment` 와 `taste-final` 의
|
|
521
|
+
첫 번째 선택이며, 가장 어려운 코딩 작업의 대체 경로로도 사용됩니다.
|
|
522
|
+
- **`omnilane configure` 를 13개 전체 제공자로 확장**. 선택 가능한 모델은
|
|
523
|
+
106개이며 Codex, Claude Code, Grok Build, Antigravity 의 최신 카탈로그와
|
|
524
|
+
검증된 OpenRouter/OpenCode 바로가기를 포함합니다. `c` 를 통한 사용자 지정
|
|
525
|
+
모델 ID 입력도 계속 지원합니다.
|
|
526
|
+
|
|
388
527
|
<details>
|
|
389
|
-
<summary>이전 릴리스(v0.
|
|
528
|
+
<summary>이전 릴리스(v0.10.0 이하)</summary>
|
|
529
|
+
|
|
530
|
+
## v0.10.0 새 기능
|
|
531
|
+
|
|
532
|
+
- **Gemini 3.6 Flash 기본 라우팅** — `fast-agentic`, `triage`,
|
|
533
|
+
`bulk-mechanical` 의 gemini 후보(그리고 `Gemini Flash` 별칭)를 Gemini 3.6
|
|
534
|
+
Flash 로 변경: 출력 토큰 감소, 출력 단가 인하, Artificial Analysis 측정 출력
|
|
535
|
+
속도 1위.
|
|
536
|
+
- **근거 재감사** — 라우팅 주석, 모델 능력 노트, Gemini 가격표를 공식 소스에
|
|
537
|
+
맞춰 갱신.
|
|
538
|
+
|
|
539
|
+
## v0.9.1 새 기능
|
|
540
|
+
|
|
541
|
+
- **수정**: `configure set` 이 더 이상 `routing.local.yaml` 의 수기 주석을
|
|
542
|
+
삭제하지 않습니다. 자체 스탬프 줄과 교체 대상 레인만 다시 씁니다.
|
|
543
|
+
|
|
544
|
+
## v0.9.0 새 기능
|
|
545
|
+
|
|
546
|
+
- **OpenAI 호환 direct-API 벤더 5개 추가** — `deepseek`, `zai` (GLM), `mistral`,
|
|
547
|
+
`groq`, `cerebras` 가 `openrouter` 처럼 CLI 없는 레인으로 추가(curl 과
|
|
548
|
+
`<VENDOR>_API_KEY` 만 필요). `lib/common.sh` 레지스트리에 한 줄로 추가되며,
|
|
549
|
+
모델 능력 비교는 [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md) 참고.
|
|
550
|
+
- **Fish 셸 자동완성** — `omnilane completion fish | source`.
|
|
390
551
|
|
|
391
552
|
## v0.8.3 새 기능
|
|
392
553
|
|
package/README.md
CHANGED
|
@@ -21,49 +21,30 @@ or any hosted model via OpenRouter — on the subscriptions you already pay for,
|
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
|
24
|
-
##
|
|
24
|
+
## 🤔 What is omnilane?
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
**The problem.** You already drive an AI coding assistant — Claude Code, Codex,
|
|
27
|
+
Cursor, Gemini CLI. Each one talks to a single model family. So every task you
|
|
28
|
+
give it runs on that one model, whether or not it is the right tool: a
|
|
29
|
+
throwaway file rename burns your most expensive model, and a genuinely hard
|
|
30
|
+
architecture question runs on whatever you happened to open.
|
|
28
31
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
CLI
|
|
34
|
-
model for each task is left to you.
|
|
32
|
+
**What omnilane does.** It gives your assistant a routing table. Work gets
|
|
33
|
+
sorted into **lanes** — hardest coding, bulk mechanical, triage, hard judgment,
|
|
34
|
+
final polish — and each lane names the model that is best (and cheapest) for
|
|
35
|
+
it. Your assistant keeps the lanes it is already good at and hands the rest to
|
|
36
|
+
another vendor's CLI in the background, using the logins you already have.
|
|
35
37
|
|
|
36
|
-
**
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
subscriptions and API keys you already pay for. Use the built-in defaults, or
|
|
40
|
-
tweak one small file. Nothing new to babysit (it runs behind your existing tool),
|
|
41
|
-
and `./install.sh --uninstall` removes it cleanly.
|
|
38
|
+
**What it is not.** Not a proxy, not a new subscription, not another service to
|
|
39
|
+
keep alive. It is a table plus a dispatch script that runs behind the tool you
|
|
40
|
+
already use. `./install.sh --uninstall` removes every trace.
|
|
42
41
|
|
|
43
|
-
**
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
**You do not need every vendor.** Each lane is a fallback chain. Install one
|
|
43
|
+
CLI or seven — dispatch picks the first candidate you actually have, and a lane
|
|
44
|
+
with nothing available simply turns off. The default table works on a single
|
|
45
|
+
subscription.
|
|
46
46
|
|
|
47
|
-
- **
|
|
48
|
-
`triage`, and `bulk-mechanical` (and the `Gemini Flash` alias) now run
|
|
49
|
-
Gemini 3.6 Flash (released 2026-07-21): fewer output tokens, a lower output
|
|
50
|
-
price, and the fastest output speed measured by Artificial Analysis.
|
|
51
|
-
- **Evidence re-audit** — routing comments, model capability notes, and the
|
|
52
|
-
Gemini price table refreshed against official sources (2026-07-21/22).
|
|
53
|
-
|
|
54
|
-
## What's new in v0.9.1
|
|
55
|
-
|
|
56
|
-
- **Fix:** `configure set` no longer deletes hand-written comments from
|
|
57
|
-
`routing.local.yaml` — it rewrites only its own stamp header and the lane
|
|
58
|
-
being replaced.
|
|
59
|
-
|
|
60
|
-
## What's new in v0.9.0
|
|
61
|
-
|
|
62
|
-
- **Five OpenAI-compatible direct-API vendors** — `deepseek`, `zai` (GLM),
|
|
63
|
-
`mistral`, `groq`, and `cerebras` join `openrouter` as CLI-free lanes (curl +
|
|
64
|
-
a `<VENDOR>_API_KEY`). A one-line `lib/common.sh` registry entry adds each;
|
|
65
|
-
see [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md).
|
|
66
|
-
- **Fish shell completion** — `omnilane completion fish | source`.
|
|
47
|
+
**[⬇ Jump to the 60-second start](#-60-second-start)** · **[❓ Read the FAQ](#-faq)**
|
|
67
48
|
|
|
68
49
|
## ⚡ 60-second start
|
|
69
50
|
|
|
@@ -127,14 +108,17 @@ flowchart LR
|
|
|
127
108
|
|
|
128
109
|
</div>
|
|
129
110
|
|
|
130
|
-
## 🛤️ Lanes
|
|
111
|
+
## 🛤️ Lanes
|
|
112
|
+
|
|
113
|
+
Defaults below — run `scripts/dispatch.sh --list` for the table your machine
|
|
114
|
+
actually resolves.
|
|
131
115
|
|
|
132
116
|
| Lane | First choice | Backup | When |
|
|
133
117
|
|---|---|---|---|
|
|
134
|
-
| 🔥 hardest-coding | GPT-5.6 Sol (max) | Claude Opus 5 (
|
|
118
|
+
| 🔥 hardest-coding | GPT-5.6 Sol (max) | Claude Opus 5 (xhigh) | Hardest implementation, deep root-cause debug, correctness-critical edits |
|
|
135
119
|
| 🏗️ bulk-mechanical | GPT-5.6 Terra (max) | Claude Sonnet 5 (high) | Refactors, migrations, tests, review sweeps — mechanical endurance |
|
|
136
120
|
| 🧹 triage | GPT-5.6 Luna (medium) | Gemini 3.6 Flash (Low) | High-volume scans, first-pass filtering |
|
|
137
|
-
| ⚖️ hard-judgment | Claude Opus 5 (
|
|
121
|
+
| ⚖️ hard-judgment | Claude Opus 5 (xhigh) | GPT-5.6 Sol (max) | Architecture arbitration, deep reasoning, second opinions |
|
|
138
122
|
| ✒️ taste-final | Claude Opus 5 (high) | GPT-5.6 Sol (max) | User-facing prose, prompt/doc polish, style arbitration |
|
|
139
123
|
| 💬 consult | Explicit named vendor/model | — (no fallback) | Direct natural-language consultation; always keep `--vendor` |
|
|
140
124
|
| 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Opus 5 (high) | UI drafts only WITH a design system / reference images |
|
|
@@ -148,14 +132,6 @@ The **backup** is the next candidate in the lane's `routing.yaml` chain — what
|
|
|
148
132
|
dispatch falls back to when the first-choice vendor CLI is not installed. Every
|
|
149
133
|
lane is such a chain; when nothing in it is installed the lane degrades to `off`.
|
|
150
134
|
|
|
151
|
-
> **Where is Claude Fable 5?** Deliberately not in the defaults: the top
|
|
152
|
-
> Claude tier is usually the *main loop itself*, not a dispatched worker, and
|
|
153
|
-
> it prices above Opus. This is a cost / guardrail / main-loop policy choice,
|
|
154
|
-
> not a capability verdict; Anthropic positions Fable 5 above Opus 5. It is
|
|
155
|
-
> offered in the configurator's model menu —
|
|
156
|
-
> route to it if you disagree (e.g. `taste-final: claude claude-fable-5 high`
|
|
157
|
-
> in `routing.local.yaml`).
|
|
158
|
-
|
|
159
135
|
### Natural-language consultation
|
|
160
136
|
|
|
161
137
|
With the `omnilane` skill or `/route`, you can ask normally:
|
|
@@ -238,13 +214,15 @@ optional per-CLI **routing reminder**: a marked, reversible block appended to
|
|
|
238
214
|
each CLI's instruction file (`~/.claude/CLAUDE.md`, `~/.codex/AGENTS.md`,
|
|
239
215
|
`~/.grok/Agents.md`, `~/.gemini/GEMINI.md` — paths may vary across CLI
|
|
240
216
|
versions) so the main loop remembers to consult the table; non-interactive
|
|
241
|
-
installs can pass `OMNILANE_HOOKS=all|none|claude,codex`.
|
|
217
|
+
installs can pass `OMNILANE_HOOKS=all|none|claude,codex`.
|
|
242
218
|
|
|
243
219
|
Use `./install.sh --check` for a read-only drift report. Add `--dry-run` to an
|
|
244
220
|
install or `--uninstall` to preview every checkout-owned file action.
|
|
245
221
|
Rollback the installer-owned links and marked reminders with
|
|
246
222
|
`./install.sh --uninstall`.
|
|
247
223
|
|
|
224
|
+
Manual wiring:
|
|
225
|
+
|
|
248
226
|
- **Claude Code**: install as a plugin (ships the skill + `/route`,
|
|
249
227
|
`/route-jobs` commands, and a `SessionStart` hook that auto-injects the
|
|
250
228
|
routing reminder at session open — no CLAUDE.md edit needed), or drop
|
|
@@ -394,7 +372,7 @@ code passes through.
|
|
|
394
372
|
non-Git work running through the existing per-call watchdog path, which emits
|
|
395
373
|
its own warning if no watchdog tool exists.
|
|
396
374
|
Expiry cleans the supervised process group and returns 124. For a deep audit
|
|
397
|
-
of a
|
|
375
|
+
of a large repository, start around 2–4 hours (7200–14400s)
|
|
398
376
|
with a 30-minute per-call watchdog; these are recommendations, not defaults.
|
|
399
377
|
- **Background lifecycle** — `--background` workers run in their own process
|
|
400
378
|
group and survive the caller's exit; killed workers record an exit code, and
|
|
@@ -402,12 +380,144 @@ code passes through.
|
|
|
402
380
|
- **Payload caps** — oversized task text is truncated head+tail before it can
|
|
403
381
|
blow a worker's context.
|
|
404
382
|
|
|
383
|
+
## ❓ FAQ
|
|
384
|
+
|
|
385
|
+
<details>
|
|
386
|
+
<summary><b>Do I need all of these subscriptions?</b></summary>
|
|
387
|
+
|
|
388
|
+
<br/>
|
|
389
|
+
|
|
390
|
+
No. Every lane is a fallback chain, and dispatch picks the first candidate
|
|
391
|
+
whose CLI is actually installed. With one subscription the whole table collapses
|
|
392
|
+
onto that vendor; lanes with nothing available turn off rather than failing.
|
|
393
|
+
`omnilane doctor` shows exactly what your machine can reach today, and
|
|
394
|
+
`routing.local.yaml.example` ships starter profiles for common situations
|
|
395
|
+
(Claude-only, Codex-heavy, no-Codex).
|
|
396
|
+
|
|
397
|
+
</details>
|
|
398
|
+
|
|
399
|
+
<details>
|
|
400
|
+
<summary><b>Does omnilane send my code somewhere new?</b></summary>
|
|
401
|
+
|
|
402
|
+
<br/>
|
|
403
|
+
|
|
404
|
+
No new destination. Dispatch shells out to vendor CLIs you already installed
|
|
405
|
+
and logged into, so your code reaches exactly the vendors you already use.
|
|
406
|
+
Runners strip API-key environment variables before invoking a subscription CLI,
|
|
407
|
+
so a stray key cannot silently switch you onto pay-per-token billing. The one
|
|
408
|
+
exception is the direct-API vendor family (`openrouter`, `deepseek`, `zai`,
|
|
409
|
+
`mistral`, `groq`, `cerebras`), which by definition calls that provider's API
|
|
410
|
+
with the key you set — those are advise-only and never edit files.
|
|
411
|
+
|
|
412
|
+
</details>
|
|
413
|
+
|
|
414
|
+
<details>
|
|
415
|
+
<summary><b>Where is Claude Fable 5? Why is it not in the default table?</b></summary>
|
|
416
|
+
|
|
417
|
+
<br/>
|
|
418
|
+
|
|
419
|
+
**Because the top Claude tier is usually the main loop itself, not a dispatched
|
|
420
|
+
worker.** Lanes exist to send work to a model *other than* the one you are
|
|
421
|
+
driving. If Fable 5 is your main loop, routing judgment and taste back to Fable 5
|
|
422
|
+
just adds a second call for no gain — which is why the "pick your main model"
|
|
423
|
+
list above gives Fable 5 its own row as a **driver**, self-executing
|
|
424
|
+
hard-judgment, taste-final, and the hardest correctness-critical fixes.
|
|
425
|
+
|
|
426
|
+
**The measurements do not argue for it as a worker either.** On the Artificial
|
|
427
|
+
Analysis Intelligence Index (2026-07-24) Opus 5 (max) scores 61 and Fable 5 (max)
|
|
428
|
+
scores 60 — Artificial Analysis calls them "effectively tied", and Epoch AI's
|
|
429
|
+
Capability Index ranks them the other way (Fable 5 161, Opus 5 159). Call it a
|
|
430
|
+
draw on general intelligence. Where they are not tied is agentic professional
|
|
431
|
+
output, and Opus 5 leads by a wide margin:
|
|
432
|
+
|
|
433
|
+
| Benchmark | Claude Opus 5 (max) | Claude Fable 5 | |
|
|
434
|
+
|---|---:|---:|---|
|
|
435
|
+
| AA-Briefcase (agentic knowledge work, Elo) | 1720 | 1574 | **+146** |
|
|
436
|
+
| GDPval-AA v2 (Elo) | 1861 | 1747 | **+114** |
|
|
437
|
+
| Cost per AA-Briefcase task | $17.79 | $22.30 | **-20%** |
|
|
438
|
+
| API price, input / output per 1M | $5 / $25 | $10 / $50 | **half** |
|
|
439
|
+
|
|
440
|
+
Opus 5's max, xhigh and high tiers sweep the top three AA-Briefcase places, and
|
|
441
|
+
its `high` tier still beats Fable 5 at under half the cost per task. So Fable 5
|
|
442
|
+
costs twice as much without buying an advantage on any axis a lane is defined
|
|
443
|
+
around.
|
|
444
|
+
|
|
445
|
+
**What Fable 5 is genuinely better at**: factual breadth. It stays ahead of
|
|
446
|
+
Opus 5 on AA-Omniscience, as its size class suggests, and Opus 5 answers more
|
|
447
|
+
readily when uncertain — its hallucination rate is 50%, up 14 points from
|
|
448
|
+
Opus 4.8. If your task is recall-heavy rather than execution-heavy, name
|
|
449
|
+
Fable 5 explicitly:
|
|
450
|
+
|
|
451
|
+
```bash
|
|
452
|
+
dispatch.sh --vendor claude --model claude-fable-5 --effort high consult "…"
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
**This is a cost / main-loop policy choice, not a capability verdict.** Fable 5
|
|
456
|
+
is in the configurator's model menu, and one line in `routing.local.yaml`
|
|
457
|
+
overrides the default if you disagree:
|
|
458
|
+
|
|
459
|
+
```yaml
|
|
460
|
+
taste-final: claude claude-fable-5 high
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
</details>
|
|
464
|
+
|
|
465
|
+
<details>
|
|
466
|
+
<summary><b>Why do the Claude lanes use <code>xhigh</code> instead of <code>max</code>?</b></summary>
|
|
467
|
+
|
|
468
|
+
<br/>
|
|
469
|
+
|
|
470
|
+
Because more effort is not monotonically better. Anthropic documents `xhigh` as
|
|
471
|
+
the starting point for coding and agentic work, `high` as the floor for other
|
|
472
|
+
intelligence-sensitive work, and `max` as the setting for cases where
|
|
473
|
+
correctness outweighs cost. Independent testing agrees: on Vals.ai's Vibe Code
|
|
474
|
+
Bench, Opus 5 scores 89.8% at `high` but only 88.3% at `xhigh` and 88.4% at
|
|
475
|
+
`max` — the top tiers produce more elaborate solutions that fail more often.
|
|
476
|
+
Raise any lane locally if your workload disagrees:
|
|
477
|
+
|
|
478
|
+
```bash
|
|
479
|
+
omnilane configure set hard-judgment "claude claude-opus-5 max"
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
</details>
|
|
483
|
+
|
|
484
|
+
<details>
|
|
485
|
+
<summary><b>What happens when a lane's first-choice CLI is missing?</b></summary>
|
|
486
|
+
|
|
487
|
+
<br/>
|
|
488
|
+
|
|
489
|
+
Dispatch walks the chain and uses the first vendor you have. Inspect the
|
|
490
|
+
decision without spending a call:
|
|
491
|
+
|
|
492
|
+
```bash
|
|
493
|
+
scripts/dispatch.sh --explain hardest-coding # candidate-by-candidate trace
|
|
494
|
+
scripts/dispatch.sh --list # whole effective table
|
|
495
|
+
scripts/dispatch.sh --dry-run hardest-coding "…" # fully resolved plan, no provider call
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
</details>
|
|
499
|
+
|
|
500
|
+
<details>
|
|
501
|
+
<summary><b>Can a dispatched worker edit my files?</b></summary>
|
|
502
|
+
|
|
503
|
+
<br/>
|
|
504
|
+
|
|
505
|
+
Only if you ask for it. Dispatch defaults to `advise`, a read-only mode enforced
|
|
506
|
+
per vendor (read-only sandbox, plan mode, or read-only tool set depending on the
|
|
507
|
+
CLI). Editing requires both `--mode work` and an explicit `--workdir`. Workers
|
|
508
|
+
also cannot dispatch again — the depth guard refuses nested fan-out with exit 86,
|
|
509
|
+
so one command can never spiral into a chain of agents spending your quota.
|
|
510
|
+
|
|
511
|
+
</details>
|
|
512
|
+
|
|
405
513
|
## 📊 Defaults and provenance
|
|
406
514
|
|
|
407
515
|
Default lane assignments follow Artificial Analysis coding/intelligence data
|
|
408
516
|
(2026-07 snapshot, cross-checked against AA site records and vendor pricing
|
|
409
517
|
pages) plus published head-to-head reviews; they are opinions, not laws — the
|
|
410
|
-
configurator and `routing.local.yaml` exist so you can disagree.
|
|
518
|
+
configurator and `routing.local.yaml` exist so you can disagree. The full
|
|
519
|
+
working notes, including per-benchmark caveats, live in
|
|
520
|
+
[`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md).
|
|
411
521
|
|
|
412
522
|
## ⚠️ Known limitations
|
|
413
523
|
|
|
@@ -423,8 +533,71 @@ configurator and `routing.local.yaml` exist so you can disagree.
|
|
|
423
533
|
|
|
424
534
|
## 📜 Release history
|
|
425
535
|
|
|
536
|
+
## What's new in v0.10.3
|
|
537
|
+
|
|
538
|
+
- **Restructured READMEs in all five languages** — the reader now meets a plain
|
|
539
|
+
"what is this and why would I want it" section first, version history is
|
|
540
|
+
consolidated at the bottom instead of interrupting the introduction, and a new
|
|
541
|
+
FAQ answers the questions that kept coming up: do I need every subscription,
|
|
542
|
+
where does my code go, why is Fable 5 not in the table, why `xhigh` and not
|
|
543
|
+
`max`, what happens when a CLI is missing, can a worker edit files.
|
|
544
|
+
- **Fixed: plugin manifests advertised a stale version** — `plugin.json` and
|
|
545
|
+
`.claude-plugin/plugin.json` still reported `0.10.0` after the 0.10.1 and
|
|
546
|
+
0.10.2 releases, so plugin installs showed the wrong version.
|
|
547
|
+
- **Fixed: `routing.local.yaml.example` shipped retired models** — the starter
|
|
548
|
+
profiles still pointed at `claude-opus-4-8` and Gemini 3.5 Flash; they now use
|
|
549
|
+
Claude Opus 5 (with lane-appropriate effort) and Gemini 3.6 Flash.
|
|
550
|
+
- **Corrected the Intelligence Index figures** in
|
|
551
|
+
`docs/model-capabilities-2026-07.md` against the Artificial Analysis source
|
|
552
|
+
(index points, not percentages), added the AA-Briefcase / GDPval-AA v2
|
|
553
|
+
comparison, and recorded the two results that cut against the defaults:
|
|
554
|
+
Fable 5's lead on factual knowledge and Sol's lead on presentation quality.
|
|
555
|
+
|
|
556
|
+
## What's new in v0.10.2
|
|
557
|
+
|
|
558
|
+
- **Claude effort on `hardest-coding` and `hard-judgment` moved from `max` to
|
|
559
|
+
`xhigh`**, matching Anthropic's documented guidance for Claude Opus 5: start
|
|
560
|
+
at `xhigh` for coding and agentic work, keep `high` as the floor for other
|
|
561
|
+
intelligence-sensitive work, and reserve `max` for cases where correctness
|
|
562
|
+
outweighs cost. Raise it back per lane with
|
|
563
|
+
`omnilane configure set <lane> "<spec>"`.
|
|
564
|
+
- **Fixed two dead CHANGELOG compare links** that pointed at a `v0.10.0` tag
|
|
565
|
+
which was never published.
|
|
566
|
+
|
|
567
|
+
## What's new in v0.10.1
|
|
568
|
+
|
|
569
|
+
- **`claude-opus-5` joins the default table** as first choice for
|
|
570
|
+
`hard-judgment` and `taste-final`, plus a fallback for the hardest coding work.
|
|
571
|
+
- **`omnilane configure` covers all 13 providers** with 106 selectable model
|
|
572
|
+
entries — current native catalogs for Codex, Claude Code, Grok Build and
|
|
573
|
+
Antigravity, plus verified OpenRouter/OpenCode shortcuts. Custom model IDs
|
|
574
|
+
remain available through `c`.
|
|
575
|
+
|
|
426
576
|
<details>
|
|
427
|
-
<summary>Older releases (v0.
|
|
577
|
+
<summary>Older releases (v0.10.0 and earlier)</summary>
|
|
578
|
+
|
|
579
|
+
## What's new in v0.10.0
|
|
580
|
+
|
|
581
|
+
- **Gemini 3.6 Flash defaults** — the gemini candidates in `fast-agentic`,
|
|
582
|
+
`triage`, and `bulk-mechanical` (and the `Gemini Flash` alias) now run
|
|
583
|
+
Gemini 3.6 Flash: fewer output tokens, a lower output price, and the fastest
|
|
584
|
+
output speed measured by Artificial Analysis.
|
|
585
|
+
- **Evidence re-audit** — routing comments, model capability notes, and the
|
|
586
|
+
Gemini price table refreshed against official sources.
|
|
587
|
+
|
|
588
|
+
## What's new in v0.9.1
|
|
589
|
+
|
|
590
|
+
- **Fix:** `configure set` no longer deletes hand-written comments from
|
|
591
|
+
`routing.local.yaml` — it rewrites only its own stamp header and the lane
|
|
592
|
+
being replaced.
|
|
593
|
+
|
|
594
|
+
## What's new in v0.9.0
|
|
595
|
+
|
|
596
|
+
- **Five OpenAI-compatible direct-API vendors** — `deepseek`, `zai` (GLM),
|
|
597
|
+
`mistral`, `groq`, and `cerebras` join `openrouter` as CLI-free lanes (curl +
|
|
598
|
+
a `<VENDOR>_API_KEY`). A one-line `lib/common.sh` registry entry adds each;
|
|
599
|
+
see [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md).
|
|
600
|
+
- **Fish shell completion** — `omnilane completion fish | source`.
|
|
428
601
|
|
|
429
602
|
## What's new in v0.8.3
|
|
430
603
|
|