システム設計
アーキテクチャが境界を守る仕組み
本番システムは、受け入れるものと同じくらい拒否するものによって定義されます。 ブラウザの作業体験を一元化しながら、実行、認証情報、リポジトリ、プロセス権限は選択したノードに残します。
制御プレーン
Supervised node
ユーザー単位の監視デーモンが端末認証、ローカルポリシー、アウトバウンドトンネルを管理します。
Typed WSS broker
ブローカーは型付きの制御、端末、差分、判断フレームを多重化し、汎用TCPプロキシにはなりません。
Detached workspaces
リポジトリ作業には独立Git worktree、それ以外には非公開スクラッチ領域を割り当てます。
リクエストのライフサイクル
authenticated CLI or browser request
→ typed broker envelope
→ target-owned policy decision
→ detached Git worktree or scratch space
→ bounded process and tmux session
→ sequenced events and reviewed receipt障害モデル
不正な形式、期限切れ、過大、未承認、順序違反の要求はワークスペース到達前に拒否され、復旧処理は冪等かつ有界です。
検証チェックリスト
- Default deny: クラウド入力がファイルシステムや実行権限を与えることはありません。
- No inbound node port: ノードはBernatoの受信ポートを開かず、ローカルIDEは数値ループバックだけにバインドします。
- Bounded execution: サブプロセスは明示的な実行ファイルと有界ライフサイクルを持ち、判定不能時は拒否します。
- Non-executable memory: Git管理Markdownは信頼しない参照情報であり、実行可能な命令ではありません。