omnilane 0.9.0 → 0.9.1

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
@@ -6,6 +6,20 @@ semantic version tags.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.9.1] - 2026-07-19
10
+
11
+ ### Fixed
12
+
13
+ - `configure set` no longer deletes hand-written comments from
14
+ `routing.local.yaml`: it now rewrites only its own stamp header and the lane
15
+ being replaced, so user comments survive a set.
16
+
17
+ ### Added
18
+
19
+ - Browser-backed UI tests honor `OMNILANE_TEST_REQUIRE_BROWSER=1`, which turns
20
+ a persistent Chrome/Playwright launch failure into a real failure instead of
21
+ a skip — for hosts known to have a working Chrome.
22
+
9
23
  ## [0.9.0] - 2026-07-19
10
24
 
11
25
  ### Added
@@ -307,7 +321,8 @@ semantic version tags.
307
321
  - Initial shared routing table, cross-vendor dispatcher, runners, installer,
308
322
  and baseline lint fixes.
309
323
 
310
- [Unreleased]: https://github.com/Seraphim0916/omnilane/compare/v0.9.0...HEAD
324
+ [Unreleased]: https://github.com/Seraphim0916/omnilane/compare/v0.9.1...HEAD
325
+ [0.9.1]: https://github.com/Seraphim0916/omnilane/compare/v0.9.0...v0.9.1
311
326
  [0.9.0]: https://github.com/Seraphim0916/omnilane/compare/v0.8.3...v0.9.0
312
327
  [0.8.3]: https://github.com/Seraphim0916/omnilane/compare/v0.8.2...v0.8.3
313
328
  [0.8.2]: https://github.com/Seraphim0916/omnilane/compare/v0.8.1...v0.8.2
package/README.ja.md CHANGED
@@ -21,113 +21,56 @@
21
21
 
22
22
  ---
23
23
 
24
- ## v0.9.0 の新機能
24
+ ## 👋 はじめての方へ
25
25
 
26
- - **OpenAI 互換の direct-API ベンダーを 5 つ追加** — `deepseek`、`zai`(GLM)
27
- `mistral`、`groq`、`cerebras` `openrouter` と同じく CLI 不要のレーンに
28
- (curl と `<VENDOR>_API_KEY` だけ)。`lib/common.sh` のレジストリに 1 行で
29
- 追加でき、モデル能力の比較は [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md) を参照。
30
- - **Fish シェル補完** — `omnilane completion fish | source`。
26
+ すでに AI コーディングアシスタント——**Claude CodeCodex、Cursor、Gemini
27
+ CLI** など——を使っていますよね。どれも一度に一つの AI モデルとやり取りし、
28
+ 「どのタスクにどのモデルが最適か」の判断はあなた任せです。
31
29
 
32
- ## v0.8.3 の新機能
30
+ **omnilane がその判断を代行します。** 一つひとつの作業を、それに最も強い(そして最も安い)
31
+ モデルへ自動で振り分けます——難しいコーディングはトップコーダーへ、ちょっとした確認は
32
+ 速くて安いモデルへ、長い文書は大コンテキストモデルへ——すべてあなたが既に契約している
33
+ サブスクと API キーで。組み込みのデフォルトのまま使うも、小さな設定ファイルを一つ調整するも
34
+ 自由。新しく面倒を見る対象は増えず(既存ツールの裏で動きます)、`./install.sh --uninstall`
35
+ できれいに削除できます。
33
36
 
