Skip to content
41 changes: 41 additions & 0 deletions docs/cli-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,47 @@ installation path. See the [v0.9 release notes](releases/v0.9.0.md).

### Message input and result output

#### Optional inbox generation precondition (development)

`list --with-target-generation --json` adds `targetGeneration` and
`generationStatus` to each row. For Claude inboxes with native process-creation
evidence, copy the opaque `tg1:` token into `send --target-generation TOKEN`
(including `--dry-run` or SSH). Keep the token with the original destination;
it is a precondition, not a secret, permission, ACK, or retry/deduplication key.
Unpinned commands keep their existing behavior and output.

Pinned Claude sends recheck the registry, process creation and inbox endpoint,
then verify the connected socket/pipe server PID before writing any message or
Windows authentication line. Reused names/PIDs or changed endpoints are refused
with `stale_target`; unprovable native identity is refused rather than guessed.
The token does not authenticate the model or defend against a malicious process
with the same OS account. OS process creation and connected-peer APIs are needed;
unsupported platforms cannot use this mode. Same-generation process state/name
updates do not by themselves invalidate the token.
Native creation values have OS-specific granularity (Linux uses boot ID and
start-time clock ticks); this is not a globally unique or clone-proof identity.
The opaque token is also not cryptographic SSH host-key continuity.

A `stale_target` refusal includes `lastSeenTarget` with the original requested
Claude generation, not a fresh lookup of the successor. This bounded metadata
does not include process creation values, paths, user names or host names:

`{"status":"refused","reason":"stale_target","submitted":false,"retryAllowed":false,"lastSeenTarget":{"agent":"claude","targetGeneration":"tg1:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}}`

`target_generation_unavailable` means native identity could not be verified;
`unsupported_target_generation` means the target does not support this
precondition. Neither result includes `lastSeenTarget` or authorizes a retry.
The source-streamed restart regression uses an owned protocol inbox and a local
SSH stand-in; it is not evidence of a physical remote host or native agent test.

Codex queue targets, Antigravity bridges and paired devices do **not** acquire
this inbox-incarnation guarantee: they report an unsupported generation, and a
generic pinned send to them is refused before queue/wake. In particular, a
Codex writer recheck cannot atomically constrain which later writer consumes a
persisted queue row. Their existing separate identity contracts remain intact.
The broader cross-agent work in #180 remains open; this development feature is
not shipped in v1.0.4 and adds no automatic fallback or resubmission.

`--message TEXT` (short form `-m`) names the text sent to the destination.
`--output-format text|json` selects the command result format, not the message
format. It is available on `list`, `send`, `doctor`, and `update`; the default is
Expand Down
2 changes: 1 addition & 1 deletion docs/i18n-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"docs/ai-assistant-guide.md": "9624ec96b92fb688fae3be3c94cb3564c77985091be451fbf1f056a1af9b9d9c",
"docs/antigravity.md": "f2b5122a0ce6e6fb5bd4d8ed50ce2c8bd2dc9c98ec8ce328405cf7c2cd24229d",
"docs/architecture/agent-transports.md": "01a4e3942e87acb476595859f2e37f9653ea1e3bc19ebc68dced1adf20a6966f",
"docs/cli-reference.md": "56c0a808c9b8393c5de1ea476111153c7a84ef61376b1da3987d0ff4b71fcc66",
"docs/cli-reference.md": "3a366585e7ef093f79fc7e83c843ce9b291731fa4c0055348b92bcc2a2765cd7",
"docs/compatibility-v1.md": "7e551aad37a369faff7e370728376763efb54c2c9e9cfd8556a0c19aabc3d103",
"docs/contracts/handoff-v1.md": "46a953010c49214bd8f969412f26713384fbe09a0ba78ebf0fef75da40d0d889",
"docs/diagnostics.md": "0949e53612eeab2cd7c7bbda498e14d71e9cb1b1189aa7722030cb8702cd8481",
Expand Down
33 changes: 33 additions & 0 deletions docs/ja/cli-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,39 @@

[概要に戻る](../../README.ja.md)

## 受信セッションの世代を固定する条件(開発中)

