Skip to content

path state isolation_ja

Kazushi Kamegawa edited this page Oct 4, 2026 · 3 revisions

パス対応付けと所有者状態の分離 — Issue #152

English

追跡

Issue #149 / Issue #152 / PR #162 / Issue #153 / Issue #155

目的と範囲

Issue #152 の Phase 3 実装完了を記録し、後続 Issue との範囲を明確にします。正本は Codex App Server 更新とリモート接続 の Phase 3、doc/path-state-isolation-design_ja.md、ADR-013 です。

再接続、履歴、隔離下書き、保存済み添付 metadata の詳細な後続計画は 接続・履歴・下書きの復旧 — Issue #153 を参照してください。

現状(2026-10-04)

PR #162 と follow-up PR #163 で提供済み。Issue #152 は close 済みです。

  • LocalPath/ServerPath の型分離、Windows ドライブ/UNC と POSIX ルートのパス要素単位の対応付け、symlink/junction の物理的包含検証(LocalPathBoundary)。
  • 作業ディレクトリ、IDE コンテキスト、添付、localImage、承認パスで共通のマッパーを使用。対応付けできない添付は turn/start 前に拒否。
  • リモートスキルのパスはサーバーの不透明な識別子として扱い、ホストのファイルシステムを参照しない。
  • 揮発的な所有者パーティション(接続種別、プロファイル、エンドポイント、ルート、資格情報ダイジェスト、Worker インスタンス、所有者世代)、契約 v18 の所有者スタンプ、所有者付き要求、Worker と Extension の両方での古い結果の破棄。
  • 所有者の置換で、選択中会話、会話表示、入力欄、添付、スキル、モデル、使用量、承認をクリアする。アカウントの継続を証明できない間はスキルのディスクキャッシュを無効化する。

PR #163 ではアカウント変更のライフサイクル、添付の全件検証、対応付け済みスレッド作業ディレクトリ表示、退役所有者の rate-limit 通知フィルター、自動テスト、実施可能な Experimental Instance 受け入れ確認を完了しました。現在も所有者の置換時には上記の active state をクリアします。Phase 4(#153)ではそのクリア前に対象となる入力欄/設定のスナップショットをメモリ内に取得して隔離し、ユーザーの確認後に限り復元できます。active な会話表示、承認、入力、cache、event を所有者間で引き継ぎません。

スコープの修正

元の Issue の項目 担当
変更ファイルリンク、型付きファイル成果物、画像プレビュー、ローカルで開く/表示 Issue #155(#152 のマッパーと境界を使用)
保存済み添付、復元履歴、保持した下書き Issue #153(表示と操作は Issue #155、#152 の所有者パーティションを使用)

Issue #153 は保存済み添付 metadata、復元履歴、メモリ内に隔離する下書き workflow を担当します。Issue #155 は型付き成果物と保存済み添付 payload の表示・操作を担当します。これらの後続機能は本 Issue で提供した mapper、物理境界、所有者パーティションを使用します。

Preview

リモートモードは Issue #153 が完了し、上流の WebSocket 転送が実験的でなくなるまで Preview を維持します。

PR #163 で記録した検証

  • Debug/Release build は警告ゼロで成功。
  • Release Core test: 331 passed、5 skipped(symlink 権限を利用できないため)。Release UI test: 318 passed、1 skipped。
  • 固定 CLI 0.159.1 の schema-cache と live initialize 確認、および git diff --check が成功。
  • Experimental Instance screenshot ではサインイン済みの startup Ready と、サインアウト後に Sign in が表示された新しい Ready session を確認。リモート profile 切り替え、添付拒否、リモートスキル選択は自動テストで確認し、これらの screenshot があるとはしていません。

リモートモードは Issue #153 が完了し、上流の WebSocket 転送が実験的でなくなるまで Preview を維持します。実行できない確認は明示的に未完了として残します。

Clone this wiki locally