Repository navigation
VS Code Server: コンテナごとのボリュームが本体を重ねて持ち、更新のたびに旧版が溜まる → 本体(bin/)だけを全コンテナで 1 本のボリュームに置いて版の数に上限を置き、拡張と状態はコンテナの書き込みレイヤーに残す(#463) - #484
Conversation
bin/・extensions/ を全コンテナ共通の 1 本にし、data/ はコンテナごとに残す。 data/Machine の .devport が後勝ちになることと、devbase がコンテナごとに書く window.title がぶつかることを、空の作業用ボリュームでの確かめとコードの読みで 見つけたため。課題の「実機で確かめること」10 項目の確かめ方と結果、マージ前の 手動確認 M1〜M3 を書いた。用語集に 3 語を足した。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
共通の VS Code Server ボリューム devbase_vscode-server を ~/.vscode-server に、 コンテナごとの状態 devbase_vscode-data_<project>_<index> を ~/.vscode-server/data に 入れ子で付ける。建て直していないイメージでは入れ子の data が root のまま書けない ため(実測 D1)、起動の後の処理で所有者を揃える(D2)。entrypoint は本体の版を product.json の更新時刻の順に 5 版まで残し、入れ子の本体と古い一時の展開を消す (同時の片付けで版が減らない並べ方を D3 で確かめた)。旧形式のボリュームは devbase up の最後に名前と消し方を案内し、devbase は消さない。用語集に 2 語を足した。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 1 | codex | REQUEST_CHANGES
ドメインモデルの修正が必要な指摘 2 件。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 1 | kiro | REQUEST_CHANGES
ドメインモデルの不変条件 I1 と I2 が、プロジェクトが ~/.vscode-server/data だけを宣言した場合で矛盾する。I1 を無条件の「片方だけを足さない」から、I2 の例外(data だけ宣言のときは共通だけを足す)と両立する条件へ直すこと。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🔧 /ndf:fix サマリ | round 1 | commit dc4b464対応件数: critical=0 / major=2 / minor=0(合計 2 件) |
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 2 | claude | APPROVE
round 2 の差分(I1 の書き換え)は I2・_vscode_volumes の責務・受け入れ条件 5 のテスト行と両立しており、新たな指摘は無い。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 2 | kiro | REQUEST_CHANGES
round 1 の I1/I2 矛盾(data だけ宣言のケース)は I1 の書き換えで解消。ただし書き換えた I1 に、プロジェクトが ~/.vscode-server だけを宣言したケース(適用範囲で明示している既存の経路)での新しい食い違いが残る。1 件。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🔧 /ndf:fix サマリ | commit cbf2e89対応件数: critical=0 / major=0 / minor=0(合計 0 件) |
利用者の決定(2026-10-14)に合わせて要求・設計・用語集を書き直す。 - 共通の VS Code Server ボリューム devbase_vscode-server-bin 1 本を ~/.vscode-server/bin に付ける。extensions/・extensionsCache/・data/ は ボリュームにせず、コンテナの書き込みレイヤーに残す(devbase up の作り直しで消える) - コンテナごとの状態のボリューム(devbase_vscode-data_*)を作らない - 起動の後の処理の所有者の直しを data から bin へ移す(今の base で D4・D5 を実測) - 要求の M2・M3、前提 7(拡張の集まり)を削除し、作り直しで失うものを前提 7 に書く - 課題 #463 の本文を直し、spec-copy.py write で写しを作り直した Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bin/)だけを全コンテナで 1 本のボリュームに置いて版の数に上限を置き、拡張と状態はコンテナの書き込みレイヤーに残す(#463)
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 3 | claude | APPROVE
round 3 の差分(共有を bin/ だけにし、extensions/・extensionsCache/・data/ を書き込みレイヤーに残す再設計)は、要求・設計・用語集の間で受け入れ条件・不変条件 I1〜I11・構成要素・テスト設計の行が対応しており、既存の entrypoint(ubuntu で動き sudo で所有者を直す・準備の印の前に devbase_setup_vscode_server_dir を呼ぶ)、window_title の docker exec(開発ユーザーで data/Machine を mkdir -p)、cmd_up の down → up とも矛盾しない。新たな指摘は無い。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 3 | codex | APPROVE
指定コミット間の変更差分に、新規の critical / major 指摘はありません。判断の根拠: 利用者の承認(共有を bin/ に限定し、拡張と状態の消失を受け入れる決定)、Value 3(プロジェクトごとの状態の分離)、C4(旧形式のボリュームを自動削除しない)。
🔧 /ndf:fix サマリ | commit (なし)対応件数: critical=0 / major=0 / minor=0(合計 0 件) |
#463 の設計文書を追加しました。VS Code Server が使う共通のボリュームと、コンテナごとに持つ状態の扱いについて、要求と受け入れ条件、およびその設計をまとめています。あわせて用語集に語を加えました。実装の変更は含みません。
利用者向けの変化
移行の手順
変更の要点
issues/issue-463-requirements.mdを追加しました(253 行)。VS Code Server のボリュームについての要求と受け入れ条件をまとめています。issues/issue-463-design.mdを追加しました(480 行)。共通のボリュームとコンテナごとの状態の設計を記しています。docs/glossary.mdとdocs/glossary/glossary.jsonに、設計で使う用語を加えました。テスト
supervise.py の run のステップの結果です。
issues/issue-463-requirements.mdを読めない:[Errno 2] No such file or ...)モード: standard / 通した工程: 設計 → 要求と受け入れ条件 → ドキュメントレビュー
🤖 Generated with Claude Code
決めたこと
issues/issue-463-design.mdbin/に絞って~/.vscode-server/binに付ける(利用者の決定、2026-10-14)devbase_vscode-server-binにするbinの所有者を~/.vscode-serverの所有者へ揃えるproduct.jsonの更新時刻で並べるbin/の 3 種に限るdevbase upのたびに最後に出し、印を持たない