Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
605061e
docs(handoff): propose shared v0.2 evidence and receipt contract
abruption Oct 6, 2026
b369cef
docs(handoff): resolve v0.2 receipt and validation freeze gates
abruption Oct 6, 2026
99d8ec3
docs(handoff): align native profiles and explicit wait exits
abruption Oct 6, 2026
d8f56c1
docs(handoff): align frozen design with current main
abruption Oct 8, 2026
de1ad51
feat(identity): pin Claude sends to observed process generations
abruption Oct 9, 2026
fed40b9
fix(identity): bound opt-in inbox effect deadlines
abruption Oct 9, 2026
83fe3dc
test(identity): isolate POSIX deadline fixtures on Windows
abruption Oct 9, 2026
1071b76
feat(handoff): add fenced private POSIX receipt runtime candidate
abruption Oct 9, 2026
9a28c2d
fix(claude): retain native facts when generation echo is invalid
abruption Oct 9, 2026
b75b43d
fix(handoff): validate retained receipt and wait metadata
abruption Oct 9, 2026
7598fcb
feat(delivery): frame untrusted peer messages at native boundaries
abruption Oct 9, 2026
5dc9c4a
fix(delivery): budget final framed Windows Codex arguments
abruption Oct 9, 2026
c10bb92
fix(handoff): bound private input and preserve native evidence
abruption Oct 9, 2026
d6c3d1c
fix(handoff): share native Darwin clock across receipt processes
abruption Oct 9, 2026
3c1287e
test(handoff): preserve remaining budgets across clock domains
abruption Oct 9, 2026
d9d1e15
feat(handoff): fence correlation-only Codex queue attempts
abruption Oct 9, 2026
7a2b7f4
fix(codex): refuse unverified home storage overrides
abruption Oct 9, 2026
ab7be7c
test(codex): isolate cross-platform environment key fixtures
abruption Oct 9, 2026
de9bccd
feat(handoff): bound stdin and retain original Codex context
abruption Oct 9, 2026
149f083
fix(handoff): require matching native queue evidence
abruption Oct 9, 2026
a061851
fix(handoff): preserve proven native facts and original target context
abruption Oct 9, 2026
7ca53e9
feat(ssh): bind optional host-key pins to the dispatch connection
abruption Oct 9, 2026
7e5c2bc
test(docs): intercept examples using a POSIX function identifier
abruption Oct 9, 2026
3279680
docs(ssh): verify localized host-key command continuation
abruption Oct 9, 2026
02d84c5
test(handoff): accept deadline closure during slow frame writes
abruption Oct 9, 2026
f320f08
refactor(handoff): share bounded owned-process and private SSH plumbing
abruption Oct 9, 2026
e808df9
feat(handoff): fence bounded source-streamed SSH native submissions
abruption Oct 9, 2026
7f9f8c4
fix(handoff): preserve local message limits for self routes
abruption Oct 9, 2026
cd508ca
fix(generation): preserve original stale target metadata
abruption Oct 9, 2026
80f0acc
test(generation): reject stale pins after owned process restart
abruption Oct 9, 2026
8ec6cf9
test(identity): cover unsupported Codex pins across send modes
abruption Oct 9, 2026
3a4dcb4
chore(release): prepare v1.1.0 candidate
abruption Oct 9, 2026
51e67a5
docs(release): clarify candidate payload and evidence boundaries
abruption Oct 9, 2026
88c661f
chore(handoff): integrate reviewed prerequisites before final merge
abruption Oct 9, 2026
a12a37b
Merge remote-tracking branch 'origin/main' into abruption/v110-handof…
abruption Oct 9, 2026
f785976
chore(release): integrate reviewed v1.1.0 candidate for local preflight
abruption Oct 9, 2026
7f38b63
test(handoff): align positive receipt fixture with cleanup reserve
abruption Oct 9, 2026
6d9e937
Merge commit '7f38b63290199a8928beb7220278869ddcee4d88' into abruptio…
abruption Oct 9, 2026
370ee06
chore(release): align v1.1.0 preparation with merged main
abruption Oct 9, 2026
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: 2 additions & 0 deletions README.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ Python 3.9以上が必要です。基本のローカル・SSH CLIに外部Python

