From 39d5b3815266e03a30711ac7d7852d64f15da44a Mon Sep 17 00:00:00 2001 From: YEONGUK LEE Date: Thu, 8 Oct 2026 07:15:20 +0900 Subject: [PATCH 1/4] docs(i18n): improve Japanese and Simplified Chinese translations --- README.ja.md | 20 +++++++------- README.zh-CN.md | 34 +++++++++++------------ RELEASING.ja.md | 40 ++++++++++++++-------------- RELEASING.zh-CN.md | 40 ++++++++++++++-------------- SECURITY.ja.md | 12 ++++----- SECURITY.zh-CN.md | 12 ++++----- plugins/session-peer/README.ja.md | 4 +-- plugins/session-peer/README.zh-CN.md | 4 +-- 8 files changed, 83 insertions(+), 83 deletions(-) diff --git a/README.ja.md b/README.ja.md index cf4056c9..72dd52ec 100644 --- a/README.ja.md +++ b/README.ja.md @@ -8,10 +8,10 @@ [English](https://github.com/abruption/session-peer/blob/main/README.md) · [한국어](https://github.com/abruption/session-peer/blob/main/README.ko.md) · **日本語** · [简体中文](https://github.com/abruption/session-peer/blob/main/README.zh-CN.md) -**ひとつのCLIでローカルやSSH接続先のClaude Code・Codexセッションを検索し、メッセージを送れます。** +**1つのコマンドラインツール(CLI)で、ローカルやSSH接続先にあるClaude Code・Codexのセッションを検索し、メッセージを送れます。** 別のセッションに変更のレビュー、進捗報告、作業の引き継ぎを依頼できます。 -標準の受信箱やキューを利用し、応答方法は受信側のエージェントが決定します。 +各エージェント固有の受信箱やキューを利用し、応答方法は受信側のエージェントが決定します。 @@ -32,7 +32,7 @@ session-peer 1.0.2による実際のローカル通信です。CodexがClaude Co Python 3.9以上が必要です。基本のローカル・SSH CLIに外部Python依存パッケージはありません。 現在の安定版:**1.0.4**。 -2026-10-07付のメンテナンス版の[リリースノート](docs/ja/releases/v1.0.4.md)を参照してください。パッケージ公開と本番配備は別です。 +2026-10-07付のメンテナンス版の[リリースノート](docs/ja/releases/v1.0.4.md)を参照してください。パッケージ公開と本番環境への配備は別です。 ```bash pipx install session-peer @@ -44,7 +44,7 @@ uvを使う場合は `uv tool install session-peer` を選べます。ネイテ 仮想環境のpip、単独スクリプト・SSHのインストール方法は [インストールガイド](https://github.com/abruption/session-peer/blob/main/docs/ja/cli-reference.md#install)を参照してください。 -SSH検索では、例のホスト `worker` を実際のホストまたはエイリアスに置き換えてください。 +SSH経由でセッションを検出するには、例示のホスト `worker` を実際のホストまたはエイリアスに置き換えてください。 その後、架空のセッション名と完全なUUIDを検索結果の接続先に置き換えてください。 ```bash @@ -53,13 +53,13 @@ session-peer send --to api-worker --message "進捗を教えてください" session-peer send --host worker --to 'codex:00000000-0000-4000-8000-000000000001' --message "変更をレビューしてください" ``` -SSH接続先にはPythonと対象エージェントの標準受信箱・キューが必要ですが、 +SSH接続先にはPythonと対象エージェント固有の受信箱・キューが必要ですが、 session-peer CLIのインストールは不要です。独自のCodexホームは検索結果の `codexHome` を `--codex-home` で指定し、`--dry-run` で送信せずに検証できます。 セッションを所有する接続先アカウントを使ってください(`--host USER@HOST`)。 -SSHと受信側の権限が適用されます。 +SSHのアクセス権と受信側の権限は引き続き適用されます。 -**`posted` / `queued` は受信箱・キューへの提出の確認であり、消費・ACK・作業完了の確認ではありません。** +**`posted` / `queued` は受信箱やキューに受け付けられたことを示すだけで、消費・ACK・作業完了を意味しません。** 必要なら明示的な返信を依頼してください。通常の送信は停止中のCodex接続先をデフォルトで拒否し、 起動もしません。結果が不確かな送信を自動で再試行しないでください。 @@ -77,8 +77,8 @@ pipx upgrade session-peer ``` ローカルのインストールでは、`session-peer update` は単独スクリプトのランタイムファイルを置き換えます。 -パッケージ版には更新方法を案内します。このコマンドはスキルを更新しません。 -元のインストールツール(Skills CLI、または同梱コピーの `install.sh`)を使ってください。 +パッケージ管理ツールでインストールした場合、このコマンドは更新方法を案内するだけです。このコマンドはスキルを更新しません。 +スキルの更新には、インストール時に使用したツール(Skills CLI、または同梱コピーの `install.sh`)を使ってください。 [更新の詳細とリモートでの制約](https://github.com/abruption/session-peer/blob/main/docs/ja/cli-reference.md#updating)を参照してください。 @@ -96,7 +96,7 @@ Unix、Python 3.11以上、`session-peer[relay]`、固定した識別情報と パッケージの公開はホスト型サービスの可用性を保証しません。 ブラインドRelayはアプリケーションのメッセージ内容を復号できません。 [MCP・Codexプラグイン](https://github.com/abruption/session-peer/blob/main/docs/ja/mcp.md)にはPython 3.10以上と -`session-peer[mcp]` が必要で、MCP wakeには `send` と `wake` の両方の権限が必要です。 +`session-peer[mcp]` が必要で、MCP wakeには `send` と `wake` の両方の機能(capability)が必要です。 [Wake](https://github.com/abruption/session-peer/blob/main/docs/ja/wake.md)は明示的に依頼した場合だけ実行し、 ターンの開始、利用枠の消費、プロジェクトファイルの変更を伴う場合があります。 [Antigravityブリッジ](https://github.com/abruption/session-peer/blob/main/docs/ja/antigravity.md)は実験段階です。 diff --git a/README.zh-CN.md b/README.zh-CN.md index e23b3f8d..cb838dc0 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -8,10 +8,10 @@ [English](https://github.com/abruption/session-peer/blob/main/README.md) · [한국어](https://github.com/abruption/session-peer/blob/main/README.ko.md) · [日本語](https://github.com/abruption/session-peer/blob/main/README.ja.md) · **简体中文** -**通过一个CLI查找本机或SSH远程主机上的Claude Code与Codex会话,并向其发送消息。** +**使用一个命令行工具(CLI),即可查找本机或通过SSH连接的远程主机上的Claude Code与Codex会话,并向其发送消息。** -请另一会话审查改动、汇报进度或接手任务。 -session-peer使用代理原生的收件箱和队列,由接收方决定如何响应。 +可以请另一个会话审查改动、汇报进度或接手任务。 +session-peer使用各智能体自身的收件箱和队列;接收方智能体自行决定如何响应。 @@ -19,7 +19,7 @@ session-peer使用代理原生的收件箱和队列,由接收方决定如何 ![Codex向Claude Code发送请求并收到明确ACK的演示](https://raw.githubusercontent.com/abruption/session-peer/main/docs/assets/session-peer-live-codex-claude.gif) -使用session-peer 1.0.2进行了真实的本地请求与回复:Codex向Claude Code发送请求, +这是真实的本地请求与回复,使用session-peer 1.0.2完成:Codex向Claude Code发送请求, 并收到`ACK DEMO-READY`。这段约22秒的动画对CLI输出和消息摘录进行了匿名化与重新绘制, 并非屏幕录像;发送成功本身并不代表收到ACK。 @@ -32,7 +32,7 @@ session-peer使用代理原生的收件箱和队列,由接收方决定如何 需要Python 3.9或更高版本。核心本地与SSH CLI没有第三方Python依赖。 当前稳定版:**1.0.4**。 -请参阅2026-10-07维护版本的[发布说明](docs/zh-CN/releases/v1.0.4.md)。包发布与运营部署是独立操作。 +请参阅2026-10-07维护版本的[发布说明](docs/zh-CN/releases/v1.0.4.md)。软件包发布与生产环境部署是两项独立操作。 ```bash pipx install session-peer @@ -40,11 +40,11 @@ session-peer --version session-peer list ``` -偏好uv时可使用 `uv tool install session-peer`。原生Windows、 +如果使用uv,可运行 `uv tool install session-peer`。原生Windows、 虚拟环境pip、独立脚本与SSH安装方式请参阅 [安装指南](https://github.com/abruption/session-peer/blob/main/docs/zh-CN/cli-reference.md#install)。 -SSH查询时,请将示例主机 `worker` 替换为实际主机或别名。 +通过SSH查找会话时,请将示例主机 `worker` 替换为实际主机或别名。 然后将虚构的会话名称和完整UUID替换为查询结果中的目标: ```bash @@ -53,17 +53,17 @@ session-peer send --to api-worker --message "请汇报进度" session-peer send --host worker --to 'codex:00000000-0000-4000-8000-000000000001' --message "请审查改动" ``` -SSH目标需要Python以及目标代理的原生收件箱或队列, -但无需安装session-peer CLI。自定义Codex主目录请将查询结果中的 -`codexHome` 用 `--codex-home` 指定,可用 `--dry-run` 在不发送消息的情况下验证。 +SSH目标需要Python以及目标智能体自身的收件箱或队列, +但无需安装session-peer CLI。如使用自定义Codex主目录,请通过 `--codex-home` +指定查询结果中的 `codexHome`,并可用 `--dry-run` 在不发送消息的情况下验证。 请使用拥有该会话的目标账户(`--host USER@HOST`)。 SSH访问权限和接收方权限仍然适用。 -**`posted` / `queued` 仅确认提交,不代表已消费、ACK或任务完成。** +**`posted` / `queued` 仅表示消息已提交到接收箱或队列,不代表消息已被消费、已收到ACK或任务已完成。** 需要时请明确要求对方回复。普通发送默认拒绝未运行的Codex目标, 也不会启动它们。切勿自动重试结果不确定的发送。 -可选的 [代理技能](https://github.com/abruption/session-peer-skill) 与运行时分开安装, +可选的 [智能体技能](https://github.com/abruption/session-peer-skill) 与运行时分开安装, 其Skills CLI命令请参阅安装指南。 ### 更新 @@ -77,8 +77,8 @@ pipx upgrade session-peer ``` 在本地安装中,`session-peer update` 会替换独立脚本的运行时文件; -软件包安装版会收到升级指引。此命令不会更新代理技能; -请使用原安装工具(Skills CLI,或同捆副本的 `install.sh`)。 +通过软件包管理器安装的版本只会显示升级指引。此命令不会更新智能体技能; +请使用原安装工具(Skills CLI,或随附副本的 `install.sh`)。 请参阅[更新详情与远程限制](https://github.com/abruption/session-peer/blob/main/docs/zh-CN/cli-reference.md#updating)。 @@ -96,7 +96,7 @@ Unix、Python 3.11以上和 `session-peer[relay]`,并要求固定设备身份 软件包发布不保证托管服务可用性。 盲转发Relay无法解密应用消息的内容。 [MCP与Codex插件](https://github.com/abruption/session-peer/blob/main/docs/zh-CN/mcp.md)需要Python 3.10以上及 -`session-peer[mcp]`;MCP wake需要同时具备 `send` 和 `wake` 权限。 +`session-peer[mcp]`;MCP wake需要同时具备 `send` 和 `wake` 两项能力。 [Wake](https://github.com/abruption/session-peer/blob/main/docs/zh-CN/wake.md)仅在显式请求时运行, 可能启动一轮任务、消耗使用额度或修改项目文件。 [Antigravity桥接](https://github.com/abruption/session-peer/blob/main/docs/zh-CN/antigravity.md)仍处于实验阶段。 @@ -111,11 +111,11 @@ Unix、Python 3.11以上和 `session-peer[relay]`,并要求固定设备身份 ## 支持与安全 错误与功能建议请使用 [GitHub Issues](https://github.com/abruption/session-peer/issues/new/choose)。 -安全漏洞请通过 [私密报告](https://github.com/abruption/session-peer/security/advisories/new) 提交,不要发布到公开Issue, +安全漏洞请通过 [私密报告](https://github.com/abruption/session-peer/security/advisories/new) 提交,不要发布到公开议题, 并遵循[安全政策](https://github.com/abruption/session-peer/blob/main/SECURITY.zh-CN.md)。 分享诊断结果前,请隐去敏感信息、对话、会话ID和个人路径。 非公开咨询或替代安全联系方式,请发送邮件至 [support@abruption.dev](mailto:support@abruption.dev),标题注明 `[session-peer]`。 -我们会尽力提供支持,但不保证响应时限。邮件由维护者手动审核,不会自动转为公开Issue。 +我们会尽力提供支持,但不保证响应时限。邮件由维护者手动审核,不会自动转为公开议题。 欢迎英文与韩文报告。 diff --git a/RELEASING.ja.md b/RELEASING.ja.md index 89eed427..5fb674d1 100644 --- a/RELEASING.ja.md +++ b/RELEASING.ja.md @@ -1,23 +1,23 @@ # session-peerのリリース -1.0.4は1.0.3に続く2026-10-07付のメンテナンス版です。準備だけの承認では、タグ、ドラフト、ワークフロー実行や公開の前に停止します。このリリースを完了する明示的な指示は公開段階を承認しますが、必須の人によるPyPI環境レビューや本番配備を代替しません。準備、不変なGitHub公開、人によるPyPI環境レビュー、公開後検証を区別します。保護されたmainはレビュー済みの最新PRと、Pythonプラットフォーム行列、文書、シェル、パッケージ/単独ファイル/MCP/Relay/Control、統合試験、Python/Node依存監査を含むリリースゲートを要求します。 +1.0.4は、1.0.3に続く2026-10-07付のメンテナンスリリースです。準備のみの承認では、タグ作成、ドラフト作成、ワークフローの起動、公開には進みません。このリリースを完了するよう明示的に指示された場合、公開手順は承認されたものとして扱います。ただし、必須の人手によるPyPI環境レビューや本番環境への配備が不要になるわけではありません。準備、変更できないGitHub公開、人手によるPyPI環境レビュー、公開後の検証を区別します。保護されたmainでは、レビュー済みで最新のPRと、Pythonのプラットフォーム別テストマトリクス、ドキュメント、シェル、パッケージ/単独ファイル/MCP/Relay/Control、統合テスト、Python/Nodeの依存関係監査を含む統合リリースゲートへの合格が必要です。 ## 過去の証拠と現在の境界 -5ホストのv1.0.0 RC4 rc4-rerun-02試験は14,436.65秒実行されました。complete記録、公開ヘルス241/241、プローブ147/147、送信21/21、Relay再起動復旧3.182秒でした。独立ACKは20/21です。T120 WindowsネイティブClaudeの元のACKはTUI終了で未確認で、別の単発確認では正確なACKを受信しました。所有者は#164で例外を受け入れました。20/21を維持してください。この過去の証拠はv1.0.4を検証しません。#161の外部停滞の根本原因は未確認です。 +5台のホストで行ったv1.0.0 RC4 rc4-rerun-02キャンペーンは14,436.65秒間実行されました。記録はcomplete、公開ヘルスチェックは241/241、プローブは147/147、送信は21/21、Relay再起動後の復旧時間は3.182秒でした。独立して確認できたACKは20/21です。T120のWindowsネイティブClaudeでは、TUIが終了したため元のACKを確認できませんでした。後の別の単発テストでは正確なACKを受信し、所有者は#164でこの例外を受け入れています。20/21という値は変更しないでください。この過去の記録はv1.0.4の検証にはなりません。#161は未解決のままで、外部で発生した停滞の根本原因も未確認です。 -Python/PyPI版は1.0.4、対応するタグとGitHubリリースはv1.0.4です。公開承認後にのみ安定版・Latestにします。 プラグイン版は独立です。コアはPython 3.9+、MCPは3.10+、Relay受信側/サーバーはUnixまたはWSLとPython 3.11+が必要です。サービス受信側はサービスPATHのCodexまたは運用者所有のcodexBin設定が必要です。パッケージ公開はホスト対策の配備、機器群導入、本番再起動、実時間OAuthヘルスやACKを証明しません。不明な結果は自動再送を許可しません。 +Python/PyPI版のバージョンは1.0.4で、対応するタグとGitHubリリースはv1.0.4です。公開の承認を得た後にのみ、安定版およびLatestとして設定します。プラグインのバージョンは別管理です。コアCLIはPython 3.9以上、MCPは3.10以上、Relayの受信側/サーバーはUnixまたはWSLとPython 3.11以上が必要です。サービス管理下で起動する受信側には、サービスのPATH上にあるCodexか、運用者が管理するcodexBin設定が必要です。パッケージ公開は、ホスト型サービスへの修正適用、フリート全体への導入、本番環境の再起動、稼働中のOAuthの健全性、エージェントからのACKを証明するものではありません。不明な結果が自動再送を許可することはありません。 ## ソースと設定のゲート -1. v1.0.4の変更を1.0.3と4言語のリリースノートに照合します。統合mainにメンテナンス修正#262、#263、#264、#265、#266、#267の6件を要求します。公開済みv1.0.3のセキュリティ履歴と、独立したスキルの版/最小/全機能対応の契約を保持します。パッケージ/生成版、4つのREADMEの安定版案内とアーカイブ内ノートを確認します。cc_peer.pyは凍結して配布から除外し、資格情報、鍵、DB、リプレイ状態、ブラウザープロファイル、ローカル証拠と会話を除外します。 -2. 全ローカル試験とPRリリースゲートを実行します。マージ後の統合済み公開mainの正確なコミットでCI成功を要求します。非公開勧告フォークの検査はその公開リリースゲートを代替しません。クリーンなwheel/sdist導入、隔離された導入済みimport、正確なCLI版、初期化済みホームのJSON list、extrasとpip checkを検証します。明示的な空Codexホームはstate_db_missingで安全に失敗すべきです。実時間メッセージは送信しません。 -3. PyPIに1.0.4ファイルがないことを確認します。2026-10-07の準備確認で版JSONはHTTP 404でした。GitHub Immutable Releasesとv*タグ規則で作成のみ許可し、迂回なしの更新/削除禁止を確認します。所有者は2026-10-03に有効化し (規則24408525)、2026-10-05には厳格なmainリリースゲートを確認しました。2026-10-07のGitHub API確認でImmutable Releases有効、規則24408525有効、refs/tags/v*範囲、迂回なしの更新/削除禁止を再確認しました。過去のv1.0.2は非不変・資産なしで、検証済み単独ファイルリリースではありません。公開前に現状を再確認します。 -4. Trusted Publisherがsession-peerをabruption/session-peer、publish.yml、pypiに対応させることを確認します。2026-10-05にログイン済みPyPIブラウザーで対応を検証しました。これは過去の証拠で、新たなPyPIブラウザー再検証ではありません。2026-10-07のGitHub API確認でレビュー担当`abruption`必須、自己レビュー許可 (`prevent_self_review: false`)、`v*`タグ許可を再確認しました。2026-10-05の確認時には管理者迂回が有効でした (`can_admins_bypass: true`)。この過去の観測を新たな迂回ポリシー確認として扱いません。所有者の以前の[2026-09-29対応確認](https://github.com/abruption/session-peer/issues/235#issuecomment-5882178667)も過去の証拠です。設定を再確認し、通常の人のレビューを経て、黙って迂回しません。 +1. v1.0.4の変更を1.0.3および4言語のリリースノートと照合します。統合後のmainには、メンテナンス修正#262、#263、#264、#265、#266、#267の6件が含まれている必要があります。公開済みv1.0.3のセキュリティ履歴と、独立管理されるスキルのバージョン/最低対応バージョン/全機能対応バージョンの契約を維持します。パッケージと生成物のバージョン、4言語のREADMEにある安定版の案内、アーカイブ内のリリースノートを確認します。cc_peer.pyは変更せず、配布物から除外します。資格情報、鍵、データベース、リプレイ状態、ブラウザープロファイル、ローカルの証拠と会話も含めないでください。 +2. ローカルテスト一式とPRのリリースゲートを実行します。マージ後、統合済みの公開mainにおける正確なコミットでCIが成功していることを確認します。非公開のセキュリティアドバイザリー修正用フォークの検査は、公開mainに対するこのリリースゲートの代わりにはなりません。クリーンな環境でwheel/sdistをインストールし、隔離環境からインストール済みパッケージをimportできること、正確なCLIバージョン、初期化済みホームでのJSON list、extras、pip checkを検証します。明示的に指定した空のCodexホームはstate_db_missingでfail closed(安全側に停止)する必要があります。このゲートでは実際のメッセージを送信しません。 +3. PyPIに1.0.4のファイルがないことを確認します。2026-10-07の準備確認では、このバージョンのJSONがHTTP 404を返しました。GitHub Immutable Releasesとv*タグ規則を確認し、タグの作成は許可され、迂回手段なしで更新・削除は禁止されていることを確かめます。所有者は2026-10-03に有効化しました(規則24408525)。2026-10-05の確認では、厳格なmainリリースゲートが有効でした。2026-10-07のGitHub API確認では、Immutable Releasesと規則24408525が有効で、対象はrefs/tags/v*、タグの更新・削除は禁止され、迂回手段もないことを再確認しました。過去のv1.0.2は不変ではなく、リリースアセットも含まれていませんでした。これは検証済みの単独ファイルリリースではありません。公開前に現在の設定を再確認します。 +4. Trusted Publisherがsession-peerをabruption/session-peer、publish.yml、pypiに対応づけていることを確認します。2026-10-05にログイン済みPyPIブラウザーでその対応を確認しましたが、これは過去の証拠であり、PyPIブラウザーによる新たな再確認ではありません。2026-10-07のGitHub API確認では、レビュー担当者`abruption`が必須であること、自己レビューが許可されていること (`prevent_self_review: false`)、`v*`タグが許可されていることを再確認しました。2026-10-05の確認時点では管理者による迂回が有効でした (`can_admins_bypass: true`)。この過去の観測を、現在の迂回ポリシーの確認として扱わないでください。所有者による以前の[2026-09-29対応確認](https://github.com/abruption/session-peer/issues/235#issuecomment-5882178667)も過去の証拠です。設定を再確認し、通常の人手レビューを経てください。無断で迂回しないでください。 ## 不変ドラフトの準備 -準備PRのマージ後、正確なmainコミットを記録し、そのコミットに軽量タグを作ります。既存タグを移動しません。所有者が保護されたmainのそのコミットで準備を実行します。実行要求と検証の間にmainが進むと安全に失敗します。 +準備PRのマージ後、正確なmainコミットを記録し、そのコミットに軽量タグを作成します。既存タグは移動しません。リポジトリ所有者が、保護されたmain上のそのコミットを指定して準備を実行します。実行要求から検証までの間にmainが進んだ場合は、fail closed(安全側に停止)します。 ```bash git fetch origin main --tags @@ -32,11 +32,11 @@ gh workflow run prepare-release.yml --repo abruption/session-peer \ --ref main -f tag="$release_tag" ``` -prepare-release.ymlはソース/ref/版/系譜を検証し、2回の再現ビルド、アーカイブ検査、隔離導入試験、依存監査を実行します。空ドラフトにwheel、sdist、session_peer.py、install.sh、SKILL.md、SHA256SUMS、release-provenance.jsonの正確に7資産を証明して添付します。manifestは5payload、署名された来歴はmanifestと証拠も含みます。既存資産は上書きしません。成功した準備実行、正確なコミット、7ファイル、ハッシュと証明を公開前にレビューします。ドラフト添付は公開ではありません。 +prepare-release.ymlはソース/ref/バージョン/系譜を検証し、再現可能なビルドを2回行い、アーカイブ検査、隔離環境でのインストールテスト、依存関係監査を実行します。空のドラフトにwheel、sdist、session_peer.py、install.sh、SKILL.md、SHA256SUMS、release-provenance.jsonの計7つのアセットを証明付きで添付します。マニフェストは5つのペイロードを対象とし、署名済みのprovenanceはマニフェストと証拠も対象に含みます。既存アセットは上書きしません。公開前に、準備実行の成功、正確なコミット、7つのファイル、ハッシュ、証明を確認します。ドラフトへの添付は公開ではありません。 ## 固定されたGitHubリリースの公開 -この版の所有者の明示的な承認で公開します。既にリリース完了を指示していれば手続きの承認要件を満たすので、この文書だけを理由に二度目の確認を要求しません。必須の人によるpypi環境レビューは代替しません。公開はタグと資産を固定しpublish.ymlを開始します。 +このバージョンを公開するのは、所有者から明示的な承認を得た場合に限ります。このリリースを完了するよう既に指示されている場合は、手続き上の承認要件を満たしているため、この手順書だけを理由に再度確認を求めません。ただし、必須の人手によるpypi環境レビューに代わるものではありません。公開するとタグとアセットが固定され、publish.ymlが開始します。 ```bash gh release edit v1.0.4 --repo abruption/session-peer \ @@ -45,24 +45,24 @@ gh release edit v1.0.4 --repo abruption/session-peer \ publish.ymlは所有者、正確なタグ/ソース/main系譜を確認し、固定された不変資産を取得して認証された来歴とmanifestを検証します。再ビルドや資産追加は行いません。PyPIジョブ前に導入検査と現在の依存監査を再度通過する必要があります。準備時の監査成功は現在の監査証拠ではありません。 -## 保留中のPyPI配備の人によるレビュー +## 保留中のPyPIデプロイに対する人手レビュー -1. アップロード前に正確なActions実行がpypiレビュー待ちであることを観測します。実行URL/ID、試行番号、タグ、コミット、SHA256SUMS、release-provenance.json、保留時刻を記録します。ソース試験や設定だけでは停止を証明できません。次のリリースでの観測が#235受け入れ検査です。 -2. 必須の人のレビュー担当が候補証拠と現状のTrusted Publisher/環境設定を確認します。**Review deployments**で**pypi**を選び、承認時のみ明示的に**Approve and deploy**を選択します。GitHub公開承認はこのレビューを代替しません。配備が保留状態になったら必須の人によるレビューを依頼し、環境ゲートを維持します。 -3. 拒否するには**pypi**を選択し理由を添えて**Reject**を選びます。期待した停止や制御がなければアップロード前に中止・キャンセルします。拒否/キャンセル実行を保持して原因を解決します。拒否回避のためタグを移動したり版を再利用しません。 -4. 担当、判断、コメント、時刻と結果を記録し、アップロード/検証証拠を保持します。拒否は公開成功や承認停止検証成功ではありません。管理者迂回は例外で別途明示的な所有者承認が必要で、理由、実行者、時刻、実行、タグ、コミットを記録します。 +1. アップロード前に、対象のActions実行がpypiのレビュー待ちで停止していることを確認します。実行URL/ID、試行回数、タグ、コミット、SHA256SUMS、release-provenance.json、保留時刻を記録します。ソーステストやリポジトリ設定だけでは停止を証明できません。次回リリースで実際の停止を確認することが#235の受け入れ条件です。 +2. 必須の人手レビュー担当者が候補の証拠と現在のTrusted Publisher/環境設定を確認します。**Review deployments**で**pypi**を選び、承認権限がある場合に限り**Approve and deploy**を明示的に選択します。GitHub公開の承認は、このレビューの代わりにはなりません。デプロイが保留になったら必須の人手レビューを依頼し、環境ゲートを維持します。 +3. アップロードを拒否するには、**pypi**を選び、理由を説明して**Reject**を選択します。想定した停止や操作項目がない場合は、アップロード前に停止して実行をキャンセルします。拒否またはキャンセルした実行の記録を保持し、原因を解決します。拒否を回避するためにタグを移動したり、バージョンを再利用したりしないでください。 +4. レビュー担当者、判断、コメント、時刻、結果を記録し、アップロードと検証の証拠を保持します。拒否されたことは、公開の成功や承認ゲートが想定どおり停止したことの検証を意味しません。管理者による迂回は例外として扱い、別途、所有者の明示的な承認を得てください。その場合は理由、実行者、時刻、実行、タグ、コミットを記録します。 ## 公開の検証または復旧 -正確なタグ/コミットでpublish.ymlとPyPI検証が成功したことを確認します。PyPIの2ファイルを取得し、正確な一覧とハッシュを固定候補/来歴と比較して、クリーン環境でそれぞれ導入します。隔離版、初期化済みホームのJSON list、extrasとpip checkを再確認します。安定版/Latestと通常の更新によるv1.0.4選択を確認します。マイルストーン終了前に証拠を記録し、#161を監視として維持します。 +正確なタグとコミットでpublish.ymlおよびPyPIの検証が成功したことを確認します。PyPIから2つのファイルを取得し、ファイル一覧とハッシュが固定済み候補/provenanceと一致することを確認して、クリーンな環境にそれぞれインストールします。隔離環境でのバージョン、初期化済みホームでのJSON list、extras、pip checkも再確認します。安定版/Latestに設定され、通常の更新でv1.0.4が選択されることを確認します。マイルストーンを終了する前に証拠を記録し、#161は監視用として未解決のまま維持します。 -GitHubとPyPI公開は別々の不可逆な段階です。GitHub公開後の監査失敗で、PyPIファイルのない固定リリースが残る場合があります。両実行と正確な資産を保持します。監査迂回、変更済み資産の再アップロード、既存ファイルの無視、版の再利用は禁止です。部分的な1.0.4アップロードや不一致は昇格を停止します。最初の失敗ゲートを診断し、レビュー済み変更と新しい版、通常1.0.5で修正します。yankしても再利用はできません。 +GitHub公開とPyPI公開は、それぞれ別の不可逆な手順です。GitHub公開後に監査が失敗すると、PyPIファイルがないまま固定されたリリースが残る場合があります。両方の実行記録と正確なアセットを保持してください。監査の迂回、変更したアセットでの再アップロード、既存ファイルのスキップ、バージョンの再利用は禁止です。1.0.4の一部だけがアップロードされた場合や不一致があった場合は、昇格を停止します。最初に失敗したゲートを調べ、レビュー済みの変更と新しいバージョン(通常は1.0.5)で修正します。yankしてもバージョンは再利用できません。 ## 検証済み単独ファイルの導入 -新しい認証済みGitHub CLIがgh attestation verify、署名ワークフロー、ソースref/digest、OIDC issuer、ホストランナーポリシーをサポートする必要があります。試験基準は2.102.0で、全フラグ対応の最初の版は未確定です。リポジトリ/証明の読み取り権限で十分で、公開権限は不要です。[GitHub CLI検証ソース](https://github.com/cli/cli/blob/v2.102.0/pkg/cmd/attestation/verify/verify.go)にポリシーフラグがあります。ローカルfixtureはポリシー/順序/エラーを確認し、実際の署名受け入れを証明しません。 +最近のバージョンで認証済みのGitHub CLIは、gh attestation verifyに加えて、署名ワークフロー、ソースref/digest、OIDC issuer、GitHubホステッドランナーのポリシーをサポートする必要があります。試験の基準は2.102.0ですが、すべてのフラグに対応した最初のバージョンは未確認です。リポジトリ/証明の読み取り権限で十分で、公開権限は不要です。[GitHub CLI検証ソース](https://github.com/cli/cli/blob/v2.102.0/pkg/cmd/attestation/verify/verify.go)にポリシーフラグがあります。ローカルfixtureはポリシー/順序/エラーの動作を確認するもので、実際の署名が受け入れられることを証明するものではありません。 -インストーラーは検証済みLatest不変資産を既定とします。--local-sourceは隣接ソースを明示的に信頼し、--mainは未検証開発ソースを選択します。証明欠如や古い未署名版は安全に失敗します。検証できなければpipx/uv/pipを使います。実行前にinstall.shを認証します: +インストーラーは、検証済みのLatest不変アセットを既定で使用します。--local-sourceは隣接するソースを明示的に信頼し、--mainは未検証の開発用ソースを選択します。証明がない場合や古い未署名リリースの場合はfail closed(安全側に停止)します。検証できない場合はpipx/uv/pipを使用してください。実行前にinstall.shを認証します: ```bash set -eu @@ -84,4 +84,4 @@ gh attestation verify "$staging/install.sh" --repo "$repo" \ sh "$staging/install.sh" ``` -取得上限は単独ファイル8 MiB、補助ファイル256 KiB、メタデータ1 MiBです。認証されたmanifest/来歴、正確なタグ/版と候補の--version確認が置換に先行します。送信側がSSH配備前に検証し、オフライン宛先はPythonのみ必要です。検証失敗で既存ファイルは変わりません。SSH許可リスト、既存ペアリングバインディングのレビュー、Controlログイン移行はリリースノートを参照してください。 +取得上限は単独ファイル8 MiB、補助ファイル256 KiB、メタデータ1 MiBです。ファイルを置き換える前に、認証済みのmanifest/provenance、正確なタグ/バージョン、ステージングしたファイルの--versionを確認します。送信側はSSH配備の前に検証し、オフラインの接続先に必要なのはPythonだけです。検証に失敗しても既存のファイルは変更されません。SSHオプションの許可リスト、既存ペアリングバインディングの確認、Controlログインの移行についてはリリースノートを参照してください。 diff --git a/RELEASING.zh-CN.md b/RELEASING.zh-CN.md index 76054e67..1ece5e3f 100644 --- a/RELEASING.zh-CN.md +++ b/RELEASING.zh-CN.md @@ -1,23 +1,23 @@ # 发布session-peer -1.0.4是继1.0.3之后的2026-10-07维护版本。仅获准备授权时,应在标签、草稿、工作流调度或发布前停止;明确要求完成此版本发布可授权这些发布步骤,但不能替代必需的人工PyPI环境审核或运营部署。区分准备、不可变GitHub发布、人工PyPI环境审核与发布后验证。受保护的main要求经过审核、保持最新的PR及汇总发布门禁,包括Python平台矩阵、文档、shell、包/单文件/MCP/Relay/Control、集成测试与Python/Node依赖审计。 +1.0.4是继1.0.3之后、日期为2026-10-07的维护版本。仅获得准备授权时,必须在创建标签、草稿、调度工作流或发布前停止。明确要求完成此版本发布,即表示授权执行这些发布步骤;但不能替代必需的人工PyPI环境审核或生产环境部署。请区分准备、不可变的GitHub发布、人工PyPI环境审核和发布后验证。受保护的main要求PR经过审核并与main保持最新,同时通过汇总发布门禁;门禁涵盖Python平台测试矩阵、文档、shell、包/单文件/MCP/Relay/Control、集成测试以及Python/Node依赖审计。 ## 历史证据与当前边界 -五主机v1.0.0 RC4 rc4-rerun-02测试运行14,436.65秒:complete记录、公开健康241/241、探测147/147、提交21/21及Relay重启恢复3.182秒。独立ACK为20/21。T120 Windows原生Claude因TUI关闭未确认原始ACK,另一次单独测试收到准确ACK。所有者在#164接受此例外。保留20/21;历史证据不验证v1.0.4。#161的外部停滞根因仍未确认。 +在5台主机上进行的v1.0.0 RC4 rc4-rerun-02测试持续了14,436.65秒。记录状态为complete,公开健康检查为241/241,探测为147/147,提交为21/21,Relay重启后的恢复时间为3.182秒。独立确认的ACK为20/21。T120时Windows原生Claude的TUI已关闭,因此原始ACK未能确认;之后另一次单独测试收到了准确的ACK。所有者在#164中接受了这一例外。请保留20/21这一结果;这段历史记录不能证明v1.0.4已通过验证。#161仍未解决,外部停滞的根本原因也尚未确认。 -Python/PyPI版本为1.0.4,对应标签和GitHub发布为v1.0.4。仅在获得发布授权后设为稳定版及Latest。 插件版本独立。核心需要Python 3.9+、MCP需要3.10+、Relay接收端/服务端需要Unix或WSL与Python 3.11+。服务接收端需要服务PATH中的Codex或运营人员拥有的codexBin绑定。包发布不能证明托管补救部署、设备群安装、生产重启、实时OAuth健康或ACK。未知结果不能授权自动重发。 +Python/PyPI版本为1.0.4,对应标签和GitHub发布为v1.0.4。只有在获得发布授权后,才能将其设为稳定版和Latest。插件版本独立管理。核心CLI需要Python 3.9+,MCP需要3.10+,Relay接收端/服务器需要Unix或WSL及Python 3.11+。由服务管理器启动的接收端需要在服务PATH中找到Codex,或使用由运维人员管理的codexBin绑定。软件包发布不能证明托管服务的修复已部署、已安装到所有设备、生产服务已重启、线上OAuth运行正常或代理已发送ACK。未知结果不能作为自动重发的依据。 ## 源码与配置门禁 -1. 将v1.0.4变更与1.0.3及四种语言的说明对照。要求整合后的main包含#262、#263、#264、#265、#266、#267六项维护修复。保留已发布的v1.0.3安全历史及独立技能的版本/最低/完整覆盖契约。确认包/生成版本、四份README稳定版提示和归档说明;冻结cc_peer.py并从发行包排除。排除凭据、密钥、数据库、重放状态、浏览器配置、本地证据及聊天。 -2. 运行完整本地测试和PR门禁。合并后要求整合后的公开main准确提交通过CI;私有公告分支检查不能替代该公开发布门禁。验证干净wheel/sdist安装、隔离环境安装import、准确CLI版本、初始化home的JSON list、extras及pip check。显式空Codex home必须以state_db_missing安全失败。不要发送实时消息。 -3. 确认PyPI尚无1.0.4文件。2026-10-07准备检查中,该版本JSON返回HTTP 404。检查GitHub Immutable Releases及v*标签规则:允许创建,禁止无绕过的标签修改/删除。所有者于2026-10-03启用 (规则24408525),2026-10-05检查确认严格main发布门禁。2026-10-07 GitHub API检查再次确认Immutable Releases启用、规则24408525有效、范围refs/tags/v*、无绕过的更新/删除禁令。历史v1.0.2为非不可变且无资产,不是已验证单文件发布;发布前重新检查当前配置。 -4. 确认Trusted Publisher将session-peer映射到abruption/session-peer、publish.yml和pypi。2026-10-05通过已登录PyPI浏览器验证该映射;这是历史证据,不是新的PyPI浏览器复验。2026-10-07 GitHub API检查再次确认要求审核者`abruption`、允许自审 (`prevent_self_review: false`) 及`v*`标签。2026-10-05检查时管理员绕过启用 (`can_admins_bypass: true`);不要把该历史观察当作新的绕过策略检查。所有者此前的[2026-09-29映射检查](https://github.com/abruption/session-peer/issues/235#issuecomment-5882178667)也是历史证据。重新检查配置,使用正常人工审核,不得静默绕过。 +1. 将v1.0.4的变更与v1.0.3及四种语言的发布说明对照。确保合并后的main包含#262、#263、#264、#265、#266、#267这6项维护修复。保留已发布的v1.0.3安全历史,以及独立技能的版本、最低运行时版本和完整功能覆盖版本契约。确认软件包和生成文件中的版本、四种语言README中的稳定版提示,以及归档内的发布说明。冻结cc_peer.py并将其排除在发行包之外;同时排除凭据、密钥、数据库、重放状态、浏览器配置文件、本地证据和聊天记录。 +2. 运行完整的本地测试和PR发布门禁。合并后,必须确认合并后的公开main在准确提交上通过CI。私有安全公告修复分支上的检查不能替代公开发布门禁。验证在干净环境中安装wheel/sdist、在隔离环境中导入已安装的软件包、CLI版本准确、在已初始化主目录中执行JSON list、extras以及pip check。显式指定的空Codex主目录必须以state_db_missing安全失败(fail closed)。此门禁不发送真实消息。 +3. 确认PyPI上尚无1.0.4文件。2026-10-07的准备检查中,该版本JSON返回了HTTP 404。检查GitHub Immutable Releases和v*标签规则:允许创建标签;禁止更新或删除标签,且不设置绕过权限。所有者于2026-10-03启用了该规则(规则编号24408525),2026-10-05的检查确认严格的main发布门禁。2026-10-07的GitHub API检查再次确认Immutable Releases已启用、规则24408525有效、适用于refs/tags/v*,并且禁止更新/删除且没有绕过权限。历史版本v1.0.2并非不可变,也没有发布资产,因此不是经过验证的单文件发布版本。发布前请重新检查当前设置。 +4. 确认Trusted Publisher将session-peer映射到abruption/session-peer、publish.yml和pypi。2026-10-05通过已登录的PyPI浏览器确认过该映射;这属于历史证据,并非新的PyPI浏览器复核。2026-10-07的GitHub API检查再次确认必须由审核者`abruption`审核、允许自审 (`prevent_self_review: false`),并允许`v*`标签。2026-10-05检查时,管理员绕过权限已启用 (`can_admins_bypass: true`);不要将这项历史观察当作对当前绕过策略的确认。所有者此前的[2026-09-29映射检查](https://github.com/abruption/session-peer/issues/235#issuecomment-5882178667)同样属于历史证据。请重新检查设置并按正常流程进行人工审核,不得擅自绕过。 ## 准备不可变草稿 -准备PR合并后记录准确main提交并在其上创建轻量标签。不得移动已有标签。由仓库所有者在受保护main的准确提交上执行准备;调度与验证间main推进将安全失败。 +准备PR合并后,记录准确的main提交,并在该提交上创建轻量标签。不要移动已有标签。由仓库所有者在受保护main的这一准确提交上执行准备;如果main在调度与验证之间出现新提交,流程将fail closed(安全侧停止)。 ```bash git fetch origin main --tags @@ -32,11 +32,11 @@ gh workflow run prepare-release.yml --repo abruption/session-peer \ --ref main -f tag="$release_tag" ``` -prepare-release.yml验证源码/ref/版本/祖先关系,执行两次可复现构建、归档检查、隔离安装测试与依赖审计。向空草稿证明并附加恰好七项资产:wheel、sdist、session_peer.py、install.sh、SKILL.md、SHA256SUMS及release-provenance.json。manifest覆盖五项payload;签名来源证明也覆盖manifest及证据。不覆盖已有资产。发布前审核成功准备运行、准确提交、七个文件、哈希及证明。附加草稿不等于发布。 +prepare-release.yml会验证源码/ref/版本/提交祖先关系,执行两次可复现构建、归档检查、隔离环境安装测试和依赖审计。它会向空草稿附加并证明恰好七个资产:wheel、sdist、session_peer.py、install.sh、SKILL.md、SHA256SUMS和release-provenance.json。manifest涵盖五个发布载荷(payload);签名来源证明还涵盖manifest和证据。不会覆盖已有资产。发布前请检查成功的准备工作流、准确提交、七个文件、哈希和证明。将文件附加到草稿不等于发布。 ## 发布锁定的GitHub版本 -只有获得所有者对该版本的明确授权才发布。已有完成此次发布的指令满足流程批准要求,不要仅因本手册再次要求确认。它不替代所需的人工pypi环境审核。发布锁定标签与资产,并启动publish.yml。 +只有获得所有者对该版本的明确授权后才能发布。若已有明确指令要求完成此次发布,该指令已满足流程审批要求,不要仅因本手册再次要求确认。但这不能替代必需的人工pypi环境审核。发布会锁定标签和资产,并启动publish.yml。 ```bash gh release edit v1.0.4 --repo abruption/session-peer \ @@ -45,24 +45,24 @@ gh release edit v1.0.4 --repo abruption/session-peer \ publish.yml要求仓库所有者,验证准确标签/源码/main祖先关系,下载已锁定不可变资产并验证认证来源证明与manifest。不会重新构建或增加资产。PyPI任务前必须再次通过安装检查与当前依赖审计。准备时审计成功不是当前审计证据。 -## 人工审核待处理的PyPI部署 +## 对待处理的PyPI部署进行人工审核 -1. 上传前观察准确Actions运行正等待pypi审核。记录运行URL/ID与尝试次数、标签、提交、SHA256SUMS、release-provenance.json和待处理时间。源码测试和配置不能证明暂停;下一次发布的实际观察仍是#235验收检查。 -2. 必需的人工审核者检查候选证据及当前Trusted Publisher/环境配置。在**Review deployments**选择**pypi**,仅获授权时明确选择**Approve and deploy**。GitHub发布授权不替代此审核。部署进入待处理状态时请求所需人工审核,并保留环境门禁。 -3. 拒绝上传时选择**pypi**,说明原因并选择**Reject**。若预期暂停或控件缺失,在上传前停止并取消运行。保留被拒绝/取消运行并解决原因,不得移动标签或重复使用版本以规避拒绝。 -4. 记录审核者、决定、评论、时间及结果,保留上传和验证证据。拒绝既不是成功发布,也不是成功验证批准暂停。管理员绕过属例外,需另获所有者明确授权,记录原因、操作者、时间、运行、标签和提交。 +1. 上传前确认准确的Actions运行正在等待pypi审核。记录运行URL/ID、尝试次数、标签、提交、SHA256SUMS、release-provenance.json和等待时间。源码测试和仓库设置都不能证明工作流确实暂停;下一次发布时实际观察暂停情况仍是#235的验收检查。 +2. 必需的人工审核者检查候选证据以及当前Trusted Publisher/环境设置。在**Review deployments**中选择**pypi**,仅在获得授权时才明确选择**Approve and deploy**。GitHub发布授权不能替代此项审核。部署进入待处理状态后,应请求必需的人工审核,并保持环境门禁。 +3. 如需拒绝上传,请选择**pypi**,说明原因并选择**Reject**。如果没有出现预期的暂停或控制选项,请在上传前停止并取消运行。保留被拒绝或取消的运行记录并查明原因;不得为规避拒绝而移动标签或重用版本。 +4. 记录审核者、决定、评论、时间和结果,并保留上传与验证证据。拒绝不表示发布成功,也不表示已成功验证审批门禁按预期暂停。管理员绕过属于例外,必须另行获得所有者的明确授权,并记录原因、操作者、时间、运行、标签和提交。 ## 验证发布或恢复 -验证publish.yml及其PyPI验证对准确标签/提交成功。下载两个PyPI文件,将准确文件列表和哈希与锁定候选/来源证明比较,并在新环境分别安装。再次检查隔离版本、初始化home的JSON list、extras及pip check。确认稳定版/Latest及正常更新选择v1.0.4。关闭里程碑前记录证据;保留#161监控。 +确认publish.yml及PyPI验证在准确的标签/提交上成功。下载PyPI上的两个文件,比较文件清单及哈希与锁定候选/来源证明,并分别在干净环境中安装。再次检查隔离环境中的版本、已初始化主目录上的JSON list、extras和pip check。确认该版本已设为稳定版/Latest,且常规更新会选择v1.0.4。关闭里程碑前记录证据;将#161保留为监控事项。 -GitHub和PyPI发布是独立不可逆步骤。GitHub发布后审计失败可能留下没有PyPI文件的锁定版本;保留两次运行和准确资产。不得绕过审计、用修改资产重新上传、跳过已有文件或重用版本。部分1.0.4上传或不匹配会停止推广。诊断首个失败门禁,通过已审核变更和新版本 (通常1.0.5) 前进修复。yank不会允许重用。 +GitHub发布和PyPI发布是两个彼此独立且不可逆的步骤。GitHub发布后若审计失败,可能留下一个已锁定但没有PyPI文件的版本;请保留两次运行记录和准确的资产。不得绕过审计、修改资产后重新上传、跳过已存在的文件或重用版本。若1.0.4只上传了部分文件或文件不匹配,应停止发布升级。诊断第一个失败的门禁,并通过经过审核的变更和新版本(通常为1.0.5)进行前向修复(fix forward)。撤回(yank)也不能让版本重新用于发布。 ## 已验证单文件安装 -较新的已认证GitHub CLI必须支持gh attestation verify及签名工作流、源码ref/digest、OIDC issuer和托管runner策略。测试基线为2.102.0;支持所有标志的最早版本未确定。仓库/证明读取权限足够,无需发布权限。[GitHub CLI验证源码](https://github.com/cli/cli/blob/v2.102.0/pkg/cmd/attestation/verify/verify.go)记录策略标志。本地fixture验证策略/顺序/错误行为,不证明真实签名接受。 +较新且已登录的GitHub CLI必须支持gh attestation verify,以及签名工作流、源码ref/digest、OIDC issuer和GitHub托管runner策略。测试基线为2.102.0;尚未确定最早支持全部标志的版本。拥有仓库/证明的读取权限即可,无需发布权限。[GitHub CLI验证源码](https://github.com/cli/cli/blob/v2.102.0/pkg/cmd/attestation/verify/verify.go)列出了策略标志。本地fixture验证策略、顺序和错误处理,不代表真实签名已通过验证。 -安装器默认使用已验证Latest不可变资产。--local-source明确信任邻近源码;--main选择未经验证的开发源码。缺少证明或旧的未签名发布会安全失败;无法验证时使用pipx/uv/pip。执行前认证install.sh: +安装器默认使用已验证的Latest不可变资产。--local-source表示明确选择信任相邻源码;--main选择未经验证的开发源码。缺少证明或遇到旧的未签名发布时,安装器会fail closed(安全侧停止);无法完成验证时请使用pipx/uv/pip。执行前请验证install.sh: ```bash set -eu @@ -84,4 +84,4 @@ gh attestation verify "$staging/install.sh" --repo "$repo" \ sh "$staging/install.sh" ``` -下载上限为单文件8 MiB、支持文件256 KiB、元数据1 MiB。认证manifest/来源证明、准确标签/版本与暂存--version检查在替换前完成。发送端在SSH部署前验证,离线目标仅需Python。验证失败保留已有文件。SSH允许列表、既有配对绑定审核及Control登录迁移见发布说明。 +下载上限为单文件8 MiB、辅助文件256 KiB、元数据1 MiB。替换文件前会验证认证过的manifest/来源证明、准确的标签/版本,以及暂存文件的--version。发送端会在SSH部署前完成验证;离线目标只需要Python。验证失败时不会改动已有文件。SSH选项允许列表、既有配对绑定检查及Control登录迁移请参阅发布说明。 diff --git a/SECURITY.ja.md b/SECURITY.ja.md index 4eb4e369..08e4e4d5 100644 --- a/SECURITY.ja.md +++ b/SECURITY.ja.md @@ -2,19 +2,19 @@ ## 脆弱性の報告 -[GitHub のプライベート脆弱性報告](https://github.com/abruption/session-peer/security/advisories/new) を使用して、疑われる脆弱性を報告してください。公開 Issue、プルリクエスト、またはコメントで開示しないでください。 +[GitHubの非公開脆弱性報告機能](https://github.com/abruption/session-peer/security/advisories/new)から、脆弱性の疑いがある内容を報告してください。公開Issue、プルリクエスト、コメントでは開示しないでください。 -そのフォームを使用できない場合は、件名に `[session-peer] Security` と記載して [support@abruption.dev](mailto:support@abruption.dev?subject=%5Bsession-peer%5D%20Security) にメールを送信してください。メールは代替の非公開連絡手段であり、エンドツーエンドで暗号化された送信メカニズムではありません。編集済みの説明から始め、本番環境のシークレットや実データを送信しないでください。 +そのフォームを使用できない場合は、件名に `[session-peer] Security` と記載して [support@abruption.dev](mailto:support@abruption.dev?subject=%5Bsession-peer%5D%20Security) にメールを送信してください。メールは代替の非公開連絡手段であり、エンドツーエンド暗号化された送信手段ではありません。まず機密情報を伏せた説明を送り、有効なシークレットや本番データは送信しないでください。 影響を受けるバージョンまたはコミット、インストール方法、各エンドポイントの OS、Python、およびエージェントのバージョン、影響を受けるコマンドまたはコンポーネント、攻撃者に必要なアクセス権、期待される動作と観測された動作、影響、およびダミーのアカウント、パス、セッション、メッセージを使用した最小限の再現手順を含めてください。 -トークン、パスワード、秘密鍵、ペアリングシークレット、会話テキスト、セッション/スレッド識別子、個人のパス、ホスト名、およびアドレスを診断情報から削除してください。関係性が重要な場合は、一貫したプレースホルダーを使用してください。エージェントホーム全体、SQLite データベース、JSONL トランスクリプト、ブラウザプロファイル、または `.env` ファイルをアップロードしないでください。露出したシークレットは関連プロバイダーを通じて失効またはローテーションしてください。公開コメントを削除するだけでは無効化されません。 +トークン、パスワード、秘密鍵、ペアリングシークレット、会話テキスト、セッション/スレッド識別子、個人のパス、ホスト名、アドレスを診断情報から取り除いてください。関係性が重要な場合は、一貫したプレースホルダーを使用してください。エージェントのホームディレクトリ全体、SQLite データベース、JSONL形式の会話記録、ブラウザプロファイル、または `.env` ファイルをアップロードしないでください。漏えいしたシークレットは、関連プロバイダーを通じて失効させるかローテーションしてください。公開コメントを削除しただけでは無効になりません。 ## レビューとサポートされるバージョン -報告はベストエフォートで手動レビューされます。応答や修正の期限は保証されません。どのバージョンに関する報告も歓迎します。メンテナンスは最新の session-peer リリースに焦点を当てており、古いバージョンやレガシーの cc-peer パッケージには保証されたバックポートポリシーはありません。 +報告は可能な範囲で担当者が手動確認します。応答や修正の期限は保証されません。どのバージョンに関する報告も歓迎します。保守は最新の session-peer リリースを中心に行います。古いバージョンやレガシーの cc-peer パッケージへのバックポートは保証されません。 -メンテナーは報告者と調査および開示を調整します。プライベートな報告やメールが自動的に公開 Issue に変換されることはありません。英語および韓国語での報告を歓迎します。 +メンテナーは報告者と調査および開示を調整します。非公開の報告やメールが公開Issueに自動で変換されることはありません。英語および韓国語での報告を歓迎します。 通常のバグや機能リクエストについては、[公開 Issue テンプレート](https://github.com/abruption/session-peer/issues/new/choose) を使用してください。 @@ -22,4 +22,4 @@ Dependabot の脆弱性アラートは、バージョン更新のプルリクエストとは独立して有効になっています。Dependabot による自動セキュリティ更新のプルリクエストは無効のままで、Dependabot のバージョン更新設定もありません。メンテナーがアラートを確認し、依存関係とビルドツールの固定バージョンを手動で更新します。 -独立した[定期依存関係監査](.github/workflows/dependency-audit.yml)は毎週月曜日の 06:23 UTC に実行され、`workflow_dispatch` で手動実行もできます。隔離環境で Python の `relay,mcp` ランタイム依存関係を `pip-audit` で監査し、`control/` の Node ランタイム依存関係を `npm audit --omit=dev` で監査します。脆弱性の検出と監査エラーはその監査実行を失敗にし、ジョブの概要と 30 日間保持されるダウンロード可能な JSON/ログアーティファクトに表示されます。このワークフローはプルリクエストでは実行されず、CI の `release-gate` にも参加しません。既存の CI とリリース監査は引き続き適用されます。 +独立した[定期依存関係監査](.github/workflows/dependency-audit.yml)は毎週月曜日の 06:23 UTC に実行され、`workflow_dispatch` で手動実行もできます。隔離環境で Python の `relay,mcp` ランタイム依存関係を `pip-audit` で監査し、`control/` の Node ランタイム依存関係を `npm audit --omit=dev` で監査します。脆弱性が見つかった場合や監査エラーが発生した場合、その監査実行は失敗扱いとなり、ジョブの概要と 30 日間保持されるダウンロード可能な JSON/ログアーティファクトに結果が表示されます。このワークフローはプルリクエストでは実行されず、CI の `release-gate` にも参加しません。既存のCIとリリース監査は引き続き適用されます。 diff --git a/SECURITY.zh-CN.md b/SECURITY.zh-CN.md index 37d89ea3..6c137283 100644 --- a/SECURITY.zh-CN.md +++ b/SECURITY.zh-CN.md @@ -2,19 +2,19 @@ ## 报告漏洞 -对于可疑的漏洞,请使用 [GitHub 私密漏洞报告](https://github.com/abruption/session-peer/security/advisories/new)。切勿在公开议题、拉取请求或评论中披露它们。 +如怀疑存在漏洞,请通过 [GitHub 私密漏洞报告功能](https://github.com/abruption/session-peer/security/advisories/new)提交报告。切勿在公开议题、拉取请求或评论中披露漏洞。 -如果您无法使用该表单,请向 [support@abruption.dev](mailto:support@abruption.dev?subject=%5Bsession-peer%5D%20Security) 发送邮件,主题注明 `[session-peer] Security`。电子邮件是一种备选的私密联系渠道,并非端到端加密的提交机制。请先提供已脱敏的描述;切勿发送有效的机密或生产数据。 +如果您无法使用该表单,请向 [support@abruption.dev](mailto:support@abruption.dev?subject=%5Bsession-peer%5D%20Security) 发送邮件,主题注明 `[session-peer] Security`。电子邮件是另一种私密联系渠道,但并非端到端加密的提交方式。请先提供已隐去敏感信息的描述;切勿发送仍在使用的机密信息或生产数据。 -请提供受影响的版本或提交、安装方法、各端点上的操作系统、Python 和代理版本;受影响的命令或组件;所需的攻击者访问权限;预期行为与观察到的行为;影响;以及使用虚构账户、路径、会话和消息的最小复现。 +请提供受影响的版本或提交、安装方法、各端点上的操作系统、Python 和代理版本;受影响的命令或组件;攻击者所需的访问权限;预期行为与实际观察到的行为;影响;以及使用虚构账户、路径、会话和消息编写的最小复现步骤。 -从诊断信息中移除令牌、密码、私钥、配对机密、对话文本、会话/线程标识符、个人路径、主机名和地址。在关系重要之处使用一致的占位符。切勿上传完整的代理主目录、SQLite 数据库、JSONL 脚本记录、浏览器配置文件或 `.env` 文件。通过相关提供商吊销或轮换暴露的机密;仅仅删除公开评论并不能使它们失效。 +请从诊断信息中移除令牌、密码、私钥、配对机密、对话文本、会话/线程标识符、个人路径、主机名和地址。在需要表达相互关系时,请使用一致的占位符。切勿上传完整的智能体主目录、SQLite 数据库、JSONL 会话记录、浏览器配置文件或 `.env` 文件。请通过相关服务提供商撤销或轮换已泄露的机密;仅删除公开评论并不能使其失效。 ## 审查与受支持的版本 -报告会由人工在尽力而为的基础上进行审查;不保证响应或修复截止期限。欢迎提供关于任何版本的报告。维护重点关注最新的 session-peer 发布版本;旧版本和旧版 cc-peer 软件包没有有保证的反向移植(backport)政策。 +报告由维护者人工尽力审核;不保证响应或修复期限。欢迎报告任何版本的问题。维护工作主要面向最新的 session-peer 版本;旧版本及旧版 cc-peer 软件包不保证获得反向移植(backport)修复。 -维护者将与报告者协调调查和披露事宜。私密报告和电子邮件不会自动转换为公开议题。欢迎使用英文和韩文提交报告。 +维护者将与报告者协调调查和披露事宜。私密报告和电子邮件不会自动转为公开议题。欢迎使用英文和韩文提交报告。 对于普通错误和功能请求,请使用[公开议题模板](https://github.com/abruption/session-peer/issues/new/choose)。 diff --git a/plugins/session-peer/README.ja.md b/plugins/session-peer/README.ja.md index 02dc2d68..bca7fe16 100644 --- a/plugins/session-peer/README.ja.md +++ b/plugins/session-peer/README.ja.md @@ -1,5 +1,5 @@ # session-peer Codex プラグイン -Python 3.10+ で `session-peer[mcp]` をインストールし、Codex ホストの PATH 上で `session-peer-mcp` を利用可能にします。リポジトリのチェックアウトから `codex plugin marketplace add /absolute/path/to/session-peer` を実行し、次に `codex plugin add session-peer@session-peer` を実行します。チェックアウトには `.agents/plugins/marketplace.json` が含まれています。このマニフェストは、同梱されている `.mcp.json` stdio サーバーを登録します。 +Python 3.10+ で `session-peer[mcp]` をインストールし、CodexホストのPATHから `session-peer-mcp` を実行できるようにします。リポジトリのチェックアウトディレクトリで `codex plugin marketplace add /absolute/path/to/session-peer` を実行し、続けて `codex plugin add session-peer@session-peer` を実行します。チェックアウトには `.agents/plugins/marketplace.json` が含まれています。プラグインのマニフェストが、同梱の `.mcp.json` stdioサーバーを登録します。 -サーバー環境の `SESSION_PEER_MCP_CONFIG` に絶対パスのポリシーファイルを設定します。これが設定されていない場合、ローカルの一覧取得のみが許可されます。[MCP のセットアップとポリシー](../../docs/ja/mcp.md) を参照してください。このバンドルをインストールしても、Python の依存関係がインストールされたり、送信権限が付与されたりすることはありません。 +サーバー環境の `SESSION_PEER_MCP_CONFIG` にポリシーファイルの絶対パスを設定します。設定がない場合は、ローカルセッションの一覧表示のみが許可されます。[MCP のセットアップとポリシー](../../docs/ja/mcp.md) を参照してください。このバンドルをインストールしても、Pythonの依存関係がインストールされたり、送信権限が付与されたりすることはありません。 diff --git a/plugins/session-peer/README.zh-CN.md b/plugins/session-peer/README.zh-CN.md index 7247156a..c7065399 100644 --- a/plugins/session-peer/README.zh-CN.md +++ b/plugins/session-peer/README.zh-CN.md @@ -1,5 +1,5 @@ # session-peer Codex 插件 -在 Python 3.10+ 环境下安装 `session-peer[mcp]`,然后在 Codex 主机的 PATH 中提供 `session-peer-mcp`。从仓库检出目录运行 `codex plugin marketplace add /absolute/path/to/session-peer`,然后运行 `codex plugin add session-peer@session-peer`。该检出包含 `.agents/plugins/marketplace.json`。该清单注册了附带的 `.mcp.json` stdio 服务器。 +在 Python 3.10+ 环境下安装 `session-peer[mcp]`,然后确保在 Codex 主机的 PATH 中能够找到 `session-peer-mcp`。在仓库检出目录中运行 `codex plugin marketplace add /absolute/path/to/session-peer`,接着运行 `codex plugin add session-peer@session-peer`。检出目录中包含 `.agents/plugins/marketplace.json`。插件清单会注册随附的 `.mcp.json` stdio 服务器。 -在服务器环境中将 `SESSION_PEER_MCP_CONFIG` 设置为绝对策略文件路径。若无此配置,仅允许本地列出。参见 [MCP 设置与策略](../../docs/zh-CN/mcp.md)。安装此捆绑包不会安装 Python 依赖项,也不会授予发送权限。 +在服务器环境中将 `SESSION_PEER_MCP_CONFIG` 设置为策略文件的绝对路径。若未配置,则仅允许列出本地会话。参见 [MCP 设置与策略](../../docs/zh-CN/mcp.md)。安装此捆绑包不会安装 Python 依赖项,也不会授予发送权限。 From 26e35bc98fbfc052077aa4e6aafb0592bafb28ef Mon Sep 17 00:00:00 2001 From: YEONGUK LEE Date: Thu, 8 Oct 2026 07:20:24 +0900 Subject: [PATCH 2/4] docs(i18n): preserve release gate intent in translations --- RELEASING.ja.md | 2 +- RELEASING.zh-CN.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/RELEASING.ja.md b/RELEASING.ja.md index 5fb674d1..12c0749d 100644 --- a/RELEASING.ja.md +++ b/RELEASING.ja.md @@ -48,7 +48,7 @@ publish.ymlは所有者、正確なタグ/ソース/main系譜を確認し、固 ## 保留中のPyPIデプロイに対する人手レビュー 1. アップロード前に、対象のActions実行がpypiのレビュー待ちで停止していることを確認します。実行URL/ID、試行回数、タグ、コミット、SHA256SUMS、release-provenance.json、保留時刻を記録します。ソーステストやリポジトリ設定だけでは停止を証明できません。次回リリースで実際の停止を確認することが#235の受け入れ条件です。 -2. 必須の人手レビュー担当者が候補の証拠と現在のTrusted Publisher/環境設定を確認します。**Review deployments**で**pypi**を選び、承認権限がある場合に限り**Approve and deploy**を明示的に選択します。GitHub公開の承認は、このレビューの代わりにはなりません。デプロイが保留になったら必須の人手レビューを依頼し、環境ゲートを維持します。 +2. 必須の人手レビュー担当者が候補の証拠と現在のTrusted Publisher/環境設定を確認します。**Review deployments**で**pypi**を選びます。所有者からこのバージョンの公開について明示的な承認を得た後に限り、権限を持つ担当者が**Approve and deploy**を選択します。GitHub公開の承認は、このレビューの代わりにはなりません。デプロイが保留になったら必須の人手レビューを依頼し、環境ゲートを維持します。 3. アップロードを拒否するには、**pypi**を選び、理由を説明して**Reject**を選択します。想定した停止や操作項目がない場合は、アップロード前に停止して実行をキャンセルします。拒否またはキャンセルした実行の記録を保持し、原因を解決します。拒否を回避するためにタグを移動したり、バージョンを再利用したりしないでください。 4. レビュー担当者、判断、コメント、時刻、結果を記録し、アップロードと検証の証拠を保持します。拒否されたことは、公開の成功や承認ゲートが想定どおり停止したことの検証を意味しません。管理者による迂回は例外として扱い、別途、所有者の明示的な承認を得てください。その場合は理由、実行者、時刻、実行、タグ、コミットを記録します。 diff --git a/RELEASING.zh-CN.md b/RELEASING.zh-CN.md index 1ece5e3f..260b4846 100644 --- a/RELEASING.zh-CN.md +++ b/RELEASING.zh-CN.md @@ -4,14 +4,14 @@ ## 历史证据与当前边界 -在5台主机上进行的v1.0.0 RC4 rc4-rerun-02测试持续了14,436.65秒。记录状态为complete,公开健康检查为241/241,探测为147/147,提交为21/21,Relay重启后的恢复时间为3.182秒。独立确认的ACK为20/21。T120时Windows原生Claude的TUI已关闭,因此原始ACK未能确认;之后另一次单独测试收到了准确的ACK。所有者在#164中接受了这一例外。请保留20/21这一结果;这段历史记录不能证明v1.0.4已通过验证。#161仍未解决,外部停滞的根本原因也尚未确认。 +在5台主机上进行的v1.0.0 RC4 rc4-rerun-02测试持续了14,436.65秒。记录状态为complete,公开健康检查为241/241,探测为147/147,提交为21/21,Relay重启后的恢复时间为3.182秒。独立确认的ACK为20/21。在Windows原生Claude的T120测试中,TUI已关闭,因此无法确认原始ACK;之后另一次单独测试收到了准确的ACK。所有者在#164中接受了这一例外。请保留20/21这一结果;这段历史记录不能证明v1.0.4已通过验证。#161仍未解决,外部停滞的根本原因也尚未确认。 Python/PyPI版本为1.0.4,对应标签和GitHub发布为v1.0.4。只有在获得发布授权后,才能将其设为稳定版和Latest。插件版本独立管理。核心CLI需要Python 3.9+,MCP需要3.10+,Relay接收端/服务器需要Unix或WSL及Python 3.11+。由服务管理器启动的接收端需要在服务PATH中找到Codex,或使用由运维人员管理的codexBin绑定。软件包发布不能证明托管服务的修复已部署、已安装到所有设备、生产服务已重启、线上OAuth运行正常或代理已发送ACK。未知结果不能作为自动重发的依据。 ## 源码与配置门禁 1. 将v1.0.4的变更与v1.0.3及四种语言的发布说明对照。确保合并后的main包含#262、#263、#264、#265、#266、#267这6项维护修复。保留已发布的v1.0.3安全历史,以及独立技能的版本、最低运行时版本和完整功能覆盖版本契约。确认软件包和生成文件中的版本、四种语言README中的稳定版提示,以及归档内的发布说明。冻结cc_peer.py并将其排除在发行包之外;同时排除凭据、密钥、数据库、重放状态、浏览器配置文件、本地证据和聊天记录。 -2. 运行完整的本地测试和PR发布门禁。合并后,必须确认合并后的公开main在准确提交上通过CI。私有安全公告修复分支上的检查不能替代公开发布门禁。验证在干净环境中安装wheel/sdist、在隔离环境中导入已安装的软件包、CLI版本准确、在已初始化主目录中执行JSON list、extras以及pip check。显式指定的空Codex主目录必须以state_db_missing安全失败(fail closed)。此门禁不发送真实消息。 +2. 运行完整的本地测试和PR发布门禁。合并后,必须确认合并后的公开main在准确提交上通过CI。私有安全公告修复分支上的检查不能替代公开发布门禁。验证在干净环境中安装wheel/sdist、在隔离环境中导入已安装的软件包、CLI版本准确、在已初始化主目录中执行JSON list、extras以及pip check。显式指定的空Codex主目录必须因state_db_missing而安全失败(fail closed)。执行此门禁期间不要提交真实消息。 3. 确认PyPI上尚无1.0.4文件。2026-10-07的准备检查中,该版本JSON返回了HTTP 404。检查GitHub Immutable Releases和v*标签规则:允许创建标签;禁止更新或删除标签,且不设置绕过权限。所有者于2026-10-03启用了该规则(规则编号24408525),2026-10-05的检查确认严格的main发布门禁。2026-10-07的GitHub API检查再次确认Immutable Releases已启用、规则24408525有效、适用于refs/tags/v*,并且禁止更新/删除且没有绕过权限。历史版本v1.0.2并非不可变,也没有发布资产,因此不是经过验证的单文件发布版本。发布前请重新检查当前设置。 4. 确认Trusted Publisher将session-peer映射到abruption/session-peer、publish.yml和pypi。2026-10-05通过已登录的PyPI浏览器确认过该映射;这属于历史证据,并非新的PyPI浏览器复核。2026-10-07的GitHub API检查再次确认必须由审核者`abruption`审核、允许自审 (`prevent_self_review: false`),并允许`v*`标签。2026-10-05检查时,管理员绕过权限已启用 (`can_admins_bypass: true`);不要将这项历史观察当作对当前绕过策略的确认。所有者此前的[2026-09-29映射检查](https://github.com/abruption/session-peer/issues/235#issuecomment-5882178667)同样属于历史证据。请重新检查设置并按正常流程进行人工审核,不得擅自绕过。 From 74f46e3157eb4287fa707e2db2b57498dc31190e Mon Sep 17 00:00:00 2001 From: YEONGUK LEE Date: Thu, 8 Oct 2026 07:27:30 +0900 Subject: [PATCH 3/4] docs(i18n): center localized README heroes --- README.ja.md | 4 ++++ README.zh-CN.md | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/README.ja.md b/README.ja.md index 72dd52ec..a771d739 100644 --- a/README.ja.md +++ b/README.ja.md @@ -1,3 +1,5 @@ +
+ # session-peer [![PyPI](https://img.shields.io/pypi/v/session-peer)](https://pypi.org/project/session-peer/) @@ -13,6 +15,8 @@ 別のセッションに変更のレビュー、進捗報告、作業の引き継ぎを依頼できます。 各エージェント固有の受信箱やキューを利用し、応答方法は受信側のエージェントが決定します。 +
+ ## デモ diff --git a/README.zh-CN.md b/README.zh-CN.md index cb838dc0..f528f8d7 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -1,3 +1,5 @@ +
+ # session-peer [![PyPI](https://img.shields.io/pypi/v/session-peer)](https://pypi.org/project/session-peer/) @@ -13,6 +15,8 @@ 可以请另一个会话审查改动、汇报进度或接手任务。 session-peer使用各智能体自身的收件箱和队列;接收方智能体自行决定如何响应。 +
+ ## 演示 From c4e75e2c7cf885ac919c1f11b87ed0dce0942a4a Mon Sep 17 00:00:00 2001 From: YEONGUK LEE Date: Thu, 8 Oct 2026 07:29:52 +0900 Subject: [PATCH 4/4] docs(i18n): center localized README heroes --- README.ja.md | 4 ++-- README.zh-CN.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.ja.md b/README.ja.md index a771d739..e40c47f7 100644 --- a/README.ja.md +++ b/README.ja.md @@ -12,11 +12,11 @@ **1つのコマンドラインツール(CLI)で、ローカルやSSH接続先にあるClaude Code・Codexのセッションを検索し、メッセージを送れます。** + + 別のセッションに変更のレビュー、進捗報告、作業の引き継ぎを依頼できます。 各エージェント固有の受信箱やキューを利用し、応答方法は受信側のエージェントが決定します。 - - ## デモ diff --git a/README.zh-CN.md b/README.zh-CN.md index f528f8d7..3773eedb 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -12,11 +12,11 @@ **使用一个命令行工具(CLI),即可查找本机或通过SSH连接的远程主机上的Claude Code与Codex会话,并向其发送消息。** + + 可以请另一个会话审查改动、汇报进度或接手任务。 session-peer使用各智能体自身的收件箱和队列;接收方智能体自行决定如何响应。 - - ## 演示