feat(editor): ネスト URI の案内に DEVBASE_EDITOR_SSH_HOST= でフラット URI へ切り替える方法を添える - #174
Conversation
…法を添える Remote-SSH 統合ターミナルから up し、コンテナが ssh 先とも別のホスト (WSL2 等) に あるとき、案内に出るフラット URI を毎回手で貼らないと直接 attach できなかった。 空文字による自動検出のオプトアウト (resolve_editor_ssh_host) は実装済みだが、案内 にもドキュメントにも書かれておらず、利用者が辿り着けない。 - 案内の直後に `DEVBASE_EDITOR_SSH_HOST=` (空) で恒久化できることを示す - 環境変数ガイドに「手元の context で直接開く」節を足し、前提 (実行先で `docker --context <ctx> ps` が通ること、executeInWSL のときは WSL 内に同名 context) を書く - 仕様書 (remote-docker-context) の attach URI 節へ空文字の意味を追記 - 空文字 + 解決済み context でフラット URI + settings.context で launch するテスト Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LeGvZnJ6w7NK7wWoVyN9H5
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 1 | kiro | APPROVE
既存の空文字オプトアウト(resolve_editor_ssh_host)に案内・ドキュメント・テストを追加するだけの変更で、分岐ロジックは不変。opener.py の追加は info ログ 1 行のみ、docs は変数表と新節が実装の挙動(空文字で自動検出を行わず settings.context 付きフラット URI)と一致、tests/editor/test_opener.py は案内文言と空文字時のフラット URI 起動を検証している。uv run pytest tests/editor/test_opener.py は 103 passed。修正を要する指摘はなし。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 1 | agy | APPROVE
実装・ドキュメント・テストともに要件を満たしており、指摘事項はありません。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 2 | kiro | APPROVE
hint 追加・ドキュメント・テストのみの最小変更。opener.py は logger.info 1 行の追加で分岐変更なし。ドキュメントの空文字オプトアウトの記述は resolve_editor_ssh_host(空文字→None→フラット URI)と resolve_docker_context(default 経由で settings.context 維持)の実挙動と一致。新規テストはフラット URI・settings.context=wsl 維持・subprocess 非呼び出し・ネスト案内の非表示を検証しており妥当。修正を要する指摘なし。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 2 | codex | REQUEST_CHANGES
案内の適用条件に関する修正指摘が1件あります。
`docker context show` の推測だけから settings.context が付いている構成で案内どおり DEVBASE_EDITOR_SSH_HOST= (空) を書くと、ssh_host が外れて推測も行われず settings.context が消え、提示したフラット URI と違う daemon へ繋ぎに行く (cross-review codex 指摘)。 - 案内は resolved (devbase の解決結果) か DEVBASE_EDITOR_DOCKER_CONTEXT の明示が あるときだけ出す - DEVBASE_EDITOR_DOCKER_CONTEXT の明示は ssh の有無によらず settings.context に 載せる (推測だけを ssh 先に限る) - ドキュメントに前提 (context の出所) を明記 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LeGvZnJ6w7NK7wWoVyN9H5
🔧 /ndf:fix サマリ (round 2)対応件数: critical=0 / major=1 / minor=0 (合計 1 件) 詳細
検証: |
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 3 | codex | APPROVE
修正を要する指摘はありません(対象テスト 105 件成功)。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 3 | agy | APPROVE
実装、テスト、ドキュメントの整合性を確認しました。指摘事項はありません。
Summary
Remote-SSH 統合ターミナル(Windows VS Code → Mac)から
devbase upし、コンテナが ssh 先とも別のホスト(WSL2 の docker contextwsl)にある構成で、[6/6]は Mac を経由するネスト URI でcodeを起動し、「手元の VS Code に同名の context があれば直接 attach できる」フラット URI を案内だけしていた。手元で直接開くには毎回そのフラット URI を手で貼る必要があった。空文字
DEVBASE_EDITOR_SSH_HOST=による自動検出のオプトアウト(resolve_editor_ssh_host)は実装済みだったが、案内にもドキュメントにも書かれておらず利用者が辿り着けなかったので、案内とドキュメントに示す。コードの分岐は変えない。変更点
lib/devbase/editor/opener.py: フラット URI の案内の直後にenv に DEVBASE_EDITOR_SSH_HOST= (空) を書くと、次回からこのフラット URI で直接開きますを出す。案内は context が devbase の解決結果かDEVBASE_EDITOR_DOCKER_CONTEXTの明示から来ているときだけ(docker context showの推測だけが元のときは、空文字でsettings.contextも消えるため出さない。cross-review codex 指摘)lib/devbase/editor/opener.py:DEVBASE_EDITOR_DOCKER_CONTEXTの明示は ssh の有無によらずsettings.contextに載せる(推測だけを ssh 先に限る)docs/user/environment-variables.md: 変数表に空文字の意味を追記。「手元の context で直接開く(ネストのオプトアウト)」節を追加し、前提(codeの実行先でdocker --context <ctx> psが通ること、dev.containers.executeInWSL: trueなら WSL 内に同名 context を作る)を書くdocs/specifications/remote-docker-context.md: attach URI 節に空文字オプトアウトを追記tests/editor/test_opener.py: 案内にDEVBASE_EDITOR_SSH_HOST=が含まれること/空文字 + 解決済み context でネスト無し・settings.context付きフラット URI で launch することTest plan
uv run pytest tests/editor/test_opener.py -q→ 105 passed, exit=0uv run pytest tests -q→ 2204 passed, exit=0uvx ruff check --select=E9,F63,F7,F82 lib(CI と同じ規則)→ All checks passed, exit=0docker context create wsl --docker host=unix:///var/run/docker.sock、Windows VS Code はdev.containers.executeInWSL: true、projects/investment/envにDEVBASE_EDITOR_SSH_HOST=を置いて Remote-SSH 統合ターミナルからdevbase up investment→ Mac を経由せず Windows の VS Code が WSL のinvestment-dev-1へ直接 attach(takemi-ohama/devbase-ext#22)動作確認
docs/) を更新した🤖 Generated with Claude Code
https://claude.ai/code/session_01LeGvZnJ6w7NK7wWoVyN9H5