Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/i18n-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
"docs/releases/v1.0.4.md": "5185d9ff93a98077621ec017e54f73138dcf05fe9de121b073f9a097240b40b4",
"docs/validation/69-rc.md": "e490c6a9ad0fec9108b91c74922cedac7ddf214ed405f8f5523da22f48a4b222",
"docs/validation/85-antigravity.md": "468ba1702a60c57079730ab5b7545b0b1968f11cc6832f0ac88460664ba87723",
"docs/wake.md": "744f5da5009e824a7b408b499f56f2c8acc695c9b8e7d9421c7e28a7a658d52e",
"docs/wake.md": "cde135da2ea7be21c815bb265e694f737dbe467d8e76bb82eb118e3b86e29d22",
"plugins/session-peer/README.md": "a4eeae54caac9ad824d740f7f319561f060bc9c2bbbbf7def2bdd8e36dbcd1c6"
}
}
12 changes: 12 additions & 0 deletions docs/ja/wake.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# 明示的なCodexの起動

## 連鎖する wake の制限

CLI と MCP は投入前に `SESSION_PEER_WAKE_DEPTH` と `SESSION_PEER_WAKE_ORIGIN` を読み、各 wake で段数を一つ増やして発生元 UUID を保持します。既定は 3 段で、超過時は何も投入せず `wake_depth_exceeded` を返します。運用者は `--wake-max-depth` または `SESSION_PEER_WAKE_MAX_DEPTH` で 0–16 の範囲で明示的に変更できます。0 は wake を無効にします。不正または不完全な文脈は投入前に `invalid_wake_context` で拒否します。通常の送信は従来どおりキューへの投入のみです。

所有する app-server に増加後の文脈を渡します。SSH は環境転送に頼らず、型を検証した文脈を渡します。宛先は受け取った限度を下げられますが上げられません。複数宛先は発生元を共有しますが予算は独立です。MCP は起動時の環境を読み、呼び出したスレッドを認証しません。Wake はキューメッセージに診断表示を付け、投入後または正常な dry-run 後に `depth`、`origin`、`maxDepth` を含む `wakeProvenance` を追加します。表示も 32 KiB 制限に含まれます。表示や本文は権限を与えず、段数を復元するためにキュー・履歴・会話本文を読みません。

非アクティブ対象の起動は正規化されたホームとスレッドごとに 60 秒間で 3 回が既定です。運用者が管理する `SESSION_PEER_WAKE_TARGET_RATE` は 0–16 を受け付け、0 は非アクティブ対象の起動を無効にします。予約は既存の wake ロック下に保存します。`wake_rate_exceeded` は投入前に拒否し、読めない・大きすぎる・不正な状態は `wake_rate_state_invalid` で拒否します。失敗や中断でも予約は残り、時計が戻っても保守的に保持します。Dry-run とアクティブだと確認したライターは起動枠を消費しません。既存の `wake_in_progress` と `already_active` は維持します。対象やホストの予算は独立し、運用者や同一ユーザーのプロセスは協調的な状態を初期化できるため、全体の費用上限や呼び出し元の認証ではありません。

固定した Codex 0.154.0 ソースでは、シェルの `inherit="all"` は除外規則や `include_only` がなければ変数を保持し、`inherit="core"` と `inherit="none"` は明示的な設定がなければ除去します。既定の秘密名フィルターには該当しません。stdio MCP の既定の許可リストには含まれず、新しい MCP プロセスには `env_vars` 転送が必要です。既存・共有 MCP プロセスは後の呼び出し元の環境を受け取りません。静的な `env` 設定は文脈を初期化したり競合させたりします。文脈が失われると新しいローカル発生元になるため全体の段数上限は保証できず、ローカル起動制限は別の補助策です。承認・プロファイル・ネイティブ環境ポリシーは自動変更しません。

