session-peer 0.9.0__tar.gz → 0.9.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. {session_peer-0.9.0 → session_peer-0.9.2}/PKG-INFO +18 -3
  2. {session_peer-0.9.0 → session_peer-0.9.2}/README.ja.md +16 -2
  3. {session_peer-0.9.0 → session_peer-0.9.2}/README.ko.md +16 -2
  4. {session_peer-0.9.0 → session_peer-0.9.2}/README.md +17 -2
  5. {session_peer-0.9.0 → session_peer-0.9.2}/README.zh-CN.md +16 -2
  6. {session_peer-0.9.0 → session_peer-0.9.2}/docs/cli-reference.md +33 -10
  7. session_peer-0.9.2/docs/releases/v0.9.1.md +26 -0
  8. session_peer-0.9.2/docs/releases/v0.9.2.md +42 -0
  9. {session_peer-0.9.0 → session_peer-0.9.2}/pyproject.toml +2 -2
  10. {session_peer-0.9.0 → session_peer-0.9.2}/session_peer.py +24 -4
  11. {session_peer-0.9.0 → session_peer-0.9.2}/.agents/plugins/marketplace.json +0 -0
  12. {session_peer-0.9.0 → session_peer-0.9.2}/.gitignore +0 -0
  13. {session_peer-0.9.0 → session_peer-0.9.2}/LICENSE +0 -0
  14. {session_peer-0.9.0 → session_peer-0.9.2}/SECURITY.md +0 -0
  15. {session_peer-0.9.0 → session_peer-0.9.2}/deploy/session-peer-relay.service +0 -0
  16. {session_peer-0.9.0 → session_peer-0.9.2}/docs/agent-adapters.md +0 -0
  17. {session_peer-0.9.0 → session_peer-0.9.2}/docs/antigravity.md +0 -0
  18. {session_peer-0.9.0 → session_peer-0.9.2}/docs/architecture/agent-transports.md +0 -0
  19. {session_peer-0.9.0 → session_peer-0.9.2}/docs/mcp.md +0 -0
  20. {session_peer-0.9.0 → session_peer-0.9.2}/docs/multi-home-list.md +0 -0
  21. {session_peer-0.9.0 → session_peer-0.9.2}/docs/paired-devices.md +0 -0
  22. {session_peer-0.9.0 → session_peer-0.9.2}/docs/relay-development-plan.md +0 -0
  23. {session_peer-0.9.0 → session_peer-0.9.2}/docs/relay-public-pilot-2026-09-17.md +0 -0
  24. {session_peer-0.9.0 → session_peer-0.9.2}/docs/releases/v0.9.0.md +0 -0
  25. {session_peer-0.9.0 → session_peer-0.9.2}/docs/validation/85-antigravity.md +0 -0
  26. {session_peer-0.9.0 → session_peer-0.9.2}/docs/wake.md +0 -0
  27. {session_peer-0.9.0 → session_peer-0.9.2}/plugins/session-peer/.codex-plugin/plugin.json +0 -0
  28. {session_peer-0.9.0 → session_peer-0.9.2}/plugins/session-peer/.mcp.json +0 -0
  29. {session_peer-0.9.0 → session_peer-0.9.2}/plugins/session-peer/README.md +0 -0
  30. {session_peer-0.9.0 → session_peer-0.9.2}/session_peer_mcp.py +0 -0
  31. {session_peer-0.9.0 → session_peer-0.9.2}/session_peer_relay/__init__.py +0 -0
  32. {session_peer-0.9.0 → session_peer-0.9.2}/session_peer_relay/app.py +0 -0
  33. {session_peer-0.9.0 → session_peer-0.9.2}/session_peer_relay/cli.py +0 -0
  34. {session_peer-0.9.0 → session_peer-0.9.2}/session_peer_relay/identity.py +0 -0
  35. {session_peer-0.9.0 → session_peer-0.9.2}/session_peer_relay/native.py +0 -0
  36. {session_peer-0.9.0 → session_peer-0.9.2}/session_peer_relay/relay.py +0 -0
  37. {session_peer-0.9.0 → session_peer-0.9.2}/session_peer_relay/store.py +0 -0
  38. {session_peer-0.9.0 → session_peer-0.9.2}/session_peer_relay/wire.py +0 -0
  39. {session_peer-0.9.0 → session_peer-0.9.2}/session_peer_relay/worker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: session-peer
