omnilane 0.11.0 → 0.13.0
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 +91 -1
- package/README.ja.md +52 -4
- package/README.ko.md +52 -5
- package/README.md +58 -5
- package/README.zh-CN.md +45 -5
- package/README.zh-TW.md +45 -5
- package/VERSION +1 -1
- package/package.json +1 -1
- package/routing.local.yaml.example +21 -0
- package/routing.yaml +18 -16
- package/scripts/dispatch.sh +9 -5
- package/scripts/release-audit.sh +37 -0
- package/scripts/runners/run-codex.sh +5 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,94 @@ semantic version tags.
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.13.0] - 2026-08-03
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- `long-context` now orders on AA-LCR, Artificial Analysis's long-context
|
|
14
|
+
reasoning benchmark, which scores exactly this lane's work: extracting and
|
|
15
|
+
synthesising across long-form documents. Gemini 3.1 Pro leads both fallbacks
|
|
16
|
+
there, so first place is now positively justified rather than merely
|
|
17
|
+
unrevisited. The two fallbacks swapped — GPT-5.6 Sol at `high` precedes
|
|
18
|
+
Claude Opus 5 at `high`.
|
|
19
|
+
- Corrected the advice this lane used to give. It sent multi-hop synthesis to
|
|
20
|
+
the Claude candidate on the strength of second-hand figures for a prior model
|
|
21
|
+
generation; on first-party current-generation data Claude is the weakest of
|
|
22
|
+
the three shipped candidates, not the strongest. The claim is gone from
|
|
23
|
+
`routing.yaml` and from all five lane tables.
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
|
|
27
|
+
- `release-audit --require-tag` now reports whether recently pushed tags have a
|
|
28
|
+
matching GitHub release. v0.11.0 shipped a tag with no release and nothing
|
|
29
|
+
noticed for a week. The check warns rather than fails, skips silently when
|
|
30
|
+
`gh` is absent, unauthenticated or offline so the audit still works in CI,
|
|
31
|
+
excludes the target being released (whose release does not exist yet at audit
|
|
32
|
+
time), and looks only at the few most recent tags — a check that stays yellow
|
|
33
|
+
forever is one everyone learns to ignore.
|
|
34
|
+
|
|
35
|
+
### Notes
|
|
36
|
+
|
|
37
|
+
- AA-LCR runs on documents of 10k-100k tokens, so it settles synthesis quality
|
|
38
|
+
across long documents and settles nothing at a full 1M. GPT-5.6 Luna tops
|
|
39
|
+
that table at a fraction of the cost and was deliberately *not* promoted:
|
|
40
|
+
this lane's headline case is the 1M sweep, which the benchmark does not
|
|
41
|
+
reach. See `docs/model-capabilities-2026-07.md`.
|
|
42
|
+
|
|
43
|
+
## [0.12.0] - 2026-08-03
|
|
44
|
+
|
|
45
|
+
### Changed
|
|
46
|
+
|
|
47
|
+
- `hardest-coding` now runs GPT-5.6 Sol at `xhigh` instead of `max`. On
|
|
48
|
+
Artificial Analysis's per-effort Coding Index, Sol at xhigh scores ahead of
|
|
49
|
+
Sol at max and of every Claude tier, at roughly a third less cost per task:
|
|
50
|
+
past xhigh, more effort buys overthinking on this workload rather than
|
|
51
|
+
accuracy. The lane's Claude candidate is unchanged.
|
|
52
|
+
- `fast-agentic` now runs GPT-5.6 Luna first, with Gemini 3.6 Flash as the
|
|
53
|
+
second candidate. Luna leads Flash on AA's Agentic Index by a wide margin,
|
|
54
|
+
and OpenAI's 2026-07-30 reprice left it costing a fraction as much per task.
|
|
55
|
+
Flash keeps only a throughput advantage, so put it back in front locally if
|
|
56
|
+
your loops are latency-bound. Both models accept image input, so the lane's
|
|
57
|
+
multimodal checks are unaffected either way.
|
|
58
|
+
- Lane comments in `routing.yaml` no longer carry benchmark scores, prices or
|
|
59
|
+
throughput figures. They state why a lane is ordered the way it is, which
|
|
60
|
+
stays true for months; the figures, each with the date it was retrieved, now
|
|
61
|
+
live only in `docs/model-capabilities-2026-07.md`. A number going stale
|
|
62
|
+
should not require a routing-table edit. This refresh found a Coding Agent
|
|
63
|
+
Index figure that had survived two re-bases inside a comment while the docs
|
|
64
|
+
forbade quoting that index at all.
|
|
65
|
+
|
|
66
|
+
### Added
|
|
67
|
+
|
|
68
|
+
- **`--mode sysops`**, a third dispatch mode: `work` minus the vendor sandbox,
|
|
69
|
+
for service operations the sandbox denies (`launchctl` and similar). Codex
|
|
70
|
+
runs it with `-s danger-full-access`; every other vendor treats it as plain
|
|
71
|
+
`work`. It hands the worker full access to the machine, so it is an explicit
|
|
72
|
+
per-dispatch flag and cannot be set as a lane default — an invalid `--mode`
|
|
73
|
+
still exits 2 rather than falling through to a write-enabled branch. Codex
|
|
74
|
+
under `work` or `sysops` continues to require a git-repo `--workdir`.
|
|
75
|
+
- `routing.local.yaml.example` ships a **value profile**: the same vendors one
|
|
76
|
+
effort notch cheaper, trading about one Intelligence Index point for 30-40%
|
|
77
|
+
off the cost per task, plus a clearly-marked riskier tier for models on the
|
|
78
|
+
cost/intelligence frontier that hallucinate heavily.
|
|
79
|
+
- `docs/model-capabilities-2026-07.md` documents AA's two Capability Indices —
|
|
80
|
+
Coding Index (Terminal-Bench v2.1 + SciCode) and Agentic Index (GDPval-AA v2
|
|
81
|
+
+ τ³-Banking) — with the composition, weights and the caveat that neither
|
|
82
|
+
carries a version label, so a re-base would arrive silently.
|
|
83
|
+
|
|
84
|
+
### Fixed
|
|
85
|
+
|
|
86
|
+
- Corrected the pricing table for OpenAI's 2026-07-30 reprice: GPT-5.6 Terra is
|
|
87
|
+
$2/$12 and Luna is $0.20/$1.20; Sol is unchanged. Subscription quotas are
|
|
88
|
+
unchanged but Terra and Luna now consume fewer credits.
|
|
89
|
+
- Replaced the Intelligence Index table, which quoted a 2026-07-24 article, with
|
|
90
|
+
values retrieved from AA on 2026-08-02. AA re-measures, and most rows had
|
|
91
|
+
moved 10-20% on cost per task in the interim.
|
|
92
|
+
- Documented that AA's **Coding Index is not the Coding Agent Index**. They
|
|
93
|
+
share no components, and their numbers collide: Claude Opus 5 reads 77.98 on
|
|
94
|
+
the former, right on top of the 77/78 figures circulating for the latter's
|
|
95
|
+
v1.3.
|
|
96
|
+
|
|
9
97
|
## [0.11.0] - 2026-07-27
|
|
10
98
|
|
|
11
99
|
No routing changes. The Live Board is now readable in five languages.
|
|
@@ -475,7 +563,9 @@ work to the wrong model, and records the evidence behind the shipped defaults.
|
|
|
475
563
|
- Initial shared routing table, cross-vendor dispatcher, runners, installer,
|
|
476
564
|
and baseline lint fixes.
|
|
477
565
|
|
|
478
|
-
[Unreleased]: https://github.com/Seraphim0916/omnilane/compare/v0.
|
|
566
|
+
[Unreleased]: https://github.com/Seraphim0916/omnilane/compare/v0.13.0...HEAD
|
|
567
|
+
[0.13.0]: https://github.com/Seraphim0916/omnilane/compare/v0.12.0...v0.13.0
|
|
568
|
+
[0.12.0]: https://github.com/Seraphim0916/omnilane/compare/v0.11.0...v0.12.0
|
|
479
569
|
[0.11.0]: https://github.com/Seraphim0916/omnilane/compare/v0.10.4...v0.11.0
|
|
480
570
|
[0.10.4]: https://github.com/Seraphim0916/omnilane/compare/v0.10.3...v0.10.4
|
|
481
571
|
[0.10.3]: https://github.com/Seraphim0916/omnilane/compare/v0.10.2...v0.10.3
|
package/README.ja.md
CHANGED
|
@@ -112,15 +112,15 @@ flowchart LR
|
|
|
112
112
|
|
|
113
113
|
| レーン | 第一候補 | バックアップ | 用途 |
|
|
114
114
|
|---|---|---|---|
|
|
115
|
-
| 🔥 hardest-coding | GPT-5.6 Sol (
|
|
115
|
+
| 🔥 hardest-coding | GPT-5.6 Sol (xhigh) | Claude Opus 5 (xhigh) | 最難関の実装、根本原因デバッグ、正確性が要の変更 |
|
|
116
116
|
| 🏗️ bulk-mechanical | GPT-5.6 Terra (max) | Claude Sonnet 5 (high) | リファクタ、移行、テスト、大規模スイープ |
|
|
117
117
|
| 🧹 triage | GPT-5.6 Luna (medium) | Gemini 3.6 Flash (Low) | 大量の一次スクリーニング |
|
|
118
118
|
| ⚖️ hard-judgment | Claude Opus 5 (xhigh) | GPT-5.6 Sol (max) | アーキテクチャ裁定、深い推論、セカンドオピニオン |
|
|
119
119
|
| ✒️ taste-final | Claude Opus 5 (high) | GPT-5.6 Sol (max) | 対外文章、prompt/ドキュメント推敲、スタイル最終審 |
|
|
120
120
|
| 💬 consult | 明示指定したベンダー/モデル | —(フォールバックなし) | 自然言語で直接相談。`--vendor` を必ず維持 |
|
|
121
121
|
| 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Opus 5 (high) | デザインシステム/参考画像がある場合の UI ドラフト |
|
|
122
|
-
| 📚 long-context | Gemini 3.1 Pro (High) |
|
|
123
|
-
| ⚡ fast-agentic |
|
|
122
|
+
| 📚 long-context | Gemini 3.1 Pro (High) | GPT-5.6 Sol (high) | 100 万トークン級の走査・検索と、長文をまたぐ統合。高速反復ループは Flash を優先 |
|
|
123
|
+
| ⚡ fast-agentic | GPT-5.6 Luna (max) | Gemini 3.6 Flash (High) | 高速なマルチステップ agentic ループ、マルチモーダル確認 |
|
|
124
124
|
| 📡 live-search | Grok 4.5 | —(off) | リアルタイム X/ウェブ検索とソーシャル文脈 |
|
|
125
125
|
| 🚰 coding-overflow | Grok 4.5 | Kimi K3 → Qwen3 Coder Plus → OpenCode | Codex クォータ逼迫時の中級コーディング逃し弁 |
|
|
126
126
|
| 🗳️ arbitrate | off(オプトイン) | — | 内蔵オピニオンパネル(重大な判断用)——デフォルト無効。`routing.local.yaml` で有効化;投票者×ラウンドごとに 1 コール消費 |
|
|
@@ -291,7 +291,7 @@ omnilane ui status # Live UI の稼働状態を表
|
|
|
291
291
|
omnilane ui url # 現在の認証済みローカル URL を表示
|
|
292
292
|
omnilane ui stop # Live UI を停止
|
|
293
293
|
omnilane doctor [--json] # ルーティングとローカル実行環境を読み取り専用で診断
|
|
294
|
-
dispatch.sh [--background] [--dry-run] [--mode advise|work] [--workdir DIR]
|
|
294
|
+
dispatch.sh [--background] [--dry-run] [--mode advise|work|sysops] [--workdir DIR]
|
|
295
295
|
[--vendor V] [--model M] [--effort E] [--timeout SEC] [--job-timeout SEC]
|
|
296
296
|
LANE "TASK" # "-" で stdin から読む
|
|
297
297
|
dispatch.sh [--json] --list [--json]
|
|
@@ -326,6 +326,12 @@ configure.sh set|get|unset|list|diff LANE [SPEC] # routing.local.yaml を非
|
|
|
326
326
|
workspace-write、Claude は編集自動承認、Gemini は accept-edits モード。
|
|
327
327
|
`openrouter` vendor は work モードを明確に拒否します——編集はエージェント型
|
|
328
328
|
CLI ベンダーへ。
|
|
329
|
+
- **sysops** — `work` からベンダーのサンドボックスを外したモード。サンドボックスが
|
|
330
|
+
拒否するサービス操作(`launchctl` など)向けです。Codex は
|
|
331
|
+
`-s danger-full-access` で実行し、他のベンダーは通常の `work` として扱います。
|
|
332
|
+
マシン全体へのアクセスをワーカーに与えることになるため、ディスパッチごとに
|
|
333
|
+
明示指定する必要があり、レーンの既定値には決してできません。`work` が
|
|
334
|
+
サンドボックス拒否で失敗するのを実際に確認した場合にのみ使ってください。
|
|
329
335
|
|
|
330
336
|
## 🔒 安全機構
|
|
331
337
|
|
|
@@ -478,6 +484,10 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 解決済みプラン、
|
|
|
478
484
|
依頼した場合のみです。ディスパッチの既定は読み取り専用の `advise` で、ベンダーごとに
|
|
479
485
|
実装されています(読み取り専用サンドボックス、plan モード、あるいは読み取り専用の
|
|
480
486
|
ツールセット)。編集には `--mode work` と明示的な `--workdir` の両方が必要です。
|
|
487
|
+
第三のモード `--mode sysops` は `work` からベンダーのサンドボックスを外したもので、
|
|
488
|
+
サンドボックスが拒否するサービス操作(`launchctl` など)向けです。codex は
|
|
489
|
+
`-s danger-full-access` で実行し、他のベンダーは `work` として扱います。
|
|
490
|
+
ディスパッチごとの明示指定のみで、レーンの既定値にはなりません。
|
|
481
491
|
ワーカー自身は再ディスパッチできません——深度ガードが終了コード 86 で入れ子の
|
|
482
492
|
ファンアウトを拒否するため、一つのコマンドがエージェントの連鎖に膨らんでクォータを
|
|
483
493
|
食い潰すことはありません。
|
|
@@ -506,6 +516,44 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 解決済みプラン、
|
|
|
506
516
|
|
|
507
517
|
## 📜 リリース履歴
|
|
508
518
|
|
|
519
|
+
## v0.13.0 の新機能
|
|
520
|
+
|
|
521
|
+
- **`long-context` を AA-LCR で順序付け** — Artificial Analysis の長文脈推論
|
|
522
|
+
ベンチマークで、まさにこのレーンの仕事を測るものです。Gemini 3.1 Pro が両方の
|
|
523
|
+
フォールバックを上回るため、その一番手は「未見直し」から「根拠あり」に変わりました。
|
|
524
|
+
- **このレーンの旧来の助言は逆で、削除しました。** 従来は多段の統合を Claude 候補へ
|
|
525
|
+
回すよう促していましたが、根拠は前世代モデルの二次情報でした。一次情報の現行世代
|
|
526
|
+
データでは Claude が三候補中もっとも弱く、フォールバックを入れ替えて GPT-5.6 Sol
|
|
527
|
+
(high) が Claude Opus 5 (high) の前に来ます。
|
|
528
|
+
- **`release-audit --require-tag` が GitHub リリースのないタグを指摘します。** 失敗
|
|
529
|
+
ではなく警告で、`gh` が無い場合やオフラインではスキップするため CI でも動作し、
|
|
530
|
+
直近のタグのみを見ます。
|
|
531
|
+
- **範囲の注記:** AA-LCR は 10k〜100k トークンの文書で実施されるため、長文の統合品質
|
|
532
|
+
は決まりますが 1M での挙動は何も決まりません。GPT-5.6 Luna は同表の首位でしかも
|
|
533
|
+
はるかに安価ですが、**意図的に昇格させていません** — このレーンの本命は 1M の走査で、
|
|
534
|
+
ベンチマークがそこまで届かないからです。
|
|
535
|
+
|
|
536
|
+
## v0.12.0 の新機能
|
|
537
|
+
|
|
538
|
+
- **`hardest-coding` の Sol を `max` から `xhigh` へ** — AA の努力度別 Coding Index
|
|
539
|
+
では、Sol の xhigh が自身の max も Claude の全ティアも上回り、コストは約 3 分の 1
|
|
540
|
+
少ない。この種の作業では xhigh を超えた努力度は正確さではなく考えすぎを買う。
|
|
541
|
+
- **`fast-agentic` の第一候補が GPT-5.6 Luna に**、Gemini 3.6 Flash は第二候補へ。
|
|
542
|
+
Luna は AA の Agentic Index で Flash を大きく上回り、2026-07-30 の値下げ後は
|
|
543
|
+
タスクあたりコストがごく僅か。Flash に残る優位はスループットのみ — レイテンシ律速の
|
|
544
|
+
ループならローカル設定で先頭に戻すこと。
|
|
545
|
+
- **レーンのコメントから数値を排除。** `routing.yaml` は各順序の「理由」だけを述べ、
|
|
546
|
+
スコア・価格・スループットは取得日とともに `docs/model-capabilities-2026-07.md` に
|
|
547
|
+
集約。数値が古くなってもルーティング表の編集は不要になった。
|
|
548
|
+
- **value プロファイル**を `routing.local.yaml.example` に追加 — Intelligence Index
|
|
549
|
+
約 1 ポイントと引き換えに、タスクあたりコストを 30〜40% 削減。
|
|
550
|
+
- **`--mode sysops` を追加** — ベンダーのサンドボックスを外した `work`。サンドボックスが
|
|
551
|
+
拒否するサービス操作向けです。ワーカーにマシン全体へのアクセスを与えるため、
|
|
552
|
+
ディスパッチごとの指定のみで、レーンの既定値にはできません。
|
|
553
|
+
- **価格とベンチマークを更新**(2026-07-30 の OpenAI 値下げ反映)。あわせて AA の
|
|
554
|
+
Coding Index が Coding Agent Index **ではない**ことを明記 — 構成要素は全く別物だが
|
|
555
|
+
数値が近接する。
|
|
556
|
+
|
|
509
557
|
## v0.11.0 の新機能
|
|
510
558
|
|
|
511
559
|
- **Live Board が 5 言語で読めます** — 英語・日本語・韓国語・繁体字中国語・簡体字
|
package/README.ko.md
CHANGED
|
@@ -110,15 +110,15 @@ flowchart LR
|
|
|
110
110
|
|
|
111
111
|
| 레인 | 1순위 모델 | 백업 | 용도 |
|
|
112
112
|
|---|---|---|---|
|
|
113
|
-
| 🔥 hardest-coding | GPT-5.6 Sol (
|
|
113
|
+
| 🔥 hardest-coding | GPT-5.6 Sol (xhigh) | Claude Opus 5 (xhigh) | 가장 어려운 구현, 근본 원인 디버깅, 정확성이 핵심인 수정 |
|
|
114
114
|
| 🏗️ bulk-mechanical | GPT-5.6 Terra (max) | Claude Sonnet 5 (high) | 리팩터링, 마이그레이션, 테스트, 대량 스윕 |
|
|
115
115
|
| 🧹 triage | GPT-5.6 Luna (medium) | Gemini 3.6 Flash (Low) | 대량 1차 선별 |
|
|
116
116
|
| ⚖️ hard-judgment | Claude Opus 5 (xhigh) | GPT-5.6 Sol (max) | 아키텍처 중재, 깊은 추론, 세컨드 오피니언 |
|
|
117
117
|
| ✒️ taste-final | Claude Opus 5 (high) | GPT-5.6 Sol (max) | 대외 문장, prompt/문서 다듬기, 스타일 최종심 |
|
|
118
118
|
| 💬 consult | 명시적으로 지정한 벤더/모델 | —(폴백 없음) | 자연어 직접 상담. `--vendor` 를 반드시 유지 |
|
|
119
119
|
| 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Opus 5 (high) | 디자인 시스템/참고 이미지가 있을 때의 UI 초안 |
|
|
120
|
-
| 📚 long-context | Gemini 3.1 Pro (High) |
|
|
121
|
-
| ⚡ fast-agentic |
|
|
120
|
+
| 📚 long-context | Gemini 3.1 Pro (High) | GPT-5.6 Sol (high) | 100만 토큰급 훑기·검색과 긴 문서를 잇는 통합. 빠른 반복 루프는 Flash 우선 |
|
|
121
|
+
| ⚡ fast-agentic | GPT-5.6 Luna (max) | Gemini 3.6 Flash (High) | 빠른 멀티스텝 agentic 루프, 멀티모달 확인 |
|
|
122
122
|
| 📡 live-search | Grok 4.5 | —(off) | 실시간 X/웹 검색과 소셜 맥락 |
|
|
123
123
|
| 🚰 coding-overflow | Grok 4.5 | Kimi K3 → Qwen3 Coder Plus → OpenCode | Codex 쿼터 소진 시 중급 코딩 안전 밸브 |
|
|
124
124
|
| 🗳️ arbitrate | off(옵트인) | — | 내장 의견 패널(중대한 결정용)——기본 비활성. `routing.local.yaml` 에서 활성화;투표자×라운드마다 1콜 소모 |
|
|
@@ -283,7 +283,7 @@ omnilane ui status # Live UI 실행 상태 표시
|
|
|
283
283
|
omnilane ui url # 현재 인증된 로컬 URL 표시
|
|
284
284
|
omnilane ui stop # Live UI 중지
|
|
285
285
|
omnilane doctor [--json] # 라우팅과 로컬 실행 환경을 읽기 전용으로 진단
|
|
286
|
-
dispatch.sh [--background] [--dry-run] [--mode advise|work] [--workdir DIR]
|
|
286
|
+
dispatch.sh [--background] [--dry-run] [--mode advise|work|sysops] [--workdir DIR]
|
|
287
287
|
[--vendor V] [--model M] [--effort E] [--timeout SEC] [--job-timeout SEC]
|
|
288
288
|
LANE "TASK" # "-" 는 stdin 에서 읽기
|
|
289
289
|
dispatch.sh [--json] --list [--json]
|
|
@@ -316,6 +316,11 @@ CLI 를 사용할 수 없음, `5` 1라운드 성공 투표자 부족, `6` 2라
|
|
|
316
316
|
workspace-write, Claude 는 편집 자동 승인, Gemini 는 accept-edits 모드.
|
|
317
317
|
`openrouter` vendor 는 work 모드를 명확한 오류로 거부합니다——파일 편집은
|
|
318
318
|
에이전트형 CLI 벤더로 보내세요.
|
|
319
|
+
- **sysops** — `work` 에서 벤더 샌드박스를 뺀 모드. 샌드박스가 거부하는 서비스
|
|
320
|
+
작업(`launchctl` 등)을 위한 것입니다. Codex 는 `-s danger-full-access` 로
|
|
321
|
+
실행하고, 다른 벤더는 일반 `work` 로 취급합니다. 워커에게 머신 전체 접근 권한을
|
|
322
|
+
주는 셈이므로 디스패치마다 명시적으로 지정해야 하며 레인 기본값이 될 수 없습니다.
|
|
323
|
+
`work` 가 샌드박스 거부로 실패하는 것을 직접 확인한 경우에만 쓰세요.
|
|
319
324
|
|
|
320
325
|
## 🔒 안전 장치
|
|
321
326
|
|
|
@@ -463,7 +468,11 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 완전히 해석된 계
|
|
|
463
468
|
|
|
464
469
|
요청했을 때만 가능합니다. 디스패치의 기본값은 읽기 전용 `advise` 이며 벤더별로
|
|
465
470
|
구현되어 있습니다(읽기 전용 샌드박스, plan 모드, 또는 읽기 전용 도구 집합).
|
|
466
|
-
수정하려면 `--mode work` 와 명시적인 `--workdir` 가 모두 필요합니다.
|
|
471
|
+
수정하려면 `--mode work` 와 명시적인 `--workdir` 가 모두 필요합니다. 세 번째 모드인
|
|
472
|
+
`--mode sysops` 는 `work` 에서 벤더 샌드박스를 뺀 것으로, 샌드박스가 거부하는 서비스
|
|
473
|
+
작업(`launchctl` 등)을 위한 것입니다. codex 는 `-s danger-full-access` 로 실행하고
|
|
474
|
+
다른 벤더는 `work` 로 취급하며, 디스패치마다 명시해야 할 뿐 레인 기본값이 될 수
|
|
475
|
+
없습니다. 워커는 다시
|
|
467
476
|
디스패치할 수도 없습니다——깊이 가드가 종료 코드 86 으로 중첩 팬아웃을 거부하므로,
|
|
468
477
|
명령 하나가 에이전트 연쇄로 번져 할당량을 태우는 일은 없습니다.
|
|
469
478
|
|
|
@@ -490,6 +499,44 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 완전히 해석된 계
|
|
|
490
499
|
|
|
491
500
|
## 📜 릴리스 기록
|
|
492
501
|
|
|
502
|
+
## v0.13.0 새 기능
|
|
503
|
+
|
|
504
|
+
- **`long-context` 를 AA-LCR 기준으로 정렬** — Artificial Analysis 의 장문맥 추론
|
|
505
|
+
벤치마크로, 바로 이 레인의 일을 측정합니다. Gemini 3.1 Pro 가 두 폴백을 모두
|
|
506
|
+
앞서므로 1순위가 "미검토" 에서 "근거 있음" 으로 바뀌었습니다.
|
|
507
|
+
- **이 레인의 기존 조언은 반대였고 제거했습니다.** 예전에는 다중 홉 통합을 Claude
|
|
508
|
+
후보로 보내라고 했지만 근거는 이전 세대 모델의 2차 자료였습니다. 1차 현세대
|
|
509
|
+
데이터에서는 Claude 가 세 후보 중 가장 약해, 폴백을 바꿔 GPT-5.6 Sol (high) 가
|
|
510
|
+
Claude Opus 5 (high) 앞에 옵니다.
|
|
511
|
+
- **`release-audit --require-tag` 가 GitHub 릴리스 없는 태그를 표시합니다.** 실패가
|
|
512
|
+
아니라 경고이며, `gh` 가 없거나 오프라인이면 건너뛰어 CI 에서도 동작하고, 최근
|
|
513
|
+
태그만 봅니다.
|
|
514
|
+
- **범위 참고:** AA-LCR 은 10k~100k 토큰 문서로 수행되므로 긴 문서 통합 품질은
|
|
515
|
+
가려지지만 1M 에서의 동작은 전혀 가려지지 않습니다. GPT-5.6 Luna 가 이 표의
|
|
516
|
+
1위이고 훨씬 저렴하지만 **의도적으로 승격하지 않았습니다** — 이 레인의 본령은
|
|
517
|
+
벤치마크가 닿지 않는 1M 훑기이기 때문입니다.
|
|
518
|
+
|
|
519
|
+
## v0.12.0 새 기능
|
|
520
|
+
|
|
521
|
+
- **`hardest-coding`의 Sol을 `max`에서 `xhigh`로** — AA의 노력 수준별 Coding Index
|
|
522
|
+
에서 Sol의 xhigh가 자신의 max와 모든 Claude 티어를 앞서면서 비용은 약 3분의 1
|
|
523
|
+
적다. 이 작업에서 xhigh를 넘는 노력은 정확도가 아니라 과잉 사고를 산다.
|
|
524
|
+
- **`fast-agentic`의 1순위가 GPT-5.6 Luna로**, Gemini 3.6 Flash는 2순위. Luna는 AA
|
|
525
|
+
Agentic Index에서 Flash를 크게 앞서고, 2026-07-30 가격 인하 후 태스크당 비용이
|
|
526
|
+
극히 낮다. Flash에 남은 우위는 처리량뿐 — 레이턴시가 병목인 루프라면 로컬 설정에서
|
|
527
|
+
다시 앞에 두면 된다.
|
|
528
|
+
- **레인 주석에서 수치 제거.** `routing.yaml`은 각 순서가 성립하는 "이유"만 서술하고,
|
|
529
|
+
점수·가격·처리량은 조회 날짜와 함께 `docs/model-capabilities-2026-07.md`에만 둔다.
|
|
530
|
+
수치가 낡아도 라우팅 표를 고칠 필요가 없다.
|
|
531
|
+
- **value 프로파일** 추가(`routing.local.yaml.example`) — Intelligence Index 약 1점을
|
|
532
|
+
내주고 태스크당 비용을 30~40% 절감.
|
|
533
|
+
- **`--mode sysops` 추가** — 벤더 샌드박스를 뺀 `work`. 샌드박스가 거부하는 서비스
|
|
534
|
+
작업을 위한 것입니다. 워커에게 머신 전체 접근 권한을 주므로 디스패치별 지정만
|
|
535
|
+
가능하며 레인 기본값이 될 수 없습니다.
|
|
536
|
+
- **가격·벤치마크 갱신**(2026-07-30 OpenAI 인하 반영). 그리고 AA의 Coding Index는
|
|
537
|
+
Coding Agent Index가 **아니라는** 점을 문서화 — 구성 요소가 전혀 다른데 수치가
|
|
538
|
+
겹친다.
|
|
539
|
+
|
|
493
540
|
## v0.11.0 새 기능
|
|
494
541
|
|
|
495
542
|
- **Live Board 를 5 개 언어로 읽을 수 있습니다** — 영어, 일본어, 한국어, 번체 중국어,
|
package/README.md
CHANGED
|
@@ -115,15 +115,15 @@ actually resolves.
|
|
|
115
115
|
|
|
116
116
|
| Lane | First choice | Backup | When |
|
|
117
117
|
|---|---|---|---|
|
|
118
|
-
| 🔥 hardest-coding | GPT-5.6 Sol (
|
|
118
|
+
| 🔥 hardest-coding | GPT-5.6 Sol (xhigh) | Claude Opus 5 (xhigh) | Hardest implementation, deep root-cause debug, correctness-critical edits |
|
|
119
119
|
| 🏗️ bulk-mechanical | GPT-5.6 Terra (max) | Claude Sonnet 5 (high) | Refactors, migrations, tests, review sweeps — mechanical endurance |
|
|
120
120
|
| 🧹 triage | GPT-5.6 Luna (medium) | Gemini 3.6 Flash (Low) | High-volume scans, first-pass filtering |
|
|
121
121
|
| ⚖️ hard-judgment | Claude Opus 5 (xhigh) | GPT-5.6 Sol (max) | Architecture arbitration, deep reasoning, second opinions |
|
|
122
122
|
| ✒️ taste-final | Claude Opus 5 (high) | GPT-5.6 Sol (max) | User-facing prose, prompt/doc polish, style arbitration |
|
|
123
123
|
| 💬 consult | Explicit named vendor/model | — (no fallback) | Direct natural-language consultation; always keep `--vendor` |
|
|
124
124
|
| 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Opus 5 (high) | UI drafts only WITH a design system / reference images |
|
|
125
|
-
| 📚 long-context | Gemini 3.1 Pro (High) |
|
|
126
|
-
| ⚡ fast-agentic |
|
|
125
|
+
| 📚 long-context | Gemini 3.1 Pro (High) | GPT-5.6 Sol (high) | 1M-token sweeps, retrieval, and synthesis across long documents; Flash for fast repeated loops |
|
|
126
|
+
| ⚡ fast-agentic | GPT-5.6 Luna (max) | Gemini 3.6 Flash (High) | Fast multi-step agentic loops, multimodal checks |
|
|
127
127
|
| 📡 live-search | Grok 4.5 | — (off) | Realtime X/web search and social context |
|
|
128
128
|
| 🚰 coding-overflow | Grok 4.5 | Kimi K3 → Qwen3 Coder Plus → OpenCode | Codex-quota relief valve for mid-tier coding |
|
|
129
129
|
| 🗳️ arbitrate | off (opt-in vote panel) | — | Built-in opinion panel for big calls — disabled by default; enable it in `routing.local.yaml`, one call per voter per round |
|
|
@@ -300,7 +300,7 @@ omnilane ui status # report whether the Live UI is r
|
|
|
300
300
|
omnilane ui url # print the current authenticated local URL
|
|
301
301
|
omnilane ui stop # stop the Live UI
|
|
302
302
|
omnilane doctor [--json] # read-only routing and runtime health report
|
|
303
|
-
dispatch.sh [--background] [--dry-run] [--mode advise|work] [--workdir DIR]
|
|
303
|
+
dispatch.sh [--background] [--dry-run] [--mode advise|work|sysops] [--workdir DIR]
|
|
304
304
|
[--vendor V] [--model M] [--effort E] [--timeout SEC] [--job-timeout SEC]
|
|
305
305
|
LANE "TASK" # "-" reads task from stdin
|
|
306
306
|
dispatch.sh [--json] --list [--json]
|
|
@@ -349,6 +349,12 @@ code passes through.
|
|
|
349
349
|
Codex gets a workspace-write sandbox; Claude auto-accepts edits; Gemini runs
|
|
350
350
|
in accept-edits mode. The `openrouter` vendor refuses work mode with a clear
|
|
351
351
|
error — route edits to an agentic CLI vendor instead.
|
|
352
|
+
- **sysops** — `work` minus the vendor sandbox, for service operations the
|
|
353
|
+
sandbox denies (`launchctl` and friends). Codex runs it with
|
|
354
|
+
`-s danger-full-access`; every other vendor treats it as plain `work`. This
|
|
355
|
+
hands the worker full access to the machine, so it is an explicit
|
|
356
|
+
per-dispatch opt-in and can never be a lane default. Reach for it only when
|
|
357
|
+
you have watched `work` fail on a sandbox denial.
|
|
352
358
|
|
|
353
359
|
## 🔒 Safety rails
|
|
354
360
|
|
|
@@ -508,7 +514,11 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # fully resolved plan, no p
|
|
|
508
514
|
|
|
509
515
|
Only if you ask for it. Dispatch defaults to `advise`, a read-only mode enforced
|
|
510
516
|
per vendor (read-only sandbox, plan mode, or read-only tool set depending on the
|
|
511
|
-
CLI). Editing requires both `--mode work` and an explicit `--workdir`.
|
|
517
|
+
CLI). Editing requires both `--mode work` and an explicit `--workdir`. A third
|
|
518
|
+
mode, `--mode sysops`, is `work` minus the vendor sandbox — for service
|
|
519
|
+
operations the sandbox denies (e.g. `launchctl`); codex runs it with
|
|
520
|
+
`-s danger-full-access`, other vendors treat it as `work`, and it is an
|
|
521
|
+
explicit per-dispatch opt-in, never a lane default. Workers
|
|
512
522
|
also cannot dispatch again — the depth guard refuses nested fan-out with exit 86,
|
|
513
523
|
so one command can never spiral into a chain of agents spending your quota.
|
|
514
524
|
|
|
@@ -537,6 +547,49 @@ working notes, including per-benchmark caveats, live in
|
|
|
537
547
|
|
|
538
548
|
## 📜 Release history
|
|
539
549
|
|
|
550
|
+
## What's new in v0.13.0
|
|
551
|
+
|
|
552
|
+
- **`long-context` is ordered on AA-LCR** — Artificial Analysis's long-context
|
|
553
|
+
reasoning benchmark, which scores exactly this lane's work. Gemini 3.1 Pro
|
|
554
|
+
leads both fallbacks there, so its first place is now positively justified
|
|
555
|
+
rather than merely unrevisited.
|
|
556
|
+
- **The lane's old advice was backwards and is gone.** It used to send
|
|
557
|
+
multi-hop synthesis to the Claude candidate on second-hand figures for a
|
|
558
|
+
prior model generation; on first-party current-generation data Claude is the
|
|
559
|
+
weakest of the three shipped candidates. The fallbacks swapped, so GPT-5.6
|
|
560
|
+
Sol (high) now precedes Claude Opus 5 (high).
|
|
561
|
+
- **`release-audit --require-tag` flags tags with no GitHub release.** It warns
|
|
562
|
+
rather than fails, skips when `gh` is absent or offline so the audit still
|
|
563
|
+
runs in CI, and looks only at recent tags.
|
|
564
|
+
- **Scope note:** AA-LCR runs on 10k-100k-token documents, so it settles
|
|
565
|
+
synthesis across long documents and nothing at a full 1M. GPT-5.6 Luna tops
|
|
566
|
+
that table far more cheaply and was deliberately *not* promoted, because this
|
|
567
|
+
lane exists for the 1M sweep the benchmark does not reach.
|
|
568
|
+
|
|
569
|
+
## What's new in v0.12.0
|
|
570
|
+
|
|
571
|
+
- **`hardest-coding` drops Sol from `max` to `xhigh`** — on AA's per-effort
|
|
572
|
+
Coding Index, Sol at xhigh outscores Sol at max and every Claude tier while
|
|
573
|
+
costing about a third less. Past xhigh, effort buys overthinking rather than
|
|
574
|
+
accuracy on this workload.
|
|
575
|
+
- **`fast-agentic` leads with GPT-5.6 Luna**, Gemini 3.6 Flash second. Luna
|
|
576
|
+
leads Flash on AA's Agentic Index by a wide margin and, after OpenAI's
|
|
577
|
+
2026-07-30 reprice, costs a fraction as much per task. Flash keeps only a
|
|
578
|
+
throughput edge — put it back in front locally if your loops are
|
|
579
|
+
latency-bound.
|
|
580
|
+
- **Lane comments no longer carry numbers.** `routing.yaml` now states why each
|
|
581
|
+
ordering holds; every score, price and throughput figure lives in
|
|
582
|
+
`docs/model-capabilities-2026-07.md` with its retrieval date, so a stale
|
|
583
|
+
figure never requires a routing-table edit.
|
|
584
|
+
- **A value profile** in `routing.local.yaml.example` trades about one
|
|
585
|
+
Intelligence Index point for 30-40% off the cost per task.
|
|
586
|
+
- **New `--mode sysops`** — `work` without the vendor sandbox, for service
|
|
587
|
+
operations the sandbox denies. It gives the worker full machine access, so it
|
|
588
|
+
is a per-dispatch flag only and can never be a lane default.
|
|
589
|
+
- **Refreshed pricing and benchmark data** for the 2026-07-30 OpenAI reprice,
|
|
590
|
+
and documented that AA's Coding Index is *not* the Coding Agent Index — they
|
|
591
|
+
share no components and their numbers collide.
|
|
592
|
+
|
|
540
593
|
## What's new in v0.11.0
|
|
541
594
|
|
|
542
595
|
- **The Live Board reads in five languages** — English, Japanese, Korean,
|
package/README.zh-CN.md
CHANGED
|
@@ -103,15 +103,15 @@ flowchart LR
|
|
|
103
103
|
|
|
104
104
|
| 通道 | 首选模型 | 备选模型 | 用途 |
|
|
105
105
|
|---|---|---|---|
|
|
106
|
-
| 🔥 hardest-coding | GPT-5.6 Sol (
|
|
106
|
+
| 🔥 hardest-coding | GPT-5.6 Sol (xhigh) | Claude Opus 5 (xhigh) | 最难的实现、深度调试、正确性攸关的修改 |
|
|
107
107
|
| 🏗️ bulk-mechanical | GPT-5.6 Terra (max) | Claude Sonnet 5 (high) | 重构、迁移、测试、大面积扫描——机械耐力活 |
|
|
108
108
|
| 🧹 triage | GPT-5.6 Luna (medium) | Gemini 3.6 Flash (Low) | 高量初筛、第一轮过滤 |
|
|
109
109
|
| ⚖️ hard-judgment | Claude Opus 5 (xhigh) | GPT-5.6 Sol (max) | 架构仲裁、深度推理、第二意见 |
|
|
110
110
|
| ✒️ taste-final | Claude Opus 5 (high) | GPT-5.6 Sol (max) | 对外文字、prompt 与文档打磨、风格终审 |
|
|
111
111
|
| 💬 consult | 明确指定的厂商/模型 | —(不降级) | 自然语言直接咨询;必须保留 `--vendor` |
|
|
112
112
|
| 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Opus 5 (high) | 有设计规范/参考图时的 UI 出稿;开放式视觉品味交给 taste-final |
|
|
113
|
-
| 📚 long-context | Gemini 3.1 Pro (High) |
|
|
114
|
-
| ⚡ fast-agentic |
|
|
113
|
+
| 📚 long-context | Gemini 3.1 Pro (High) | GPT-5.6 Sol (high) | 百万 token 扫读、检索与长文跨段整合;高速重复循环仍优先 Flash |
|
|
114
|
+
| ⚡ fast-agentic | GPT-5.6 Luna (max) | Gemini 3.6 Flash (High) | 快速多步骤 agentic 循环、多模态检查 |
|
|
115
115
|
| 📡 live-search | Grok 4.5 | —(off) | 实时 X/网络搜索与社群脉络 |
|
|
116
116
|
| 🚰 coding-overflow | Grok 4.5 | Kimi K3 → Qwen3 Coder Plus → OpenCode | Codex 额度吃紧时的中量级编码溢流道;事实性声明须另行查证 |
|
|
117
117
|
| 🗳️ arbitrate | off(可选评审团) | — | 内置意见评审团,重大决定用——默认关闭,要用在 `routing.local.yaml` 打开;每评审每轮烧一次额度 |
|
|
@@ -266,7 +266,7 @@ omnilane ui status # 查看 Live UI 是否正在运
|
|
|
266
266
|
omnilane ui url # 输出当前通过认证的本地链接
|
|
267
267
|
omnilane ui stop # 停止 Live UI
|
|
268
268
|
omnilane doctor [--json] # 只读检查路由与本地运行环境
|
|
269
|
-
dispatch.sh [--background] [--dry-run] [--mode advise|work] [--workdir 目录]
|
|
269
|
+
dispatch.sh [--background] [--dry-run] [--mode advise|work|sysops] [--workdir 目录]
|
|
270
270
|
[--vendor V] [--model M] [--effort E] [--timeout SEC] [--job-timeout SEC]
|
|
271
271
|
通道 "任务" # "-" 表示从 stdin 读任务
|
|
272
272
|
dispatch.sh [--json] --list [--json]
|
|
@@ -298,6 +298,11 @@ configure.sh set|get|unset|list|diff LANE [SPEC] # 非交互编辑/查看 rou
|
|
|
298
298
|
- **work** — 允许改文件,仅限你指定的 `--workdir`。Codex 给
|
|
299
299
|
workspace-write 沙箱;Claude 自动接受编辑;Gemini 跑 accept-edits 模式。
|
|
300
300
|
`openrouter` vendor 会明确拒绝 work 模式——改文件请走代理式 CLI vendor。
|
|
301
|
+
- **sysops** — 等于 `work` 拿掉 vendor 沙箱,用于沙箱会挡掉的服务操作
|
|
302
|
+
(`launchctl` 之类)。Codex 以 `-s danger-full-access` 执行;其他 vendor
|
|
303
|
+
一律当成普通 `work`。这等于把整台机器的访问权交给工作端,因此只能逐次
|
|
304
|
+
明确指定,永远不能设成 lane 默认值。只有在你亲眼看到 `work` 因沙箱拒绝而
|
|
305
|
+
失败时才动用它。
|
|
301
306
|
|
|
302
307
|
## 🔒 内置安全机制
|
|
303
308
|
|
|
@@ -438,7 +443,10 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 完整解析后的计划,
|
|
|
438
443
|
|
|
439
444
|
除非你明说要它改。派工默认是 `advise` 只读模式,而且是逐厂商实现的(只读沙箱、
|
|
440
445
|
plan 模式,或只给只读工具集)。要改文件必须同时给 `--mode work` 和明确的
|
|
441
|
-
`--workdir
|
|
446
|
+
`--workdir`。第三种模式 `--mode sysops` 等于 `work` 拿掉 vendor 沙箱,用于沙箱会
|
|
447
|
+
挡掉的服务操作(例如 `launchctl`);codex 以 `-s danger-full-access` 执行,其他
|
|
448
|
+
vendor 一律当成 `work`,而且它只能逐次明确指定,永远不是 lane 默认值。
|
|
449
|
+
工作端也不能再往外派——深度守卫会用退出码 86 拒绝嵌套派工,一道
|
|
442
450
|
命令不可能失控变成一整串 AI 烧你的额度。
|
|
443
451
|
|
|
444
452
|
</details>
|
|
@@ -465,6 +473,38 @@ plan 模式,或只给只读工具集)。要改文件必须同时给 `--mode work
|
|
|
465
473
|
|
|
466
474
|
## 📜 版本历程
|
|
467
475
|
|
|
476
|
+
## v0.13.0 新功能
|
|
477
|
+
|
|
478
|
+
- **`long-context` 改用 AA-LCR 排序**——那是 Artificial Analysis 的长脉络推理基准,
|
|
479
|
+
量的正是这条通道的工作。Gemini 3.1 Pro 在该榜领先两个备援,因此它的第一顺位
|
|
480
|
+
从「未复审」升格为「有据」。
|
|
481
|
+
- **这条通道原本的建议是反的,已移除。** 它原先要人把多跳整合改派给 Claude 候选,
|
|
482
|
+
依据是上一代模型的二手数字;以第一手当代数据看,Claude 反而是三个候选里最弱的。
|
|
483
|
+
备援因此换位,GPT-5.6 Sol (high) 排在 Claude Opus 5 (high) 前面。
|
|
484
|
+
- **`release-audit --require-tag` 会标出没有 GitHub release 的 tag。** 只警告不中断,
|
|
485
|
+
`gh` 缺席或离线时自动跳过(CI 仍可跑),且只看最近几个 tag。
|
|
486
|
+
- **范围注记:** AA-LCR 测的是 10k–100k token 的文件,所以它能定「长文整合谁强」,
|
|
487
|
+
定不了 1M 的行为。GPT-5.6 Luna 在该榜居首且便宜得多,**刻意不升**——这条通道的
|
|
488
|
+
招牌工作是 1M 扫读,而该基准涵盖不到。
|
|
489
|
+
|
|
490
|
+
## v0.12.0 新功能
|
|
491
|
+
|
|
492
|
+
- **`hardest-coding` 的 Sol 从 `max` 降到 `xhigh`**——在 AA 分档位的 Coding Index
|
|
493
|
+
上,Sol 的 xhigh 不但胜过自己的 max,也胜过所有 Claude 档位,成本还少约三分之一。
|
|
494
|
+
这类工作超过 xhigh 之后,多加的 effort 买到的是过度思考,不是正确率。
|
|
495
|
+
- **`fast-agentic` 改由 GPT-5.6 Luna 领头**,Gemini 3.6 Flash 退居第二。Luna 在 AA
|
|
496
|
+
的 Agentic Index 上大幅领先 Flash,而且 2026-07-30 降价后每任务成本只剩零头。
|
|
497
|
+
Flash 只剩吞吐量优势——若你的循环受延迟限制,可在本机覆写把它调回第一。
|
|
498
|
+
- **lane 注释不再放数字。**`routing.yaml` 只说明每条排序「为什么」成立;所有分数、
|
|
499
|
+
价格与吞吐量连同取数日期,一律放在 `docs/model-capabilities-2026-07.md`。数字过期
|
|
500
|
+
不再需要动路由表。
|
|
501
|
+
- **新增 value profile**(在 `routing.local.yaml.example`):用约一个 Intelligence
|
|
502
|
+
Index 分数,换每任务成本降三到四成。
|
|
503
|
+
- **新增 `--mode sysops`**——等于 `work` 拿掉 vendor 沙箱,用于沙箱会挡掉的服务操作。
|
|
504
|
+
它会把整台机器的访问权交给工作端,因此只能逐次指定,永远不能设成 lane 默认值。
|
|
505
|
+
- **价格与基准数据刷新**至 2026-07-30 OpenAI 降价后的版本,并记录 AA 的 Coding Index
|
|
506
|
+
**不是** Coding Agent Index——两者成分完全不同,数值却会撞在一起。
|
|
507
|
+
|
|
468
508
|
## v0.11.0 新功能
|
|
469
509
|
|
|
470
510
|
- **Live Board 提供五种语言** —— 英文、日文、韩文、繁体中文与简体中文。首次加载依
|
package/README.zh-TW.md
CHANGED
|
@@ -103,15 +103,15 @@ flowchart LR
|
|
|
103
103
|
|
|
104
104
|
| 通道 | 首選模型 | 備選模型 | 用途 |
|
|
105
105
|
|---|---|---|---|
|
|
106
|
-
| 🔥 hardest-coding | GPT-5.6 Sol (
|
|
106
|
+
| 🔥 hardest-coding | GPT-5.6 Sol (xhigh) | Claude Opus 5 (xhigh) | 最難的實作、深度除錯、正確性攸關的修改 |
|
|
107
107
|
| 🏗️ bulk-mechanical | GPT-5.6 Terra (max) | Claude Sonnet 5 (high) | 重構、搬遷、測試、大面積掃描——機械耐力活 |
|
|
108
108
|
| 🧹 triage | GPT-5.6 Luna (medium) | Gemini 3.6 Flash (Low) | 高量初篩、第一輪過濾 |
|
|
109
109
|
| ⚖️ hard-judgment | Claude Opus 5 (xhigh) | GPT-5.6 Sol (max) | 架構仲裁、深度推理、第二意見 |
|
|
110
110
|
| ✒️ taste-final | Claude Opus 5 (high) | GPT-5.6 Sol (max) | 對外文字、prompt 與文件打磨、風格終審 |
|
|
111
111
|
| 💬 consult | 明確點名的廠商/模型 | —(不降級) | 自然語言直接諮詢;必須保留 `--vendor` |
|
|
112
112
|
| 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Opus 5 (high) | 有設計規範/參考圖時的 UI 出稿;開放式視覺品味交給 taste-final |
|
|
113
|
-
| 📚 long-context | Gemini 3.1 Pro (High) |
|
|
114
|
-
| ⚡ fast-agentic |
|
|
113
|
+
| 📚 long-context | Gemini 3.1 Pro (High) | GPT-5.6 Sol (high) | 百萬 token 掃讀、檢索與長文跨段整合;高速重複迴圈仍優先 Flash |
|
|
114
|
+
| ⚡ fast-agentic | GPT-5.6 Luna (max) | Gemini 3.6 Flash (High) | 快速多步驟 agentic 迴圈、多模態檢查 |
|
|
115
115
|
| 📡 live-search | Grok 4.5 | —(off) | 即時 X/網路搜尋與社群脈絡 |
|
|
116
116
|
| 🚰 coding-overflow | Grok 4.5 | Kimi K3 → Qwen3 Coder Plus → OpenCode | Codex 額度吃緊時的中量級編碼溢流道;事實性宣稱須另行查證 |
|
|
117
117
|
| 🗳️ arbitrate | off(選配評審團) | — | 內建意見評審團,重大決定用——預設關閉,要用在 `routing.local.yaml` 開;每評審每輪燒一次額度 |
|
|
@@ -267,7 +267,7 @@ omnilane ui status # 查看 Live UI 是否運作中
|
|
|
267
267
|
omnilane ui url # 印出目前通過驗證的本機網址
|
|
268
268
|
omnilane ui stop # 停止 Live UI
|
|
269
269
|
omnilane doctor [--json] # 唯讀檢查路由與本機執行環境
|
|
270
|
-
dispatch.sh [--background] [--dry-run] [--mode advise|work] [--workdir 目錄]
|
|
270
|
+
dispatch.sh [--background] [--dry-run] [--mode advise|work|sysops] [--workdir 目錄]
|
|
271
271
|
[--vendor V] [--model M] [--effort E] [--timeout SEC] [--job-timeout SEC]
|
|
272
272
|
通道 "任務" # "-" 表示從 stdin 讀任務
|
|
273
273
|
dispatch.sh [--json] --list [--json]
|
|
@@ -311,6 +311,11 @@ codex/claude/grok/gemini 自選 1-4 個評審。開了之後,同一個問題丟
|
|
|
311
311
|
- **work** — 允許改檔案,僅限你指定的 `--workdir`。Codex 給
|
|
312
312
|
workspace-write 沙箱;Claude 自動接受編輯;Gemini 跑 accept-edits 模式。
|
|
313
313
|
`openrouter` vendor 會明確拒絕 work 模式——改檔請走代理式 CLI vendor。
|
|
314
|
+
- **sysops** — 等於 `work` 拿掉 vendor 沙箱,用於沙箱會擋掉的服務操作
|
|
315
|
+
(`launchctl` 之類)。Codex 以 `-s danger-full-access` 執行;其他 vendor
|
|
316
|
+
一律當成一般 `work`。這等於把整台機器的存取權交給工作端,因此只能逐次
|
|
317
|
+
明確指定,永遠不能設成 lane 預設。只有在你親眼看到 `work` 因沙箱拒絕而
|
|
318
|
+
失敗時才動用它。
|
|
314
319
|
|
|
315
320
|
## 🔒 內建安全機制
|
|
316
321
|
|
|
@@ -451,7 +456,10 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 完整解析後的計畫,
|
|
|
451
456
|
|
|
452
457
|
除非你明講要它改。派工預設是 `advise` 唯讀模式,而且是逐廠商實作的(唯讀沙箱、
|
|
453
458
|
plan 模式,或只給唯讀工具集)。要改檔必須同時給 `--mode work` 和明確的
|
|
454
|
-
`--workdir
|
|
459
|
+
`--workdir`。第三種模式 `--mode sysops` 等於 `work` 拿掉 vendor 沙箱,用於沙箱會
|
|
460
|
+
擋掉的服務操作(例如 `launchctl`);codex 以 `-s danger-full-access` 執行,其他
|
|
461
|
+
vendor 一律當成 `work`,而且它只能逐次明確指定,永遠不是 lane 預設。
|
|
462
|
+
工作端也不能再往外派——深度守衛會用退出碼 86 拒絕巢狀派工,一道
|
|
455
463
|
指令不可能失控變成一整串 AI 燒你的額度。
|
|
456
464
|
|
|
457
465
|
</details>
|
|
@@ -475,6 +483,38 @@ plan 模式,或只給唯讀工具集)。要改檔必須同時給 `--mode work`
|
|
|
475
483
|
|
|
476
484
|
## 📜 版本歷程
|
|
477
485
|
|
|
486
|
+
## v0.13.0 新功能
|
|
487
|
+
|
|
488
|
+
- **`long-context` 改用 AA-LCR 排序**——那是 Artificial Analysis 的長脈絡推理基準,
|
|
489
|
+
量的正是這條通道的工作。Gemini 3.1 Pro 在該榜領先兩個備援,因此它的第一順位
|
|
490
|
+
從「未複審」升格為「有據」。
|
|
491
|
+
- **這條通道原本的建議是反的,已移除。** 它原先要人把多跳整合改派給 Claude 候選,
|
|
492
|
+
依據是上一代模型的二手數字;以第一手當代數據看,Claude 反而是三個候選裡最弱的。
|
|
493
|
+
備援因此換位,GPT-5.6 Sol (high) 排在 Claude Opus 5 (high) 前面。
|
|
494
|
+
- **`release-audit --require-tag` 會標出沒有 GitHub release 的 tag。** 只警告不中斷,
|
|
495
|
+
`gh` 缺席或離線時自動跳過(CI 仍可跑),且只看最近幾個 tag。
|
|
496
|
+
- **範圍註記:** AA-LCR 測的是 10k–100k token 的文件,所以它能定「長文整合誰強」,
|
|
497
|
+
定不了 1M 的行為。GPT-5.6 Luna 在該榜居首且便宜得多,**刻意不升**——這條通道的
|
|
498
|
+
招牌工作是 1M 掃讀,而該基準涵蓋不到。
|
|
499
|
+
|
|
500
|
+
## v0.12.0 新功能
|
|
501
|
+
|
|
502
|
+
- **`hardest-coding` 的 Sol 從 `max` 降到 `xhigh`**——在 AA 分檔位的 Coding Index
|
|
503
|
+
上,Sol 的 xhigh 不但勝過自己的 max,也勝過所有 Claude 檔位,成本還少約三分之一。
|
|
504
|
+
這種工作超過 xhigh 之後,多加的 effort 買到的是過度思考,不是正確率。
|
|
505
|
+
- **`fast-agentic` 改由 GPT-5.6 Luna 領頭**,Gemini 3.6 Flash 退居第二。Luna 在 AA
|
|
506
|
+
的 Agentic Index 上大幅領先 Flash,而且 2026-07-30 砍價後每任務成本只剩零頭。
|
|
507
|
+
Flash 只剩吞吐量優勢——若你的迴圈受延遲限制,可在本機覆寫把它調回第一。
|
|
508
|
+
- **lane 註解不再放數字。**`routing.yaml` 只說明每條排序「為什麼」成立;所有分數、
|
|
509
|
+
價格與吞吐量連同取數日期,一律住在 `docs/model-capabilities-2026-07.md`。數字過期
|
|
510
|
+
不再需要動路由表。
|
|
511
|
+
- **新增 value profile**(在 `routing.local.yaml.example`):用約一個 Intelligence
|
|
512
|
+
Index 分數,換每任務成本降三到四成。
|
|
513
|
+
- **新增 `--mode sysops`**——等於 `work` 拿掉 vendor 沙箱,用於沙箱會擋掉的服務操作。
|
|
514
|
+
它會把整台機器的存取權交給工作端,因此只能逐次指定,永遠不能設成 lane 預設。
|
|
515
|
+
- **價格與基準數據刷新**至 2026-07-30 OpenAI 砍價後的版本,並記錄 AA 的 Coding Index
|
|
516
|
+
**不是** Coding Agent Index——兩者成分完全不同,數值卻會撞在一起。
|
|
517
|
+
|
|
478
518
|
## v0.11.0 新功能
|
|
479
519
|
|
|
480
520
|
- **Live Board 提供五種語言** —— 英文、日文、韓文、繁體中文與簡體中文。首次載入依
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.13.0
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnilane",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
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"
|
|
@@ -39,3 +39,24 @@
|
|
|
39
39
|
# hardest-coding: claude claude-opus-5 xhigh
|
|
40
40
|
# bulk-mechanical: gemini "Gemini 3.6 Flash (High)" -
|
|
41
41
|
# triage: gemini "Gemini 3.6 Flash (Low)" -
|
|
42
|
+
|
|
43
|
+
# Profile: value — same vendors, one effort notch cheaper. Each reasoning lane
|
|
44
|
+
# below gives up about one Artificial Analysis Intelligence Index point to save
|
|
45
|
+
# 30-40% of the cost per task; the fast-agentic line gives up nothing but
|
|
46
|
+
# throughput. Figures are in docs/model-capabilities-2026-07.md (AA leaderboard,
|
|
47
|
+
# retrieved 2026-08-02, post the 2026-07-30 OpenAI reprice). Take this when you
|
|
48
|
+
# pay per token and the work is not correctness-critical; the shipped defaults
|
|
49
|
+
# buy that point back.
|
|
50
|
+
# hardest-coding: codex gpt-5.6-sol xhigh # 57.7 pts @ $1.17 vs max 58.9 @ $1.86
|
|
51
|
+
# hard-judgment: claude claude-opus-5 high # 58.9 pts @ $1.23 vs xhigh 60.1 @ $1.80
|
|
52
|
+
# taste-final: claude claude-opus-5 high # already the value tier — unchanged
|
|
53
|
+
# fast-agentic: codex gpt-5.6-luna max # 51.2 pts @ $0.07 vs Gemini 3.6 Flash 50.1 @ $0.56; costs 25% throughput
|
|
54
|
+
# ui-draft: claude claude-opus-5 high
|
|
55
|
+
# bulk-mechanical is already the value pick at Terra (max), 55.0 pts @ $0.73 — leave it.
|
|
56
|
+
#
|
|
57
|
+
# Cheaper still, and correspondingly riskier — these two are the current
|
|
58
|
+
# Intelligence-vs-cost Pareto frontier but both are heavy hallucinators
|
|
59
|
+
# (Grok 4.5 54%, DeepSeek V4 Flash 0731 84%), so route only work whose output
|
|
60
|
+
# is mechanical rather than factual, and verify anything they assert:
|
|
61
|
+
# bulk-mechanical: grok grok-4.5 - # 53.8 pts @ $0.44, but 500K context, not 1M
|
|
62
|
+
# triage: deepseek deepseek-v4-flash - # 49.9 pts @ $0.03, ~60% under post-cut Luna (advise-only: cannot edit files)
|
package/routing.yaml
CHANGED
|
@@ -7,9 +7,12 @@
|
|
|
7
7
|
# Fallback chain: the first candidate whose vendor CLI is installed wins, so the
|
|
8
8
|
# same table degrades gracefully when you only subscribe to one or two vendors.
|
|
9
9
|
# Override any line in ~/.omnilane/routing.local.yaml (same format; local wins).
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
10
|
+
# Every benchmark score, price and throughput figure behind these orderings lives in
|
|
11
|
+
# docs/model-capabilities-2026-07.md, with the date it was retrieved. The comments below
|
|
12
|
+
# deliberately carry no numbers: they state WHY a lane is ordered the way it is, which
|
|
13
|
+
# stays true for months, while the numbers move every few weeks. Change an ordering and
|
|
14
|
+
# you update the doc; a figure going stale should never need a routing-table edit.
|
|
15
|
+
# (Audited 2026-07-12; re-audited 2026-07-25, 2026-08-02 and 2026-08-03.)
|
|
13
16
|
# defaults follow Artificial Analysis data, 2026-07
|
|
14
17
|
# snapshot. Verified against AA site records + vendor pricing pages: Intelligence &
|
|
15
18
|
# Coding indexes and 7:2:1 blended prices all match (AA field price1mBlended7To2To1);
|
|
@@ -17,28 +20,27 @@
|
|
|
17
20
|
# standard short-context API tier — on subscription CLIs treat $ as relative ranking.
|
|
18
21
|
# Your own job outcomes (~/.omnilane/jobs/) outrank these priors; edit lanes to match.
|
|
19
22
|
|
|
20
|
-
hardest-coding: codex gpt-5.6-sol
|
|
21
|
-
bulk-mechanical: codex gpt-5.6-terra max | claude claude-sonnet-5 high | gemini "Gemini 3.6 Flash (High)" - #
|
|
22
|
-
triage: codex gpt-5.6-luna medium | gemini "Gemini 3.6 Flash (Low)" - | claude claude-haiku-4-5 - # high-volume scans
|
|
23
|
-
hard-judgment: claude claude-opus-5 xhigh | codex gpt-5.6-sol max #
|
|
23
|
+
hardest-coding: codex gpt-5.6-sol xhigh | claude claude-opus-5 xhigh # ordered on coding capability specifically, not general intelligence. Sol dropped from max to xhigh on 2026-08-03: on AA's per-effort Coding Index, Sol at xhigh outscores both Sol at max and every Claude tier, at a third less cost — max buys overthinking here, not accuracy. xhigh is also Anthropic's documented starting point for coding/agentic work. Keep Sol first for the established Codex harness lane.
|
|
24
|
+
bulk-mechanical: codex gpt-5.6-terra max | claude claude-sonnet-5 high | gemini "Gemini 3.6 Flash (High)" - # ordered on endurance per dollar: Terra leads Sonnet 5 on both intelligence and cost per task
|
|
25
|
+
triage: codex gpt-5.6-luna medium | gemini "Gemini 3.6 Flash (Low)" - | claude claude-haiku-4-5 - # high-volume scans, ordered on cost per task: Luna is the cheapest model at its intelligence tier by a wide margin
|
|
26
|
+
hard-judgment: claude claude-opus-5 xhigh | codex gpt-5.6-sol max # ordered on agentic knowledge work, where Opus 5 leads Sol on AA's benchmarks. xhigh per Anthropic guidance (high is the documented floor for intelligence-sensitive work; max is for correctness-over-cost only) — raise to max locally via `omnilane configure set` if your workload needs it.
|
|
24
27
|
taste-final: claude claude-opus-5 high | codex gpt-5.6-sol max # user-facing prose, prompt/doc polish, Chinese phrasing, style arbitration
|
|
25
28
|
consult: codex gpt-5.6-sol max | claude claude-opus-5 high | grok grok-4.5 - | gemini "Gemini 3.1 Pro (High)" - # direct named-model consultation; use --vendor to prevent fallback
|
|
26
29
|
ui-draft: codex gpt-5.6-sol xhigh | claude claude-opus-5 high # only with a design system / reference images; open-ended visual taste -> taste-final
|
|
27
|
-
long-context: gemini "Gemini 3.1 Pro (High)" - |
|
|
28
|
-
fast-agentic: gemini "Gemini 3.6 Flash (High)" -
|
|
30
|
+
long-context: gemini "Gemini 3.1 Pro (High)" - | codex gpt-5.6-sol high | claude claude-opus-5 high # all have 1M context; ordered on AA-LCR, which scores exactly this lane's work — extracting and synthesising across long documents — and where Gemini leads both fallbacks. Corrected 2026-08-03: this comment used to send multi-hop synthesis to the Claude candidate on second-hand prior-generation figures, and current first-party per-effort data reverses that, so the two fallbacks swapped. Caveat in docs: AA-LCR runs at 10k-100k tokens, so nothing here settles behaviour at a full 1M
|
|
31
|
+
fast-agentic: codex gpt-5.6-luna max | gemini "Gemini 3.6 Flash (High)" - # fast multi-step tool loops. Reordered 2026-08-03: Luna leads Flash on agentic benchmarks AND costs a fraction as much per task, so Flash's remaining edge is raw throughput alone. Keep Flash first only if your loops are latency-bound. Both take image input, so the lane's multimodal checks are unaffected
|
|
29
32
|
live-search: grok grok-4.5 - | off # native X/web search lane; no real substitute
|
|
30
|
-
coding-overflow: grok grok-4.5 - | kimi kimi-k3 - | qwen qwen3-coder-plus - | opencode - - | off # codex-quota relief valve: mid-tier coding; Grok 4.5
|
|
33
|
+
coding-overflow: grok grok-4.5 - | kimi kimi-k3 - | qwen qwen3-coder-plus - | opencode - - | off # codex-quota relief valve: mid-tier coding; Grok 4.5 is a capable mid-tier coder but AA measures a high hallucination rate — verify every factual claim it ships. qwen3-coder-plus = 2025-09-23 snapshot alias (Qwen 3.6 Plus exists; re-evaluate before swapping). kimi/qwen model fields are CLI aliases — adjust to your login. opencode "-" model = its own configured default.
|
|
31
34
|
arbitrate: off - - # opinion panel is OPT-IN: it costs one call per voter per round.
|
|
32
35
|
# Enable: `arbitrate: vote codex,claude,grok -` (any 1-4 of codex/claude/grok/gemini)
|
|
33
36
|
# Debate round (each voter rebuts the others): set the effort field to 2.
|
|
34
37
|
# Custom gate: `arbitrate: exec /path/to/script -`
|
|
35
38
|
# Claude Fable 5 (claude-fable-5) is deliberately absent from the defaults: the top Claude tier
|
|
36
|
-
# is usually the MAIN LOOP itself, not a dispatched worker, and it prices at twice Opus 5
|
|
37
|
-
#
|
|
38
|
-
#
|
|
39
|
-
#
|
|
40
|
-
#
|
|
41
|
-
# breadth (AA-Omniscience), so name it explicitly for recall-heavy consults. If you want
|
|
39
|
+
# is usually the MAIN LOOP itself, not a dispatched worker, and it prices at twice Opus 5.
|
|
40
|
+
# This is a cost / guardrail / main-loop policy choice, NOT a capability verdict — AA and
|
|
41
|
+
# Epoch AI disagree on which of the two leads general intelligence and call it effectively a
|
|
42
|
+
# tie, while Opus 5 leads clearly on agentic knowledge work at a lower cost per task. Fable 5
|
|
43
|
+
# does keep the lead on factual breadth, so name it explicitly for recall-heavy consults. If you want
|
|
42
44
|
# to route to it anyway, pick it in the configurator or set e.g.
|
|
43
45
|
# taste-final: claude claude-fable-5 high
|
|
44
46
|
# in ~/.omnilane/routing.local.yaml.
|
package/scripts/dispatch.sh
CHANGED
|
@@ -3,7 +3,7 @@ set -euo pipefail
|
|
|
3
3
|
# omnilane dispatch — one routing table, any harness.
|
|
4
4
|
#
|
|
5
5
|
# Usage:
|
|
6
|
-
# dispatch.sh [--background] [--dry-run] [--mode advise|work] [--workdir DIR]
|
|
6
|
+
# dispatch.sh [--background] [--dry-run] [--mode advise|work|sysops] [--workdir DIR]
|
|
7
7
|
# [--vendor V] [--model M] [--effort E] [--timeout SECONDS]
|
|
8
8
|
# [--job-timeout SECONDS] LANE "TASK TEXT"
|
|
9
9
|
# dispatch.sh [--json] --list [--json]
|
|
@@ -50,7 +50,11 @@ flags:
|
|
|
50
50
|
--background run in the background and print the JOB_ID
|
|
51
51
|
--dry-run print the fully resolved dispatch plan and stop
|
|
52
52
|
before any provider call or job state
|
|
53
|
-
--mode advise|work
|
|
53
|
+
--mode advise|work|sysops
|
|
54
|
+
advise (read-only, default), work (may edit files),
|
|
55
|
+
or sysops (work without the vendor sandbox, for
|
|
56
|
+
service operations like launchctl — codex only;
|
|
57
|
+
other vendors treat it as work)
|
|
54
58
|
--workdir DIR working directory handed to the vendor CLI
|
|
55
59
|
--vendor V pin one configured vendor (codex|claude|grok|gemini|kimi|qwen|opencode|openrouter|deepseek|zai|mistral|groq|cerebras)
|
|
56
60
|
--model M override the routed model
|
|
@@ -124,7 +128,7 @@ print_dry_run_plan() {
|
|
|
124
128
|
local background=no task_source=argument write_worktree=no job_timeout=disabled
|
|
125
129
|
[[ "$BACKGROUND" -eq 1 ]] && background=yes
|
|
126
130
|
[[ "$TASK" == "-" ]] && task_source=stdin
|
|
127
|
-
[[ "$MODE" == "work" ]] && write_worktree=yes
|
|
131
|
+
[[ "$MODE" == "work" || "$MODE" == "sysops" ]] && write_worktree=yes
|
|
128
132
|
[[ -n "$JOB_TIMEOUT" ]] && job_timeout="$JOB_TIMEOUT"
|
|
129
133
|
printf 'dry_run=yes\n'
|
|
130
134
|
print_dry_run_value lane "$LANE"
|
|
@@ -487,7 +491,7 @@ LANE="$1"
|
|
|
487
491
|
TASK="$2"
|
|
488
492
|
[[ "$LANE" =~ ^[a-z][a-z0-9-]*$ ]] || { echo "omnilane: invalid lane name" >&2; exit 2; }
|
|
489
493
|
# A typo like --mode advice must not fall through to the write-enabled branch.
|
|
490
|
-
[[ "$MODE" == "advise" || "$MODE" == "work" ]] || { echo "omnilane: invalid --mode (advise|work)" >&2; exit 2; }
|
|
494
|
+
[[ "$MODE" == "advise" || "$MODE" == "work" || "$MODE" == "sysops" ]] || { echo "omnilane: invalid --mode (advise|work|sysops)" >&2; exit 2; }
|
|
491
495
|
if [[ -n "$OVERRIDE_VENDOR" ]] &&
|
|
492
496
|
! [[ "$OVERRIDE_VENDOR" =~ ^(${OMNILANE_OVERRIDE_VENDOR_ALT})$ ]]; then
|
|
493
497
|
echo "omnilane: invalid vendor (${OMNILANE_OVERRIDE_VENDOR_ALT})" >&2
|
|
@@ -567,7 +571,7 @@ fi
|
|
|
567
571
|
[[ -n "$JOB_TIMEOUT" ]] || JOB_TIMEOUT="${OMNILANE_JOB_TIMEOUT:-}"
|
|
568
572
|
CODEX_NONGIT_WORK=0
|
|
569
573
|
CODEX_NONGIT_AUTO_JOB_TIMEOUT=0
|
|
570
|
-
if [[ "$VENDOR" == "codex" && "$MODE" == "work" ]]; then
|
|
574
|
+
if [[ "$VENDOR" == "codex" && ( "$MODE" == "work" || "$MODE" == "sysops" ) ]]; then
|
|
571
575
|
# The target directory is authoritative. Caller-supplied GIT_* state must not
|
|
572
576
|
# redirect or corrupt discovery, so probe with a minimal clean environment.
|
|
573
577
|
GIT_WORKTREE_STATE="$(env -i PATH="$PATH" HOME="${HOME:-}" \
|
package/scripts/release-audit.sh
CHANGED
|
@@ -285,6 +285,43 @@ if [[ "$require_tag" -eq 1 ]]; then
|
|
|
285
285
|
else
|
|
286
286
|
fail annotated-release-tag
|
|
287
287
|
fi
|
|
288
|
+
|
|
289
|
+
# A pushed tag with no GitHub release is invisible to anyone browsing the
|
|
290
|
+
# releases page, and nothing else in this audit notices: v0.11.0 sat that way
|
|
291
|
+
# for a week. Warn rather than fail — this audit must work offline and in CI,
|
|
292
|
+
# and the target's own release legitimately does not exist yet at audit time,
|
|
293
|
+
# so the target tag is excluded and only older tags are checked.
|
|
294
|
+
release_gap_checked=0
|
|
295
|
+
if command -v gh >/dev/null 2>&1 &&
|
|
296
|
+
git -C "$ROOT" remote get-url origin 2>/dev/null | grep -q 'github\.com' &&
|
|
297
|
+
gh auth status >/dev/null 2>&1; then
|
|
298
|
+
remote_tags="$(git -C "$ROOT" ls-remote --tags origin 2>/dev/null |
|
|
299
|
+
grep -v '\^{}$' | sed -n 's#.*refs/tags/##p' | sort -u)"
|
|
300
|
+
if [[ -n "$remote_tags" ]]; then
|
|
301
|
+
released_tags="$(gh release list --limit 200 --json tagName --jq '.[].tagName' 2>/dev/null || true)"
|
|
302
|
+
if [[ -n "$released_tags" ]]; then
|
|
303
|
+
release_gap_checked=1
|
|
304
|
+
missing_releases=""
|
|
305
|
+
# Only the few most recent tags. Older gaps are real but historical, and
|
|
306
|
+
# a check that stays yellow forever is a check everyone learns to ignore;
|
|
307
|
+
# this one exists to catch the release you just forgot.
|
|
308
|
+
while IFS= read -r remote_tag; do
|
|
309
|
+
[[ -n "$remote_tag" ]] || continue
|
|
310
|
+
[[ "$remote_tag" == "v$target" ]] && continue
|
|
311
|
+
printf '%s\n' "$remote_tags" | grep -Fxq "$remote_tag" || continue
|
|
312
|
+
if ! printf '%s\n' "$released_tags" | grep -Fxq "$remote_tag"; then
|
|
313
|
+
missing_releases="$missing_releases $remote_tag"
|
|
314
|
+
fi
|
|
315
|
+
done <<<"$(git -C "$ROOT" tag -l --sort=-creatordate | head -6)"
|
|
316
|
+
if [[ -n "$missing_releases" ]]; then
|
|
317
|
+
warn "github-release-missing:${missing_releases# }"
|
|
318
|
+
else
|
|
319
|
+
pass github-release-coverage
|
|
320
|
+
fi
|
|
321
|
+
fi
|
|
322
|
+
fi
|
|
323
|
+
fi
|
|
324
|
+
[[ "$release_gap_checked" -eq 1 ]] || warn github-release-check-skipped
|
|
288
325
|
else
|
|
289
326
|
warn release-tag-not-required
|
|
290
327
|
fi
|
|
@@ -3,6 +3,9 @@ set -euo pipefail
|
|
|
3
3
|
# omnilane runner: OpenAI Codex CLI
|
|
4
4
|
# Usage: run-codex.sh MODE WORKDIR MODEL EFFORT PROMPT_FILE OUTPUT_FILE
|
|
5
5
|
# MODE = advise (read-only, ephemeral) | work (may edit files in WORKDIR)
|
|
6
|
+
# | sysops (work minus the Seatbelt sandbox: service operations like
|
|
7
|
+
# launchctl are denied under workspace-write, so sysops runs with
|
|
8
|
+
# -s danger-full-access; explicit per-dispatch opt-in only)
|
|
6
9
|
|
|
7
10
|
source "$(dirname "${BASH_SOURCE[0]}")/../lib/common.sh"
|
|
8
11
|
|
|
@@ -17,6 +20,8 @@ ARGS=(exec -m "$MODEL" -o "${OUTPUT_FILE}.tmp" --skip-git-repo-check)
|
|
|
17
20
|
[[ -n "$EFFORT" && "$EFFORT" != "-" ]] && ARGS+=(-c "model_reasoning_effort=\"$EFFORT\"")
|
|
18
21
|
if [[ "$MODE" == "advise" ]]; then
|
|
19
22
|
ARGS+=(--ephemeral -s read-only)
|
|
23
|
+
elif [[ "$MODE" == "sysops" ]]; then
|
|
24
|
+
ARGS+=(-s danger-full-access)
|
|
20
25
|
else
|
|
21
26
|
ARGS+=(-s workspace-write)
|
|
22
27
|
fi
|