隔離した子プロセスのテストは CLI・MCP・SSH の文脈と app-server 代替プロセスの環境を検証します。別途明示的に選ぶネイティブテストは、macOS arm64 用 Codex 0.154.0 の実際の環境構築経路を確認します。`command/exec` のシェルポリシー 6 ケースと、専用 stdio MCP テストサーバーを起動する `mcpServerStatus/list` の 4 ケースが対象です。このサーバーに受領確認機能はありません。合成した環境情報だけを調べ、ユーザー資格情報・スレッド・ターン・プロンプト・モデル・MCP ツール呼び出し・wake は使用しません。別途用意した固定バイナリを `SESSION_PEER_CODEX154_ENV_BINARY` に指定し、`python3 -m unittest tests.codex.test_wake_native_environment` を実行します。ダウンロードやインストールは行わず、異なるバイナリは拒否します。未指定ではスキップし、実行証拠にはなりません。リリース圧縮ファイルの SHA-256 は `344310a0a591c1b192e04feff304321a69907c9498baaac331ca7e16ebcef9d7` で、展開後のバイナリハッシュもテストに固定しています。これは当該プラットフォーム・バージョンの環境経路のみの証拠であり、モデルターン・実際の wake・他のプラットフォーム・後続バージョンの証拠ではありません。出典: [固定したシェルポリシー](https://github.com/openai/codex/blob/6b9826e3aa83b1a5947db50f4332cb9c65f1b340/codex-rs/protocol/src/shell_environment.rs)、[固定した MCP 環境](https://github.com/openai/codex/blob/6b9826e3aa83b1a5947db50f4332cb9c65f1b340/codex-rs/rmcp-client/src/utils.rs)、[現在の設定資料](https://developers.openai.com/codex/config-reference/)。

`session-peer send --to codex:<uuid> --wake --wake-timeout 30 "message"`

通常のsendはキュー送信のみのままです。Wakeは、対象の既存の設定のもとでモデルの使用量を発生させ、セッション履歴やプロジェクトファイルを変更する可能性があります。これにはmacOS/Linuxおよびライフサイクルとネイティブライターの排他制御がテストされたバージョンである**Codex CLI 0.154.0**が必要です。他のバージョンは、個別に検証されるまで安全側に倒して失敗します。このバージョン境界はwakeにのみ適用されます。
Expand Down
12 changes: 12 additions & 0 deletions docs/ko/wake.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# 명시적 Codex wake

## 연속 wake 제한

CLI와 MCP는 큐 제출 전에 `SESSION_PEER_WAKE_DEPTH`와 `SESSION_PEER_WAKE_ORIGIN`을 읽습니다. 각 wake는 단계를 하나 늘리고 원본 UUID를 유지합니다. 기본 한도는 3단계이며 초과하면 제출 없이 `wake_depth_exceeded`를 반환합니다. 운영자는 `--wake-max-depth` 또는 `SESSION_PEER_WAKE_MAX_DEPTH`로 0–16 범위에서 명시적으로 낮추거나 높일 수 있습니다. 0은 wake를 비활성화합니다. 잘못되거나 불완전한 문맥은 제출 전에 `invalid_wake_context`로 거부합니다. 일반 전송은 기존처럼 큐에만 제출합니다.

소유한 app-server에는 증가한 문맥을 전달합니다. SSH는 환경 변수 전달 설정 없이 형식이 검증된 문맥을 전달하며, 목적지는 받은 한도를 낮출 수 있지만 높이지 못합니다. 여러 목적지는 원본 식별자를 공유하되 예산은 독립적입니다. MCP는 시작 시점의 환경을 읽으며 호출 스레드의 신원을 인증하지 않습니다. Wake는 큐 메시지 앞에 진단용 표시를 붙이고, 제출 또는 정상 dry-run 이후 `depth`, `origin`, `maxDepth`를 담은 `wakeProvenance` 결과를 추가합니다. 표시도 32 KiB 메시지 제한에 포함됩니다. 표시와 본문은 권한을 부여하지 않으며, 단계를 복원하려고 큐·기록·대화 본문을 읽지 않습니다.

비활성 대상의 활성화는 정규 홈과 스레드별로 60초당 3회가 기본입니다. 운영자가 관리하는 `SESSION_PEER_WAKE_TARGET_RATE`는 0–16을 받으며 0은 비활성 대상의 활성화를 막습니다. 예약은 기존 wake 잠금 아래 저장됩니다. `wake_rate_exceeded`는 큐 제출 전에 거부하고, 읽을 수 없거나 너무 크거나 잘못된 상태는 `wake_rate_state_invalid`로 거부합니다. 실패·중단된 시도도 예약을 유지하고 시계가 뒤로 움직여도 보수적으로 유지합니다. Dry-run과 활성 상태가 확인된 작성기는 활성화 예산을 쓰지 않습니다. 기존 `wake_in_progress`와 `already_active` 동작은 유지됩니다. 대상·호스트별 예산은 독립적이고 운영자나 같은 사용자 프로세스가 협조적 상태를 초기화할 수 있으므로 전역 비용 한도나 호출자 인증은 아닙니다.

고정된 Codex 0.154.0 소스에서 셸의 `inherit="all"`은 제외 규칙이나 `include_only`가 없으면 이 변수를 유지하며, `inherit="core"`와 `inherit="none"`은 명시적 설정 없이는 제거합니다. 기본 비밀 이름 필터에는 걸리지 않습니다. stdio MCP의 기본 허용 목록에는 없으므로 새 MCP 프로세스에는 `env_vars` 전달을 명시해야 합니다. 기존·공유 MCP 프로세스는 나중 호출자의 환경을 받지 못합니다. 정적인 `env` 설정은 문맥을 초기화하거나 충돌시킬 수 있습니다. 필터로 문맥이 사라지면 새 로컬 원본을 만들므로 전역 단계 한도를 보장할 수 없으며, 로컬 활성화 제한은 별도의 보완책입니다. 승인·프로필·네이티브 환경 정책은 자동 변경하지 않습니다.

격리된 하위 프로세스 테스트는 CLI·MCP·SSH 문맥과 app-server 대체 프로세스의 환경을 검증합니다. 별도로 명시적 선택이 필요한 네이티브 테스트는 macOS arm64용 Codex 0.154.0의 실제 환경 구성 경로를 검증합니다. `command/exec`의 셸 정책 6가지와 전용 stdio MCP 대체 서버를 시작하는 `mcpServerStatus/list`의 4가지를 확인하며, 이 서버에는 수신 확인 기능이 없습니다. 합성 환경 정보만 확인하고 사용자 자격증명·스레드·턴·프롬프트·모델·MCP 도구 호출·wake는 사용하지 않습니다. 별도로 준비한 고정 실행 파일을 `SESSION_PEER_CODEX154_ENV_BINARY`로 지정한 뒤 `python3 -m unittest tests.codex.test_wake_native_environment`를 실행합니다. 테스트는 다운로드나 설치를 수행하지 않으며 다른 실행 파일은 거부합니다. 지정하지 않으면 건너뛰며, 이는 실제 실행 증거가 아닙니다. 릴리스 압축 파일의 SHA-256은 `344310a0a591c1b192e04feff304321a69907c9498baaac331ca7e16ebcef9d7`이고 추출된 실행 파일 해시도 테스트에 고정했습니다. 이 검증은 해당 플랫폼과 버전의 환경 전달 경로만 입증하며 모델 턴·실제 wake·다른 플랫폼·후속 Codex 버전을 입증하지 않습니다. 출처: [고정된 셸 정책](https://github.com/openai/codex/blob/6b9826e3aa83b1a5947db50f4332cb9c65f1b340/codex-rs/protocol/src/shell_environment.rs), [고정된 MCP 환경](https://github.com/openai/codex/blob/6b9826e3aa83b1a5947db50f4332cb9c65f1b340/codex-rs/rmcp-client/src/utils.rs), [현재 구성 설명서](https://developers.openai.com/codex/config-reference/).

`session-peer send --to codex:<uuid> --wake --wake-timeout 30 "message"`

일반 전송은 큐 전용으로 유지됩니다. Wake는 대상의 기존 구성에 따라 모델 사용량을 발생시키고 세션 기록 및 프로젝트 파일을 수정할 수 있습니다. 수명 주기 및 네이티브 작성기 배제가 테스트된 버전인 macOS/Linux 및 **Codex CLI 0.154.0**이 필요합니다. 다른 버전은 독립적으로 검증될 때까지 안전하게 실패(fail closed)합니다. 이 버전 경계는 wake에만 적용됩니다.
Expand Down
12 changes: 12 additions & 0 deletions docs/wake.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# Explicit Codex wake

## Chained wake limits

Before queueing, CLI and MCP read `SESSION_PEER_WAKE_DEPTH` and `SESSION_PEER_WAKE_ORIGIN`. Each wake adds one hop and retains the origin UUID. The default limit is 3 hops; exceeding it returns `wake_depth_exceeded` with nothing submitted. Operators can explicitly lower or raise `--wake-max-depth` or `SESSION_PEER_WAKE_MAX_DEPTH` within 0–16; 0 disables wakes. Invalid or incomplete context returns `invalid_wake_context` before submission. Ordinary queue-only sends remain unchanged.

The owned app-server receives the incremented context. SSH carries typed context without requiring environment forwarding; the destination can lower, not raise, the carried limit. One origin is retained across fanout, but destinations have independent budgets. MCP reads its startup environment, not the calling thread's identity. Wake adds a diagnostic queue-message prefix and, after submission or successful dry-run, a `wakeProvenance` result containing `depth`, `origin`, and `maxDepth`. The prefix counts toward the 32 KiB message limit. Neither prefix nor body grants permission. No queue/history/transcript content is read to recover depth.

Inactive activation also defaults to 3 attempts per canonical home/thread in 60 seconds. Operator-owned `SESSION_PEER_WAKE_TARGET_RATE` accepts 0–16; 0 disables inactive activation. Reservations persist under the existing wake lock. `wake_rate_exceeded` refuses before queueing; unreadable, oversized or malformed state returns `wake_rate_state_invalid`. Failed/interrupted attempts retain slots; clock rollback conservatively keeps reservations. Dry-run and known active writers consume no activation slot. Existing `wake_in_progress` and `already_active` behavior remains. Different targets/hosts have separate budgets; operators or same-user processes can reset cooperative state. This is not a global cost quota or caller authentication.

In the pinned Codex 0.154.0 source, shell `inherit="all"` retains these variables unless exclusion or `include_only` filters them; `inherit="core"` and `inherit="none"` drop them unless explicitly set. Default secret-name exclusions do not match them. Stdio MCP's default whitelist omits them; a new MCP process requires explicit `env_vars` forwarding. Existing/shared MCP processes do not receive a later caller's environment. Static `env` overrides may reset or conflict with context. Filtered/missing context starts a new local origin, so the hop limit cannot guarantee a global chain bound. The local activation rate is a separate backstop. No approval, profile or native environment policy is changed automatically.

Isolated subprocess fixtures verify CLI/MCP/SSH context and the app-server stand-in environment. A separate opt-in native fixture verifies the actual Codex 0.154.0 macOS arm64 environment builders: six `command/exec` shell-policy cases and four `mcpServerStatus/list` cases that start a private, receipt-less stdio MCP fixture. Only synthetic environment metadata is inspected; no user credentials, thread, turn, prompt, model, MCP tool invocation or wake is used. Set `SESSION_PEER_CODEX154_ENV_BINARY` to an independently provisioned pinned binary and run `python3 -m unittest tests.codex.test_wake_native_environment`; the test performs no download or installation and rejects a wrong binary. Without opt-in these tests skip, which is not native execution evidence. The release archive SHA-256 is `344310a0a591c1b192e04feff304321a69907c9498baaac331ca7e16ebcef9d7`; the extracted binary hash is pinned in the test. This proves only these environment paths on that platform/version, not a model turn, native wake, other platforms or later Codex versions. Sources: [pinned shell policy](https://github.com/openai/codex/blob/6b9826e3aa83b1a5947db50f4332cb9c65f1b340/codex-rs/protocol/src/shell_environment.rs), [pinned MCP environment](https://github.com/openai/codex/blob/6b9826e3aa83b1a5947db50f4332cb9c65f1b340/codex-rs/rmcp-client/src/utils.rs), [current configuration reference](https://developers.openai.com/codex/config-reference/).

`session-peer send --to codex:<uuid> --wake --wake-timeout 30 "message"`

Plain send remains queue-only. Wake can incur model usage and modify session history and project files under the target's existing configuration. It requires macOS/Linux and **Codex CLI 0.154.0**, the version whose lifecycle and native writer exclusion have been tested. Other versions fail closed until independently validated. This version boundary applies only to wake.
Expand Down
Loading
Loading