3
- Version: 0.9.0
3
+ Version: 0.9.2
4
4
  Summary: Message coding agent sessions locally and over SSH
5
5
  Project-URL: Homepage, https://github.com/abruption/session-peer
6
6
  Project-URL: Repository, https://github.com/abruption/session-peer
@@ -82,8 +82,23 @@ threads may be inactive. Ask for an explicit reply when completion matters.
82
82
 
83
83
  ## Installation options
84
84
 
85
- Use `pipx` or `uv`, or run `python -m pip install session-peer` in an activated
86
- virtual environment. For the standalone CLI plus the agent skill:
85
+ Install the Python CLI with `pipx` or `uv`, or run
86
+ `python -m pip install session-peer` in an activated virtual environment.
87
+ Install the agent skill separately for Claude Code, Codex, and Antigravity:
88
+
89
+ ```bash
90
+ npx -y skills@latest add abruption/session-peer \
91
+ --skill session-peer --global \
92
+ --agent claude-code --agent codex --agent antigravity --copy --yes
93
+ ```
94
+
95
+ This writes `SKILL.md` to `~/.claude/skills/session-peer/` and the shared
96
+ `~/.agents/skills/session-peer/` path used for Codex and Antigravity. Update it
97
+ independently with
98
+ `npx -y skills@latest update session-peer --global --yes`. The currently
99
+ verified `skills@1.7.0` requires Node.js 22.20 or newer.
100
+
101
+ For a standalone POSIX installation without the skills CLI:
87
102
 
88
103
  ```bash
89
104
  git clone https://github.com/abruption/session-peer
@@ -47,8 +47,22 @@ session-peer自体をインストールする必要はありません。
47
47
 
48
48
  ## インストール方法
49
49
 
50
- `pipx`や`uv`、または有効化した仮想環境で`python -m pip install session-peer`を使えます。
51
- 単独実行CLIとエージェントスキルをまとめてインストールするには:
50
+ Python CLIは`pipx`や`uv`、または有効化した仮想環境で
51
+ `python -m pip install session-peer`を実行してインストールします。Claude Code、
52
+ Codex、Antigravity用のエージェントスキルは別にインストールします。
53
+
54
+ ```bash
55
+ npx -y skills@latest add abruption/session-peer \
56
+ --skill session-peer --global \
57
+ --agent claude-code --agent codex --agent antigravity --copy --yes
58
+ ```
59
+
60
+ このコマンドは`SKILL.md`を`~/.claude/skills/session-peer/`と、CodexとAntigravityが共有する
61
+ `~/.agents/skills/session-peer/`にインストールします。更新は
62
+ `npx -y skills@latest update session-peer --global --yes`で別途行ってください。
63
+ 検証済みの`skills@1.7.0`にはNode.js 22.20以降が必要です。
64
+
65
+ skills CLIを使わずPOSIX向けの単独実行方式でインストールするには:
52
66
 
53
67
  ```bash
54
68
  git clone https://github.com/abruption/session-peer
@@ -47,8 +47,22 @@ session-peer를 별도로 설치할 필요는 없어요.
47
47
 
48
48
  ## 설치 방법
49
49
 
50
- `pipx`·`uv`를 사용하거나 활성화된 가상 환경에서 `python -m pip install session-peer`를 실행하세요.
51
- 독립 실행 CLI와 에이전트 스킬을 함께 설치하려면:
50
+ Python CLI는 `pipx`·`uv`를 사용하거나 활성화된 가상 환경에서
51
+ `python -m pip install session-peer`를 실행해 설치하세요. Claude Code·Codex·Antigravity용
52
+ 에이전트 스킬은 별도로 설치합니다.
53
+
54
+ ```bash
55
+ npx -y skills@latest add abruption/session-peer \
56
+ --skill session-peer --global \
57
+ --agent claude-code --agent codex --agent antigravity --copy --yes
58
+ ```
59
+
60
+ 이 명령은 `SKILL.md`를 `~/.claude/skills/session-peer/`와 Codex·Antigravity가 함께
61
+ 사용하는 `~/.agents/skills/session-peer/`에 설치해요. 업데이트는
62
+ `npx -y skills@latest update session-peer --global --yes`로 별도 수행하세요.
63
+ 현재 검증한 `skills@1.7.0`은 Node.js 22.20 이상이 필요해요.
64
+
65
+ skills CLI 없이 POSIX 독립 실행 방식으로 설치하려면:
52
66
 