`list --with-target-generation --json` は各行に `targetGeneration` と
`generationStatus` を追加します。OS のプロセス生成情報を確認できる Claude の受信先では、
`tg1:` トークンを `send --target-generation TOKEN` に指定できます。`--dry-run` と SSH でも
元の宛先のトークンを使います。これは送信の前提条件であり、秘密情報、権限、ACK、再送や
重複排除のキーではありません。指定しない場合、既存の出力と動作は変わりません。

送信直前に登録情報、プロセス生成情報と受信先を再確認し、接続したソケット・パイプの
サーバー PID を確認してから、メッセージや Windows の認証行を書き込みます。
名前・PID の再利用や受信先の変更は `stale_target` で拒否し、確認できない身元は推測しません。
同一プロセスの状態・名前の更新だけでは世代は変わりません。モデルの身元を認証したり、
同じ OS アカウントの悪意あるプロセスを防いだりする保証はなく、必要な OS API がなければ利用できません。
生成情報の粒度は OS に依存します(Linux は起動 ID と開始時刻の clock tick を使用)。
世界的に一意・複製不能な身元や、暗号学的な SSH ホスト鍵の連続性は保証しません。

`stale_target` の拒否には、元の要求で指定した Claude 世代の `lastSeenTarget` を含めます。
後継プロセスを再検索した結果ではありません。この限定的なメタデータには、プロセス生成値、
パス、ユーザー名やホスト名を含めません。

`{"status":"refused","reason":"stale_target","submitted":false,"retryAllowed":false,"lastSeenTarget":{"agent":"claude","targetGeneration":"tg1:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}}`

`target_generation_unavailable` は OS の身元を検証できないこと、
`unsupported_target_generation` は対象がこの前提条件に対応していないことを示します。
どちらも `lastSeenTarget` を含めず、再送を許可しません。
ソース転送・再起動の回帰テストは専用のプロトコル受信先とローカルの SSH 代替を使います。
実際の遠隔ホストやネイティブエージェントの検証を示すものではありません。

Codex キュー、Antigravity とペアリング済み機器には、この受信プロセス世代の保証はありません。
一般の世代固定要求はキュー投入・wake 前に拒否し、それぞれの既存契約を維持します。
Codex の書き込みプロセスを再確認しても、後からキューを消費するプロセスを原子的に制限できません。
#180 全体は未完了です。v1.0.4 の公開機能ではなく、自動フォールバックや再送も追加しません。

コマンドの詳細な動作、インストールオプション、トランスポートの制限、および過去の検証結果について以下に説明します。
機械consumerは[v1互換性契約](compatibility-v1.md)にも従ってください。

Expand Down
33 changes: 33 additions & 0 deletions docs/ko/cli-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,39 @@

[개요로 돌아가기](../../README.ko.md)

## 수신 세션 세대 고정 조건 (개발 중)

`list --with-target-generation --json`은 각 행에 `targetGeneration`과
`generationStatus`를 추가합니다. 운영체제의 프로세스 생성 정보를 확인할 수 있는
Claude 세션은 `tg1:` 토큰을 `send --target-generation TOKEN`에 전달할 수 있습니다.
`--dry-run`과 SSH에서도 원래 대상의 토큰을 사용합니다. 토큰은 전송 조건이며 비밀정보,
권한, ACK 또는 재전송·중복 방지 키가 아닙니다. 사용하지 않으면 기존 출력과 동작을 유지합니다.

전송 직전에 세션 기록, 프로세스 생성 정보, 수신 경로를 재확인하고 실제 연결된 소켓·파이프의
서버 PID를 확인한 뒤 메시지와 Windows 인증 줄을 씁니다. 이름·PID 재사용이나 경로 변경은
`stale_target`으로 거부하며, 확인 불가능한 신원은 추정하지 않습니다. 같은 프로세스의 상태나
이름 변경만으로 토큰이 바뀌지는 않습니다. 모델의 신원을 인증하거나 같은 OS 계정의 악성
프로세스를 막는 기능은 아니며, 필요한 운영체제 API가 없으면 사용할 수 없습니다.
생성 정보의 정밀도는 운영체제마다 다릅니다(Linux는 부팅 ID와 시작 시각의 clock tick 사용).
전역적으로 고유하거나 복제를 방지하는 신원, 암호학적 SSH 호스트 키 연속성을 보장하지 않습니다.