2026-10-07付のメンテナンス版の[リリースノート](docs/ja/releases/v1.0.4.md)を参照してください。パッケージ公開と本番環境への配備は別です。

リリース候補 **1.1.0** を準備中で、まだ公開していません。予定される変更と残る検証条件は[候補ノート](docs/ja/releases/v1.1.0.md)を参照してください。

```bash
pipx install session-peer
session-peer --version
Expand Down
2 changes: 2 additions & 0 deletions README.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ Python 3.9 이상이 필요합니다. 기본 로컬·SSH CLI는 외부 Python

2026-10-07 유지보수 릴리스의 [릴리스 노트](docs/ko/releases/v1.0.4.md)를 참고하십시오. 패키지 공개와 운영 배포는 별개입니다.

릴리스 후보 **1.1.0**을 준비하고 있으며 아직 발행하지 않았습니다. 예정된 변경과 남은 검증 조건은 [후보 릴리스 노트](docs/ko/releases/v1.1.0.md)를 참고하십시오.

```bash
pipx install session-peer
session-peer --version
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ Current stable release: **1.0.4**.

Maintenance release dated 2026-10-07; see the [release notes](docs/releases/v1.0.4.md). Package publication and operational deployment are separate.

Release candidate **1.1.0** is being prepared; it is not published. See the [candidate notes](docs/releases/v1.1.0.md) for planned changes and remaining acceptance gates.

```bash
pipx install session-peer
session-peer --version
Expand Down
2 changes: 2 additions & 0 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ session-peer使用各智能体自身的收件箱和队列;接收方智能体

请参阅2026-10-07维护版本的[发布说明](docs/zh-CN/releases/v1.0.4.md)。软件包发布与生产环境部署是两项独立操作。

发布候选 **1.1.0** 正在准备,尚未发布。计划变更与剩余验收条件请参阅[候选说明](docs/zh-CN/releases/v1.1.0.md)。

```bash
pipx install session-peer
session-peer --version
Expand Down
18 changes: 9 additions & 9 deletions RELEASING.ja.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# session-peerのリリース

1.0.4は、1.0.3に続く2026-10-07付のメンテナンスリリースです。準備のみの承認では、タグ作成、ドラフト作成、ワークフローの起動、公開には進みません。このリリースを完了するよう明示的に指示された場合、公開手順は承認されたものとして扱います。ただし、必須の人手によるPyPI環境レビューや本番環境への配備が不要になるわけではありません。準備、変更できないGitHub公開、人手によるPyPI環境レビュー、公開後の検証を区別します。保護されたmainでは、レビュー済みで最新のPRと、Pythonのプラットフォーム別テストマトリクス、ドキュメント、シェル、パッケージ/単独ファイル/MCP/Relay/Control、統合テスト、Python/Nodeの依存関係監査を含む統合リリースゲートへの合格が必要です。
1.1.0は2026-10-09に準備した未公開の候補で、現在の公開安定版は1.0.4です。 準備のみの承認では、タグ作成、ドラフト作成、ワークフローの起動、公開には進みません。このリリースを完了するよう明示的に指示された場合、公開手順は承認されたものとして扱います。ただし、必須の人手による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では、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またはv1.1.0の検証にはなりません。#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を証明するものではありません。不明な結果が自動再送を許可することはありません。
Python/PyPI候補は1.1.0で、予定するタグとGitHubリリースはv1.1.0です。準備ではどちらも作成しません。公開の承認を得た後にのみ、安定版および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は変更せず、配布物から除外します。資格情報、鍵、データベース、リプレイ状態、ブラウザープロファイル、ローカルの証拠と会話も含めないでください。
1. v1.1.0候補を公開版1.0.4と4言語のノートで照合します。PR #261と機能PR #283–#290は通常の保護手順で統合基準 `3b328799b73b69e3640534ce229ec5ba565ca894` にマージ済みです。準備PRの正確なコミットと最終統合mainの検査を必須とし、両方のparser保護と固定契約のバイトを維持し、#180/#181/#268の未対応条件と別のスキルPR #30を再確認します。公開済みv1.0.3のセキュリティ履歴とスキル0.3.2/最低0.9.1/全機能1.0.1を維持します。パッケージ・生成物のバージョン、4言語READMEの公開版/候補の区別、アーカイブを確認します。cc_peer.pyは凍結し配布から除外します。資格情報、鍵、DB、リプレイ状態、ブラウザープロファイル、ローカル証拠と会話も除外します。
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は不変ではなく、リリースアセットも含まれていませんでした。これは検証済みの単独ファイルリリースではありません。公開前に現在の設定を再確認します。
3. PyPIに1.1.0のファイルがないことを確認します。2026-10-07の準備確認では、過去の1.0.4バージョンの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)も過去の証拠です。設定を再確認し、通常の人手レビューを経てください。無断で迂回しないでください。

