Epic: #184
背景
PR #178 (macOS .app) で F4 (tmux / ttyd 同梱) は skeleton 状態 で deferred。`build-bin.yml` は `workflow_dispatch` 限定で artifact 生成しない。`packages/desktop/scripts/build-bin/{build-tmux,build-ttyd}.sh` も skeleton。
現状 .app 起動時に PATH の tmux / ttyd を見つけている (`packages/server/src/lib/tmux-manager.ts:resolveTmuxPath` / `ttyd-manager.ts`)。非エンジニア向け配布では `brew install tmux ttyd` の前提を消したい。
やること
1. build-bin.yml の実装
- `packages/desktop/scripts/build-bin/build-tmux.sh` を実装
- tmux source tarball fetch + SHA256 verify (manifest.json の placeholder を埋める)
- macos-14 runner で arm64 native configure / make
- 依存 dylib (libevent, ncurses 等) を `build-assets/Frameworks/` に配置
- `install_name_tool -add_rpath @loader_path/../../Frameworks` で rpath 調整
- `build-ttyd.sh` 同様 (libwebsockets, libssl, libcrypto 依存)
- `collect-licenses.sh` で OSS LICENSE / NOTICE を `build-assets/licenses/` に集約
- `build-bin.yml` を `workflow_call` 化して manifest.json hash で actions/cache 共有
2. release.yml への組み込み
- `build-bin.yml` を `uses:` で呼んで artifact (`ark-bin-macos-arm64`) を取得
- `actions/download-artifact@v4` で `packages/desktop/build-assets/` に展開
- 既存の `electron-builder.yml` `extraResources` (bin / Frameworks / licenses 行) はすでに skeleton で書かれているのでパス変更不要
3. server 側の解決ロジック確認
- `packages/server/src/lib/system.ts:resolveTmuxPath` の `getBundledBinDir()` 経路が `process.resourcesPath/bin/tmux` を見ているはずなので、同梱版が配置されれば自動的に優先される。動作確認のみ。
4. release smoke 拡張
スコープ外
- Linux desktop 版の tmux 同梱 (今は server mode で OS 標準 tmux を使う前提)
- Windows: そもそも tmux が ない、別 Epic
Epic: #184
背景
PR #178 (macOS .app) で F4 (tmux / ttyd 同梱) は skeleton 状態 で deferred。`build-bin.yml` は `workflow_dispatch` 限定で artifact 生成しない。`packages/desktop/scripts/build-bin/{build-tmux,build-ttyd}.sh` も skeleton。
現状 .app 起動時に PATH の tmux / ttyd を見つけている (`packages/server/src/lib/tmux-manager.ts:resolveTmuxPath` / `ttyd-manager.ts`)。非エンジニア向け配布では `brew install tmux ttyd` の前提を消したい。
やること
1. build-bin.yml の実装
2. release.yml への組み込み
3. server 側の解決ロジック確認
4. release smoke 拡張
スコープ外