omnilane 0.33.0 → 0.41.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.
@@ -6,14 +6,14 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "One routing table, cross-vendor dispatch, foreman completion inbox.",
9
- "version": "0.33.0"
9
+ "version": "0.41.1"
10
10
  },
11
11
  "plugins": [
12
12
  {
13
13
  "name": "omnilane",
14
14
  "source": "./",
15
15
  "description": "Route each subtask to the model that fits, dispatch it to any vendor CLI, and have finished dispatches report back into the foreman's next prompt.",
16
- "version": "0.33.0",
16
+ "version": "0.41.1",
17
17
  "category": "development",
18
18
  "keywords": [
19
19
  "routing",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omnilane",
3
- "version": "0.33.0",
3
+ "version": "0.41.1",
4
4
  "description": "One routing table, every harness: classify subtasks into lanes and auto-dispatch each lane to the best vendor CLI (Codex, Claude Code, Grok Build, Antigravity) with background jobs, depth guard, and serialized codex dispatch.",
5
5
  "author": {
6
6
  "name": "Seraphim0916"
package/CHANGELOG.md CHANGED
@@ -6,6 +6,65 @@ semantic version tags.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.41.1] - 2026-09-06
10
+
11
+ ### Changed
12
+
13
+ - Default the Astra candidates in hardest-coding and hard-judgment to `xhigh`, retaining explicit `--vendor codex --effort max` upgrades. Vendor order and other model efforts are unchanged; this adds no automatic risk/retry escalation and makes no claim of measured CLI subscription-quota savings.
14
+
15
+ ### Fixed
16
+
17
+ - Restore Python 3.9 compatibility in Agy workspace-policy staging and cleanup by replacing four unsupported `Path.stat(follow_symlinks=False)` calls with equivalent `Path.lstat()` calls. Symlink no-follow behavior, inode identity checks, directory-descriptor operations, and concurrent-replacement protections remain intact.
18
+ - Complete the isolated CI strict-doctor fixture with explicit plugin-enabled and directory-marketplace settings. Strict checking and native settings validation remain enabled; missing, disabled, or mismatched plugin fixtures still fail.
19
+
20
+ - Make Linux and macOS offline fixtures independent of the operator home, use portable permission-mode checks, and assert platform-specific live restrictions without assuming macOS behavior on Linux.
21
+ - Fix new Gemini threads on stock macOS Bash 3.2 by guarding the empty thread-argument array expansion under `set -u`; populated resume arguments, provider modes, and permissions remain unchanged.
22
+
23
+ - Keep Codex live close bounded under FIFO backpressure and interrupted partial input: forward raw bytes through a private bounded buffer, preserve unsent suffixes for the close drain, and retain accepted queued input with a failure result if the runner exits before forwarding it. Undelivered input is reported instead of silently dropped; other providers retain their existing forwarding paths.
24
+
25
+ ## [0.40.0] - 2026-09-06
26
+
27
+ ### Added
28
+
29
+ - Codex work-mode background jobs can use a resident app-server session with incremental output, follow-up prompts, explicit close, bounded cleanup, capability detection, and single-shot fallback.
30
+ - Grok explicit sysops background jobs can use a resident ACP live session with incremental output, follow-up prompts, explicit close, bounded cleanup, capability detection, and single-shot fallback.
31
+
32
+ ### Changed
33
+
34
+ - Refresh all 12 routing lanes from the dated AA v4.2 evidence set: add Fable 5.1, GPT-6 Astra, and Gemini 3.8 Flash where supported while retaining existing vendors, explicit overrides, and single-shot Codex/Grok auto behavior. The model catalog remains a selection menu rather than a runtime capability guarantee.
35
+ - Publish a machine-readable 643-configuration AA coverage snapshot plus model capability notes, and expose verified identifiers for explicit advise-only GLM 5.3, DeepSeek V4, and Mistral Medium 3.5 selection without adding them to default work routes.
36
+ - Preserve background auto compatibility: Codex and Grok remain single-shot unless `--live` is explicit; Claude/Gemini retain their existing auto behavior.
37
+ - Grok advise uses single-shot native tool allow/deny rules; explicit Grok `--live` requires `--mode sysops --workdir DIR` because ACP does not expose enforceable restricted-mode policies. macOS Grok work fails before provider startup because its native child-network isolation is Linux-only.
38
+ - Background job metadata records the worker interpreter path and version used by the immutable worker snapshot.
39
+
40
+ ### Fixed
41
+
42
+ - Agy work now uses four validated native tools with explicit sandboxed command execution and per-start policy regeneration. Real new/resume checks cover workspace read/write/edit/build and denied outside/policy writes; ownership-checked cleanup preserves replacement directories and the empty owned policy leaf. A separate real two-turn work live/FIFO check passed readback, outside-write denial and normal close. External temp/cache reads remain restricted and xcrun may warn on its default cache.
43
+ - Grok advise now selects native `web_search` / `web_fetch` IDs so the strict hosted-tool gate can expose backend search, while retaining permission-rule class names and native write denials. A private per-job context-mode readiness scope prevents redirects to another session's inaccessible MCP without disabling hooks; nonempty caller-provided readiness scopes are reported as conflicts rather than overwritten. The complete single-shot `plain` path has real search, page-fetch and denied-write verification; this does not extend support to macOS work or restricted live.
44
+ - Release audit can optionally compare documented CLI flags and subcommands against current help output through `OMNILANE_USAGE_DOC`, failing on missing or stale usage tokens while remaining offline and opt-in.
45
+ - Completion notices recover safely from truncated UTF-8 output and classify terminal jobs from durable exit state instead of stale process observations; live idle detection now counts completed result events rather than arbitrary stream traffic.
46
+ - Dispatches now execute a per-job read-only `job-worker.sh` snapshot whose source and startup SHA-256 values are recorded and checked, so editing the repository worker cannot splice a running Bash process while repository-rooted libraries and runners remain correctly resolved.
47
+ - Live worker close uses a Bash 3.2-compatible, 0.1-second total FIFO drain deadline, preserves unforwarded input on drain failure, and bounds normal/TERM/KILL cleanup below `jobs close`'s 10-second timeout while retaining Codex's full 7-second shutdown budget.
48
+ - Codex app-server shutdown now waits for normal EOF cleanup before bounded TERM/KILL escalation, allowing app-server-owned sidecars to exit normally without making stuck shutdown unbounded.
49
+ - Codex app-server and Grok ACP capability probes keep stdin open until the initialize reply, avoiding false live-unavailable results from runtimes that exit on early EOF.
50
+ - Grok ACP live now forwards each job's selected model to `grok agent`, fails promptly on the active prompt's JSON-RPC error even after partial output, and ignores late errors from a cancelled prompt.
51
+ - Grok advise stays fail-closed at both worker and runner boundaries when an internal live FIFO is requested, preventing live mailbox artifacts or metadata from contradicting its single-shot restricted policy.
52
+
53
+ ## [0.34.0] - 2026-09-03
54
+
55
+ ### Changed
56
+
57
+ - `hard-judgment`'s Claude slot swaps from Fable 5.1 (xhigh) to Opus 5
58
+ (xhigh): Opus returns 97.7% of Fable's agentic score (58.4 vs 59.8) at 68%
59
+ of the cost ($1.801 vs $2.651/task) with a lower hallucination rate (.60 vs
60
+ .71).
61
+ - A fallback-depth pass gives every active lane (`arbitrate` intentionally
62
+ excluded) at least three vendor candidates: `hardest-coding`,
63
+ `taste-final`, `ui-draft`, `fast-agentic`, and `live-search` each gain new
64
+ fallbacks; `live-search`'s added Gemini and Claude candidates use their own
65
+ web-search tools, not Grok's native X/web surface, so treat them as
66
+ best-effort only when Grok's CLI is unavailable.
67
+
9
68
  ## [0.33.0] - 2026-09-03
10
69
 
11
70
  ### Added
@@ -756,7 +815,10 @@ work to the wrong model, and records the evidence behind the shipped defaults.
756
815
  - Initial shared routing table, cross-vendor dispatcher, runners, installer,
757
816
  and baseline lint fixes.
758
817
 
759
- [Unreleased]: https://github.com/Seraphim0916/omnilane/compare/v0.33.0...HEAD
818
+ [Unreleased]: https://github.com/Seraphim0916/omnilane/compare/v0.41.1...HEAD
819
+ [0.41.1]: https://github.com/Seraphim0916/omnilane/compare/v0.40.0...v0.41.1
820
+ [0.40.0]: https://github.com/Seraphim0916/omnilane/compare/v0.34.0...v0.40.0
821
+ [0.34.0]: https://github.com/Seraphim0916/omnilane/compare/v0.33.0...v0.34.0
760
822
  [0.33.0]: https://github.com/Seraphim0916/omnilane/compare/v0.32.1...v0.33.0
761
823
  [0.32.1]: https://github.com/Seraphim0916/omnilane/compare/v0.32.0...v0.32.1
762
824
  [0.32.0]: https://github.com/Seraphim0916/omnilane/compare/v0.31.0...v0.32.0
package/README.ja.md CHANGED
@@ -112,18 +112,18 @@ flowchart LR
112
112
 
113
113
  | レーン | 第一候補 | バックアップ | 用途 |
114
114
  |---|---|---|---|
115
- | 🔥 hardest-coding | Claude Fable 5.1 (xhigh) | GPT-5.6 Sol (xhigh) | 最難関の実装、深い根本原因調査、正確性が重要な修正 |
116
- | 🏗️ bulk-mechanical | GPT-5.6 Sol (high) | Gemini 3.7 Flash (High) → Claude Sonnet 5 (high) | リファクタリング、移行、テスト、大規模レビュー——機械的な持久作業 |
117
- | 🧹 triage | GPT-5.6 Luna (high) | Gemini 3.7 Flash (Low) → Claude Haiku 4.5 | 大量スキャン、一次選別 |
118
- | ⚖️ hard-judgment | Claude Fable 5.1 (xhigh) | GPT-5.6 Sol (max) → Grok 4.6 | アーキテクチャ判断、深い推論、セカンドオピニオン |
119
- | ✒️ taste-final | Claude Fable 5.1 (high) | GPT-5.6 Sol (max) | ユーザー向け文章、プロンプト/文書の仕上げ、文体判断 |
120
- | 💬 consult | GPT-5.6 Sol (max) | Claude Fable 5.1 (high) → Grok 4.6 → Gemini 3.7 Flash (High) | 指名モデルへの直接相談。フォールバック防止のため `--vendor` を維持 |
121
- | 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Fable 5.1 (high) | デザインシステム/参照画像がある場合だけの UI ドラフト |
122
- | 📚 long-context | Gemini 3.7 Flash (Medium) | GPT-5.6 Terra (max) → Claude Opus 5 (medium) | 長文書の抽出と統合。AA-LCR、コスト、スループット順 |
123
- | ⚡ fast-agentic | Gemini 3.7 Flash (Medium) | GPT-5.6 Luna (high) | 高速なマルチステップ agentic ループ、マルチモーダル確認 |
124
- | 📡 live-search | Grok 4.6 | (`off`) | リアルタイム X/Web 検索とソーシャル文脈 |
125
- | 🚰 coding-overflow | Grok 4.6 | Gemini 3.7 Flash (High) → Kimi K3 → Qwen3 Coder Plus → OpenCode | Codex クォータ不足時の中級コーディング逃がし弁 |
126
- | 🗳️ arbitrate | `off`(オプトイン) | — | 重大判断用の内蔵意見パネル。デフォルト無効、`routing.local.yaml` で有効化し、投票者・ラウンドごとに 1 コール |
115
+ | 🔥 hardest-coding | Claude Fable 5.1 (max) | GPT-6 Astra (max) → Grok 4.6 Gemini 3.8 Flash (High) | 最難関の実装、深い根本原因調査、正確性が重要な修正 |
116
+ | 🏗️ bulk-mechanical | GPT-5.6 Sol (high) | Gemini 3.8 Flash (High) → Claude Sonnet 5 (high) | リファクタリング、移行、テスト、大規模レビュー——機械的な持久作業 |
117
+ | 🧹 triage | GPT-5.6 Luna (high) | Gemini 3.8 Flash (Low) → Claude Haiku 4.5 | 大量スキャン、一次選別 |
118
+ | ⚖️ hard-judgment | Claude Fable 5.1 (xhigh) | GPT-6 Astra (max) → Grok 4.6 | アーキテクチャ判断、深い推論、セカンドオピニオン |
119
+ | ✒️ taste-final | Claude Fable 5.1 (xhigh) | GPT-6 Astra (xhigh) → Grok 4.6 Gemini 3.8 Flash (High) | ユーザー向け文章、プロンプト/文書の仕上げ、文体判断 |
120
+ | 💬 consult | GPT-6 Astra (xhigh) | Claude Fable 5.1 (xhigh) → Grok 4.6 → Gemini 3.8 Flash (Medium) | 指名モデルへの直接相談。フォールバック防止のため `--vendor` を維持 |
121
+ | 🎨 ui-draft | GPT-5.6 Sol (high) | Claude Fable 5.1 (xhigh) → Gemini 3.8 Flash (High) | デザインシステム/参照画像がある場合だけの UI ドラフト |
122
+ | 📚 long-context | Gemini 3.8 Flash (Medium) | GPT-5.6 Terra (max) → Claude Opus 5 (medium) | 長文書の抽出と統合。AA-LCR、コスト、スループット順 |
123
+ | ⚡ fast-agentic | Gemini 3.8 Flash (Low) | GPT-5.6 Luna (high) → Claude Haiku 4.5 | 高速なマルチステップ agentic ループ、マルチモーダル確認 |
124
+ | 📡 live-search | Grok 4.6 | Gemini 3.8 Flash (High) → Claude Sonnet 5 (high) | リアルタイム X/Web 検索とソーシャル文脈 |
125
+ | 🚰 coding-overflow | Grok 4.6 | Gemini 3.8 Flash (High) → Kimi K3 → Qwen3 Coder Plus → OpenCode | Codex クォータ不足時の中級コーディング逃がし弁 |
126
+ | 🗳️ arbitrate | off (opt-in vote panel) | — | 重大判断用の内蔵意見パネル。デフォルト無効、`routing.local.yaml` で有効化し、投票者・ラウンドごとに 1 コール |
127
127
 
128
128
  **バックアップ**はチェーンの次の候補——第一候補のベンダー CLI が未インストールの
129
129
  ときにディスパッチが降格する先です。どのレーンもこうしたチェーンで、チェーン内に
@@ -155,12 +155,12 @@ flowchart LR
155
155
  なので追加コールなし)、どれを**ディスパッチ**するか。CLI の `omnilane` スキルが
156
156
  該当行を自動適用します。これはその人間向けビューです。
157
157
 
158
- - **Claude Code · Fable 5.1**——自分で実行:hard-judgment、taste-final、hardest-coding。ディスパッチ:bulk → Codex Sol high、long-context/高速ループ → Gemini 3.7 Flash、live-search → Grok。
159
- - **Claude Code · Opus 5**——低いハルシネーション率や価格を優先するときは hard-judgment taste-final を自分で実行。最難関コーディング → Fable 5.1 または Sol、bulk → Sol high、long-context/高速ループ → Gemini 3.7 Flash、live-search → Grok。
158
+ - **Claude Code · Fable 5.1**——自分で実行:taste-final、hardest-coding。ディスパッチ:hard-judgment → Opus 5、bulk → Codex Sol high、long-context/高速ループ → Gemini 3.7 Flash、live-search → Grok。
159
+ - **Claude Code · Opus 5**——自分で実行:hard-judgment(これがデフォルトのレーン)。低いハルシネーション率や価格を優先するときはローカル override taste-final も担当。最難関コーディング → Fable 5.1 または Sol、bulk → Sol high、long-context/高速ループ → Gemini 3.7 Flash、live-search → Grok。
160
160
  - **Codex · Sol**——自分で実行:hardest-coding、bulk-mechanical、hard-judgment、ui-draft。ディスパッチ:taste-final → Claude、long-context/高速ループ → Gemini 3.7 Flash、live-search → Grok。
161
161
  - **Codex · Terra**——long-context の Codex フォールバックを自分で実行。bulk-mechanical のデフォルトは Sol high に移動。最難関は Sol xhigh、taste → Claude、高速ループ → Gemini 3.7 Flash、live-search → Grok。
162
- - **Grok Build · Grok 4.6**——live-search と coding-overflow を自分で実行。難しいコーディング/判断/文章は Codex、Claude、Gemini へ送り、API シグネチャと引用事実は検証します。
163
- - **Antigravity · Gemini 3.7 Flash**——Medium の long-context/高速ループ、High の bulk/overflow、Low の triage を自分で実行。最難関のコーディング/判断/文章は Codex、Claude、live-search Grok へ。
162
+ - **Grok Build · Grok 4.6**——live-search と coding-overflow を自分で実行し、hardest-coding・hard-judgment・taste-final のフォールバックも兼任。第一候補が使えるときは難しいコーディング/判断/文章を Codex、Claude、Gemini へ送り、API シグネチャと引用事実は検証します。
163
+ - **Antigravity · Gemini 3.7 Flash**——Medium の long-context/高速ループ、High の bulk/overflow、Low の triage を自分で実行し、High で hardest-coding・taste-final・ui-draft・live-search のフォールバックも兼任。第一候補が使えるときは最難関のコーディング/判断/文章を Codex、Claude へ。
164
164
 
165
165
  </details>
166
166
 
@@ -322,20 +322,15 @@ Gemini 会話を継続します。0.33.0 ではベンダー、モデル、effort
322
322
 
323
323
  ## 🎭 モード
324
324
 
325
- - **advise(デフォルト)** — 読み取り専用ワーカー。Codex は read-only
326
- サンドボックス、Claude Read/Glob/Grep のみ、Grok plan モード、
327
- Kimi OpenCode はそれぞれの読み取り専用 plan モードに固定、
328
- OpenRouter は設計上 advise 専用(純推論)。
329
- - **work** 指定した `--workdir` 内でのみファイル編集可。Codex は
330
- workspace-write、Claude は編集自動承認、Gemini は accept-edits モード。
331
- `openrouter` vendor work モードを明確に拒否します——編集はエージェント型
332
- CLI ベンダーへ。
333
- - **sysops** `work` からベンダーのサンドボックスを外したモード。サンドボックスが
334
- 拒否するサービス操作(`launchctl` など)向けです。Codex は
335
- `-s danger-full-access` で実行し、他のベンダーは通常の `work` として扱います。
336
- マシン全体へのアクセスをワーカーに与えることになるため、ディスパッチごとに
337
- 明示指定する必要があり、レーンの既定値には決してできません。`work` が
338
- サンドボックス拒否で失敗するのを実際に確認した場合にのみ使ってください。
325
+ - **advise(既定)**: ローカル読み取り専用分析。対応ベンダーのネイティブ検索ツールとモデル接続は使用可能ですが、変更ツールは制限します。X/ウェブ検索機能が全ベンダーで同等とは限りません。
326
+ - **work**: ファイル編集とコマンド実行を明示した `--workdir` 内に制限し、エージェントツールのネットワークを無効化します。モデル接続は維持します。強制境界が未対応ならモデル起動前に停止し、sysops へ暗黙に移行しません。
327
+ - **sysops**: 派遣ごとの明示指定でツール、ファイル、ネットワークの制限を解除します。レーンの既定値にはせず、タスクに許可する操作を記載します。
328
+
329
+ CLI で `--workdir` を省略すると呼び出し元の現在のディレクトリを使いますが、タスク指示では明示してください。MCP `route`/`dry_run` の work インターフェースでは、別途明示的な `workdir` が必要です。
330
+
331
+ Codex Claude は三つのモードに個別のポリシーを適用します。Agy advise/sysops は認証を置き換えず、独立したセッション設定を使用します。Agy 1.1.27 work は検証済みの四つのツールとネイティブ端末サンドボックスを使い、新規/再開の限定検証で作業領域内の読み書き、編集、ビルドと領域外書き込み拒否を確認しました。外部一時ファイル/キャッシュの読み取りも制限されます。設定は起動ごとに明示的に再生成し、不変とは主張しません。別途、実際の work ライブ/FIFO で二つのターンを実行し、前ターンの読み戻し、領域外書き込み拒否、正常終了とソース不変を確認しました。Grok advise はネイティブツールの許可/拒否規則を使用します。子プロセスのネットワーク隔離が Linux 限定のため、macOS の Grok work は起動前に停止します。Grok ライブは明示的な sysops が必要です。検索の可用性やユーザーフックの影響は実際のツールイベントで検証し、終了コードだけでは証明しません。OpenRouter は advise 専用で、他のベンダーはこの四ベンダー契約に自動的には含まれません。
332
+
333
+ Grok 1.0.13 の単発 `plain` advise は完全なツールセットで実際の検索、ページ取得、書き込み拒否を検証済みです。内部ウェブツール ID とジョブ専用の MCP 準備状態を使い、フックは無効化しません。既存の空でない `CONTEXT_MODE_MCP_SENTINEL_DIR` は上書きせず、競合としてモデル起動前に停止します。この結果はライブや macOS work の検証には拡張しません。詳細は[日付付き実行時ゲート](docs/model-capabilities-2026-09.md#f-mode-runtime-gate-2026-09-06)を参照してください。
339
334
 
340
335
  ## 🔒 安全機構
341
336
 
@@ -370,7 +365,7 @@ Gemini 会話を継続します。0.33.0 ではベンダー、モデル、effort
370
365
 
371
366
  ## 📬 ライブメールボックス
372
367
 
373
- ライブメールボックスは、1 回で完結するディスパッチとは別の、Claude と Gemini が利用できる常駐バックグラウンド実行です。フォアマンが `--background` で開始し、実行中にも追加の指示を送れます。終わったらフォアマンが `jobs.sh close ID` で閉じます。放置しても常駐し続けるわけではなく、アイドル上限または設定済みのジョブ全体タイムアウト(`--job-timeout`)に達すれば終了します。
368
+ ライブメールボックスは、1 回で完結するディスパッチとは別の、対応モードで利用できる常駐バックグラウンド実行です。フォアマンが `--background` で開始し、実行中にも追加の指示を送れます。終わったらフォアマンが `jobs.sh close ID` で閉じます。放置しても常駐し続けるわけではなく、アイドル上限または設定済みのジョブ全体タイムアウト(`--job-timeout`)に達すれば終了します。
374
369
 
375
370
  ```bash
376
371
  scripts/dispatch.sh --background --vendor claude hard-judgment "タイムアウトしたテストを確認する"
@@ -382,7 +377,7 @@ scripts/jobs.sh close "$ID"
382
377
  scripts/jobs.sh retry "$ID" --background
383
378
  ```
384
379
 
385
- `watch` は `$JOB_DIR/events.jsonl` を追跡し、`tail` は公開出力の `out.txt` を読みます。ライブメールボックスは Claude と Gemini に対応し、ほかのベンダーは通常の単発ディスパッチとして実行され、stderr `$JOB_DIR/mode-notice.txt` に通知が残ります。`--live` は常駐セッションを必須にし、解決されたベンダーが非対応なら即時失敗します。`--single-shot` は Claude や Gemini でも単発実行を強制します。`--idle-timeout SECONDS` はアイドル上限を設定し、既定値は 900 秒、`0` で無効になります。
380
+ `watch` は `$JOB_DIR/events.jsonl` を追跡し、`tail` `out.txt` を読みます。Claude と Gemini は対応モードで既存の自動ライブ動作を維持します。Codex/Grok は既定で単発となり、`--background --live` の明示指定が必要です。Grok はさらに `--mode sysops --workdir DIR` が必要で、ACP が制限モードの境界を強制しないため advise/work のライブ要求は起動前に停止します。非対応ベンダーへのライブ要求は即時失敗します。`--single-shot` は単発実行を強制します。`--idle-timeout SECONDS` の既定値は 900 秒で、`0` でアイドル上限を無効化します。
386
381
 
387
382
  アイドル中は API 呼び出しも料金も発生しません。既定では、新しい受信メッセージまたは結果イベントが 900 秒間なければ worker が自動で終了し、ジョブ全体タイムアウトは外側の上限として残ります。やり取りが終わったら早めに `close` できます。終了済み、またはライブでないジョブへの `jobs.sh send` は明確なエラーで失敗します。送った後に追跡しない作業、ライブ対応していないベンダー、クリーンな状態からの再実行が必要な場合には使わず、新しいディスパッチ(または完了後の `retry`)を使ってください。
388
383
 
@@ -437,9 +432,12 @@ advise 専用で、ファイルを編集しません。
437
432
 
438
433
  <br/>
439
434
 
440
- Fable 5.1 は現在 `hardest-coding`、`hard-judgment`、`taste-final`
441
- 第一候補です。同じ xhigh では知能、agentic 作業、コーディングで Opus 5
442
- 上回ります。Sol max は、はるかに安価な別ベンダーの判断用フォールバックです。
435
+ Fable 5.1 は現在 `hardest-coding`、`taste-final` の第一候補です。同じ xhigh
436
+ では知能、agentic 作業、コーディングで Opus 5 を上回ります。Sol max は、
437
+ はるかに安価な別ベンダーの判断用フォールバックです。`hard-judgment` 自体は
438
+ 現在 Opus 5 xhigh がデフォルトです:Fable の agentic スコアの 97.7% を
439
+ コスト 68% で達成し、ハルシネーション率も低いため、このレーン自身の
440
+ コスト基準では安い方が勝ちます。
443
441
 
444
442
  | 評価(AA、2026-09-02 取得) | Claude Fable 5.1 (xhigh) | Claude Opus 5 (xhigh) | GPT-5.6 Sol (max) |
445
443
  |---|---:|---:|---:|
@@ -451,12 +449,12 @@ Fable 5.1 は現在 `hardest-coding`、`hard-judgment`、`taste-final` の
451
449
 
452
450
  Fable 5.1 は bulk と triage のデフォルトではありません。トークン単価が
453
451
  Opus 5 の 2 倍で、Claude Code のサブスクリプションクォータも 1 ターン当たり
454
- 最も多く消費するためです。Opus 5 は低ハルシネーション・低価格の Claude
455
- 選択肢として medium で `long-context` に残り、次の
456
- `~/.omnilane/routing.local.yaml` で任意のレーンへ戻せます。
452
+ 最も多く消費するためです。Opus 5 は現在 `hard-judgment` のデフォルトを担い、
453
+ medium で `long-context` にも残り、`~/.omnilane/routing.local.yaml` で
454
+ 任意のレーンへいつでも戻せます——例えば Fable を呼び戻すには:
457
455
 
458
456
  ```yaml
459
- hard-judgment: claude claude-opus-5 xhigh
457
+ hard-judgment: claude claude-fable-5-1 xhigh
460
458
  ```
461
459
 
462
460
  </details>
@@ -501,11 +499,11 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 解決済みプラン、
501
499
  <br/>
502
500
 
503
501
  依頼した場合のみです。ディスパッチの既定は読み取り専用の `advise` で、ベンダーごとに
504
- 実装されています(読み取り専用サンドボックス、plan モード、あるいは読み取り専用の
505
- ツールセット)。編集には `--mode work` と明示的な `--workdir` の両方が必要です。
506
- 第三のモード `--mode sysops` は `work` からベンダーのサンドボックスを外したもので、
507
- サンドボックスが拒否するサービス操作(`launchctl` など)向けです。codex
508
- `-s danger-full-access` で実行し、他のベンダーは `work` として扱います。
502
+ 実装されています(読み取り専用サンドボックス、またはネイティブツール権限)。
503
+ 範囲を限定した編集では `--mode work` と明示的な `--workdir` を指定してください。
504
+ work は指定ディレクトリ内の変更に限定し、モデル接続を維持したままツールのネットワークを無効化します。
505
+ `--mode sysops` Codex、Claude、Grok、Agy それぞれの独立した完全アクセス政策で、
506
+ work の別名ではありません。サービス管理など、work の境界を超える操作をタスクが明示的に許可する場合に使います。
509
507
  ディスパッチごとの明示指定のみで、レーンの既定値にはなりません。
510
508
  ワーカー自身は再ディスパッチできません——深度ガードが終了コード 86 で入れ子の
511
509
  ファンアウトを拒否するため、一つのコマンドがエージェントの連鎖に膨らんでクォータを
@@ -535,6 +533,20 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 解決済みプラン、
535
533
 
536
534
  ## 📜 リリース履歴
537
535
 
536
+ ## v0.41.1 の新機能
537
+
538
+ - **Python 3.9 互換性。** Agy のワークスペースポリシーの準備・終了処理で `Path.lstat()` を使い、シンボリックリンク、inode、同時置換の保護を維持します。
539
+ - **隔離した CI テスト設定。** strict doctor の検証にプラグイン有効化とディレクトリソース設定を追加します。設定の欠落、無効化、パス不一致は引き続き失敗します。
540
+ - **npm 公開後の更新。** `npm i -g omnilane@0.41.1`、または checkout 更新後に `./install.sh` を実行してください。npm は別途公開され、GitHub リリースは npm での提供開始を意味しません。
541
+
542
+ ## v0.40.0 の新機能
543
+
544
+ - **モードの区別と Grok ウェブ機能の修正。** advise は読み取り専用と対応するネイティブ検索、work は明示した `--workdir` 内の変更とツールネットワーク無効化、sysops は毎回明示する完全アクセスです。Grok 1.0.13 の完全な単発 `plain` advise 経路で検索、ページ取得、書き込み拒否を検証しました。macOS work と制限付きライブの起動前ガードは維持します。
545
+ - **Codex と Grok の明示的なライブセッション。** Codex work と Grok sysops のジョブは `--background --live` で追加入力と明示的な終了が可能です。Codex/Grok の自動ディスパッチは単発のまま、Claude/Gemini は既存の自動ライブ動作を維持します。Grok advise は ACP に強制可能な読み取り専用境界がないため `--live` を拒否します。
546
+ - **有界で観測可能な終了処理。** EOF 対応の能力プローブ、ジョブごとの不変 worker スナップショット、インタープリター/SHA の来歴、終了期限、プロセスグループのクリーンアップにより、停止したライブジョブを制限します。OS サンドボックス分離を意味するものではありません。
547
+ - **AA に基づくモデル網羅。** 12 レーンの既定値に Fable 5.1、GPT-6 Astra、Gemini 3.8 Flash を反映し、既存ベンダーと明示的モデル上書きは維持します。日付付き AA v4.2 スナップショットは 643 件のランキング設定を記録しますが、カタログ掲載は実行時サポートの保証ではありません。
548
+ - **アップグレード。** `npm i -g omnilane@0.40.0` を実行するか、checkout を更新して `./install.sh` を再実行してください。
549
+
538
550
  ## v0.33.0 の新機能
539
551
 
540
552
  - **4 ベンダー対応スレッドディスパッチ。** `--thread NAME` はベンダー、
@@ -626,6 +638,8 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 解決済みプラン、
626
638
 
627
639
  ## v0.12.0 の新機能
628
640
 
641
+ 以下は当時のリリース記録です。現在の三モード契約と 0.40.0 の独立した完全アクセス sysops 政策は[モード](#-モード)を参照してください。
642
+
629
643
  - **`hardest-coding` の Sol を `max` から `xhigh` へ** — AA の努力度別 Coding Index
630
644
  では、Sol の xhigh が自身の max も Claude の全ティアも上回り、コストは約 3 分の 1
631
645
  少ない。この種の作業では xhigh を超えた努力度は正確さではなく考えすぎを買う。
package/README.ko.md CHANGED
@@ -110,18 +110,18 @@ flowchart LR
110
110
 
111
111
  | 레인 | 1순위 모델 | 백업 | 용도 |
112
112
  |---|---|---|---|
113
- | 🔥 hardest-coding | Claude Fable 5.1 (xhigh) | GPT-5.6 Sol (xhigh) | 가장 어려운 구현, 근본 원인 디버깅, 정확성이 핵심인 수정 |
114
- | 🏗️ bulk-mechanical | GPT-5.6 Sol (high) | Gemini 3.7 Flash (High) → Claude Sonnet 5 (high) | 리팩터링, 마이그레이션, 테스트, 대량 스윕——기계적 지구력 작업 |
115
- | 🧹 triage | GPT-5.6 Luna (high) | Gemini 3.7 Flash (Low) → Claude Haiku 4.5 | 대량 스캔과 1차 선별 |
116
- | ⚖️ hard-judgment | Claude Fable 5.1 (xhigh) | GPT-5.6 Sol (max) → Grok 4.6 | 아키텍처 판정, 심층 추론, 2차 의견 |
117
- | ✒️ taste-final | Claude Fable 5.1 (high) | GPT-5.6 Sol (max) | 사용자 대상 문장, 프롬프트/문서 다듬기, 스타일 판정 |
118
- | 💬 consult | GPT-5.6 Sol (max) | Claude Fable 5.1 (high) → Grok 4.6 → Gemini 3.7 Flash (High) | 지정 모델 직접 상담. 폴백 방지를 위해 `--vendor` 유지 |
119
- | 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Fable 5.1 (high) | 디자인 시스템/참조 이미지가 있을 때만 UI 초안 |
120
- | 📚 long-context | Gemini 3.7 Flash (Medium) | GPT-5.6 Terra (max) → Claude Opus 5 (medium) | 장문 추출과 종합. AA-LCR, 비용, 처리량 순 |
121
- | ⚡ fast-agentic | Gemini 3.7 Flash (Medium) | GPT-5.6 Luna (high) | 빠른 멀티스텝 agentic 루프, 멀티모달 확인 |
122
- | 📡 live-search | Grok 4.6 | (`off`) | 실시간 X/웹 검색과 소셜 맥락 |
123
- | 🚰 coding-overflow | Grok 4.6 | Gemini 3.7 Flash (High) → Kimi K3 → Qwen3 Coder Plus → OpenCode | Codex 쿼터 소진 시 중급 코딩 안전 밸브 |
124
- | 🗳️ arbitrate | `off`(옵트인) | — | 중대한 판단을 위한 내장 의견 패널. 기본 비활성, `routing.local.yaml` 에서 활성화하며 투표자·라운드당 1회 호출 |
113
+ | 🔥 hardest-coding | Claude Fable 5.1 (max) | GPT-6 Astra (max) → Grok 4.6 Gemini 3.8 Flash (High) | 가장 어려운 구현, 근본 원인 디버깅, 정확성이 핵심인 수정 |
114
+ | 🏗️ bulk-mechanical | GPT-5.6 Sol (high) | Gemini 3.8 Flash (High) → Claude Sonnet 5 (high) | 리팩터링, 마이그레이션, 테스트, 대량 스윕——기계적 지구력 작업 |
115
+ | 🧹 triage | GPT-5.6 Luna (high) | Gemini 3.8 Flash (Low) → Claude Haiku 4.5 | 대량 스캔과 1차 선별 |
116
+ | ⚖️ hard-judgment | Claude Fable 5.1 (xhigh) | GPT-6 Astra (max) → Grok 4.6 | 아키텍처 판정, 심층 추론, 2차 의견 |
117
+ | ✒️ taste-final | Claude Fable 5.1 (xhigh) | GPT-6 Astra (xhigh) → Grok 4.6 Gemini 3.8 Flash (High) | 사용자 대상 문장, 프롬프트/문서 다듬기, 스타일 판정 |
118
+ | 💬 consult | GPT-6 Astra (xhigh) | Claude Fable 5.1 (xhigh) → Grok 4.6 → Gemini 3.8 Flash (Medium) | 지정 모델 직접 상담. 폴백 방지를 위해 `--vendor` 유지 |
119
+ | 🎨 ui-draft | GPT-5.6 Sol (high) | Claude Fable 5.1 (xhigh) → Gemini 3.8 Flash (High) | 디자인 시스템/참조 이미지가 있을 때만 UI 초안 |
120
+ | 📚 long-context | Gemini 3.8 Flash (Medium) | GPT-5.6 Terra (max) → Claude Opus 5 (medium) | 장문 추출과 종합. AA-LCR, 비용, 처리량 순 |
121
+ | ⚡ fast-agentic | Gemini 3.8 Flash (Low) | GPT-5.6 Luna (high) → Claude Haiku 4.5 | 빠른 멀티스텝 agentic 루프, 멀티모달 확인 |
122
+ | 📡 live-search | Grok 4.6 | Gemini 3.8 Flash (High) → Claude Sonnet 5 (high) | 실시간 X/웹 검색과 소셜 맥락 |
123
+ | 🚰 coding-overflow | Grok 4.6 | Gemini 3.8 Flash (High) → Kimi K3 → Qwen3 Coder Plus → OpenCode | Codex 쿼터 소진 시 중급 코딩 안전 밸브 |
124
+ | 🗳️ arbitrate | off (opt-in vote panel) | — | 중대한 판단을 위한 내장 의견 패널. 기본 비활성, `routing.local.yaml` 에서 활성화하며 투표자·라운드당 1회 호출 |
125
125
 
126
126
  **백업**은 체인의 다음 후보입니다——1순위 벤더 CLI 가 설치되지 않았을 때
127
127
  디스패치가 강등되는 대상입니다. 모든 레인이 이런 체인이며, 체인에 아무것도
@@ -153,12 +153,12 @@ flowchart LR
153
153
  추가 호출 없음)와 **디스패치**하는지입니다. CLI 의 `omnilane` 스킬이 해당
154
154
  행을 자동 적용하며, 이것은 사람이 보는 버전입니다.
155
155
 
156
- - **Claude Code · Fable 5.1**——직접 실행: hard-judgment, taste-final, hardest-coding. 디스패치: bulk → Codex Sol high, long-context/빠른 루프 → Gemini 3.7 Flash, live-search → Grok.
157
- - **Claude Code · Opus 5**——더 낮은 환각률이나 가격이 중요할 hard-judgment taste-final 직접 실행. 최고난도 코딩 → Fable 5.1 또는 Sol, bulk → Sol high, long-context/빠른 루프 → Gemini 3.7 Flash, live-search → Grok.
156
+ - **Claude Code · Fable 5.1**——직접 실행: taste-final, hardest-coding. 디스패치: hard-judgment → Opus 5, bulk → Codex Sol high, long-context/빠른 루프 → Gemini 3.7 Flash, live-search → Grok.
157
+ - **Claude Code · Opus 5**——직접 실행: hard-judgment(기본 레인). 더 낮은 환각률이나 가격이 중요할 때는 로컬 오버라이드로 taste-final 맡을 있습니다. 최고난도 코딩 → Fable 5.1 또는 Sol, bulk → Sol high, long-context/빠른 루프 → Gemini 3.7 Flash, live-search → Grok.
158
158
  - **Codex · Sol**——직접 실행: hardest-coding, bulk-mechanical, hard-judgment, ui-draft. 디스패치: taste-final → Claude, long-context/빠른 루프 → Gemini 3.7 Flash, live-search → Grok.
159
159
  - **Codex · Terra**——long-context 의 Codex 폴백을 직접 실행. bulk-mechanical 기본값은 Sol high 로 이동했습니다. 최고난도는 Sol xhigh, taste → Claude, 빠른 루프 → Gemini 3.7 Flash, live-search → Grok.
160
- - **Grok Build · Grok 4.6**——live-search 와 coding-overflow 를 직접 실행. 어려운 코딩/판단/문장은 Codex, Claude, Gemini 로 보내고 API 시그니처와 인용 사실을 검증합니다.
161
- - **Antigravity · Gemini 3.7 Flash**——Medium 의 long-context/빠른 루프, High 의 bulk/overflow, Low 의 triage 를 직접 실행. 최고난도 코딩/판단/문장은 Codex, Claude 로, live-search Grok 으로 보냅니다.
160
+ - **Grok Build · Grok 4.6**——live-search 와 coding-overflow 를 직접 실행하며, hardest-coding, hard-judgment, taste-final 의 폴백도 겸합니다. 1순위 후보를 쓸 수 있으면 어려운 코딩/판단/문장은 Codex, Claude, Gemini 로 보내고 API 시그니처와 인용 사실을 검증합니다.
161
+ - **Antigravity · Gemini 3.7 Flash**——Medium 의 long-context/빠른 루프, High 의 bulk/overflow, Low 의 triage 를 직접 실행하며, High hardest-coding, taste-final, ui-draft, live-search 폴백도 겸합니다. 1순위 후보를 쓸 수 있으면 최고난도 코딩/판단/문장은 Codex, Claude 로 보냅니다.
162
162
 
163
163
  </details>
164
164
 
@@ -313,18 +313,15 @@ CLI 를 사용할 수 없음, `5` 1라운드 성공 투표자 부족, `6` 2라
313
313
 
314
314
  ## 🎭 모드
315
315
 
316
- - **advise(기본)** 읽기 전용 워커. Codex read-only 샌드박스,
317
- Claude Read/Glob/Grep 만, Grok plan 모드, Kimi OpenCode 각자의
318
- 읽기 전용 plan 모드 고정, OpenRouter 설계상 advise 전용(순수 추론).
319
- - **work** — 지정한 `--workdir` 안에서만 파일 수정 허용. Codex 는
320
- workspace-write, Claude 편집 자동 승인, Gemini accept-edits 모드.
321
- `openrouter` vendor 는 work 모드를 명확한 오류로 거부합니다——파일 편집은
322
- 에이전트형 CLI 벤더로 보내세요.
323
- - **sysops** — `work` 에서 벤더 샌드박스를 뺀 모드. 샌드박스가 거부하는 서비스
324
- 작업(`launchctl` 등)을 위한 것입니다. Codex `-s danger-full-access`
325
- 실행하고, 다른 벤더는 일반 `work` 로 취급합니다. 워커에게 머신 전체 접근 권한을
326
- 주는 셈이므로 디스패치마다 명시적으로 지정해야 하며 레인 기본값이 될 수 없습니다.
327
- `work` 가 샌드박스 거부로 실패하는 것을 직접 확인한 경우에만 쓰세요.
316
+ - **advise(기본)**: 로컬 읽기 전용 분석입니다. 지원 벤더의 기본 검색 도구와 모델 연결은 유지하고 변경 도구는 제한합니다. 모든 벤더의 X/웹 검색 기능이 동등하다는 뜻은 아닙니다.
317
+ - **work**: 파일 명령 작업은 명시한 `--workdir` 내부로 제한하고 에이전트 도구의 네트워크 접근을 끕니다. 모델 연결은 유지합니다. 강제 경계가 지원되지 않으면 모델 시작 전에 중단하며 sysops 로 조용히 전환하지 않습니다.
318
+ - **sysops**: 매번 명시적으로 선택하여 도구, 파일, 네트워크 제한을 해제합니다. 레인 기본값으로 설정하지 않으며 작업에 허용된 동작을 명시해야 합니다.
319
+
320
+ CLI 에서 `--workdir` 생략하면 호출자의 현재 디렉터리를 사용하지만 작업 지시에는 명시하십시오. MCP `route`/`dry_run` 의 work 인터페이스는 별도로 명시적인 `workdir` 를 요구합니다.
321
+
322
+ Codex Claude 는 세 모드에 서로 다른 정책을 적용합니다. Agy advise/sysops 는 구독 인증을 교체하지 않고 독립 세션 설정을 사용합니다. Agy 1.1.27 work 는 검증된 네 도구와 기본 터미널 샌드박스로 신규/재개 범위를 검증했으며 작업 영역 내 읽기·쓰기·편집·빌드와 영역 밖 쓰기 거부를 확인했습니다. 외부 임시 파일/캐시 읽기도 제한됩니다. 설정은 시작할 때마다 명시적으로 다시 생성하며 불변이라고 주장하지 않습니다. 별도의 실제 work 라이브/FIFO 두 턴 검증에서 이전 턴 읽기, 영역 밖 쓰기 거부, 정상 종료 및 소스 불변을 확인했습니다. Grok advise 는 기본 도구 허용/거부 규칙을 사용합니다. 자식 프로세스 네트워크 격리는 Linux 전용이므로 macOS Grok work 는 시작 전에 중단됩니다. Grok 라이브는 명시적 sysops 가 필요합니다. 검색 가용성과 사용자 훅 영향은 실제 도구 이벤트로 검증하며 성공 종료 코드만으로 입증하지 않습니다. OpenRouter 는 advise 전용이며 다른 벤더는 이 네 벤더 계약에 자동 포함되지 않습니다.
323
+
324
+ Grok 1.0.13의 단발 `plain` advise는 전체 도구 집합으로 실제 검색, 페이지 조회, 쓰기 거부를 검증했습니다. 내부 웹 도구 ID와 작업별 MCP 준비 상태를 사용하며 훅은 끄지 않습니다. 기존의 비어 있지 않은 `CONTEXT_MODE_MCP_SENTINEL_DIR`은 덮어쓰지 않고 충돌로 모델 시작 전에 중단합니다. 이 결과를 라이브나 macOS work 검증으로 확장하지 않습니다. 자세한 범위는 [날짜별 런타임 게이트](docs/model-capabilities-2026-09.md#f-mode-runtime-gate-2026-09-06)를 참조하십시오.
328
325
 
329
326
  ## 🔒 안전 장치
330
327
 
@@ -357,7 +354,7 @@ CLI 를 사용할 수 없음, `5` 1라운드 성공 투표자 부족, `6` 2라
357
354
 
358
355
  ## 📬 라이브 메일함
359
356
 
360
- 라이브 메일함은 일회성 dispatch와 다른 Claude Gemini용 상주 백그라운드 실행입니다. 포어맨이 `--background`로 열고, 실행 중에도 추가 지시를 보낼 수 있으며, 끝나면 `jobs.sh close ID`로 닫을 책임이 있습니다. 방치해도 영구히 남아 있지는 않습니다. 유휴 상한 또는 설정된 전체 작업 시간 제한(`--job-timeout`)에 도달하면 종료됩니다.
357
+ 라이브 메일함은 일회성 dispatch와 다른 지원 모드의 상주 백그라운드 실행입니다. 포어맨이 `--background`로 열고, 실행 중에도 추가 지시를 보낼 수 있으며, 끝나면 `jobs.sh close ID`로 닫을 책임이 있습니다. 방치해도 영구히 남아 있지는 않습니다. 유휴 상한 또는 설정된 전체 작업 시간 제한(`--job-timeout`)에 도달하면 종료됩니다.
361
358
 
362
359
  ```bash
363
360
  scripts/dispatch.sh --background --vendor claude hard-judgment "시간 제한 테스트 실패를 확인해 주세요"
@@ -369,7 +366,7 @@ scripts/jobs.sh close "$ID"
369
366
  scripts/jobs.sh retry "$ID" --background
370
367
  ```
371
368
 
372
- `watch`는 `$JOB_DIR/events.jsonl`을 따라가고, `tail`은 공개 `out.txt`를 읽습니다. 라이브 메일함은 Claude와 Gemini 지원하며, 다른 벤더는 일반 일회성 dispatch로 실행되고 stderr와 `$JOB_DIR/mode-notice.txt`에 알림이 남습니다. `--live`는 상주 세션을 필수로 하며 결정된 벤더가 지원하지 않으면 즉시 실패합니다. `--single-shot`은 Claude나 Gemini에서도 일회성 실행을 강제합니다. `--idle-timeout SECONDS`는 유휴 상한을 설정하며 기본값은 900초이고 `0`이면 비활성화됩니다.
369
+ `watch` `$JOB_DIR/events.jsonl` 따라가고 `tail` `out.txt` 읽습니다. Claude 와 Gemini 지원 모드에서 기존 자동 라이브 동작을 유지합니다. Codex/Grok 기본적으로 단발 실행이며 `--background --live` 명시해야 합니다. Grok 추가로 `--mode sysops --workdir DIR` 가 필요합니다. ACP 가 제한 모드 경계를 강제하지 않으므로 advise/work 라이브 요청은 시작 전에 중단됩니다. 미지원 벤더의 라이브 요청은 즉시 실패합니다. `--single-shot` 단발 실행을 강제합니다. `--idle-timeout SECONDS` 기본값은 900초이며 `0` 은 유휴 상한을 비활성화합니다.
373
370
 
374
371
  유휴 상태에서는 API 호출이나 비용이 발생하지 않습니다. 기본적으로 새 수신 메시지나 결과 이벤트가 900초 동안 없으면 worker가 자동으로 종료되며, 전체 작업 시간 제한은 바깥쪽 상한으로 유지됩니다. 대화가 끝나면 더 일찍 `close`할 수 있습니다. 끝났거나 라이브가 아닌 작업에 `jobs.sh send`를 실행하면 명확한 오류와 함께 실패합니다. 보낸 뒤 추적하지 않을 작업, 라이브 지원이 없는 벤더, 깨끗한 상태에서 다시 실행해야 하는 경우에는 쓰지 말고 새 dispatch 또는 완료 뒤 `retry`를 사용하세요.
375
372
 
@@ -423,9 +420,12 @@ Codex 중심, Codex 없음)이 들어 있습니다.
423
420
 
424
421
  <br/>
425
422
 
426
- Fable 5.1 은 이제 `hardest-coding`, `hard-judgment`, `taste-final`의
427
- 1순위입니다. 같은 xhigh 에서 지능, agentic 작업, 코딩 모두 Opus 5 를
428
- 앞섭니다. Sol max 는 훨씬 저렴한 타 벤더 판단 폴백으로 남습니다.
423
+ Fable 5.1 은 이제 `hardest-coding`, `taste-final`의 1순위입니다. 같은
424
+ xhigh 에서 지능, agentic 작업, 코딩 모두 Opus 5 를 앞섭니다. Sol max 는
425
+ 훨씬 저렴한 타 벤더 판단 폴백으로 남습니다. `hard-judgment` 자체는 이제
426
+ Opus 5 xhigh 가 기본값입니다: Fable 의 agentic 점수 97.7%를 비용 68%에
427
+ 얻으면서 환각률도 더 낮아, 이 레인 고유의 비용 기준으로는 더 저렴한
428
+ 구성이 승리합니다.
429
429
 
430
430
  | 평가(AA, 2026-09-02 수집) | Claude Fable 5.1 (xhigh) | Claude Opus 5 (xhigh) | GPT-5.6 Sol (max) |
431
431
  |---|---:|---:|---:|
@@ -437,12 +437,12 @@ Fable 5.1 은 이제 `hardest-coding`, `hard-judgment`, `taste-final`의
437
437
 
438
438
  Fable 5.1 은 bulk 나 triage 기본값이 아닙니다. 토큰 가격이 Opus 5 의
439
439
  2배이고 Claude Code 구독 쿼터도 턴당 가장 많이 소비하기 때문입니다.
440
- Opus 5 는 낮은 환각률과 가격의 Claude 선택지로 medium
441
- `long-context`에 남으며, 다음 `~/.omnilane/routing.local.yaml` 설정으로
442
- 어느 레인에든 다시 넣을 수 있습니다.
440
+ Opus 5 는 이제 `hard-judgment`의 기본값이며 medium 으로 `long-context`에도
441
+ 남아 있고, `~/.omnilane/routing.local.yaml` 설정으로 어느 레인에든
442
+ 언제든 다시 넣을 수 있습니다 — 예를 들어 Fable 을 되돌리려면:
443
443
 
444
444
  ```yaml
445
- hard-judgment: claude claude-opus-5 xhigh
445
+ hard-judgment: claude claude-fable-5-1 xhigh
446
446
  ```
447
447
 
448
448
  </details>
@@ -487,12 +487,11 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 완전히 해석된 계
487
487
  <br/>
488
488
 
489
489
  요청했을 때만 가능합니다. 디스패치의 기본값은 읽기 전용 `advise` 이며 벤더별로
490
- 구현되어 있습니다(읽기 전용 샌드박스, plan 모드, 또는 읽기 전용 도구 집합).
491
- 수정하려면 `--mode work` 와 명시적인 `--workdir` 모두 필요합니다. 세 번째 모드인
492
- `--mode sysops` `work` 에서 벤더 샌드박스를 것으로, 샌드박스가 거부하는 서비스
493
- 작업(`launchctl` 등)을 위한 것입니다. codex `-s danger-full-access` 실행하고
494
- 다른 벤더는 `work` 취급하며, 디스패치마다 명시해야 레인 기본값이 될 수
495
- 없습니다. 워커는 다시
490
+ 구현되어 있습니다(읽기 전용 샌드박스 또는 기본 도구 권한).
491
+ 범위를 제한한 수정에는 `--mode work` 와 명시적인 `--workdir` 지정하십시오.
492
+ work지정한 디렉터리 안의 변경만 허용하며 모델 연결은 유지하고 도구 네트워크를 끕니다.
493
+ `--mode sysops` Codex, Claude, Grok, Agy 각각의 독립적인 전체 접근 정책이며 work 의 별칭이 아닙니다.
494
+ 서비스 관리처럼 work 경계를 넘는 동작을 작업에서 명시적으로 허용할 때마다 선택하며 레인 기본값이 될 수 없습니다. 워커는 다시
496
495
  디스패치할 수도 없습니다——깊이 가드가 종료 코드 86 으로 중첩 팬아웃을 거부하므로,
497
496
  명령 하나가 에이전트 연쇄로 번져 할당량을 태우는 일은 없습니다.
498
497
 
@@ -519,6 +518,20 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 완전히 해석된 계
519
518
 
520
519
  ## 📜 릴리스 기록
521
520
 
521
+ ## v0.41.1 새 기능
522
+
523
+ - **Python 3.9 호환성.** Agy 작업 영역 정책 준비와 정리에 `Path.lstat()`을 사용하며 심볼릭 링크, inode 및 동시 교체 보호를 유지합니다.
524
+ - **격리된 CI 테스트 설정.** strict doctor 검증에 플러그인 활성화와 디렉터리 소스 설정을 추가합니다. 설정 누락, 비활성화 또는 경로 불일치는 계속 실패합니다.
525
+ - **npm 게시 후 업그레이드.** `npm i -g omnilane@0.41.1`을 실행하거나 checkout 업데이트 후 `./install.sh`를 실행하십시오. npm은 별도로 게시되며 GitHub 릴리스가 npm 제공을 뜻하지 않습니다.
526
+
527
+ ## v0.40.0 새 기능
528
+
529
+ - **모드 구분 및 Grok 웹 기능 수정.** advise 는 읽기 전용과 지원되는 기본 검색, work 는 명시한 `--workdir` 내부 변경과 도구 네트워크 차단, sysops 는 매번 명시하는 전체 접근입니다. Grok 1.0.13의 완전한 단발 `plain` advise 경로에서 검색, 페이지 조회, 쓰기 거부를 검증했습니다. macOS work 및 제한된 라이브의 시작 전 검사는 유지합니다.
530
+ - **명시적 Codex 및 Grok 라이브 세션.** Codex work와 Grok sysops 작업은 `--background --live`로 후속 입력과 명시적 종료를 지원합니다. Codex/Grok 자동 디스패치는 단발 실행을 유지하고 Claude/Gemini는 기존 자동 라이브 동작을 유지합니다. Grok advise는 ACP에 강제 가능한 읽기 전용 경계가 없어 `--live`를 거부합니다.
531
+ - **제한되고 관측 가능한 종료.** EOF 인식 기능 프로브, 작업별 불변 worker 스냅샷, 인터프리터/SHA 출처, 종료 기한 및 프로세스 그룹 정리를 통해 멈추거나 종료된 라이브 작업을 제한합니다. OS 샌드박스 격리를 의미하지 않습니다.
532
+ - **AA 기반 모델 범위.** 12개 레인 기본값에 Fable 5.1, GPT-6 Astra, Gemini 3.8 Flash를 반영하면서 기존 공급자와 명시적 모델 재정의를 유지합니다. 날짜가 지정된 AA v4.2 스냅샷은 643개 순위 구성을 기록하지만 카탈로그 등재가 런타임 지원을 보장하지는 않습니다.
533
+ - **업그레이드.** `npm i -g omnilane@0.40.0`을 실행하거나 checkout을 업데이트한 뒤 `./install.sh`를 다시 실행하십시오.
534
+
522
535
  ## v0.33.0 새 기능
523
536
 
524
537
  - **4개 벤더 스레드 디스패치.** `--thread NAME`은 벤더, 모델, effort,
@@ -608,6 +621,8 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 완전히 해석된 계
608
621
 
609
622
  ## v0.12.0 새 기능
610
623
 
624
+ 아래는 당시 릴리스 기록입니다. 현재 세 모드 계약과 0.40.0의 독립적인 전체 접근 sysops 정책은 [모드](#-모드)를 참조하십시오.
625
+
611
626
  - **`hardest-coding`의 Sol을 `max`에서 `xhigh`로** — AA의 노력 수준별 Coding Index
612
627
  에서 Sol의 xhigh가 자신의 max와 모든 Claude 티어를 앞서면서 비용은 약 3분의 1
613
628
  적다. 이 작업에서 xhigh를 넘는 노력은 정확도가 아니라 과잉 사고를 산다.