34
- - **MCP サーバー** — `omnilane mcp` は依存ゼロの stdio MCP サーバーを起動し、
35
- MCP 対応ホスト(Claude Code、Codex、Gemini CLI、Cursor、OpenCode など)が
36
- スキルなしで omnilane を発見・呼び出しできます:ツールは `route`、
37
- `jobs_status`、`jobs_result`、`list_lanes`。`route` は読み取り専用の
38
- advise がデフォルトで、work モードには明示的な workdir が必須です。
37
+ **[⬇ 60 秒クイックスタートへ](#-60-秒クイックスタート)**
39
38
 
40
- ## v0.8.2 の新機能
39
+ ## v0.9.1 の新機能
41
40
 
42
- - **`openrouter` vendor** — `curl` `OPENROUTER_API_KEY` だけで
43
- OpenRouter API に直接ディスパッチ。どの omnilane インストールからでも
44
- 数百のホスト型モデルに到達でき、コーディングエージェント CLI の追加は
45
- 不要。advise/consult 専用(ファイル編集不可、work モードは明確に
46
- エラーで案内)、モデル slug は必須。例:
47
- `dispatch.sh --vendor openrouter --model anthropic/claude-sonnet-5 consult "..."`
48
- - **`opencode` vendor** — マルチプロバイダ集約 CLI OpenCode 経由の
49
- ヘッドレスディスパッチ(`opencode run`)。advise モードは組み込みの
50
- 読み取り専用 `plan` エージェントを使用し、work モードは `--auto`。
51
- デフォルトの `coding-overflow` チェーンの最終フォールバックに追加。
52
-
53
- ## v0.8.1 の新機能
41
+ - **修正**: `configure set` `routing.local.yaml` の手書きコメントを削除しなく
42
+ なりました。書き換えるのは自身のスタンプ行と置き換え対象のレーンだけです。
54
43
 
55
- - **Claude Code プラグインがルーティングリマインダーを自動読み込み** —
56
- プラグインに `SessionStart` フック(`hooks/hooks.json`)を同梱。
57
- セッション開始時(`startup|resume|clear`)にルーティングリマインダーを
58
- 自動注入するため、`~/.claude/CLAUDE.md` を編集せずプラグインの
59
- インストールだけで有効になります。他の CLI は引き続き `install.sh` の
60
- 指示ファイル方式です。
61
-
62
- ## v0.8.0 の新機能
63
-
64
- - **2 つの新ディスパッチベンダー** — `kimi`(Moonshot Kimi Code CLI)と
65
- `qwen`(Alibaba Qwen Code CLI)が統一 runner 契約で加わりました:
66
- advise は読み取り専用、work は自動承認、API キー環境変数を除去して
67
- CLI 自身のサブスクリプションログインを使用、空出力は明示的な失敗。
68
- `--vendor kimi|qwen` で直接指名できます。
69
- - **coding-overflow にフォールバックチェーン** — クォータ逃し弁が
70
- grok → kimi → qwen → `off` の順にフォールバックし、3 ベンダーの
71
- いずれか 1 つで動作します。runner はフェイクバイナリで契約テスト済み。
72
- 実モデルでの報告を歓迎します。
73
-
74
- ## v0.7.1 の新機能
75
-
76
- - **ルーティング表を更新(2026-07 モデルデータ)** — hardest-coding の第一候補を
77
- GPT-5.6 Sol **max** に変更。Artificial Analysis Coding Agent Index v1.1 で
78
- Sol (max) が 80 点の現行最高を記録し、旧「xhigh が max を上回る」スナップ
79
- ショットを置き換えました。
80
- - **Claude バックアップを強化** — hardest-coding と hard-judgment の
81
- Claude Opus 4.8 バックアップを **xhigh** に変更。難しいタスクと長時間作業には
82
- extra effort を推奨する Anthropic 公式ガイダンスに従います。
83
-
84
- ## v0.7.0 の新機能
85
-
86
- - **ディスパッチを事前にプレビュー** — `--dry-run` は解決済みの実行計画
87
- (vendor、モデル、モード、タイムアウト、副作用判定)を表示し、モデル呼び出しも
88
- ジョブ状態の作成も行いません。
89
- - **バージョン付き JSON で自動化** — `--list`/`--explain`/`--validate` と
90
- `jobs list|status|result|stats` に `--json` エンベロープを追加。読み取り専用の
91
- `jobs wait`、`jobs audit`、決定的マニフェスト付きのオフライン
92
- `omnilane release-audit` も利用できます。
93
- - **ローカルジョブを一気通貫で操作** — `jobs tail` で出力を覗き、`jobs retry` で
94
- 完了ジョブを fail-closed に再実行、`prune --older-than` で古いジョブを整理。
95
- `--help` が全コマンドを網羅します。
96
- - **インストールと補完を安全に** — `install.sh --check`/`--dry-run` は書き込みなしで
97
- ドリフトを報告し、`omnilane completion bash|zsh` が安全なタブ補完を提供。
98
- macOS 標準 Bash 3.2 のクラッシュを 5 件修正しました。
44
+ ## v0.9.0 の新機能
99
45
 
100
- ## v0.6.0 の新機能
46
+ - **OpenAI 互換の direct-API ベンダーを 5 つ追加** — `deepseek`、`zai`(GLM)、
47
+ `mistral`、`groq`、`cerebras` が `openrouter` と同じく CLI 不要のレーンに
48
+ (curl と `<VENDOR>_API_KEY` だけ)。`lib/common.sh` のレジストリに 1 行で
49
+ 追加でき、モデル能力の比較は [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md) を参照。
50
+ - **Fish シェル補完** — `omnilane completion fish | source`。
101
51
 
102
- - **ルーティングをオフラインで説明・検証** `--explain` で各フォールバック
103
- 候補を確認し、`--validate` で実効ルーティング表全体を検査できます。
104
- プロバイダー呼び出しやジョブ状態の作成は行いません。
105
- - **ローカル状態を機械可読データで観測** — 有界な `jobs.sh stats` 集計と
106
- `omnilane doctor --json` により、タスクや結果本文を漏らさず自動化できます。
107
- - **Live Board で二つのジョブを比較** — 読み込み済みジョブをメモリ内だけの
108
- 参照スナップショットとして固定し、モデル経路と公開結果を並べて比較できます。
109
- - **ロック回復時のノイズを削減** — 所有者ファイルが確認と読み取りの間に
110
- 消えた場合も、誤解を招く欠落ファイル診断を出さず fail-closed を維持します。
52
+ ## 60 秒クイックスタート
111
53
 
112
- ## v0.5.1 の新機能
54
+ **一番早い方法——npm でインストール:**
113
55
 
114
- - **Git 管理外で Codex work を利用** — 通常のディレクトリを引き続きサポートし、
115
- Omnilane `git init` を要求も自動実行もしません。
116
- - **非 Git の停止を安全に処理** — 全体上限が未設定なら、解決済みの呼び出し単位
117
- ウォッチドッグを process group ヒューズとして使い、明示設定の優先順位と終了
118
- コードの意味は維持します。
119
- - **表示バージョンを信頼可能に** — `VERSION` が `omnilane --version` と二つの
120
- plugin manifest を統一し、CI が変更履歴と五言語 README の一致を検査します。
56
+ ```bash
57
+ npm i -g omnilane # CLI をインストール
58
+ omnilane route hardest-coding "auth トークン更新テストの不安定さを修正"
59
+ omnilane doctor # 使える AI CLI / キーを確認
60
+ omnilane ui start # 任意:ブラウザでジョブをライブ表示
61
+ ```
121
62
 
122
- ## ⚡ 60 秒クイックスタート
63
+ **またはリポジトリを clone**(ルーティングテーブルとカスタマイズ用スキルが手に入る):
123
64
 
124
65
  ```bash
125
66
  git clone https://github.com/Seraphim0916/omnilane && cd omnilane
126
67
  ./install.sh # CLI を検出、スキルを接続、あなたの言語で対話
127
68
  omnilane route hardest-coding "auth トークン更新テストの不安定さを修正"
128
- omnilane ui start # 任意:ブラウザでジョブをライブ表示
129
69
  ```
130
70
 
71
+ > はじめての方は、まず `omnilane doctor` を実行してください。omnilane が今どのモデル CLI と
72
+ > API キーに接続できるかがわかり、実際に何が動くか把握できます。
73
+
131
74
  ## 🧭 仕組み
132
75
 
133
76
  omnilane は、**どの** agentic CLI のメインループでも、サブタスクをレーンに
@@ -436,6 +379,103 @@ configure.sh set|get|unset|list|diff LANE [SPEC] # routing.local.yaml を非
436
379
  制限し、監視対象の process group を終了します。Omnilane は `git init` を自動実行せず、
437
380
  リポジトリの作成も要求しません。
438
381
 
382
+ ## 📜 リリース履歴
383
+
384
+ <details>
385
+ <summary>過去のリリース(v0.8.3 以前)</summary>
386
+
387
+ ## v0.8.3 の新機能
388
+
389
+ - **MCP サーバー** — `omnilane mcp` は依存ゼロの stdio MCP サーバーを起動し、
390
+ MCP 対応ホスト(Claude Code、Codex、Gemini CLI、Cursor、OpenCode など)が
391
+ スキルなしで omnilane を発見・呼び出しできます:ツールは `route`、
392
+ `jobs_status`、`jobs_result`、`list_lanes`。`route` は読み取り専用の
393
+ advise がデフォルトで、work モードには明示的な workdir が必須です。
394
+
395
+ ## v0.8.2 の新機能
396
+
397
+ - **`openrouter` vendor** — `curl` と `OPENROUTER_API_KEY` だけで
398
+ OpenRouter API に直接ディスパッチ。どの omnilane インストールからでも
399
+ 数百のホスト型モデルに到達でき、コーディングエージェント CLI の追加は
400
+ 不要。advise/consult 専用(ファイル編集不可、work モードは明確に
401
+ エラーで案内)、モデル slug は必須。例:
402
+ `dispatch.sh --vendor openrouter --model anthropic/claude-sonnet-5 consult "..."`
403
+ - **`opencode` vendor** — マルチプロバイダ集約 CLI OpenCode 経由の
404
+ ヘッドレスディスパッチ(`opencode run`)。advise モードは組み込みの
405
+ 読み取り専用 `plan` エージェントを使用し、work モードは `--auto`。
406
+ デフォルトの `coding-overflow` チェーンの最終フォールバックに追加。
407
+
408
+ ## v0.8.1 の新機能
409
+
410
+ - **Claude Code プラグインがルーティングリマインダーを自動読み込み** —
411
+ プラグインに `SessionStart` フック(`hooks/hooks.json`)を同梱。
412
+ セッション開始時(`startup|resume|clear`)にルーティングリマインダーを
413
+ 自動注入するため、`~/.claude/CLAUDE.md` を編集せずプラグインの
414
+ インストールだけで有効になります。他の CLI は引き続き `install.sh` の
415
+ 指示ファイル方式です。
416
+
417
+ ## v0.8.0 の新機能
418
+
419
+ - **2 つの新ディスパッチベンダー** — `kimi`(Moonshot Kimi Code CLI)と
420
+ `qwen`(Alibaba Qwen Code CLI)が統一 runner 契約で加わりました:
421
+ advise は読み取り専用、work は自動承認、API キー環境変数を除去して
422
+ CLI 自身のサブスクリプションログインを使用、空出力は明示的な失敗。
423
+ `--vendor kimi|qwen` で直接指名できます。
424
+ - **coding-overflow にフォールバックチェーン** — クォータ逃し弁が
425
+ grok → kimi → qwen → `off` の順にフォールバックし、3 ベンダーの
426
+ いずれか 1 つで動作します。runner はフェイクバイナリで契約テスト済み。
427
+ 実モデルでの報告を歓迎します。
428
+
429
+ ## v0.7.1 の新機能
430
+
431
+ - **ルーティング表を更新(2026-07 モデルデータ)** — hardest-coding の第一候補を
432
+ GPT-5.6 Sol **max** に変更。Artificial Analysis Coding Agent Index v1.1 で
433
+ Sol (max) が 80 点の現行最高を記録し、旧「xhigh が max を上回る」スナップ
434
+ ショットを置き換えました。
435
+ - **Claude バックアップを強化** — hardest-coding と hard-judgment の
436
+ Claude Opus 4.8 バックアップを **xhigh** に変更。難しいタスクと長時間作業には
437
+ extra effort を推奨する Anthropic 公式ガイダンスに従います。
438
+
439
+ ## v0.7.0 の新機能
440
+
441
+ - **ディスパッチを事前にプレビュー** — `--dry-run` は解決済みの実行計画
442
+ (vendor、モデル、モード、タイムアウト、副作用判定)を表示し、モデル呼び出しも
443
+ ジョブ状態の作成も行いません。
444
+ - **バージョン付き JSON で自動化** — `--list`/`--explain`/`--validate` と
445
+ `jobs list|status|result|stats` に `--json` エンベロープを追加。読み取り専用の
446
+ `jobs wait`、`jobs audit`、決定的マニフェスト付きのオフライン
447
+ `omnilane release-audit` も利用できます。
448
+ - **ローカルジョブを一気通貫で操作** — `jobs tail` で出力を覗き、`jobs retry` で
449
+ 完了ジョブを fail-closed に再実行、`prune --older-than` で古いジョブを整理。
450
+ `--help` が全コマンドを網羅します。
451
+ - **インストールと補完を安全に** — `install.sh --check`/`--dry-run` は書き込みなしで
452
+ ドリフトを報告し、`omnilane completion bash|zsh` が安全なタブ補完を提供。
453
+ macOS 標準 Bash 3.2 のクラッシュを 5 件修正しました。
454
+
455
+ ## v0.6.0 の新機能
456
+
457
+ - **ルーティングをオフラインで説明・検証** — `--explain` で各フォールバック
458
+ 候補を確認し、`--validate` で実効ルーティング表全体を検査できます。
459
+ プロバイダー呼び出しやジョブ状態の作成は行いません。
460
+ - **ローカル状態を機械可読データで観測** — 有界な `jobs.sh stats` 集計と
461
+ `omnilane doctor --json` により、タスクや結果本文を漏らさず自動化できます。
462
+ - **Live Board で二つのジョブを比較** — 読み込み済みジョブをメモリ内だけの
463
+ 参照スナップショットとして固定し、モデル経路と公開結果を並べて比較できます。
464
+ - **ロック回復時のノイズを削減** — 所有者ファイルが確認と読み取りの間に
465
+ 消えた場合も、誤解を招く欠落ファイル診断を出さず fail-closed を維持します。
466
+
467
+ ## v0.5.1 の新機能
468
+
469
+ - **Git 管理外で Codex work を利用** — 通常のディレクトリを引き続きサポートし、
470
+ Omnilane は `git init` を要求も自動実行もしません。
471
+ - **非 Git の停止を安全に処理** — 全体上限が未設定なら、解決済みの呼び出し単位
472
+ ウォッチドッグを process group ヒューズとして使い、明示設定の優先順位と終了
473
+ コードの意味は維持します。
474
+ - **表示バージョンを信頼可能に** — `VERSION` が `omnilane --version` と二つの
475
+ plugin manifest を統一し、CI が変更履歴と五言語 README の一致を検査します。
476
+
477
+ </details>
478
+
439
479
  ## 🌱 ステータス
440
480
 
441
481
  omnilane は 13 のディスパッチベンダーを備えます——4 つのハーネスネイティブ
package/README.ko.md CHANGED
@@ -21,113 +21,55 @@
21
21
 
22
22
  ---
23
23
 
24
- ## v0.9.0 새 기능
24
+ ## 👋 처음이신가요?
25
25
 
26
- - **OpenAI 호환 direct-API 벤더 5개 추가** `deepseek`, `zai` (GLM), `mistral`,
27
- `groq`, `cerebras` `openrouter` 처럼 CLI 없는 레인으로 추가(curl
28
- `<VENDOR>_API_KEY` 필요). `lib/common.sh` 레지스트리에 한 줄로 추가되며,
29
- 모델 능력 비교는 [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md) 참고.
30
- - **Fish 셸 자동완성** — `omnilane completion fish | source`.
26
+ 이미 AI 코딩 어시스턴트——**Claude Code, Codex, Cursor, Gemini CLI** 같은——를 쓰고
27
+ 계시죠. 각각은 번에 하나의 AI 모델과 대화하며, "어떤 작업에 어떤 모델이 최선인가"는
28
+ 당신 몫으로 남습니다.
31
29
 
32
- ## v0.8.3 기능
30
+ **omnilane 대신 골라 줍니다.** 모든 작업을 그 일에 가장 강한(그리고 가장 저렴한) 모델로
31
+ 자동 라우팅합니다——어려운 코딩은 최고 코더에게, 간단한 확인은 빠르고 싼 모델에게, 긴 문서는
32
+ 큰 컨텍스트 모델에게——전부 이미 결제 중인 구독과 API 키로. 기본값 그대로 쓰거나, 작은 설정
33
+ 파일 하나만 손보면 됩니다. 새로 관리할 대상이 늘지 않고(기존 도구 뒤에서 동작),
34
+ `./install.sh --uninstall` 로 깔끔히 제거됩니다.
33
35
 
34
- - **MCP 서버** — `omnilane mcp` 는 의존성 없는 stdio MCP 서버를 시작하여,
35
- MCP 지원 호스트(Claude Code, Codex, Gemini CLI, Cursor, OpenCode 등)가
36
- 스킬 설치 없이 omnilane 을 발견하고 호출할 수 있습니다: 도구는 `route`,
37
- `jobs_status`, `jobs_result`, `list_lanes`. `route` 는 읽기 전용 advise 가
38
- 기본값이며, work 모드는 명시적 workdir 이 필요합니다.
36
+ **[⬇ 60초 시작으로](#-60초-시작)**
39
37
 
40
- ## v0.8.2 새 기능
38
+ ## v0.9.1 새 기능
41
39
 
42
- - **`openrouter` vendor** `curl`과 `OPENROUTER_API_KEY`만으로
43
- OpenRouter API에 직접 디스패치합니다. 어떤 omnilane 설치에서도 수백 개의
44
- 호스팅 모델에 접근할 수 있으며 코딩 에이전트 CLI를 추가로 설치할 필요가
45
- 없습니다. advise/consult 전용(파일 편집 불가, work 모드는 명확한 오류로
46
- 안내)이며 모델 slug는 필수입니다. 예:
47
- `dispatch.sh --vendor openrouter --model anthropic/claude-sonnet-5 consult "..."`
48
- - **`opencode` vendor** — 멀티 프로바이더 집합 CLI OpenCode를 통한
49
- 헤드리스 디스패치(`opencode run`). advise 모드는 내장 읽기 전용 `plan`
50
- 에이전트를 사용하고 work 모드는 `--auto`를 사용합니다. 기본
51
- `coding-overflow` 체인의 마지막 폴백으로 추가되었습니다.
52
-
53
- ## v0.8.1 새 기능
40
+ - **수정**: `configure set` 더 이상 `routing.local.yaml` 의 수기 주석을
41
+ 삭제하지 않습니다. 자체 스탬프 줄과 교체 대상 레인만 다시 씁니다.
54
42
 
55
- - **Claude Code 플러그인이 라우팅 리마인더를 자동 로드** — 플러그인에
56
- `SessionStart` 훅(`hooks/hooks.json`)이 포함되어 세션 시작 시
57
- (`startup|resume|clear`) 라우팅 리마인더를 자동 주입합니다.
58
- `~/.claude/CLAUDE.md` 수정 없이 플러그인 설치만으로 적용됩니다.
59
- 다른 CLI는 기존대로 `install.sh` 지침 파일 방식을 사용합니다.
60
-
61
- ## v0.8.0 새 기능
62
-
63
- - **새 디스패치 벤더 2종** — `kimi`(Moonshot Kimi Code CLI)와
64
- `qwen`(Alibaba Qwen Code CLI)이 통일 runner 계약으로 합류:
65
- advise 는 읽기 전용, work 는 자동 승인, API 키 환경 변수를 제거해
66
- CLI 자체 구독 로그인을 사용, 빈 출력은 명시적 실패.
67
- `--vendor kimi|qwen` 으로 직접 지정할 수 있습니다.
68
- - **coding-overflow 폴백 체인** — 쿼터 안전 밸브가 grok → kimi → qwen
69
- → `off` 순으로 폴백해 세 벤더 중 하나만 설치돼 있어도 동작합니다.
70
- runner 는 페이크 바이너리로 계약 테스트 완료. 실제 모델 사용 보고를
71
- 환영합니다.
72
-
73
- ## v0.7.1 새 기능
74
-
75
- - **라우팅 테이블 갱신(2026-07 모델 데이터)** — hardest-coding 1순위를
76
- GPT-5.6 Sol **max** 로 변경. Artificial Analysis Coding Agent Index v1.1 에서
77
- Sol (max) 이 80점으로 현행 최고를 기록해, 기존 「xhigh 가 max 보다 낫다」
78
- 스냅샷을 대체합니다.
79
- - **Claude 백업 강화** — hardest-coding 과 hard-judgment 의 Claude Opus 4.8
80
- 백업을 **xhigh** 로 변경. 어려운 작업과 장시간 작업에 extra effort 를
81
- 권장하는 Anthropic 공식 가이드를 따릅니다.
82
-
83
- ## v0.7.0 새 기능
84
-
85
- - **디스패치를 먼저 미리보기** — `--dry-run` 은 완전히 해석된 실행 계획(vendor,
86
- 모델, 모드, 타임아웃, 부작용 판정)을 출력하며 모델 호출도 작업 상태 생성도
87
- 하지 않습니다.
88
- - **버전 있는 JSON 자동화** — `--list`/`--explain`/`--validate` 와
89
- `jobs list|status|result|stats` 에 `--json` 엔벨로프를 제공하고, 읽기 전용
90
- `jobs wait`, `jobs audit`, 결정적 manifest 를 갖춘 오프라인
91
- `omnilane release-audit` 게이트를 추가했습니다.
92
- - **로컬 작업을 끝까지 제어** — `jobs tail` 로 실시간 출력을 확인하고,
93
- `jobs retry` 로 완료된 작업을 fail-closed 로 재실행하며,
94
- `prune --older-than` 으로 오래된 작업을 정리합니다. `--help` 가 모든 명령을
95
- 다룹니다.
96
- - **설치와 자동완성을 안전하게** — `install.sh --check`/`--dry-run` 은 쓰기 없이
97
- 드리프트를 보고하고, `omnilane completion bash|zsh` 가 안전한 탭 완성을
98
- 제공하며, macOS 기본 Bash 3.2 크래시 5건을 수정했습니다.
43
+ ## v0.9.0 기능
99
44
 
100
- ## v0.6.0 기능
45
+ - **OpenAI 호환 direct-API 벤더 5개 추가** — `deepseek`, `zai` (GLM), `mistral`,
46
+ `groq`, `cerebras` 가 `openrouter` 처럼 CLI 없는 레인으로 추가(curl 과
47
+ `<VENDOR>_API_KEY` 만 필요). `lib/common.sh` 레지스트리에 한 줄로 추가되며,
48
+ 모델 능력 비교는 [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md) 참고.
49
+ - **Fish 셸 자동완성** — `omnilane completion fish | source`.
101
50
 
102
- - **라우팅을 오프라인으로 설명하고 검증** — `--explain` 으로 각 폴백 후보를
103
- 확인하고 `--validate` 로 전체 유효 라우팅 테이블을 검사합니다. 공급자를
104
- 호출하거나 잡 상태를 만들지 않습니다.
105
- - **로컬 상태를 기계 판독 데이터로 관찰** — 제한된 `jobs.sh stats` 집계와
106
- `omnilane doctor --json` 을 사용해 태스크나 결과 본문 노출 없이 자동화합니다.
107
- - **Live Board 에서 두 잡 비교** — 불러온 잡 하나를 메모리에만 존재하는 참조
108
- 스냅샷으로 고정하고 모델 경로와 공개 결과를 나란히 비교합니다.
109
- - **조용한 잠금 복구** — 소유자 파일이 확인과 읽기 사이에 사라져도 오해를 부르는
110
- 파일 없음 진단을 노출하지 않으며 fail-closed 동작을 유지합니다.
51
+ ## 60초 시작
111
52
 
112
- ## v0.5.1 기능
53
+ **가장 빠른 방법——npm 으로 설치:**
113
54
 
114
- - **Git 저장소 밖에서 Codex work 사용** — 일반 디렉터리를 계속 지원하며
115
- Omnilane `git init` 요구하거나 자동 실행하지 않습니다.
116
- - **비 Git 멈춤을 안전하게 종료** 전체 상한이 없으면 결정된 호출별 워치독을
117
- process group 퓨즈로 사용하고, 명시한 timeout 우선순위와 종료 코드 의미는
118
- 그대로 유지합니다.
119
- - **표시 버전을 신뢰 가능하게 유지** — `VERSION` 이 `omnilane --version` 과 두
120
- plugin manifest 를 통일하며 CI 가 변경 기록과 5개 언어 README 를 검사합니다.
55
+ ```bash
56
+ npm i -g omnilane # CLI 설치
57
+ omnilane route hardest-coding "간헐적으로 실패하는 auth 토큰 갱신 테스트 수정"
58
+ omnilane doctor # 사용 가능한 AI CLI / 확인
59
+ omnilane ui start # 선택: 브라우저에서 잡을 실시간 확인
60
+ ```
121
61
 
122
- ## 60초 시작
62
+ **또는 리포지토리 clone**(라우팅 테이블과 커스터마이즈용 스킬을 얻음):
123
63
 
124
64
  ```bash
125
65
  git clone https://github.com/Seraphim0916/omnilane && cd omnilane
126
66
  ./install.sh # CLI 감지, 스킬 연결, 당신의 언어로 대화
127
67
  omnilane route hardest-coding "간헐적으로 실패하는 auth 토큰 갱신 테스트 수정"
128
- omnilane ui start # 선택: 브라우저에서 잡을 실시간 확인
129
68
  ```
130
69
 
70
+ > 처음이신가요? 먼저 `omnilane doctor` 를 실행하세요. omnilane 이 지금 어떤 모델 CLI 와
71
+ > API 키에 접근할 수 있는지 알려 주어, 실제로 무엇이 실행될지 파악할 수 있습니다.
72
+
131
73
  ## 🧭 동작 방식
132
74
 
133
75
  omnilane 은 **어떤** agentic CLI 든 메인 루프가 서브태스크를 레인으로 분류하고,
@@ -424,6 +366,103 @@ CLI 를 사용할 수 없음, `5` 1라운드 성공 투표자 부족, `6` 2라
424
366
  process group을 정리합니다. Omnilane 은 `git init` 을 자동 실행하지 않으며 저장소
425
367
  생성을 요구하지도 않습니다.
426
368
 
369
+ ## 📜 릴리스 기록
370
+
371
+ <details>
372
+ <summary>이전 릴리스(v0.8.3 이하)</summary>
373
+
374
+ ## v0.8.3 새 기능
375
+
376
+ - **MCP 서버** — `omnilane mcp` 는 의존성 없는 stdio MCP 서버를 시작하여,
377
+ MCP 지원 호스트(Claude Code, Codex, Gemini CLI, Cursor, OpenCode 등)가
378
+ 스킬 설치 없이 omnilane 을 발견하고 호출할 수 있습니다: 도구는 `route`,
379
+ `jobs_status`, `jobs_result`, `list_lanes`. `route` 는 읽기 전용 advise 가
380
+ 기본값이며, work 모드는 명시적 workdir 이 필요합니다.
381
+
382
+ ## v0.8.2 새 기능
383
+
384
+ - **`openrouter` vendor** — `curl`과 `OPENROUTER_API_KEY`만으로
385
+ OpenRouter API에 직접 디스패치합니다. 어떤 omnilane 설치에서도 수백 개의
386
+ 호스팅 모델에 접근할 수 있으며 코딩 에이전트 CLI를 추가로 설치할 필요가
387
+ 없습니다. advise/consult 전용(파일 편집 불가, work 모드는 명확한 오류로
388
+ 안내)이며 모델 slug는 필수입니다. 예:
389
+ `dispatch.sh --vendor openrouter --model anthropic/claude-sonnet-5 consult "..."`
390
+ - **`opencode` vendor** — 멀티 프로바이더 집합 CLI OpenCode를 통한
391
+ 헤드리스 디스패치(`opencode run`). advise 모드는 내장 읽기 전용 `plan`
392
+ 에이전트를 사용하고 work 모드는 `--auto`를 사용합니다. 기본
393
+ `coding-overflow` 체인의 마지막 폴백으로 추가되었습니다.
394
+
395
+ ## v0.8.1 새 기능
396
+
397
+ - **Claude Code 플러그인이 라우팅 리마인더를 자동 로드** — 플러그인에
398
+ `SessionStart` 훅(`hooks/hooks.json`)이 포함되어 세션 시작 시
399
+ (`startup|resume|clear`) 라우팅 리마인더를 자동 주입합니다.
400
+ `~/.claude/CLAUDE.md` 수정 없이 플러그인 설치만으로 적용됩니다.
401
+ 다른 CLI는 기존대로 `install.sh` 지침 파일 방식을 사용합니다.
402
+
403
+ ## v0.8.0 새 기능
404
+
405
+ - **새 디스패치 벤더 2종** — `kimi`(Moonshot Kimi Code CLI)와
406
+ `qwen`(Alibaba Qwen Code CLI)이 통일 runner 계약으로 합류:
407
+ advise 는 읽기 전용, work 는 자동 승인, API 키 환경 변수를 제거해
408
+ CLI 자체 구독 로그인을 사용, 빈 출력은 명시적 실패.
409
+ `--vendor kimi|qwen` 으로 직접 지정할 수 있습니다.
410
+ - **coding-overflow 폴백 체인** — 쿼터 안전 밸브가 grok → kimi → qwen
411
+ → `off` 순으로 폴백해 세 벤더 중 하나만 설치돼 있어도 동작합니다.
412
+ runner 는 페이크 바이너리로 계약 테스트 완료. 실제 모델 사용 보고를
413
+ 환영합니다.
414
+
415
+ ## v0.7.1 새 기능
416
+
417
+ - **라우팅 테이블 갱신(2026-07 모델 데이터)** — hardest-coding 1순위를
418
+ GPT-5.6 Sol **max** 로 변경. Artificial Analysis Coding Agent Index v1.1 에서
419
+ Sol (max) 이 80점으로 현행 최고를 기록해, 기존 「xhigh 가 max 보다 낫다」
420
+ 스냅샷을 대체합니다.
421
+ - **Claude 백업 강화** — hardest-coding 과 hard-judgment 의 Claude Opus 4.8
422
+ 백업을 **xhigh** 로 변경. 어려운 작업과 장시간 작업에 extra effort 를
423
+ 권장하는 Anthropic 공식 가이드를 따릅니다.
424
+
425
+ ## v0.7.0 새 기능
426
+
427
+ - **디스패치를 먼저 미리보기** — `--dry-run` 은 완전히 해석된 실행 계획(vendor,
428
+ 모델, 모드, 타임아웃, 부작용 판정)을 출력하며 모델 호출도 작업 상태 생성도
429
+ 하지 않습니다.
430
+ - **버전 있는 JSON 자동화** — `--list`/`--explain`/`--validate` 와
431
+ `jobs list|status|result|stats` 에 `--json` 엔벨로프를 제공하고, 읽기 전용
432
+ `jobs wait`, `jobs audit`, 결정적 manifest 를 갖춘 오프라인
433
+ `omnilane release-audit` 게이트를 추가했습니다.
434
+ - **로컬 작업을 끝까지 제어** — `jobs tail` 로 실시간 출력을 확인하고,
435
+ `jobs retry` 로 완료된 작업을 fail-closed 로 재실행하며,
436
+ `prune --older-than` 으로 오래된 작업을 정리합니다. `--help` 가 모든 명령을
437
+ 다룹니다.
438
+ - **설치와 자동완성을 안전하게** — `install.sh --check`/`--dry-run` 은 쓰기 없이
439
+ 드리프트를 보고하고, `omnilane completion bash|zsh` 가 안전한 탭 완성을
440
+ 제공하며, macOS 기본 Bash 3.2 크래시 5건을 수정했습니다.
441
+
442
+ ## v0.6.0 새 기능
443
+
444
+ - **라우팅을 오프라인으로 설명하고 검증** — `--explain` 으로 각 폴백 후보를
445
+ 확인하고 `--validate` 로 전체 유효 라우팅 테이블을 검사합니다. 공급자를
446
+ 호출하거나 잡 상태를 만들지 않습니다.
447
+ - **로컬 상태를 기계 판독 데이터로 관찰** — 제한된 `jobs.sh stats` 집계와
448
+ `omnilane doctor --json` 을 사용해 태스크나 결과 본문 노출 없이 자동화합니다.
449
+ - **Live Board 에서 두 잡 비교** — 불러온 잡 하나를 메모리에만 존재하는 참조
450
+ 스냅샷으로 고정하고 모델 경로와 공개 결과를 나란히 비교합니다.
451
+ - **조용한 잠금 복구** — 소유자 파일이 확인과 읽기 사이에 사라져도 오해를 부르는
452
+ 파일 없음 진단을 노출하지 않으며 fail-closed 동작을 유지합니다.
453
+
454
+ ## v0.5.1 새 기능
455
+
456
+ - **Git 저장소 밖에서 Codex work 사용** — 일반 디렉터리를 계속 지원하며
457
+ Omnilane 은 `git init` 을 요구하거나 자동 실행하지 않습니다.
458
+ - **비 Git 멈춤을 안전하게 종료** — 전체 상한이 없으면 결정된 호출별 워치독을
459
+ process group 퓨즈로 사용하고, 명시한 timeout 우선순위와 종료 코드 의미는
460
+ 그대로 유지합니다.
461
+ - **표시 버전을 신뢰 가능하게 유지** — `VERSION` 이 `omnilane --version` 과 두
462
+ plugin manifest 를 통일하며 CI 가 변경 기록과 5개 언어 README 를 검사합니다.
463
+
464
+ </details>
465
+
427
466
  ## 🌱 상태
428
467
 
429
468
  omnilane 은 13개의 디스패치 벤더를 갖춥니다——4개의 하네스 네이티브(codex,
package/README.md CHANGED
@@ -21,120 +21,57 @@ or any hosted model via OpenRouter — on the subscriptions you already pay for,
21
21
 
22
22
  ---
23
23
 
24
- ## What's new in v0.9.0
25
-
26
- - **Five OpenAI-compatible direct-API vendors** — `deepseek`, `zai` (GLM),
27
- `mistral`, `groq`, and `cerebras` join `openrouter` as CLI-free lanes (curl +
28
- a `<VENDOR>_API_KEY`). A one-line `lib/common.sh` registry entry adds each;
29
- see [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md).
30
- - **Fish shell completion** — `omnilane completion fish | source`.
31
-
32
- ## What's new in v0.8.3
33
-
34
- - **MCP server** — `omnilane mcp` starts a zero-dependency stdio MCP server,
35
- so any MCP-capable host (Claude Code, Codex, Gemini CLI, Cursor, OpenCode…)
36
- can discover and call omnilane without installing the skill: tools `route`,
37
- `jobs_status`, `jobs_result`, and `list_lanes`. `route` defaults to
38
- read-only advise mode; work mode requires an explicit workdir.
39
-
40
- ## What's new in v0.8.2
41
-
42
- - **`openrouter` vendor** — dispatch straight to the OpenRouter API with
43
- nothing but `curl` and an `OPENROUTER_API_KEY`: hundreds of hosted models
44
- become reachable from any omnilane install, no coding-agent CLI required.
45
- Advise/consult only (it cannot edit files; work mode fails with guidance)
46
- and the model slug is mandatory, e.g.
47
- `dispatch.sh --vendor openrouter --model anthropic/claude-sonnet-5 consult "..."`.
48
- - **`deepseek`, `zai`, `mistral`, `groq`, `cerebras` vendors** — the same
49
- CLI-free direct-API path as `openrouter`, for OpenAI-compatible providers:
50
- DeepSeek, Z.ai GLM, Mistral, Groq, and Cerebras. Each needs only `curl` and
51
- its `<VENDOR>_API_KEY`; advise/consult only. A one-line `lib/common.sh`
52
- registry entry defines each endpoint, key env, and default model. See
53
- [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md).
54
- - **`opencode` vendor** — headless dispatch through the OpenCode
55
- multi-provider aggregator CLI (`opencode run`). Advise mode pins OpenCode's
56
- built-in read-only `plan` agent; work mode uses `--auto`. Joins the default
57
- `coding-overflow` chain as its last fallback.
58
-
59
- ## What's new in v0.8.1
60
-
61
- - **Claude Code plugin auto-loads the routing reminder** — the plugin now
62
- ships a `SessionStart` hook (`hooks/hooks.json`) that injects the routing
63
- reminder at session open (`startup|resume|clear`), so plugin installs get
64
- the persistent reminder with no edit to `~/.claude/CLAUDE.md`. The
65
- `install.sh` instruction-file reminder still covers the other CLIs.
24
+ ## 👋 New here?
66
25
 
67
- ## What's new in v0.8.0
26
+ You already drive an AI coding assistant — **Claude Code, Codex, Cursor, Gemini
27
+ CLI**, and the like. Each one talks to a single AI model, and picking the best
28
+ model for each task is left to you.
68
29
 
69
- - **Two new dispatch vendors** `kimi` (Moonshot Kimi Code CLI) and `qwen`
70
- (Alibaba Qwen Code CLI) join the vendor set with the uniform runner
71
- contract: advise stays read-only, work auto-approves, API-key env is
72
- stripped so the CLIs use their own subscription logins, and empty output
73
- is a loud failure. Pin them with `--vendor kimi|qwen`.
74
- - **coding-overflow grows a chain** — the quota relief valve now falls back
75
- grok → kimi → qwen before `off`, so it works with any one of the three
76
- vendors installed. Runners are contract-tested against fake binaries;
77
- real-model reports welcome.
30
+ **omnilane picks for you.** For every piece of work it routes the task to the
31
+ model that is best (and cheapest) for it tough coding to a top coder, quick
32
+ checks to a fast cheap model, long documents to a big-context model — all on the
33
+ subscriptions and API keys you already pay for. Use the built-in defaults, or
34
+ tweak one small file. Nothing new to babysit (it runs behind your existing tool),
35
+ and `./install.sh --uninstall` removes it cleanly.
78
36
 
79
- ## What's new in v0.7.1
37
+ **[⬇ Jump to the 60-second start](#-60-second-start)**
80
38
 
81
- - **Routing refresh (2026-07 model data)** — hardest-coding now dispatches
82
- GPT-5.6 Sol at **max** effort: Artificial Analysis Coding Agent Index v1.1
83
- scores Sol (max) at 80, the current state of the art, retiring the older
84
- xhigh-beats-max snapshot.
85
- - **Claude backups sharpened** — the Claude Opus 4.8 fallback on
86
- hardest-coding and hard-judgment moves to **xhigh** effort, following
87
- Anthropic's guidance to use extra effort for difficult tasks and
88
- long-running work.
39
+ ## What's new in v0.9.1
89
40
 
90
- ## What's new in v0.7.0
41
+ - **Fix:** `configure set` no longer deletes hand-written comments from
42
+ `routing.local.yaml` — it rewrites only its own stamp header and the lane
43
+ being replaced.
91
44
 
92
- - **Preview any dispatch first** — `--dry-run` prints the fully resolved plan
93
- (vendor, model, mode, timeouts, side-effect decision) with no provider call
94
- and no job state.
95
- - **Automate with versioned JSON** — one `--json` envelope for `--list`,
96
- `--explain`, `--validate`, and `jobs list|status|result|stats`, plus
97
- read-only `jobs wait`, `jobs audit`, and an offline `omnilane release-audit`
98
- gate with a deterministic manifest.
99
- - **Drive local jobs end to end** — `jobs tail` peeks at live output,
100
- `jobs retry` re-dispatches a completed job fail-closed,
101
- `prune --older-than` ages out old jobs, and `--help` covers every command.
102
- - **Install and complete safely** — `install.sh --check`/`--dry-run` report
103
- drift without writing, `omnilane completion bash|zsh` ships safe tab
104
- completion, and five macOS stock Bash 3.2 crashes are fixed.
45
+ ## What's new in v0.9.0
105
46
 
106
- ## What's new in v0.6.0
47
+ - **Five OpenAI-compatible direct-API vendors** — `deepseek`, `zai` (GLM),
48
+ `mistral`, `groq`, and `cerebras` join `openrouter` as CLI-free lanes (curl +
49
+ a `<VENDOR>_API_KEY`). A one-line `lib/common.sh` registry entry adds each;
50
+ see [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md).
51
+ - **Fish shell completion** — `omnilane completion fish | source`.
107
52
 
108
- - **Explain and validate routes offline** — inspect every fallback candidate
109
- with `--explain`, or lint the complete effective table with `--validate`,
110
- without invoking a provider or creating job state.
111
- - **Inspect local health and outcomes** — bounded `jobs.sh stats` aggregates and
112
- `omnilane doctor --json` make local automation observable without exposing
113
- task or result bodies.
114
- - **Compare runs in Live Board** — pin one loaded job as a memory-only reference
115
- and compare its model path and public result with the current selection.
116
- - **Keep lock recovery quiet** — transient owner-file read races no longer leak
117
- misleading missing-file diagnostics.
53
+ ## 60-second start
118
54
 
119
- ## What's new in v0.5.1
55
+ **The quick way install from npm:**
120
56
 
121
- - **Use Codex work outside Git** — ordinary directories remain supported;
122
- Omnilane never requires or runs `git init`.
123
- - **Stop non-Git hangs cleanly** — the resolved per-call watchdog becomes an
124
- automatic process-group fuse when no whole-job timeout was configured, while
125
- explicit timeout precedence and exit semantics remain intact.
126
- - **Trust the displayed version** — `VERSION` now drives `omnilane --version`
127
- and both plugin manifests, with CI checking the changelog and all five READMEs.
57
+ ```bash
58
+ npm i -g omnilane # install the CLI
59
+ omnilane route hardest-coding "fix the flaky auth token refresh"
60
+ omnilane doctor # see which AI CLIs / keys you have
61
+ omnilane ui start # optional: watch jobs live in your browser
62
+ ```
128
63
 
129
- ## 60-second start
64
+ **Or clone the repo** (gets you the routing table and skill to customise):
130
65
 
131
66
  ```bash
132
67
  git clone https://github.com/Seraphim0916/omnilane && cd omnilane
133
68
  ./install.sh # finds your CLIs, links the skill, speaks your language
134
69
  omnilane route hardest-coding "fix the flaky auth token refresh"
135
- omnilane ui start # optional: watch jobs live in your browser
136
70
  ```
137
71
 
72
+ > New to this? Run `omnilane doctor` first — it tells you which model CLIs and
73
+ > API keys omnilane can already reach, so you know what will actually run.
74
+
138
75
  ## 🧭 How it works
139
76
 
140
77
  omnilane lets the main loop of **any** agentic CLI classify subtasks into
@@ -467,6 +404,110 @@ configurator and `routing.local.yaml` exist so you can disagree.
467
404
  a Git worktree, so the automatic fuse above bounds that case and cleans the
468
405
  supervised process group. Omnilane neither initializes nor requires a repository.
469
406
 
407
+ ## 📜 Release history
408
+
409
+ <details>
410
+ <summary>Older releases (v0.8.3 and earlier)</summary>
411
+
412
+ ## What's new in v0.8.3
413
+
414
+ - **MCP server** — `omnilane mcp` starts a zero-dependency stdio MCP server,
415
+ so any MCP-capable host (Claude Code, Codex, Gemini CLI, Cursor, OpenCode…)
416
+ can discover and call omnilane without installing the skill: tools `route`,
417
+ `jobs_status`, `jobs_result`, and `list_lanes`. `route` defaults to
418
+ read-only advise mode; work mode requires an explicit workdir.
419
+
420
+ ## What's new in v0.8.2
421
+
422
+ - **`openrouter` vendor** — dispatch straight to the OpenRouter API with
423
+ nothing but `curl` and an `OPENROUTER_API_KEY`: hundreds of hosted models
424
+ become reachable from any omnilane install, no coding-agent CLI required.
425
+ Advise/consult only (it cannot edit files; work mode fails with guidance)
426
+ and the model slug is mandatory, e.g.
427
+ `dispatch.sh --vendor openrouter --model anthropic/claude-sonnet-5 consult "..."`.
428
+ - **`deepseek`, `zai`, `mistral`, `groq`, `cerebras` vendors** — the same
429
+ CLI-free direct-API path as `openrouter`, for OpenAI-compatible providers:
430
+ DeepSeek, Z.ai GLM, Mistral, Groq, and Cerebras. Each needs only `curl` and
431
+ its `<VENDOR>_API_KEY`; advise/consult only. A one-line `lib/common.sh`
432
+ registry entry defines each endpoint, key env, and default model. See
433
+ [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md).
434
+ - **`opencode` vendor** — headless dispatch through the OpenCode
435
+ multi-provider aggregator CLI (`opencode run`). Advise mode pins OpenCode's
436
+ built-in read-only `plan` agent; work mode uses `--auto`. Joins the default
437
+ `coding-overflow` chain as its last fallback.
438
+
439
+ ## What's new in v0.8.1
440
+
441
+ - **Claude Code plugin auto-loads the routing reminder** — the plugin now
442
+ ships a `SessionStart` hook (`hooks/hooks.json`) that injects the routing
443
+ reminder at session open (`startup|resume|clear`), so plugin installs get
444
+ the persistent reminder with no edit to `~/.claude/CLAUDE.md`. The
445
+ `install.sh` instruction-file reminder still covers the other CLIs.
446
+
447
+ ## What's new in v0.8.0
448
+
449
+ - **Two new dispatch vendors** — `kimi` (Moonshot Kimi Code CLI) and `qwen`
450
+ (Alibaba Qwen Code CLI) join the vendor set with the uniform runner
451
+ contract: advise stays read-only, work auto-approves, API-key env is
452
+ stripped so the CLIs use their own subscription logins, and empty output
453
+ is a loud failure. Pin them with `--vendor kimi|qwen`.
454
+ - **coding-overflow grows a chain** — the quota relief valve now falls back
455
+ grok → kimi → qwen before `off`, so it works with any one of the three
456
+ vendors installed. Runners are contract-tested against fake binaries;
457
+ real-model reports welcome.
458
+
459
+ ## What's new in v0.7.1
460
+
461
+ - **Routing refresh (2026-07 model data)** — hardest-coding now dispatches
462
+ GPT-5.6 Sol at **max** effort: Artificial Analysis Coding Agent Index v1.1
463
+ scores Sol (max) at 80, the current state of the art, retiring the older
464
+ xhigh-beats-max snapshot.
465
+ - **Claude backups sharpened** — the Claude Opus 4.8 fallback on
466
+ hardest-coding and hard-judgment moves to **xhigh** effort, following
467
+ Anthropic's guidance to use extra effort for difficult tasks and
468
+ long-running work.
469
+
470
+ ## What's new in v0.7.0
471
+
472
+ - **Preview any dispatch first** — `--dry-run` prints the fully resolved plan
473
+ (vendor, model, mode, timeouts, side-effect decision) with no provider call
474
+ and no job state.
475
+ - **Automate with versioned JSON** — one `--json` envelope for `--list`,
476
+ `--explain`, `--validate`, and `jobs list|status|result|stats`, plus
477
+ read-only `jobs wait`, `jobs audit`, and an offline `omnilane release-audit`
478
+ gate with a deterministic manifest.
479
+ - **Drive local jobs end to end** — `jobs tail` peeks at live output,
480
+ `jobs retry` re-dispatches a completed job fail-closed,
481
+ `prune --older-than` ages out old jobs, and `--help` covers every command.
482
+ - **Install and complete safely** — `install.sh --check`/`--dry-run` report
483
+ drift without writing, `omnilane completion bash|zsh` ships safe tab
484
+ completion, and five macOS stock Bash 3.2 crashes are fixed.
485
+
486
+ ## What's new in v0.6.0
487
+
488
+ - **Explain and validate routes offline** — inspect every fallback candidate
489
+ with `--explain`, or lint the complete effective table with `--validate`,
490
+ without invoking a provider or creating job state.
491
+ - **Inspect local health and outcomes** — bounded `jobs.sh stats` aggregates and
492
+ `omnilane doctor --json` make local automation observable without exposing
493
+ task or result bodies.
494
+ - **Compare runs in Live Board** — pin one loaded job as a memory-only reference
495
+ and compare its model path and public result with the current selection.
496
+ - **Keep lock recovery quiet** — transient owner-file read races no longer leak
497
+ misleading missing-file diagnostics.
498
+
499
+ ## What's new in v0.5.1
500
+
501
+ - **Use Codex work outside Git** — ordinary directories remain supported;
502
+ Omnilane never requires or runs `git init`.
503
+ - **Stop non-Git hangs cleanly** — the resolved per-call watchdog becomes an
504
+ automatic process-group fuse when no whole-job timeout was configured, while
505
+ explicit timeout precedence and exit semantics remain intact.
506
+ - **Trust the displayed version** — `VERSION` now drives `omnilane --version`
507
+ and both plugin manifests, with CI checking the changelog and all five READMEs.
508
+
509
+ </details>
510
+
470
511
  ## 🌱 Status
471
512
 
472
513
  omnilane now spans thirteen dispatch vendors — four harness natives (codex,
package/README.zh-CN.md CHANGED
@@ -21,97 +21,50 @@
21
21
 
22
22
  ---
23
23
 
24
- ## v0.9.0 新功能
24
+ ## 👋 第一次用?
25
25
 
26
- - **新增 5 个 OpenAI-compatible direct-API vendor** — `deepseek`、`zai`(GLM)、`mistral`、`groq`、`cerebras`,与 `openrouter` 同为免 CLI 通道(curl 加一把 `<VENDOR>_API_KEY`);`lib/common.sh` registry 一行即加一个。详见 [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md)。
27
- - **fish shell 补全** — `omnilane completion fish | source`。
26
+ 你已经在用某个 AI 写程式助手——**Claude Code、Codex、Cursor、Gemini
27
+ CLI** 之类。每个一次只接一个 AI 模型,而「每件工作该用哪个模型最好」得你自己决定。
28
28
 
29
- ## v0.8.3 新功能
29
+ **omnilane 帮你决定。** 每一件工作,它会自动派给对那件事最强(也最省)的模型——硬派程式
30
+ 交给顶尖程式模型、随手的小检查交给又快又便宜的、长文件交给大脉络模型——全部用你本来就在
31
+ 付费的订阅与 API 金钥。用内建预设值就好,或改一个小设定档就能微调。不用另外顾一套东西
32
+ (它躲在你现有工具背后跑),`./install.sh --uninstall` 可干净移除。
30
33
 
31
- - **MCP server** `omnilane mcp` 启动零依赖的 stdio MCP server,任何支持
32
- MCP 的宿主(Claude Code、Codex、Gemini CLI、Cursor、OpenCode……)无需安装
33
- skill 即可发现并调用 omnilane:提供 `route`、`jobs_status`、`jobs_result`、
34
- `list_lanes` 四个工具。`route` 默认只读 advise 模式;work 模式必须明确
35
- 指定 workdir。
34
+ **[⬇ 直接跳到 60 秒上手](#-60-秒上手)**
36
35
 
37
- ## v0.8.2 新功能
36
+ ## v0.9.1 新功能
38
37
 
39
- - **`openrouter` vendor** — 只需 `curl` 加一个 `OPENROUTER_API_KEY`,
40
- 即可直连 OpenRouter API 派工:任何 omnilane 安装都能访问数百个
41
- 托管模型,无需再装任何代理 CLI。仅限 advise/consult(不能改文件,
42
- work 模式会明确报错指路),模型 slug 必填,例如
43
- `dispatch.sh --vendor openrouter --model anthropic/claude-sonnet-5 consult "..."`。
44
- - **`opencode` vendor** — 通过 OpenCode 多供应商聚合 CLI 无头派工
45
- (`opencode run`)。advise 模式锁定内置只读 `plan` agent;work 模式
46
- 用 `--auto`。加入默认 `coding-overflow` 链作为最后回退。
38
+ - **修复**:`configure set` 不再删除 `routing.local.yaml` 中手写的注释——
39
+ 只改写自身的戳记行与被替换的 lane。
47
40
 
48
- ## v0.8.1 新功能
49
-
50
- - **Claude Code 插件开场自动载入路由提醒** — 插件新增 `SessionStart`
51
- hook(`hooks/hooks.json`),在会话开始(`startup|resume|clear`)时自动
52
- 注入路由提醒,安装插件即生效,无需修改 `~/.claude/CLAUDE.md`。其他
53
- CLI 仍使用 `install.sh` 的指令文件提醒。
54
-
55
- ## v0.8.0 新功能
56
-
57
- - **两个新派工 vendor** — `kimi`(Moonshot Kimi Code CLI)与 `qwen`
58
- (Alibaba Qwen Code CLI)加入,沿用统一 runner 契约:advise 只读、
59
- work 自动批准、剥除 API key 环境变量改用 CLI 自身订阅登录、空输出
60
- 视为失败。可用 `--vendor kimi|qwen` 直接指定。
61
- - **coding-overflow 新增备选链** — 额度溢流道改为 grok → kimi → qwen
62
- 再到 `off`,三家装任一家即可用。runner 以假可执行文件完成契约测试;
63
- 欢迎反馈真实模型实测结果。
64
-
65
- ## v0.7.1 新功能
66
-
67
- - **路由表更新(2026-07 模型数据)** — hardest-coding 首选改为 GPT-5.6 Sol
68
- **max** 档位:Artificial Analysis Coding Agent Index v1.1 测得 Sol (max)
69
- 80 分为当前最高,替换旧的「xhigh 胜 max」快照。
70
- - **Claude 备选升档** — hardest-coding 与 hard-judgment 的 Claude Opus 4.8
71
- 备选改为 **xhigh**,依 Anthropic 官方对困难任务与长时间工作的建议。
72
-
73
- ## v0.7.0 新功能
74
-
75
- - **先预览再派工** — `--dry-run` 打印完整解析后的派工计划(vendor、模型、
76
- 模式、超时、副作用判定),不调用模型、不创建作业状态。
77
- - **版本化 JSON 自动化** — `--list`/`--explain`/`--validate` 与
78
- `jobs list|status|result|stats` 都提供 `--json` 信封;另有只读 `jobs wait`、
79
- `jobs audit`,以及带可复现 manifest 的离线 `omnilane release-audit` 发布审计。
80
- - **本地作业一条龙** — `jobs tail` 查看实时输出、`jobs retry` 以 fail-closed
81
- 方式重派已完成作业、`prune --older-than` 按时间清理,`--help` 覆盖所有命令。
82
- - **安装与补全更安全** — `install.sh --check`/`--dry-run` 只读报告漂移,
83
- `omnilane completion bash|zsh` 提供安全的 tab 补全,并修复五个 macOS 自带
84
- Bash 3.2 崩溃。
41
+ ## v0.9.0 新功能
85
42
 
86
- ## v0.6.0 新功能
43
+ - **新增 5 个 OpenAI-compatible direct-API vendor** — `deepseek`、`zai`(GLM)、`mistral`、`groq`、`cerebras`,与 `openrouter` 同为免 CLI 通道(curl 加一把 `<VENDOR>_API_KEY`);`lib/common.sh` registry 一行即加一个。详见 [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md)。
44
+ - **fish shell 补全** — `omnilane completion fish | source`。
87
45
 
88
- - **离线理解并验证路由** 使用 `--explain` 查看每个备用候选,或使用
89
- `--validate` 检查完整生效路由表;都不会调用模型或创建作业状态。
90
- - **用机器可读数据观察本地状态** — `jobs.sh stats` 提供有界统计,
91
- `omnilane doctor --json` 提供健康检查,同时不会泄漏任务或结果正文。
92
- - **在 Live Board 比较两条作业** — 将一条已加载作业固定为仅存在于内存中的
93
- 参考快照,并排比较模型路径与公开结果。
94
- - **让锁恢复更安静** — 所有者文件在检查与读取之间消失时,不再泄漏容易误判的
95
- 缺失文件诊断,同时保持 fail-closed。
46
+ ## 60 秒上手
96
47
 
97
- ## v0.5.1 新功能
48
+ **最快的方式——用 npm 装:**
98
49
 
99
- - **在非 Git 目录使用 Codex work** — 普通文件夹仍完整支持;Omnilane 不要求,
100
- 也绝不会自动执行 `git init`。
101
- - **干净停止非 Git 卡死** — 未设置整体上限时,解析后的单次看门狗会自动成为
102
- 进程组保险丝,同时保留手动 timeout 的优先级和退出码语义。
103
- - **让版本显示可信** `VERSION` 现在统一提供给 `omnilane --version` 和两份
104
- plugin manifest,CI 会检查变更记录和五种语言 README 是否一致。
50
+ ```bash
51
+ npm i -g omnilane # 装 CLI
52
+ omnilane route hardest-coding "修掉会间歇失败的 auth token 更新测试"
53
+ omnilane doctor # 看你手上有哪些 AI CLI / 金钥
54
+ omnilane ui start # 选配:在浏览器即时看派工
55
+ ```
105
56
 
106
- ## 60 秒上手
57
+ **或 clone 整包**(拿到路由表与可自订的技能):
107
58
 
108
59
  ```bash
109
60
  git clone https://github.com/Seraphim0916/omnilane && cd omnilane
110
- ./install.sh # 检测你的 CLI、接好技能、说你的语言
111
- omnilane route hardest-coding "修掉间歇失败的 auth token 刷新测试"
112
- omnilane ui start # 可选:在浏览器实时查看派发
61
+ ./install.sh # 侦测你的 CLI、接好技能、说你的语言
62
+ omnilane route hardest-coding "修掉会间歇失败的 auth token 更新测试"
113
63
  ```
114
64
 
65
+ > 第一次用?先跑 `omnilane doctor`——它会告诉你 omnilane 现在能接到哪些模型 CLI 与
66
+ > API 金钥,你就知道实际会跑什么。
67
+
115
68
  ## 🧭 工作原理
116
69
 
117
70
  omnilane 让**任何**一个 agentic CLI 的主循环把子任务分类到通道(lane),
@@ -394,6 +347,90 @@ configure.sh set|get|unset|list|diff LANE [SPEC] # 非交互编辑/查看 rou
394
347
  外卡住,因此上面的自动保险丝会限制这个场景并清理受监工的进程组。Omnilane
395
348
  不会自动执行 `git init`,也不要求用户创建仓库。
396
349
 
350
+ ## 📜 版本历程
351
+
352
+ <details>
353
+ <summary>旧版本(v0.8.3 以前)</summary>
354
+
355
+ ## v0.8.3 新功能
356
+
357
+ - **MCP server** — `omnilane mcp` 启动零依赖的 stdio MCP server,任何支持
358
+ MCP 的宿主(Claude Code、Codex、Gemini CLI、Cursor、OpenCode……)无需安装
359
+ skill 即可发现并调用 omnilane:提供 `route`、`jobs_status`、`jobs_result`、
360
+ `list_lanes` 四个工具。`route` 默认只读 advise 模式;work 模式必须明确
361
+ 指定 workdir。
362
+
363
+ ## v0.8.2 新功能
364
+
365
+ - **`openrouter` vendor** — 只需 `curl` 加一个 `OPENROUTER_API_KEY`,
366
+ 即可直连 OpenRouter API 派工:任何 omnilane 安装都能访问数百个
367
+ 托管模型,无需再装任何代理 CLI。仅限 advise/consult(不能改文件,
368
+ work 模式会明确报错指路),模型 slug 必填,例如
369
+ `dispatch.sh --vendor openrouter --model anthropic/claude-sonnet-5 consult "..."`。
370
+ - **`opencode` vendor** — 通过 OpenCode 多供应商聚合 CLI 无头派工
371
+ (`opencode run`)。advise 模式锁定内置只读 `plan` agent;work 模式
372
+ 用 `--auto`。加入默认 `coding-overflow` 链作为最后回退。
373
+
374
+ ## v0.8.1 新功能
375
+
376
+ - **Claude Code 插件开场自动载入路由提醒** — 插件新增 `SessionStart`
377
+ hook(`hooks/hooks.json`),在会话开始(`startup|resume|clear`)时自动
378
+ 注入路由提醒,安装插件即生效,无需修改 `~/.claude/CLAUDE.md`。其他
379
+ CLI 仍使用 `install.sh` 的指令文件提醒。
380
+
381
+ ## v0.8.0 新功能
382
+
383
+ - **两个新派工 vendor** — `kimi`(Moonshot Kimi Code CLI)与 `qwen`
384
+ (Alibaba Qwen Code CLI)加入,沿用统一 runner 契约:advise 只读、
385
+ work 自动批准、剥除 API key 环境变量改用 CLI 自身订阅登录、空输出
386
+ 视为失败。可用 `--vendor kimi|qwen` 直接指定。
387
+ - **coding-overflow 新增备选链** — 额度溢流道改为 grok → kimi → qwen
388
+ 再到 `off`,三家装任一家即可用。runner 以假可执行文件完成契约测试;
389
+ 欢迎反馈真实模型实测结果。
390
+
391
+ ## v0.7.1 新功能
392
+
393
+ - **路由表更新(2026-07 模型数据)** — hardest-coding 首选改为 GPT-5.6 Sol
394
+ **max** 档位:Artificial Analysis Coding Agent Index v1.1 测得 Sol (max)
395
+ 80 分为当前最高,替换旧的「xhigh 胜 max」快照。
396
+ - **Claude 备选升档** — hardest-coding 与 hard-judgment 的 Claude Opus 4.8
397
+ 备选改为 **xhigh**,依 Anthropic 官方对困难任务与长时间工作的建议。
398
+
399
+ ## v0.7.0 新功能
400
+
401
+ - **先预览再派工** — `--dry-run` 打印完整解析后的派工计划(vendor、模型、
402
+ 模式、超时、副作用判定),不调用模型、不创建作业状态。
403
+ - **版本化 JSON 自动化** — `--list`/`--explain`/`--validate` 与
404
+ `jobs list|status|result|stats` 都提供 `--json` 信封;另有只读 `jobs wait`、
405
+ `jobs audit`,以及带可复现 manifest 的离线 `omnilane release-audit` 发布审计。
406
+ - **本地作业一条龙** — `jobs tail` 查看实时输出、`jobs retry` 以 fail-closed
407
+ 方式重派已完成作业、`prune --older-than` 按时间清理,`--help` 覆盖所有命令。
408
+ - **安装与补全更安全** — `install.sh --check`/`--dry-run` 只读报告漂移,
409
+ `omnilane completion bash|zsh` 提供安全的 tab 补全,并修复五个 macOS 自带
410
+ Bash 3.2 崩溃。
411
+
412
+ ## v0.6.0 新功能
413
+
414
+ - **离线理解并验证路由** — 使用 `--explain` 查看每个备用候选,或使用
415
+ `--validate` 检查完整生效路由表;都不会调用模型或创建作业状态。
416
+ - **用机器可读数据观察本地状态** — `jobs.sh stats` 提供有界统计,
417
+ `omnilane doctor --json` 提供健康检查,同时不会泄漏任务或结果正文。
418
+ - **在 Live Board 比较两条作业** — 将一条已加载作业固定为仅存在于内存中的
419
+ 参考快照,并排比较模型路径与公开结果。
420
+ - **让锁恢复更安静** — 所有者文件在检查与读取之间消失时,不再泄漏容易误判的
421
+ 缺失文件诊断,同时保持 fail-closed。
422
+
423
+ ## v0.5.1 新功能
424
+
425
+ - **在非 Git 目录使用 Codex work** — 普通文件夹仍完整支持;Omnilane 不要求,
426
+ 也绝不会自动执行 `git init`。
427
+ - **干净停止非 Git 卡死** — 未设置整体上限时,解析后的单次看门狗会自动成为
428
+ 进程组保险丝,同时保留手动 timeout 的优先级和退出码语义。
429
+ - **让版本显示可信** — `VERSION` 现在统一提供给 `omnilane --version` 和两份
430
+ plugin manifest,CI 会检查变更记录和五种语言 README 是否一致。
431
+
432
+ </details>
433
+
397
434
  ## 🌱 状态
398
435
 
399
436
  omnilane 现有 13 个派工 vendor——4 个框架原生(codex、claude、grok、gemini)、3 个聚合/溢流 CLI(kimi、qwen、opencode),加上 6 个免 CLI 的 OpenAI-compatible direct-API vendor(openrouter、deepseek、zai、mistral、groq、cerebras)——全部走统一 runner 契约并附 contract 测试,另有 Claude Code `SessionStart` 自动提醒与 MCP stdio server 介面(`omnilane mcp`)。direct-API 与聚合 runner 皆以假可执行档做过契约测试;欢迎反馈真实模型使用经验。Grok/Antigravity 命令壳行为仍可能随 CLI 版本变动。欢迎提交 issue 与 PR。
package/README.zh-TW.md CHANGED
@@ -21,105 +21,53 @@
21
21
 
22
22
  ---
23
23
 
24
- ## v0.9.0 新功能
24
+ ## 👋 第一次用?
25
25
 
26
- - **五個 OpenAI-compatible direct-API vendor** — `deepseek`、`zai`(GLM)
27
- `mistral`、`groq`、`cerebras`,與 `openrouter` 同為免 CLI 通道(curl 加一把
28
- `<VENDOR>_API_KEY`);`lib/common.sh` registry 一行即加一個。詳見
29
- [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md)。
30
- - **fish shell 補全** — `omnilane completion fish | source`。
26
+ 你已經在用某個 AI 寫程式助手——**Claude CodeCodex、Cursor、Gemini
27
+ CLI** 之類。每個一次只接一個 AI 模型,而「每件工作該用哪個模型最好」得你自己決定。
31
28
 
32
- ## v0.8.3 新功能
29
+ **omnilane 幫你決定。** 每一件工作,它會自動派給對那件事最強(也最省)的模型——硬派程式
30
+ 交給頂尖程式模型、隨手的小檢查交給又快又便宜的、長文件交給大脈絡模型——全部用你本來就在
31
+ 付費的訂閱與 API 金鑰。用內建預設值就好,或改一個小設定檔就能微調。不用另外顧一套東西
32
+ (它躲在你現有工具背後跑),`./install.sh --uninstall` 可乾淨移除。
33
33
 
34
- - **MCP server** `omnilane mcp` 啟動零依賴的 stdio MCP server,任何支援
35
- MCP 的宿主(Claude Code、Codex、Gemini CLI、Cursor、OpenCode……)不必安裝
36
- skill 就能發現並呼叫 omnilane:提供 `route`、`jobs_status`、`jobs_result`、
37
- `list_lanes` 四個工具。`route` 預設唯讀 advise 模式;work 模式必須明確
38
- 指定 workdir。
34
+ **[⬇ 直接跳到 60 秒上手](#-60-秒上手)**
39
35
 
40
- ## v0.8.2 新功能
36
+ ## v0.9.1 新功能
41
37
 
42
- - **`openrouter` vendor** — 只要 `curl` 加一把 `OPENROUTER_API_KEY`,
43
- 就能直連 OpenRouter API 派工:任何 omnilane 安裝都摸得到數百個
44
- 託管模型,不必再裝任何代理 CLI。僅限 advise/consult(不能改檔,
45
- work 模式會明確報錯指路),模型 slug 必填,例如
46
- `dispatch.sh --vendor openrouter --model anthropic/claude-sonnet-5 consult "..."`。
47
- - **`deepseek`、`zai`、`mistral`、`groq`、`cerebras` vendor** — 與 `openrouter`
48
- 同一條免 CLI 直連 API 路徑,對應 OpenAI-compatible 供應商:DeepSeek、Z.ai GLM、
49
- Mistral、Groq、Cerebras。各只要 `curl` 加自己那把 `<VENDOR>_API_KEY`;僅限
50
- advise/consult。端點、金鑰、預設模型由 `lib/common.sh` 一行 registry 定義。
51
- 詳見 [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md)。
52
- - **`opencode` vendor** — 透過 OpenCode 多供應商聚合 CLI 無頭派工
53
- (`opencode run`)。advise 模式鎖定內建唯讀 `plan` agent;work 模式
54
- 用 `--auto`。加入預設 `coding-overflow` 鏈作為最後備援。
55
-
56
- ## v0.8.1 新功能
57
-
58
- - **Claude Code 外掛開場自動載入路由提醒** — 外掛新增 `SessionStart`
59
- hook(`hooks/hooks.json`),於開場(`startup|resume|clear`)自動注入
60
- 路由提醒,裝外掛即生效,不必修改 `~/.claude/CLAUDE.md`。其他 CLI
61
- 仍走 `install.sh` 的指令檔提醒。
62
-
63
- ## v0.8.0 新功能
64
-
65
- - **兩個新派工 vendor** — `kimi`(Moonshot Kimi Code CLI)與 `qwen`
66
- (Alibaba Qwen Code CLI)加入,沿用統一 runner 契約:advise 唯讀、
67
- work 自動核准、剝除 API key 環境變數改用 CLI 自身訂閱登入、空輸出
68
- 視為失敗。可用 `--vendor kimi|qwen` 直接點名。
69
- - **coding-overflow 長出備援鏈** — 額度溢流道改為 grok → kimi → qwen
70
- 再到 `off`,三家裝任一家即可用。runner 以假執行檔完成契約測試;
71
- 歡迎回報真實模型實測結果。
72
-
73
- ## v0.7.1 新功能
38
+ - **修正**:`configure set` 不再刪掉 `routing.local.yaml` 裡手寫的註解——
39
+ 只改寫自身的戳記行與被取代的 lane。
74
40
 
75
- - **路由表更新(2026-07 模型數據)** — hardest-coding 首選改為 GPT-5.6 Sol
76
- **max** 檔位:Artificial Analysis Coding Agent Index v1.1 測得 Sol (max)
77
- 80 分為現任最高,汰換舊的「xhigh 勝 max」快照。
78
- - **Claude 備援升檔** — hardest-coding 與 hard-judgment 的 Claude Opus 4.8
79
- 備援改為 **xhigh**,依 Anthropic 官方對困難任務與長時間工作的建議。
80
-
81
- ## v0.7.0 新功能
82
-
83
- - **先預覽再派工** — `--dry-run` 印出完整解析後的派工計畫(vendor、模型、
84
- 模式、逾時、副作用判定),不呼叫模型、不建立工作狀態。
85
- - **版本化 JSON 自動化** — `--list`/`--explain`/`--validate` 與
86
- `jobs list|status|result|stats` 都有 `--json` 信封;另有唯讀 `jobs wait`、
87
- `jobs audit`,以及帶可重現 manifest 的離線 `omnilane release-audit` 發佈稽核。
88
- - **本機工作一條龍** — `jobs tail` 窺看即時輸出、`jobs retry` 以 fail-closed
89
- 方式重派已完成工作、`prune --older-than` 依時間清理,`--help` 覆蓋所有指令。
90
- - **安裝與補全更安全** — `install.sh --check`/`--dry-run` 唯讀回報漂移,
91
- `omnilane completion bash|zsh` 提供安全的 tab 補全,並修復五個 macOS 原生
92
- Bash 3.2 崩潰。
41
+ ## v0.9.0 新功能
93
42
 
94
- ## v0.6.0 新功能
43
+ - **五個 OpenAI-compatible direct-API vendor** — `deepseek`、`zai`(GLM)、
44
+ `mistral`、`groq`、`cerebras`,與 `openrouter` 同為免 CLI 通道(curl 加一把
45
+ `<VENDOR>_API_KEY`);`lib/common.sh` registry 一行即加一個。詳見
46
+ [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md)。
47
+ - **fish shell 補全** — `omnilane completion fish | source`。
95
48
 
96
- - **離線看懂並驗證路由** 用 `--explain` 查看每個備援候選,或用
97
- `--validate` 檢查完整生效路由表;都不會呼叫模型或建立工作狀態。
98
- - **用機器可讀資料觀察本機狀態** — `jobs.sh stats` 提供有界統計,
99
- `omnilane doctor --json` 提供健康檢查,又不會洩漏任務或結果正文。
100
- - **在 Live Board 比較兩筆工作** — 把一筆已載入工作釘成只存在記憶體的
101
- 參考快照,並排比較模型路徑與公開結果。
102
- - **讓鎖恢復更安靜** — 擁有者檔案在檢查與讀取間消失時,不再洩漏容易誤判的
103
- 缺檔診斷,同時維持 fail-closed。
49
+ ## 60 秒上手
104
50
 
105
- ## v0.5.1 新功能
51
+ **最快的方式——用 npm 裝:**
106
52
 
107
- - **在非 Git 目錄使用 Codex work** — 一般資料夾仍完整支援;Omnilane 不要求、
108
- 也絕不會自動執行 `git init`。
109
- - **乾淨停止非 Git 卡死** — 未設定整體上限時,解析後的單次看門狗會自動成為
110
- 程序群組保險絲,同時保留手動 timeout 的優先序與退出碼語意。
111
- - **讓版本顯示可信** `VERSION` 現在統一供應 `omnilane --version` 與兩份
112
- plugin manifest,CI 會檢查變更紀錄和五語 README 是否一致。
53
+ ```bash
54
+ npm i -g omnilane # 裝 CLI
55
+ omnilane route hardest-coding "修掉會間歇失敗的 auth token 更新測試"
56
+ omnilane doctor # 看你手上有哪些 AI CLI / 金鑰
57
+ omnilane ui start # 選配:在瀏覽器即時看派工
58
+ ```
113
59
 
114
- ## 60 秒上手
60
+ **或 clone 整包**(拿到路由表與可自訂的技能):
115
61
 
116
62
  ```bash
117
63
  git clone https://github.com/Seraphim0916/omnilane && cd omnilane
118
64
  ./install.sh # 偵測你的 CLI、接好技能、說你的語言
119
65
  omnilane route hardest-coding "修掉會間歇失敗的 auth token 更新測試"
120
- omnilane ui start # 選配:在瀏覽器即時看派工
121
66
  ```
122
67
 
68
+ > 第一次用?先跑 `omnilane doctor`——它會告訴你 omnilane 現在能接到哪些模型 CLI 與
69
+ > API 金鑰,你就知道實際會跑什麼。
70
+
123
71
  ## 🧭 運作方式
124
72
 
125
73
  omnilane 讓**任何**一個 agentic CLI 的主迴圈把子任務分類到通道(lane),
@@ -412,6 +360,95 @@ codex/claude/grok/gemini 自選 1-4 個評審。開了之後,同一個問題丟
412
360
  外卡住,因此上面的自動保險絲會限制這個情境並清掉受監工的程序群組。Omnilane
413
361
  不會自動執行 `git init`,也不要求使用者建立 repo。
414
362
 
363
+ ## 📜 版本歷程
364
+
365
+ <details>
366
+ <summary>舊版本(v0.8.3 以前)</summary>
367
+
368
+ ## v0.8.3 新功能
369
+
370
+ - **MCP server** — `omnilane mcp` 啟動零依賴的 stdio MCP server,任何支援
371
+ MCP 的宿主(Claude Code、Codex、Gemini CLI、Cursor、OpenCode……)不必安裝
372
+ skill 就能發現並呼叫 omnilane:提供 `route`、`jobs_status`、`jobs_result`、
373
+ `list_lanes` 四個工具。`route` 預設唯讀 advise 模式;work 模式必須明確
374
+ 指定 workdir。
375
+
376
+ ## v0.8.2 新功能
377
+
378
+ - **`openrouter` vendor** — 只要 `curl` 加一把 `OPENROUTER_API_KEY`,
379
+ 就能直連 OpenRouter API 派工:任何 omnilane 安裝都摸得到數百個
380
+ 託管模型,不必再裝任何代理 CLI。僅限 advise/consult(不能改檔,
381
+ work 模式會明確報錯指路),模型 slug 必填,例如
382
+ `dispatch.sh --vendor openrouter --model anthropic/claude-sonnet-5 consult "..."`。
383
+ - **`deepseek`、`zai`、`mistral`、`groq`、`cerebras` vendor** — 與 `openrouter`
384
+ 同一條免 CLI 直連 API 路徑,對應 OpenAI-compatible 供應商:DeepSeek、Z.ai GLM、
385
+ Mistral、Groq、Cerebras。各只要 `curl` 加自己那把 `<VENDOR>_API_KEY`;僅限
386
+ advise/consult。端點、金鑰、預設模型由 `lib/common.sh` 一行 registry 定義。
387
+ 詳見 [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md)。
388
+ - **`opencode` vendor** — 透過 OpenCode 多供應商聚合 CLI 無頭派工
389
+ (`opencode run`)。advise 模式鎖定內建唯讀 `plan` agent;work 模式
390
+ 用 `--auto`。加入預設 `coding-overflow` 鏈作為最後備援。
391
+
392
+ ## v0.8.1 新功能
393
+
394
+ - **Claude Code 外掛開場自動載入路由提醒** — 外掛新增 `SessionStart`
395
+ hook(`hooks/hooks.json`),於開場(`startup|resume|clear`)自動注入
396
+ 路由提醒,裝外掛即生效,不必修改 `~/.claude/CLAUDE.md`。其他 CLI
397
+ 仍走 `install.sh` 的指令檔提醒。
398
+
399
+ ## v0.8.0 新功能
400
+
401
+ - **兩個新派工 vendor** — `kimi`(Moonshot Kimi Code CLI)與 `qwen`
402
+ (Alibaba Qwen Code CLI)加入,沿用統一 runner 契約:advise 唯讀、
403
+ work 自動核准、剝除 API key 環境變數改用 CLI 自身訂閱登入、空輸出
404
+ 視為失敗。可用 `--vendor kimi|qwen` 直接點名。
405
+ - **coding-overflow 長出備援鏈** — 額度溢流道改為 grok → kimi → qwen
406
+ 再到 `off`,三家裝任一家即可用。runner 以假執行檔完成契約測試;
407
+ 歡迎回報真實模型實測結果。
408
+
409
+ ## v0.7.1 新功能
410
+
411
+ - **路由表更新(2026-07 模型數據)** — hardest-coding 首選改為 GPT-5.6 Sol
412
+ **max** 檔位:Artificial Analysis Coding Agent Index v1.1 測得 Sol (max)
413
+ 80 分為現任最高,汰換舊的「xhigh 勝 max」快照。
414
+ - **Claude 備援升檔** — hardest-coding 與 hard-judgment 的 Claude Opus 4.8
415
+ 備援改為 **xhigh**,依 Anthropic 官方對困難任務與長時間工作的建議。
416
+
417
+ ## v0.7.0 新功能
418
+
419
+ - **先預覽再派工** — `--dry-run` 印出完整解析後的派工計畫(vendor、模型、
420
+ 模式、逾時、副作用判定),不呼叫模型、不建立工作狀態。
421
+ - **版本化 JSON 自動化** — `--list`/`--explain`/`--validate` 與
422
+ `jobs list|status|result|stats` 都有 `--json` 信封;另有唯讀 `jobs wait`、
423
+ `jobs audit`,以及帶可重現 manifest 的離線 `omnilane release-audit` 發佈稽核。
424
+ - **本機工作一條龍** — `jobs tail` 窺看即時輸出、`jobs retry` 以 fail-closed
425
+ 方式重派已完成工作、`prune --older-than` 依時間清理,`--help` 覆蓋所有指令。
426
+ - **安裝與補全更安全** — `install.sh --check`/`--dry-run` 唯讀回報漂移,
427
+ `omnilane completion bash|zsh` 提供安全的 tab 補全,並修復五個 macOS 原生
428
+ Bash 3.2 崩潰。
429
+
430
+ ## v0.6.0 新功能
431
+
432
+ - **離線看懂並驗證路由** — 用 `--explain` 查看每個備援候選,或用
433
+ `--validate` 檢查完整生效路由表;都不會呼叫模型或建立工作狀態。
434
+ - **用機器可讀資料觀察本機狀態** — `jobs.sh stats` 提供有界統計,
435
+ `omnilane doctor --json` 提供健康檢查,又不會洩漏任務或結果正文。
436
+ - **在 Live Board 比較兩筆工作** — 把一筆已載入工作釘成只存在記憶體的
437
+ 參考快照,並排比較模型路徑與公開結果。
438
+ - **讓鎖恢復更安靜** — 擁有者檔案在檢查與讀取間消失時,不再洩漏容易誤判的
439
+ 缺檔診斷,同時維持 fail-closed。
440
+
441
+ ## v0.5.1 新功能
442
+
443
+ - **在非 Git 目錄使用 Codex work** — 一般資料夾仍完整支援;Omnilane 不要求、
444
+ 也絕不會自動執行 `git init`。
445
+ - **乾淨停止非 Git 卡死** — 未設定整體上限時,解析後的單次看門狗會自動成為
446
+ 程序群組保險絲,同時保留手動 timeout 的優先序與退出碼語意。
447
+ - **讓版本顯示可信** — `VERSION` 現在統一供應 `omnilane --version` 與兩份
448
+ plugin manifest,CI 會檢查變更紀錄和五語 README 是否一致。
449
+
450
+ </details>
451
+
415
452
  ## 🌱 狀態
416
453
 
417
454
  omnilane 現有十三個派工 vendor——四個框架原生(codex、claude、grok、gemini)、
package/VERSION CHANGED
@@ -1 +1 @@
1
- 0.9.0
1
+ 0.9.1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omnilane",
3
- "version": "0.9.0",
3
+ "version": "0.9.1",
4
4
  "description": "One routing table, every harness — classify subtasks into lanes and dispatch each lane to the best vendor's agentic CLI (Codex, Claude, Gemini, Grok) using your existing subscription logins.",
5
5
  "bin": {
6
6
  "omnilane": "bin/omnilane"
@@ -60,7 +60,9 @@ cfg_set() {
60
60
  {
61
61
  echo "# updated by 'configure set' on $(date +%F) — first match per lane wins"
62
62
  echo "$lane: $spec"
63
- [[ "$had_file" -eq 1 ]] && grep -v '^#' "$LOCAL_FILE.bak" | grep -v "^$lane:" || true
63
+ # Drop only our own stamp line and the lane being replaced; the user's own
64
+ # comments in routing.local.yaml survive a set.
65
+ [[ "$had_file" -eq 1 ]] && grep -v "^# updated by 'configure set'" "$LOCAL_FILE.bak" | grep -v "^$lane:" || true
64
66
  } > "$tmp"
65
67
  mv "$tmp" "$LOCAL_FILE"
66
68