53
67
  ```bash
54
68
  git clone https://github.com/abruption/session-peer
@@ -48,8 +48,23 @@ threads may be inactive. Ask for an explicit reply when completion matters.
48
48
 
49
49
  ## Installation options
50
50
 
51
- Use `pipx` or `uv`, or run `python -m pip install session-peer` in an activated
52
- virtual environment. For the standalone CLI plus the agent skill:
51
+ Install the Python CLI with `pipx` or `uv`, or run
52
+ `python -m pip install session-peer` in an activated virtual environment.
53
+ Install the agent skill separately for Claude Code, Codex, and Antigravity:
54
+
55
+ ```bash
56
+ npx -y skills@latest add abruption/session-peer \
57
+ --skill session-peer --global \
58
+ --agent claude-code --agent codex --agent antigravity --copy --yes
59
+ ```
60
+
61
+ This writes `SKILL.md` to `~/.claude/skills/session-peer/` and the shared
62
+ `~/.agents/skills/session-peer/` path used for Codex and Antigravity. Update it
63
+ independently with
64
+ `npx -y skills@latest update session-peer --global --yes`. The currently
65
+ verified `skills@1.7.0` requires Node.js 22.20 or newer.
66
+
67
+ For a standalone POSIX installation without the skills CLI:
53
68
 
54
69
  ```bash
55
70
  git clone https://github.com/abruption/session-peer
@@ -47,8 +47,22 @@ session-peer send --host worker --to 'codex:<full-thread-uuid>' --message "请
47
47
 
48
48
  ## 安装方式
49
49
 
50
- 可以使用`pipx`或`uv`,也可以在已激活的虚拟环境中运行`python -m pip install session-peer`。
51
- 如需同时安装独立CLI和代理技能:
50
+ 使用`pipx`、`uv`,或在已激活的虚拟环境中运行
51
+ `python -m pip install session-peer`来安装Python CLI。Claude Code、Codex和Antigravity的
52
+ 代理技能需单独安装:
53
+
54
+ ```bash
55
+ npx -y skills@latest add abruption/session-peer \
56
+ --skill session-peer --global \
57
+ --agent claude-code --agent codex --agent antigravity --copy --yes
58
+ ```
59
+
60
+ 此命令会将`SKILL.md`安装到`~/.claude/skills/session-peer/`,以及Codex和Antigravity共用的
61
+ `~/.agents/skills/session-peer/`。请使用
62
+ `npx -y skills@latest update session-peer --global --yes`单独更新技能。
63
+ 目前已验证的`skills@1.7.0`需要Node.js 22.20或更高版本。
64
+
65
+ 如需在不使用skills CLI的情况下进行POSIX独立安装:
52
66
 
53
67
  ```bash
54
68
  git clone https://github.com/abruption/session-peer
@@ -34,8 +34,8 @@ English and Korean reports are welcome.
34
34
 
35
35
  ## Quick start
36
36
 
37
- Install the CLI with `pipx install session-peer` or `uv tool install session-peer`.
38
- For the standalone CLI plus Claude skill, see [Install](#install).
37
+ Install the CLI with `pipx install session-peer` or `uv tool install session-peer`,
38
+ then install the skill with the open agent skills CLI. See [Install](#install).
39
39
 
40
40
  ```bash
41
41
  session-peer list # Claude, Codex + registered Antigravity
