omnilane 0.10.4 → 0.11.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 +30 -1
- package/README.ja.md +15 -0
- package/README.ko.md +15 -0
- package/README.md +18 -0
- package/README.zh-CN.md +13 -0
- package/README.zh-TW.md +13 -0
- package/VERSION +1 -1
- package/package.json +1 -1
- package/ui/app.js +853 -74
- package/ui/index.html +70 -59
- package/ui/styles.css +28 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,34 @@ semantic version tags.
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.11.0] - 2026-07-27
|
|
10
|
+
|
|
11
|
+
No routing changes. The Live Board is now readable in five languages.
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- The Live Board reads in English, Japanese, Korean, Traditional Chinese and
|
|
16
|
+
Simplified Chinese. On first load it follows the browser languages; a switcher
|
|
17
|
+
in the header overrides that and the choice is remembered in `localStorage`.
|
|
18
|
+
Every string is covered, including headings, the search placeholder, filter
|
|
19
|
+
buttons, empty and error states, content markers, and the `aria-label`
|
|
20
|
+
attributes that screen readers announce. `<html lang>` follows the selection.
|
|
21
|
+
- Job states are translated for display. The `state-` CSS classes still carry
|
|
22
|
+
the raw value, so status colours are unchanged, and the search index holds
|
|
23
|
+
both spellings: `running` and its translation both match the same job.
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
|
|
27
|
+
- Counts use `Intl.PluralRules`, so English distinguishes `1 job` from `2 jobs`
|
|
28
|
+
while languages without that distinction get a single form.
|
|
29
|
+
- The locale tables are embedded in `ui/app.js` rather than fetched as a
|
|
30
|
+
separate asset. `scripts/ui.py` deliberately allow-lists exactly three
|
|
31
|
+
read-only files, and translating the board leaves that surface untouched.
|
|
32
|
+
- The token contract test no longer bans `localStorage` by name, because the
|
|
33
|
+
language preference needs it. The replacement is narrower and stronger: every
|
|
34
|
+
`localStorage` call must reference `LANGUAGE_STORAGE_KEY`, and the session
|
|
35
|
+
token must only ever reach `sessionStorage`.
|
|
36
|
+
|
|
9
37
|
## [0.10.4] - 2026-07-26
|
|
10
38
|
|
|
11
39
|
No lane ordering changes. This release corrects documentation that could send
|
|
@@ -447,7 +475,8 @@ work to the wrong model, and records the evidence behind the shipped defaults.
|
|
|
447
475
|
- Initial shared routing table, cross-vendor dispatcher, runners, installer,
|
|
448
476
|
and baseline lint fixes.
|
|
449
477
|
|
|
450
|
-
[Unreleased]: https://github.com/Seraphim0916/omnilane/compare/v0.
|
|
478
|
+
[Unreleased]: https://github.com/Seraphim0916/omnilane/compare/v0.11.0...HEAD
|
|
479
|
+
[0.11.0]: https://github.com/Seraphim0916/omnilane/compare/v0.10.4...v0.11.0
|
|
451
480
|
[0.10.4]: https://github.com/Seraphim0916/omnilane/compare/v0.10.3...v0.10.4
|
|
452
481
|
[0.10.3]: https://github.com/Seraphim0916/omnilane/compare/v0.10.2...v0.10.3
|
|
453
482
|
[0.10.2]: https://github.com/Seraphim0916/omnilane/compare/v0.10.1...v0.10.2
|
package/README.ja.md
CHANGED
|
@@ -197,6 +197,9 @@ omnilane ui stop # 正常に停止
|
|
|
197
197
|
のみを表示し、ワーカーや
|
|
198
198
|
ベンダーの生ログは表示しません。
|
|
199
199
|
|
|
200
|
+
画面は英語・日本語・韓国語・繁体字中国語・簡体字中国語で読めます。初回はブラウザ
|
|
201
|
+
の言語に従い、ヘッダーの切り替えで上書きでき、選んだ言語はローカルに記憶されます。
|
|
202
|
+
|
|
200
203
|
コアルーティングに Python は不要で、この UI のみ Python 3.9 以降が必要です。
|
|
201
204
|
|
|
202
205
|
## 📦 インストール
|
|
@@ -503,6 +506,18 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 解決済みプラン、
|
|
|
503
506
|
|
|
504
507
|
## 📜 リリース履歴
|
|
505
508
|
|
|
509
|
+
## v0.11.0 の新機能
|
|
510
|
+
|
|
511
|
+
- **Live Board が 5 言語で読めます** — 英語・日本語・韓国語・繁体字中国語・簡体字
|
|
512
|
+
中国語。初回はブラウザの言語に従い、ヘッダーの切り替えで上書きでき、選択は
|
|
513
|
+
ローカルに記憶されます。見出し、検索プレースホルダー、フィルターボタン、空状態と
|
|
514
|
+
エラー状態、コンテンツマーカー、スクリーンリーダーが読み上げる `aria-label` まで
|
|
515
|
+
対象で、`<html lang>` も選択に追従します。
|
|
516
|
+
- **ジョブ状態も翻訳しますが、参照側は壊しません** — `state-` の CSS クラスは元の値
|
|
517
|
+
のままなのでステータス色は変わらず、検索インデックスは両方の表記を保持するため、
|
|
518
|
+
`running` でも訳語でも同じジョブに一致します。
|
|
519
|
+
- **ルーティング変更なし。** ディスパッチ動作は v0.10.4 と同一です。
|
|
520
|
+
|
|
506
521
|
## v0.10.4 の新機能
|
|
507
522
|
|
|
508
523
|
- **`long-context` がマルチホップ作業を誤ったモデルに向けなくなりました** — この
|
package/README.ko.md
CHANGED
|
@@ -193,6 +193,9 @@ omnilane ui stop # 정상 중지
|
|
|
193
193
|
`127.0.0.1` 에만 바인딩하고 무작위 토큰으로 보호하는 읽기 전용 화면입니다.
|
|
194
194
|
`task.txt` 와 공개용 `out.txt` 만 표시하며 워커나 벤더 원시 로그는 표시하지 않습니다.
|
|
195
195
|
|
|
196
|
+
화면은 영어, 일본어, 한국어, 번체 중국어, 간체 중국어로 볼 수 있습니다. 처음에는
|
|
197
|
+
브라우저 언어를 따르고, 헤더의 선택기로 바꿀 수 있으며 선택은 로컬에 기억됩니다.
|
|
198
|
+
|
|
196
199
|
핵심 라우팅에는 Python 이 필요 없고, 이 UI 에만 Python 3.9 이상이 필요합니다.
|
|
197
200
|
|
|
198
201
|
## 📦 설치
|
|
@@ -487,6 +490,18 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 완전히 해석된 계
|
|
|
487
490
|
|
|
488
491
|
## 📜 릴리스 기록
|
|
489
492
|
|
|
493
|
+
## v0.11.0 새 기능
|
|
494
|
+
|
|
495
|
+
- **Live Board 를 5 개 언어로 읽을 수 있습니다** — 영어, 일본어, 한국어, 번체 중국어,
|
|
496
|
+
간체 중국어. 처음에는 브라우저 언어를 따르고, 헤더의 선택기로 바꿀 수 있으며 선택은
|
|
497
|
+
로컬에 기억됩니다. 제목, 검색 자리표시자, 필터 버튼, 빈 상태와 오류 상태, 콘텐츠
|
|
498
|
+
마커, 스크린 리더가 읽는 `aria-label` 까지 모두 포함하며 `<html lang>` 도 선택을
|
|
499
|
+
따릅니다.
|
|
500
|
+
- **작업 상태도 번역하지만 이를 읽는 쪽은 그대로입니다** — `state-` CSS 클래스는 원래
|
|
501
|
+
값을 유지해 상태 색상이 바뀌지 않고, 검색 색인은 두 표기를 모두 담고 있어 `running`
|
|
502
|
+
으로도 번역어로도 같은 작업이 검색됩니다.
|
|
503
|
+
- **라우팅 변경 없음.** 디스패치 동작은 v0.10.4 와 동일합니다.
|
|
504
|
+
|
|
490
505
|
## v0.10.4 새 기능
|
|
491
506
|
|
|
492
507
|
- **`long-context` 가 더 이상 다중 홉 작업을 잘못된 모델로 보내지 않습니다** — 이
|
package/README.md
CHANGED
|
@@ -195,6 +195,10 @@ The reference is memory-only and disappears when the page closes. The board
|
|
|
195
195
|
binds only to `127.0.0.1`, uses a random token, and is read-only. It shows
|
|
196
196
|
`task.txt` and the public `out.txt`, but never raw worker or vendor logs.
|
|
197
197
|
|
|
198
|
+
The board reads in English, Japanese, Korean, Traditional Chinese and Simplified
|
|
199
|
+
Chinese. It follows the browser language on first load; the switcher in the
|
|
200
|
+
header overrides that and the choice is remembered locally.
|
|
201
|
+
|
|
198
202
|
Core routing does not need Python; only this UI requires Python 3.9 or newer.
|
|
199
203
|
|
|
200
204
|
## 📦 Install
|
|
@@ -533,6 +537,20 @@ working notes, including per-benchmark caveats, live in
|
|
|
533
537
|
|
|
534
538
|
## 📜 Release history
|
|
535
539
|
|
|
540
|
+
## What's new in v0.11.0
|
|
541
|
+
|
|
542
|
+
- **The Live Board reads in five languages** — English, Japanese, Korean,
|
|
543
|
+
Traditional Chinese and Simplified Chinese. It follows the browser languages
|
|
544
|
+
on first load, the switcher in the header overrides that, and the choice is
|
|
545
|
+
remembered locally. Headings, the search placeholder, filter buttons, empty
|
|
546
|
+
and error states, content markers and the `aria-label` attributes screen
|
|
547
|
+
readers announce are all covered, and `<html lang>` follows the selection.
|
|
548
|
+
- **Job states are translated without breaking anything that reads them** — the
|
|
549
|
+
`state-` CSS classes keep the raw value so status colours are unchanged, and
|
|
550
|
+
the search index holds both spellings, so `running` and its translation match
|
|
551
|
+
the same job.
|
|
552
|
+
- **No routing changes.** Dispatch behaviour is identical to v0.10.4.
|
|
553
|
+
|
|
536
554
|
## What's new in v0.10.4
|
|
537
555
|
|
|
538
556
|
- **`long-context` no longer points multi-hop work at the wrong model** — the
|
package/README.zh-CN.md
CHANGED
|
@@ -178,6 +178,9 @@ Esc。服务器发送事件(SSE)会实时更新,又不会重建当前聚焦的
|
|
|
178
178
|
`127.0.0.1`、使用随机令牌保护、全程只读。界面只显示 `task.txt` 和公开的
|
|
179
179
|
`out.txt`,不会显示工作端或厂商原始日志。
|
|
180
180
|
|
|
181
|
+
界面提供英文、日文、韩文、繁体中文与简体中文。首次加载依浏览器语言决定,可用标题栏
|
|
182
|
+
的切换器覆盖,选择会记在本地。
|
|
183
|
+
|
|
181
184
|
核心路由不需要 Python;只有这个界面需要 Python 3.9 或更高版本。
|
|
182
185
|
|
|
183
186
|
## 📦 安装
|
|
@@ -462,6 +465,16 @@ plan 模式,或只给只读工具集)。要改文件必须同时给 `--mode work
|
|
|
462
465
|
|
|
463
466
|
## 📜 版本历程
|
|
464
467
|
|
|
468
|
+
## v0.11.0 新功能
|
|
469
|
+
|
|
470
|
+
- **Live Board 提供五种语言** —— 英文、日文、韩文、繁体中文与简体中文。首次加载依
|
|
471
|
+
浏览器语言决定,可用标题栏的切换器覆盖,选择会记在本地。标题、搜索提示文字、
|
|
472
|
+
筛选按钮、空状态与错误状态、内容标记,以及屏幕阅读器会朗读的 `aria-label` 全部
|
|
473
|
+
涵盖,`<html lang>` 也跟着切换。
|
|
474
|
+
- **作业状态有翻译,但读取状态的地方不受影响** —— `state-` 的 CSS class 仍是原始值,
|
|
475
|
+
状态配色不变;搜索索引同时收录两种写法,输入 `running` 或译文都能找到同一条作业。
|
|
476
|
+
- **路由没有任何变更。** 派发行为与 v0.10.4 相同。
|
|
477
|
+
|
|
465
478
|
## v0.10.4 新功能
|
|
466
479
|
|
|
467
480
|
- **`long-context` 不再把多跳任务指向错的模型**——这条通道原本自称长文*整合*,
|
package/README.zh-TW.md
CHANGED
|
@@ -178,6 +178,9 @@ omnilane ui stop # 正常停止
|
|
|
178
178
|
`127.0.0.1`、用隨機 token 保護、全程唯讀。畫面只顯示 `task.txt` 與公開的
|
|
179
179
|
`out.txt`,不顯示工作端或廠商原始 log。
|
|
180
180
|
|
|
181
|
+
畫面提供英文、日文、韓文、繁體中文與簡體中文。首次載入依瀏覽器語言決定,可用標題列
|
|
182
|
+
的切換器覆寫,選擇會記在本機。
|
|
183
|
+
|
|
181
184
|
核心路由不需要 Python;只有這個介面需要 Python 3.9 以上。
|
|
182
185
|
|
|
183
186
|
## 📦 安裝
|
|
@@ -472,6 +475,16 @@ plan 模式,或只給唯讀工具集)。要改檔必須同時給 `--mode work`
|
|
|
472
475
|
|
|
473
476
|
## 📜 版本歷程
|
|
474
477
|
|
|
478
|
+
## v0.11.0 新功能
|
|
479
|
+
|
|
480
|
+
- **Live Board 提供五種語言** —— 英文、日文、韓文、繁體中文與簡體中文。首次載入依
|
|
481
|
+
瀏覽器語言決定,可用標題列的切換器覆寫,選擇會記在本機。標題、搜尋提示文字、
|
|
482
|
+
篩選按鈕、空狀態與錯誤狀態、內容標記,以及螢幕閱讀器會朗讀的 `aria-label` 全部
|
|
483
|
+
涵蓋,`<html lang>` 也跟著切換。
|
|
484
|
+
- **工作狀態有翻譯,但讀取狀態的地方不受影響** —— `state-` 的 CSS class 仍是原始值,
|
|
485
|
+
狀態配色不變;搜尋索引同時收錄兩種寫法,打 `running` 或譯文都找得到同一筆工作。
|
|
486
|
+
- **路由沒有任何變更。** 派工行為與 v0.10.4 相同。
|
|
487
|
+
|
|
475
488
|
## v0.10.4 新功能
|
|
476
489
|
|
|
477
490
|
- **`long-context` 不再把多跳任務指向錯的模型**——這條通道原本自稱長文*整合*,
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.11.0
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnilane",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.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"
|