`stale_target` 거부에는 원래 요청한 Claude 세대를 담은 `lastSeenTarget`이 포함됩니다.
새 수신 프로세스를 다시 조회한 결과가 아닙니다. 이 제한된 메타데이터에는 프로세스 생성값,
경로, 사용자 이름이나 호스트 이름을 넣지 않습니다.

`{"status":"refused","reason":"stale_target","submitted":false,"retryAllowed":false,"lastSeenTarget":{"agent":"claude","targetGeneration":"tg1:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}}`

`target_generation_unavailable`은 운영체제의 신원을 확인할 수 없다는 뜻이고,
`unsupported_target_generation`은 대상이 이 전송 조건을 지원하지 않는다는 뜻입니다.
두 결과에는 `lastSeenTarget`을 넣지 않으며 재전송 권한도 주지 않습니다.
소스 전송·재시작 회귀 테스트는 전용 프로토콜 수신함과 로컬 SSH 대역을 사용합니다.
실제 원격 장비나 실제 에이전트의 검증 근거는 아닙니다.

Codex 큐, Antigravity와 페어링 기기는 이 수신 프로세스 세대 보장을 제공하지 않습니다.
일반 세대 고정 요청은 큐 삽입·wake 전에 거부하고 각각의 기존 계약을 유지합니다.
Codex의 작성자 재확인만으로 나중에 큐를 소비하는 작성자를 원자적으로 제한할 수는 없습니다.
#180의 전체 작업은 아직 열려 있습니다. v1.0.4에 발행된 기능이 아니며 자동 대체 전송·재전송도 없습니다.

명령어의 상세 동작, 설치 옵션, 전송 한계 및 과거 검증 내역은 아래와 같습니다.
기계 소비자는 [v1 호환성 계약](compatibility-v1.md)도 따라야 합니다.

Expand Down
29 changes: 29 additions & 0 deletions docs/zh-CN/cli-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,35 @@

[返回概览](../../README.zh-CN.md)

## 固定接收会话代次的前置条件(开发中)

`list --with-target-generation --json` 为每行添加 `targetGeneration` 和
`generationStatus`。对于能核实操作系统进程创建信息的 Claude 接收端,可将 `tg1:`
标记传给 `send --target-generation TOKEN`;`--dry-run` 和 SSH 也使用原目标的标记。
它是发送前置条件,不是秘密、权限、ACK 或重发、去重凭据。不使用时保留现有输出和行为。

发送前重新核实注册记录、进程创建信息和接收端,再核实已连接的套接字或管道服务器 PID,
之后才写入消息和 Windows 认证行。名称、PID 被复用或接收端变化时以 `stale_target`
拒绝;无法证明身份时不作猜测。同一进程的状态或名称更新本身不会改变代次。
此功能不认证模型身份,也不防范同一 OS 账户的恶意进程;缺少所需 OS API 时不可使用。
创建信息的精度取决于 OS(Linux 使用启动 ID 和开始时间的 clock tick),并不保证全局唯一、
防克隆的身份或密码学上的 SSH 主机密钥连续性。

`stale_target` 拒绝结果包含 `lastSeenTarget`,记录原请求指定的 Claude 代次,
不是重新查找后继进程的结果。这一有限元数据不包含进程创建值、路径、用户名或主机名。

`{"status":"refused","reason":"stale_target","submitted":false,"retryAllowed":false,"lastSeenTarget":{"agent":"claude","targetGeneration":"tg1:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}}`

`target_generation_unavailable` 表示无法核实操作系统身份;
`unsupported_target_generation` 表示目标不支持该前置条件。
这两种结果均不包含 `lastSeenTarget`,也不授权重发。
源码传输与重启回归测试使用专用协议收件箱和本地 SSH 替身,
不代表实际远程主机或原生代理的验证。

Codex 队列、Antigravity 和配对设备不具备此接收进程代次保证。通用代次固定请求会在入队、
wake 前拒绝,并保留各自既有契约。重新核实 Codex 写入进程,不能原子地限制之后消费
持久队列的进程。#180 的完整工作仍未完成;该功能尚未在 v1.0.4 发布,不会自动回退或重发。

以下是详细的命令行为、安装选项、传输限制和历史验证记录。
机器consumer还应遵循[v1兼容性契约](compatibility-v1.md)。

Expand Down
Loading
Loading