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 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.10.4...HEAD
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.10.4
1
+ 0.11.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omnilane",
3
- "version": "0.10.4",
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"