@@ -120,16 +120,23 @@ Or with [pipx](https://pipx.pypa.io/) for an isolated install:
120
120
  pipx install session-peer
121
121
  ```
122
122
 
123
- Alternatively, use `uv tool install session-peer`.
124
- Package managers install the `session-peer` command but not the [Claude Code skill](#the-skill).
125
- To add the skill so Claude can use session-peer on its own:
123
+ Alternatively, use `uv tool install session-peer`. Python package managers own
124
+ the command; install the [agent skill](#the-skill) separately for Claude Code,
125
+ Codex, and Antigravity:
126
126
 
127
127
  ```bash
128
- mkdir -p ~/.claude/skills/session-peer
129
- curl -fsSL -o ~/.claude/skills/session-peer/SKILL.md \
130
- https://raw.githubusercontent.com/abruption/session-peer/main/skills/session-peer/SKILL.md
128
+ npx -y skills@latest add abruption/session-peer \
129
+ --skill session-peer --global \
130
+ --agent claude-code --agent codex --agent antigravity --copy --yes
131
131
  ```
132
132
 
133
+ The verified command copies the official repository skill to
134
+ `~/.claude/skills/session-peer/SKILL.md` and the shared
135
+ `~/.agents/skills/session-peer/SKILL.md` path used for Codex and Antigravity.
136
+ At the time of this release,
137
+ `skills@1.7.0` declares Node.js 22.20 or newer. Review skills before installing
138
+ them because agents follow their instructions with the agent's permissions.
139
+
133
140
  ### install.sh
134
141
 
135
142
  Installs both the command and the skill in one step. Use this for air-gapped
@@ -168,6 +175,9 @@ chmod +x session_peer.py
168
175
 
169
176
  ### The skill
170
177
 
178
+ The recommended `skills` CLI command above installs the same repository-owned
179
+ skill for Claude Code, Codex, and Antigravity and records its source for
180
+ explicit updates.
171
181
  The standalone installer puts the program in `~/.local/share/session-peer/`
172
182
  and the skill separately in `~/.claude/skills/session-peer/SKILL.md`. Skill placement
173
183
  respects `CLAUDE_CONFIG_DIR`, then `ANTHROPIC_CONFIG_DIR`, before the default.
@@ -352,6 +362,17 @@ without replacing package-owned files. `session-peer update --check` checks the
352
362
  latest stable GitHub release, refreshes the shared cache, and reports the exact
353
363
  upgrade command, but still does not replace those files.
354
364
 
365
+ The agent skill has a separate update lifecycle. Refresh global copies installed
366
+ with the skills CLI by running:
367
+
368
+ ```bash
369
+ npx -y skills@latest update session-peer --global --yes
370
+ ```
371
+
372
+ Upgrading session-peer with pip, pipx, or uv intentionally does not modify agent
373
+ configuration directories. Run both upgrades when both the Python command and
374
+ the agent instructions need updating.
375
+
355
376
  For standalone programs:
356
377
 
357
378
  ```bash
@@ -369,8 +390,10 @@ from GitHub. Remote version probes inspect only
369
390
  remote update installs that standalone path and its CLI link. For a
370
391
  package-managed remote CLI, upgrade it with its own manager on that host instead.
371
392
 
372
- Neither local nor remote `update` refreshes the Claude skill. Re-run `install.sh`
373
- from the desired release checkout to refresh both standalone program and skill.
393
+ Neither local nor remote standalone `session-peer update` refreshes its Claude
394
+ skill copy. Re-run `install.sh` from the desired release checkout to refresh
395
+ both standalone program and skill; installations managed by the skills CLI use
396
+ the separate `skills update` command above.
374
397
  Local `session-peer update --check` and `session-peer update` also populate the
375
398
  same cache used by automatic notices.
376
399
 
@@ -0,0 +1,26 @@
1
+ # session-peer v0.9.1
2
+
3
+ This documentation hotfix separates Python package management from agent skill
4
+ management. Install or upgrade the CLI with pip, pipx, or uv, and install the
5
+ official skill for Claude Code, Codex, and Antigravity with the open agent
6
+ skills CLI:
7
+
8
+ ```bash
9
+ npx -y skills@latest add abruption/session-peer \
10
+ --skill session-peer --global \
11
+ --agent claude-code --agent codex --agent antigravity --copy --yes
12
+ ```
13
+
14
+ The verified command writes the skill to
15
+ `~/.claude/skills/session-peer/SKILL.md` and the shared
16
+ `~/.agents/skills/session-peer/SKILL.md` path used for Codex and Antigravity.
17
+ Skill updates remain explicit and
18
+ independent from Python package upgrades:
19
+
20
+ ```bash
21
+ npx -y skills@latest update session-peer --global --yes
22
+ ```
23
+
24
+ The validation used `skills@1.7.0`, which declares Node.js 22.20 or newer. This
25
+ release does not add a package-install hook and does not make pip write into
26
+ agent configuration directories.
@@ -0,0 +1,42 @@
1
+ # session-peer v0.9.2 — Windows Claude authentication hotfix
2
+
3
+ Prepared candidate; not yet published.
4
+
5
+ This patch is based on v0.9.1 and does not include the 1.0 beta/RC features.
6
+ It fixes the authentication envelope sent to native Windows Claude Code named
7
+ pipes. The registry's `peerToken` is now mapped to the wire protocol's `token`
8
+ field, rather than forwarding the registry JSON and process metadata verbatim.
9
+ Malformed key records and missing, empty or non-string tokens are not used.
10
+
11
+ The bug is present in v0.9.1 and in the initial Windows implementation; it is
12
+ not established to be a Claude Code update regression. On Claude Code 2.1.278,
13
+ the old envelope closes the pipe without delivering the message. An isolated
14
+ test changing only the auth envelope delivered a real message and produced a
15
+ receiver response. Exact ACK and final candidate validation are separate gates.
16
+
17
+ No permission settings or inbound policies are changed. A successful send
18
+ still reports a transport write, not proof that the agent consumed or accepted
19
+ the message. Existing unknown sends must not be replayed automatically.
20
+
21
+ The same correction must be carried forward to the 1.0 RC line. This release
22
+ does not add the RC's native Windows Codex writer checks or WSL/native Codex
23
+ bridge. It also improves SSH diagnostics for missing `python3` and Windows Store
24
+ aliases (#151): remote source streaming still requires working Python and a
25
+ POSIX-compatible SSH shell. It does not install Python, change SSH shells or
26
+ automatically resend messages.
27
+
28
+ ## Before publication
29
+
30
+ - Review the minimal v0.9.1-based diff and run Windows/macOS/Linux CI.
31
+ - Confirm the built wheel and sdist report 0.9.2, exclude the frozen legacy
32
+ `cc_peer.py`, and preserve the stable package contents.
33
+ - Validate a fresh candidate on native Windows: select the actual interactive
34
+ receiver, send one unique authorized marker, and observe its exact ACK.
35
+ - Use the maintenance publication path in `RELEASING.md`. It requires protected
36
+ release/0.9.x tip, a merged PR and successful push CI for that exact commit,
37
+ canonical 0.9.x tag/version, pinned v0.9.1 ancestry, clean source, reproducible
38
+ artifacts, independent installs, dependency audit and pre-upload revalidation.
39
+ Do not publish from unmerged PR commits, reuse the old v0.9.1 workflow, bypass
40
+ the release gate, weaken protections or relabel the RC code as 0.9.2.
41
+ - Obtain final approval before creating/publishing the release tag. Verify
42
+ GitHub and PyPI artifacts after publication; do not overwrite an existing tag.
@@ -1,5 +1,5 @@
1
1
  [build-system]
2
- requires = ["hatchling"]
2
+ requires = ["hatchling==1.32.4"]
3
3
  build-backend = "hatchling.build"
4
4
 
5
5
  [project]
@@ -50,7 +50,7 @@ pattern = '__version__ = "(?P<version>[^"]+)"'
50
50
 
51
51
  [tool.hatch.build.targets.sdist]
52
52
  exclude = ["/experiments"]
53
- include = ["session_peer_relay", "session_peer.py", "session_peer_mcp.py", "LICENSE", "SECURITY.md", "README.md", "README.ko.md", "README.ja.md", "README.zh-CN.md", "docs/cli-reference.md", "docs/releases/v0.9.0.md", "docs/mcp.md", "docs/wake.md", "docs/multi-home-list.md", "docs/agent-adapters.md", "docs/paired-devices.md", "docs/relay-development-plan.md", "docs/relay-public-pilot-2026-09-17.md", "deploy/session-peer-relay.service", "docs/antigravity.md", "docs/validation/85-antigravity.md", "docs/architecture/agent-transports.md", "plugins", ".agents/plugins/marketplace.json"]
53
+ include = ["session_peer_relay", "session_peer.py", "session_peer_mcp.py", "LICENSE", "SECURITY.md", "README.md", "README.ko.md", "README.ja.md", "README.zh-CN.md", "docs/cli-reference.md", "docs/releases/v0.9.0.md", "docs/releases/v0.9.1.md", "docs/releases/v0.9.2.md", "docs/mcp.md", "docs/wake.md", "docs/multi-home-list.md", "docs/agent-adapters.md", "docs/paired-devices.md", "docs/relay-development-plan.md", "docs/relay-public-pilot-2026-09-17.md", "deploy/session-peer-relay.service", "docs/antigravity.md", "docs/validation/85-antigravity.md", "docs/architecture/agent-transports.md", "plugins", ".agents/plugins/marketplace.json"]
54
54
 
55
55
  [tool.hatch.build.targets.wheel]
56
56
  only-include = ["session_peer_relay", "session_peer.py", "session_peer_mcp.py"]
@@ -42,7 +42,7 @@ try:
42
42
  except ImportError: # Windows has no POSIX flock; activity stays unknown there.
43
43
  fcntl = None
44
44
 
45
- __version__ = "0.9.0"
45
+ __version__ = "0.9.2"
46
46
  GITHUB_REPO = "abruption/session-peer"
47
47
 
48
48
  # Claude Code refuses a same-machine message once its serialized form passes
@@ -1013,9 +1013,15 @@ def _read_win_auth(pid: int) -> str | None:
1013
1013
  data = json.loads(key_file.read_text(encoding="utf-8"))
1014
1014
  except (OSError, ValueError):
1015
1015
  continue
1016
- auth = {"type": "auth"}
1017
- auth.update(data)
1018
- return json.dumps(auth, ensure_ascii=False)
1016
+ if not isinstance(data, dict):
1017
+ continue
1018
+ token = data.get("peerToken")
1019
+ if not isinstance(token, str) or not token.strip():
1020
+ continue
1021
+ # The registry schema is not the wire protocol. Windows requires a
1022
+ # first-line {"type": "auth", "token": ...}; forwarding peerToken and
1023
+ # process metadata verbatim causes the receiver to drop the connection.
1024
+ return json.dumps({"type": "auth", "token": token}, ensure_ascii=False)
1019
1025
  return None
1020
1026
 
1021
1027
 
@@ -1687,6 +1693,20 @@ def run_remote(host: str, argv: list[str], ssh_opts: list[str]) -> dict:
1687
1693
  )
1688
1694
  if failure:
1689
1695
  raise ssh_failure_error(host, ssh_info, failure, detail)
1696
+ runtime_output = (completed.stdout + "\n" + completed.stderr).strip().lower()
1697
+ if (runtime_output == "python"
1698
+ or "python was not found" in runtime_output
1699
+ or ("python3" in runtime_output and any(marker in runtime_output for marker in (
1700
+ "command not found", "not recognized as", "no such file", "python3: not found",
1701
+ )))):
1702
+ raise CcPeerError(
1703
+ f"{host}: remote python3 did not start a usable interpreter. "
1704
+ "Source-streamed SSH requires a working python3 and a POSIX-compatible "
1705
+ "remote shell. A Windows Store execution alias is not sufficient. "
1706
+ "For native Windows, run the installed CLI locally, or use a WSL SSH "
1707
+ "endpoint with Python installed. No fallback or resend was attempted.",
1708
+ {**ssh_info, "remoteRuntimeFailure": "python3_unavailable_or_unsupported_shell"},
1709
+ )
1690
1710
  if not stdout:
1691
1711
  raise CcPeerError(f"{host}: {detail}", ssh_info)
1692
1712
  try:
File without changes
File without changes
File without changes
File without changes
File without changes