Push261105 — v2 web UI archive 修復(2.0.25→2.0.31)+ v1 1.19.5 native 復旧
GitHub Release · 中文版 · English · Español · 日本語 · 繁體中文
概要
本バッチは native ラインの修正 2 件です。1 つは v2 の 2.0.25〜2.0.31
全版に 及んだ web UI archive のサイレント回帰、もう 1 つは前回撤回された
v1 native 1.19.5 の復旧です。
- v2 native
2.0.25–2.0.31(7 版)— web UI/_assets/を修復 - v1 native
1.19.5— 復活し、再び利用可能に
計 16 パッケージ:v2 14 + v1 2(各版 deb + pacman)、SHA256SUMS 一覧付き。
v2:web UI archive の回帰
上流の 2.0.25 で app-assets.ts の skipBuild
ガードが書き直され、旧来の
完全一致アンカーがサイレントに合わなくなりました。その結果パッチが
スキップされ、ビルド済みランタイムに埋め込まれた /_assets/
エントリは 0 に。serve と
pair は /_assets/* への全リクエストに 404
を返し、 ログイン後の web UI は白画面になりました。TUI
は普通に動いていたため、 ここからしか異常が見えない ——
それが見逃された原因です。
修正は 3 層構造です:
- アンカーを完全一致から正規表現アンカーに変更し、上流のフォーマット 変動でパッチが外れないようにする;
- アンカーが見つからなければハードフェイル —— サイレントスキップの廃止;
- ビルド後の strings アサーションで、ランタイムが実際にアセットを 埋め込んでいることを確認。
インストール済み環境でのセルフチェック:
strings -a $PREFIX/bin/opencode | grep -c '/_assets/'
# 0 より大きい必要あり —— 本バッチは全版で 7v1:1.19.5 の復旧
v1 native 1.19.5 は前回バッチで撤回されました。原因:bun
≥1.4.1 が 書き出すモジュールグラフには UTF-16
本体(encoding=2)と 38 個の Text loader
モジュールが含まれる一方、bun 1.4.0 ベースはどちらも解釈できません ——
前者は起動時に Invalid character '\0'、後者は
Unexpected identifier で 落ちます。
修正はモジュールグラフ後処理ツール
tools/transplant/fix_graph_for_bun140.py です:UTF-16
本体を UTF-8 に変換、 Text モジュールを
export default "..." に書き換え、消費側に namespace shim
を設置、再配置モジュールはデッドゾーンへ退避。bun の再コンパイルは
不要で、上流 bun#47906 にも依存しません(同 issue は未解決のまま)。
v1 pty splice
v1 native パッケージには pty splice
(lib/opencode1/pty/{librust_pty_arm64_musl_patched.so, shim.so})が同梱されるようになり、
POST /api/pty が動作します。splice の無い旧 native
パッケージはこの エンドポイントで 500 を返していました。
互換性
- 同一世代内では native / wrapper / compressed は排他です。1 つの形態のみ インストールできます。
- 世代をまたぐ
opencode1*(v1)とopencode*(v2)は共存可能です。 - v1 パッケージのバージョンはすべて
2.0.0未満です。
検証
| 項目 | 結果 |
|---|---|
v2 2.0.25–2.0.31 の全版で
strings -a <runtime> | grep -c '/_assets/' |
各版 7 |
serve が /_assets/* に 200 を返す |
合格 |
v1 1.19.5 TUI が画面に描画される |
合格 |
v1 1.19.5 POST /api/pty
が実行中プロセスを返す |
合格 |
インストール
curl -fsSL https://hope2333.github.io/repo/install.sh | sh -s -- --install opencode
pacman -S opencode # v2 メインライン
pacman -S opencode1 # v1 メインライン(v2 と共存)既知の問題
- v1
1.19.5の旧端末での初回描画:bootstrap 中に約 75 秒待つことが あります。resize を一度発生させると再描画され、以後は正常です。 - v1
1.19.5と1.19.4は相互にロールバック可能です。 - 上流 bun#47906 は未解決のままですが、本ビルドは依存していません。