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
15 changes: 13 additions & 2 deletions README.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@

Relay 通信、MCP、wake/resume、非アクティブ queue、Antigravity、自動更新、暗黙の全エージェント検出、人間向けテキスト出力は未実装です。未対応コマンドは明示的に失敗します。汎用オーケストレーターではありません。

クライアント機能の計画は [互換性ロードマップ](https://github.com/abruption/session-peer-ts/issues/33) で追跡します。計画は現在の対応を意味しません。Relay サーバーやホスティングサービスの提供は本クライアントの範囲外です。

## 必要条件

macOS / Linux / Windows native、Node **22.x の 22.13 以上、または 24.x**。Node 26 は対象外です。ネイティブロック依存には対応する x64/arm64 バイナリが必要で、純 JavaScript パッケージではありません。Codex 送信には `codex` が必要で、macOS/Linux では `lsof`・`ps` も必要です。Windows はネイティブロックと Restart Manager で所有者を確認します。Claude にはアクセス可能な inbox を持つ稼働中 TUI が必要です。SSH は既存の鍵・ホスト信頼と、接続先の**同一バージョン**のクライアントを使います。
Expand All @@ -39,7 +41,12 @@ npm install --global --ignore-scripts session-peer@0.1.0
session-peer --version
```

期待値は `session-peer 0.1.0 (typescript)`。まず `session-peer list --agent claude --json` で宛先を探し、送信前に `--dry-run` で確認してください。
期待値は `session-peer 0.1.0 (typescript)`。

1. `session-peer list --agent claude --json` で宛先を探し、正確な PID を選びます。
2. `session-peer send --to CLAUDE_PID --message 'Please reply after checking.' --dry-run --json` で提出せずに確認します。
3. 送る場合は選んだ PID を使い、同じコマンドから `--dry-run` を外して一度だけ実行します。
4. ACK が必要なら本文で明示的な返信を依頼し、宛先 TUI の応答を別途確認します。`posted` / `queued` は提出のみを示します。

### ソースからビルド

Expand Down Expand Up @@ -100,6 +107,8 @@ Windows の SSH 宛先では `--remote-platform win32` を指定し、必要に
| `refused`, `submitted:false` | 提出前の拒否。 |
| `unknown`, `submitted:null` | 提出済みの可能性あり。自動再送禁止。 |

提出後に返信がない、または宛先が終了したという事実だけでは、消費や失敗を確定できません。自動再送しないでください。

`consumptionConfirmed` は常に false。実際の ACK は宛先 TUI で別途確認し、queue や transcript polling から推定しません。終了コード 0/1/2 は成功/エラー/用法エラー。エラーは固定コードで、ネイティブ stderr や本文を返しません。Codex は実際の kernel flock、ファイル同一性、同一ユーザーの所有者開始時刻を複数回調べ、提出直前にも再検証します。lock の削除や所有エージェントへのシグナル送信はしません。一覧の名前・パス・ID は共有前に伏せてください。

## 開発と検証
Expand All @@ -113,7 +122,7 @@ npm run test:package
npm audit
```

Python は開発時の互換検証基準のみです(v1.0.2、`47c23713d0a2a3c11ebde6186afd8c43489b8b65`)。実行時依存ではありません。POSIX 契約テストには C コンパイラーと lsof も必要です。CI は基準コミットを固定し macOS/Linux/Windows × Node 22/24 を確認します。SQLite・Unix inbox・実 lock の fixture と、専用実 TUI の証拠 [VALIDATION.md](VALIDATION.md) は別です。fixture 成功は ACK ではありません。パッケージ内容、反復 pack ハッシュ、新規インストール、アンインストールも検証します。ネイティブ依存の通常の install script は実行せず、検証した prebuilt 経路は `--ignore-scripts` を使います。SQLite 読み取り専用接続も WAL 共有メモリー管理に関与し得るため、スナップショットではありません。
Python は開発時の互換検証基準のみです(v1.0.2、`47c23713d0a2a3c11ebde6186afd8c43489b8b65`)。実行時依存ではありません。POSIX 契約テストには C コンパイラーと lsof も必要です。CI は三つの OS で Node 22/24 を使います。macOS/Linux は固定した基準に対する全契約・パッケージ検査、Windows はビルド・型検査、限定的なネイティブ Claude inbox・未保持ロックの smoke テストと audit を実行します。Windows の held-writer・queue・パッケージ検証拡充は [#34](https://github.com/abruption/session-peer-ts/issues/34) で追跡します。Windows x64/Node 24 の実機 ACK は別の一回限りの証拠です。SQLite・Unix inbox・実 lock の fixture と、専用実 TUI の証拠 [VALIDATION.md](VALIDATION.md) は別です。fixture 成功は ACK ではありません。パッケージ内容、反復 pack ハッシュ、新規インストール、アンインストールも検証します。ネイティブ依存の通常の install script は実行せず、検証した prebuilt 経路は `--ignore-scripts` を使います。SQLite 読み取り専用接続も WAL 共有メモリー管理に関与し得るため、スナップショットではありません。

[CONTRIBUTING.md](CONTRIBUTING.md)、[RELEASING.md](RELEASING.md)、[SECURITY.md](SECURITY.md) を参照してください。今後のリリースの公開には別途承認が必要で、自動 npm 公開はありません。[MIT](LICENSE) ライセンスです。

Expand All @@ -125,6 +134,8 @@ Python は開発時の互換検証基準のみです(v1.0.2、`47c23713d0a2a3c
npm view session-peer dist-tags
```

変更できない npm 0.1.0 の tarball には公開前の README 表現が残っています。[日付付きリリース記録](VALIDATION.md#public-010--2026-09-27-kst) に相違を記録し、現在の GitHub 文書で訂正しています。パッケージ内の訂正は後続バージョンで反映します。

手動ワークフローは Trusted Publisher OIDC で staging し、保守者が 2FA で承認します。staging 成功は公開完了ではありません。[RELEASING.md](RELEASING.md) を参照してください。

## 関連プロジェクト
Expand Down
26 changes: 20 additions & 6 deletions README.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ Relay 전송, MCP, wake/resume, 비활성 세션 queue, Antigravity, 자동 업
암묵적인 전체 에이전트 탐색, 일반 텍스트 출력은 미지원입니다. 미지원 옵션은 명시적으로
거부하며 범용 오케스트레이터를 지향하지 않습니다.

클라이언트 기능 계획은 [호환성 로드맵](https://github.com/abruption/session-peer-ts/issues/33)에서 추적하며, 계획은 현재 지원을 뜻하지 않습니다. Relay 서버·호스팅 서비스 제공은 이 클라이언트의 범위 밖입니다.

## 요구사항

macOS/Linux/Windows native와 Node **22.x의 22.13 이상 또는 24.x**가 필요합니다. Node 26은
Expand All @@ -52,9 +54,12 @@ npm install --global --ignore-scripts session-peer@0.1.0
session-peer --version
```

예상 출력은 `session-peer 0.1.0 (typescript)`입니다. 먼저
`session-peer list --agent claude --json`으로 대상을 찾고 `--dry-run`으로
제출 전에 확인하세요.
예상 출력은 `session-peer 0.1.0 (typescript)`입니다.

1. `session-peer list --agent claude --json`으로 대상을 찾고 정확한 PID를 선택합니다.
2. `session-peer send --to CLAUDE_PID --message '확인 후 회신해 주세요.' --dry-run --json`으로 제출 없이 검증합니다.
3. 실제 전달할 때 선택한 PID로 같은 명령에서 `--dry-run`을 제거해 한 번 실행합니다.
4. ACK가 필요하면 메시지에 명시적인 회신을 요청하고 수신 TUI의 응답을 별도로 확인합니다. `posted` / `queued`는 제출만 뜻합니다.

### 소스에서 빌드

Expand Down Expand Up @@ -153,6 +158,8 @@ CODEX_THREAD_ID/CODEX_SESSION_ID는 참고용 From 정보에 사용하고 `--no-
| `refused`, `submitted:false` | 제출 전에 거부 |
| `unknown`, `submitted:null` | 제출됐을 수 있음. 자동 재전송 금지 |

제출 후 회신이 없거나 대상이 종료됐다는 사실만으로 소비나 실패를 확정할 수 없습니다. 자동 재전송하지 마세요.

`consumptionConfirmed`는 항상 false입니다. 실제 ACK는 수신 TUI에서 별도로 확인하며
queue 결과나 transcript 폴링으로 추정하지 않습니다. 종료 코드는 성공/오류/사용법에
0/1/2를 사용합니다. 오류는 고정 코드로 반환하며 원문 stderr·메시지를 노출하지 않습니다.
Expand All @@ -172,9 +179,12 @@ npm audit
```

Python은 개발용 호환성 기준(v1.0.2 커밋
`47c23713d0a2a3c11ebde6186afd8c43489b8b65`)일 뿐 런타임 의존성이 아닙니다. 테스트에는
C 컴파일러와 lsof는 POSIX 계약 테스트에 필요합니다. CI는 참조 커밋을 고정하고 macOS/Linux/Windows × Node 22/24를
검사합니다. 임시 SQLite·Unix inbox·실제 잠금 fixture와 [VALIDATION.md](VALIDATION.md)의
`47c23713d0a2a3c11ebde6186afd8c43489b8b65`)일 뿐 런타임 의존성이 아닙니다. POSIX 계약 테스트에는
C 컴파일러와 lsof도 필요합니다. CI는 세 OS에서 Node 22/24를 사용합니다.
macOS/Linux는 고정된 참조 기준으로 전체 계약·패키지 검사를 실행하고, Windows는
빌드·타입 검사, 제한된 네이티브 Claude inbox·해제된 잠금 smoke 테스트와 audit를 실행합니다.
Windows의 held-writer·queue·패키지 검증 확대는 [#34](https://github.com/abruption/session-peer-ts/issues/34)에서 추적합니다.
Windows x64/Node 24 실기기 ACK는 별도의 일회성 증거입니다. 임시 SQLite·Unix inbox·실제 잠금 fixture와 [VALIDATION.md](VALIDATION.md)의
실제 TUI 증거는 구분합니다. fixture 통과는 ACK가 아닙니다. 패키지 내용·반복 빌드 해시·
새 환경 설치·삭제도 검사합니다. 네이티브 의존성에는 설치 스크립트가 있지만 검증한 사전
빌드 경로는 `--ignore-scripts`를 사용합니다. SQLite 읽기 전용 접근도 WAL 공유 메모리
Expand All @@ -194,6 +204,10 @@ npm 자동 발행은 활성화하지 않았습니다. [MIT 라이선스](LICENSE
npm view session-peer dist-tags
```

변경할 수 없는 npm 0.1.0 tarball에는 발행 전 README 문구가 남아 있습니다.
[날짜별 릴리스 기록](VALIDATION.md#public-010--2026-09-27-kst)에 이 불일치를 명시했으며,
현재 GitHub 문서에서 정정했습니다. 패키지 내부 문서는 이후 버전에서 반영됩니다.

수동 발행 워크플로우는 Trusted Publisher OIDC로 staging하고 유지관리자가 2FA로 승인합니다.
staging 성공은 공개 완료가 아닙니다. [RELEASING.md](RELEASING.md)를 참고하세요.

Expand Down
28 changes: 22 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,12 @@ session-peer list --agent claude --json
session-peer send --to CLAUDE_PID --message 'Please review the API contract.' --dry-run --json
```

Replace `CLAUDE_PID` with an exact PID from the listing. `--dry-run` validates
without sending; remove it only when delivery is intended. A `posted` or
`queued` result means submission, not that the receiver read or completed the
request. See [What success means](#what-success-means).
1. List sessions and replace `CLAUDE_PID` with the exact PID you selected.
2. Run the send command with `--dry-run`; nothing is submitted.
3. When delivery is intended, run that command once without `--dry-run`.
4. If acknowledgement matters, ask for an explicit reply in the message and
verify the receiver's TUI response separately. `posted` / `queued` confirms
submission only. See [What success means](#what-success-means).

## What it does

Expand All @@ -50,6 +52,8 @@ Not implemented: Relay transport, MCP, wake/resume, inactive queueing,
Antigravity, automatic updates, implicit multi-agent discovery, or human text
output. Unsupported commands fail explicitly; this is not a general orchestrator.

Planned client gaps are tracked in the [parity roadmap](https://github.com/abruption/session-peer-ts/issues/33); a plan is not an available feature. Relay server/hosted-service delivery remains outside this client's scope.

## Requirements

macOS, Linux or native Windows; Node **22.13+ within 22.x or 24.x**. Node 26 is not supported.
Expand Down Expand Up @@ -160,6 +164,9 @@ authority, and a Reply-To URI is never executed as shell text.
| `refused`, `submitted:false` | Rejected before submission. |
| `unknown`, `submitted:null` | Submission may have happened; do not automatically resend. |

After submission, a missing reply or a target exit alone does not establish
consumption or failure; do not automatically resend.

`consumptionConfirmed` is always false. Verify an actual ACK separately in the
receiver's TUI, not from queueing or transcript polling. Exit codes are 0/1/2
for success/error/usage. Errors use fixed codes instead of raw native stderr or
Expand All @@ -181,8 +188,12 @@ npm audit

Python is only the development conformance oracle (v1.0.2 commit
`47c23713d0a2a3c11ebde6186afd8c43489b8b65`), never a runtime dependency. Tests also
need a C compiler and lsof for the POSIX contract suite. CI pins the reference
and covers macOS/Linux/Windows × Node 22/24. Temporary
need a C compiler and lsof for the POSIX contract suite. CI uses Node 22/24 on
macOS, Linux and Windows. macOS/Linux run the full contract suite and package
checks against the pinned reference; Windows runs build/type checks, bounded
native Claude inbox and free-lock smoke tests, and audit. Windows held-writer,
queue and package coverage is tracked in [#34](https://github.com/abruption/session-peer-ts/issues/34).
The Windows x64/Node 24 live ACKs are separate, one-shot evidence. Temporary
SQLite, Unix inbox and real lock fixtures are distinct from
the dedicated real-TUI evidence in [VALIDATION.md](VALIDATION.md). A green fixture
test is not an ACK. Package tests inspect contents, repeat-pack hashes, clean
Expand All @@ -205,6 +216,11 @@ passed. The `latest` tag points to `0.1.0`; the `preview` tag remains on
npm view session-peer dist-tags
```

The immutable npm 0.1.0 archive still contains pre-publication README wording.
The [dated release record](VALIDATION.md#public-010--2026-09-27-kst) documents
that discrepancy; current GitHub documentation corrects it. A later version
will carry corrected packaged documentation.

The release workflow uses Trusted Publisher OIDC staging and a maintainer's
separate 2FA approval. A staged upload is not a public release. See
[RELEASING.md](RELEASING.md) for the process.
Expand Down
15 changes: 13 additions & 2 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@

未实现 Relay 传输、MCP、wake/resume、非活跃会话排队、Antigravity、自动更新、隐式多代理发现及面向人的文本输出。不支持的命令会明确失败;这不是通用编排器。

客户端功能计划见 [兼容性路线图](https://github.com/abruption/session-peer-ts/issues/33);计划不代表当前支持。提供 Relay 服务器或托管服务不属于本客户端范围。

## 环境要求

macOS、Linux 或 Windows native;Node **22.x 中的 22.13 及以上,或 24.x**。不支持 Node 26。原生锁依赖需要匹配的 x64/arm64 预编译二进制,本包不是纯 JavaScript 实现。Codex 发送需要 `codex`,macOS/Linux 还需要 `lsof`、`ps`;Windows 使用原生锁和 Restart Manager 验证所有者。Claude 需要运行中的 TUI 及可访问的原生 inbox。SSH 使用已有密钥和主机信任,远端必须安装**同版本**客户端。
Expand All @@ -39,7 +41,12 @@ npm install --global --ignore-scripts session-peer@0.1.0
session-peer --version
```

预期输出:`session-peer 0.1.0 (typescript)`。先用 `session-peer list --agent claude --json` 查找目标,并在发送前使用 `--dry-run` 验证。
预期输出:`session-peer 0.1.0 (typescript)`。

1. 用 `session-peer list --agent claude --json` 查找目标并选择准确 PID。
2. 用 `session-peer send --to CLAUDE_PID --message 'Please reply after checking.' --dry-run --json` 验证,不提交。
3. 确定发送时使用选定 PID,移除同一命令中的 `--dry-run`,只执行一次。
4. 若需要 ACK,在消息中明确请求回复,并单独确认目标 TUI 的响应。`posted` / `queued` 仅表示提交。

### 从源码构建

Expand Down Expand Up @@ -100,6 +107,8 @@ session-peer send --host user@machine --remote-bin /absolute/path/session-peer \
| `refused`, `submitted:false` | 提交前被拒绝。 |
| `unknown`, `submitted:null` | 可能已经提交,不要自动重发。 |

提交后没有回复或目标退出,都不能单独证明消息已消费或失败。不要自动重发。

`consumptionConfirmed` 始终为 false。必须在目标 TUI 中另行确认实际 ACK,不可由排队或轮询 transcript 推断。退出码 0/1/2 分别表示成功/错误/用法错误。错误只返回固定代码,不返回原生 stderr 或消息内容。Codex 使用真实内核 flock、文件身份和同用户进程开始时间进行多次核验,排队前再次检查。不删除 lock,也不向拥有它的代理进程发送信号。发现结果仍包含本地名称、路径、ID,分享前请脱敏。

## 开发与验证
Expand All @@ -113,7 +122,7 @@ npm run test:package
npm audit
```

Python 只用作开发时的兼容性基准(v1.0.2,`47c23713d0a2a3c11ebde6186afd8c43489b8b65`),不是运行时依赖。POSIX 契约测试还需要 C 编译器和 lsof。CI 固定基准提交,覆盖 macOS/Linux/Windows × Node 22/24。临时 SQLite、Unix inbox、真实锁 fixture 与 [VALIDATION.md](VALIDATION.md) 中专用真实 TUI 的证据分开记录;fixture 通过不是 ACK。包测试检查文件清单、重复打包哈希、全新安装与卸载。原生依赖通常有安装脚本,已验证的预编译路径使用 `--ignore-scripts`。SQLite 只读连接仍可能参与 WAL 共享内存管理,不能视为快照。
Python 只用作开发时的兼容性基准(v1.0.2,`47c23713d0a2a3c11ebde6186afd8c43489b8b65`),不是运行时依赖。POSIX 契约测试还需要 C 编译器和 lsof。CI 在三种 OS 上使用 Node 22/24。macOS/Linux 对固定基准执行完整契约与包检查;Windows 执行构建、类型检查、范围有限的原生 Claude inbox 与未持有锁 smoke 测试,以及 audit。Windows 的 held-writer、queue 和包验证扩展由 [#34](https://github.com/abruption/session-peer-ts/issues/34) 跟踪。Windows x64/Node 24 实机 ACK 是单独的一次性证据。临时 SQLite、Unix inbox、真实锁 fixture 与 [VALIDATION.md](VALIDATION.md) 中专用真实 TUI 的证据分开记录;fixture 通过不是 ACK。包测试检查文件清单、重复打包哈希、全新安装与卸载。原生依赖通常有安装脚本,已验证的预编译路径使用 `--ignore-scripts`。SQLite 只读连接仍可能参与 WAL 共享内存管理,不能视为快照。

参见 [CONTRIBUTING.md](CONTRIBUTING.md)、[RELEASING.md](RELEASING.md) 和 [SECURITY.md](SECURITY.md)。后续版本的发布需单独批准,未启用自动 npm 发布。采用 [MIT](LICENSE) 许可证。

Expand All @@ -125,6 +134,8 @@ Python 只用作开发时的兼容性基准(v1.0.2,`47c23713d0a2a3c11ebde618
npm view session-peer dist-tags
```

不可变的 npm 0.1.0 tarball 仍包含发布前的 README 表述。[带日期的发布记录](VALIDATION.md#public-010--2026-09-27-kst) 说明了这一差异,当前 GitHub 文档已更正。包内文档将在后续版本中更新。

手动工作流通过 Trusted Publisher OIDC 上传至 staging,由维护者使用 2FA 批准。staging 成功不代表已经公开发布。参见 [RELEASING.md](RELEASING.md)。

## 相关项目
Expand Down
Loading
Loading