## 不変ドラフトの準備
Expand All @@ -21,7 +21,7 @@ Python/PyPI版のバージョンは1.0.4で、対応するタグとGitHubリリ

```bash
git fetch origin main --tags
release_tag=v1.0.4
release_tag=v1.1.0
release_commit=$(git rev-parse origin/main)
git tag "$release_tag" "$release_commit"
git push origin "$release_tag"
Expand All @@ -39,7 +39,7 @@ prepare-release.ymlはソース/ref/バージョン/系譜を検証し、再現
このバージョンを公開するのは、所有者から明示的な承認を得た場合に限ります。このリリースを完了するよう既に指示されている場合は、手続き上の承認要件を満たしているため、この手順書だけを理由に再度確認を求めません。ただし、必須の人手によるpypi環境レビューに代わるものではありません。公開するとタグとアセットが固定され、publish.ymlが開始します。

```bash
gh release edit v1.0.4 --repo abruption/session-peer \
gh release edit v1.1.0 --repo abruption/session-peer \
--draft=false --prerelease=false --latest
```

Expand All @@ -54,9 +54,9 @@ publish.ymlは所有者、正確なタグ/ソース/main系譜を確認し、固

## 公開の検証または復旧

正確なタグとコミットでpublish.ymlおよびPyPIの検証が成功したことを確認します。PyPIから2つのファイルを取得し、ファイル一覧とハッシュが固定済み候補/provenanceと一致することを確認して、クリーンな環境にそれぞれインストールします。隔離環境でのバージョン、初期化済みホームでのJSON list、extras、pip checkも再確認します。安定版/Latestに設定され、通常の更新でv1.0.4が選択されることを確認します。マイルストーンを終了する前に証拠を記録し、#161は監視用として未解決のまま維持します。
正確なタグとコミットでpublish.ymlおよびPyPIの検証が成功したことを確認します。PyPIから2つのファイルを取得し、ファイル一覧とハッシュが固定済み候補/provenanceと一致することを確認して、クリーンな環境にそれぞれインストールします。隔離環境でのバージョン、初期化済みホームでのJSON list、extras、pip checkも再確認します。安定版/Latestに設定され、通常の更新でv1.1.0が選択されることを確認します。マイルストーンを終了する前に証拠を記録し、#161は監視用として未解決のまま維持します。

GitHub公開とPyPI公開は、それぞれ別の不可逆な手順です。GitHub公開後に監査が失敗すると、PyPIファイルがないまま固定されたリリースが残る場合があります。両方の実行記録と正確なアセットを保持してください。監査の迂回、変更したアセットでの再アップロード、既存ファイルのスキップ、バージョンの再利用は禁止です。1.0.4の一部だけがアップロードされた場合や不一致があった場合は、昇格を停止します。最初に失敗したゲートを調べ、レビュー済みの変更と新しいバージョン(通常は1.0.5)で修正します。yankしてもバージョンは再利用できません。
GitHub公開とPyPI公開は、それぞれ別の不可逆な手順です。GitHub公開後に監査が失敗すると、PyPIファイルがないまま固定されたリリースが残る場合があります。両方の実行記録と正確なアセットを保持してください。監査の迂回、変更したアセットでの再アップロード、既存ファイルのスキップ、バージョンの再利用は禁止です。1.1.0の一部だけがアップロードされた場合や不一致があった場合は、昇格を停止します。最初に失敗したゲートを調べ、レビュー済みの変更と新しいバージョン(通常は1.1.1)で修正します。yankしてもバージョンは再利用できません。

## 検証済み単独ファイルの導入

Expand Down
Loading
Loading