session-peer 1.3.2__tar.gz → 1.4.0__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 (291) hide show
  1. {session_peer-1.3.2 → session_peer-1.4.0}/.gitattributes +1 -0
  2. {session_peer-1.3.2 → session_peer-1.4.0}/PKG-INFO +4 -3
  3. {session_peer-1.3.2 → session_peer-1.4.0}/README.ja.md +2 -2
  4. {session_peer-1.3.2 → session_peer-1.4.0}/README.ko.md +2 -2
  5. {session_peer-1.3.2 → session_peer-1.4.0}/README.md +2 -2
  6. {session_peer-1.3.2 → session_peer-1.4.0}/README.zh-CN.md +2 -2
  7. {session_peer-1.3.2 → session_peer-1.4.0}/docs/README.md +4 -0
  8. {session_peer-1.3.2 → session_peer-1.4.0}/docs/cli-reference.md +43 -1
  9. {session_peer-1.3.2 → session_peer-1.4.0}/docs/i18n-manifest.json +9 -7
  10. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/README.md +4 -0
  11. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/cli-reference.md +43 -1
  12. session_peer-1.4.0/docs/ja/mcp.md +125 -0
  13. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/paired-devices.md +1 -1
  14. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.3.2.md +24 -0
  15. session_peer-1.4.0/docs/ja/releases/v1.3.3.md +26 -0
  16. session_peer-1.4.0/docs/ja/releases/v1.4.0.md +34 -0
  17. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/README.md +4 -0
  18. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/cli-reference.md +43 -1
  19. session_peer-1.4.0/docs/ko/mcp.md +125 -0
  20. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/paired-devices.md +1 -1
  21. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.3.2.md +24 -0
  22. session_peer-1.4.0/docs/ko/releases/v1.3.3.md +26 -0
  23. session_peer-1.4.0/docs/ko/releases/v1.4.0.md +34 -0
  24. session_peer-1.4.0/docs/mcp.md +125 -0
  25. {session_peer-1.3.2 → session_peer-1.4.0}/docs/paired-devices.md +1 -1
  26. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.3.2.md +24 -0
  27. session_peer-1.4.0/docs/releases/v1.3.3.md +26 -0
  28. session_peer-1.4.0/docs/releases/v1.4.0.md +34 -0
  29. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/README.md +4 -0
  30. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/cli-reference.md +43 -1
  31. session_peer-1.4.0/docs/zh-CN/mcp.md +125 -0
  32. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/paired-devices.md +1 -1
  33. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.3.2.md +24 -0
  34. session_peer-1.4.0/docs/zh-CN/releases/v1.3.3.md +26 -0
  35. session_peer-1.4.0/docs/zh-CN/releases/v1.4.0.md +34 -0
  36. {session_peer-1.3.2 → session_peer-1.4.0}/pyproject.toml +1 -0
  37. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer.py +162 -31
  38. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/cli.py +33 -4
  39. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/commands.py +6 -1
  40. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/common.py +1 -1
  41. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/diagnostics.py +9 -6
  42. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/explanation.py +82 -0
  43. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/output.py +12 -15
  44. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/sending.py +19 -4
  45. session_peer-1.4.0/session_peer_mcp.py +902 -0
  46. session_peer-1.3.2/docs/ja/mcp.md +0 -57
  47. session_peer-1.3.2/docs/ko/mcp.md +0 -57
  48. session_peer-1.3.2/docs/mcp.md +0 -57
  49. session_peer-1.3.2/docs/zh-CN/mcp.md +0 -57
  50. session_peer-1.3.2/session_peer_mcp.py +0 -298
  51. {session_peer-1.3.2 → session_peer-1.4.0}/.agents/plugins/marketplace.json +0 -0
  52. {session_peer-1.3.2 → session_peer-1.4.0}/.gitignore +0 -0
  53. {session_peer-1.3.2 → session_peer-1.4.0}/LICENSE +0 -0
  54. {session_peer-1.3.2 → session_peer-1.4.0}/SECURITY.md +0 -0
  55. {session_peer-1.3.2 → session_peer-1.4.0}/deploy/README.md +0 -0
  56. {session_peer-1.3.2 → session_peer-1.4.0}/deploy/examples/authenticated-control/README.md +0 -0
  57. {session_peer-1.3.2 → session_peer-1.4.0}/deploy/examples/authenticated-control/session-peer-control.service +0 -0
  58. {session_peer-1.3.2 → session_peer-1.4.0}/deploy/examples/static-account/README.md +0 -0
  59. {session_peer-1.3.2 → session_peer-1.4.0}/deploy/examples/static-account/session-peer-relay.service +0 -0
  60. {session_peer-1.3.2 → session_peer-1.4.0}/docs/agent-adapters.md +0 -0
  61. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ai-assistant-guide.md +0 -0
  62. {session_peer-1.3.2 → session_peer-1.4.0}/docs/antigravity.md +0 -0
  63. {session_peer-1.3.2 → session_peer-1.4.0}/docs/architecture/agent-transports.md +0 -0
  64. {session_peer-1.3.2 → session_peer-1.4.0}/docs/assets/session-peer-live-codex-claude.gif +0 -0
  65. {session_peer-1.3.2 → session_peer-1.4.0}/docs/compatibility-v1.md +0 -0
  66. {session_peer-1.3.2 → session_peer-1.4.0}/docs/contracts/handoff-v1.md +0 -0
  67. {session_peer-1.3.2 → session_peer-1.4.0}/docs/diagnostics.md +0 -0
  68. {session_peer-1.3.2 → session_peer-1.4.0}/docs/download-metrics.md +0 -0
  69. {session_peer-1.3.2 → session_peer-1.4.0}/docs/handoff-runtime.md +0 -0
  70. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/agent-adapters.md +0 -0
  71. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/ai-assistant-guide.md +0 -0
  72. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/antigravity.md +0 -0
  73. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/architecture/agent-transports.md +0 -0
  74. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/compatibility-v1.md +0 -0
  75. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/contracts/handoff-v1.md +0 -0
  76. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/diagnostics.md +0 -0
  77. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/download-metrics.md +0 -0
  78. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/handoff-runtime.md +0 -0
  79. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/multi-home-list.md +0 -0
  80. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/relay-auth.md +0 -0
  81. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/relay-development-plan.md +0 -0
  82. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/relay-edge-policy.md +0 -0
  83. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/relay-google-bootstrap.md +0 -0
  84. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/relay-lifecycle.md +0 -0
  85. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/relay-public-pilot-2026-09-17.md +0 -0
  86. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/relay-watchdog.md +0 -0
  87. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v0.6.1.md +0 -0
  88. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v0.6.2.md +0 -0
  89. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v0.7.0.md +0 -0
  90. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v0.8.0.md +0 -0
  91. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v0.9.0.md +0 -0
  92. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.0.0-alpha.1.md +0 -0
  93. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.0.0-beta.1.md +0 -0
  94. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.0.0-rc.1.md +0 -0
  95. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.0.0-rc.2.md +0 -0
  96. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.0.0-rc.3.md +0 -0
  97. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.0.0-rc.4.md +0 -0
  98. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.0.0.md +0 -0
  99. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.0.1.md +0 -0
  100. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.0.2.md +0 -0
  101. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.0.3.md +0 -0
  102. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.0.4.md +0 -0
  103. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.1.0.md +0 -0
  104. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.1.1.md +0 -0
  105. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.1.2.md +0 -0
  106. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.2.0.md +0 -0
  107. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.2.1.md +0 -0
  108. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.3.0.md +0 -0
  109. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/releases/v1.3.1.md +0 -0
  110. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/validation/69-rc.md +0 -0
  111. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/validation/85-antigravity.md +0 -0
  112. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ja/wake.md +0 -0
  113. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/agent-adapters.md +0 -0
  114. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/ai-assistant-guide.md +0 -0
  115. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/antigravity.md +0 -0
  116. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/architecture/agent-transports.md +0 -0
  117. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/compatibility-v1.md +0 -0
  118. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/contracts/handoff-v1.md +0 -0
  119. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/diagnostics.md +0 -0
  120. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/download-metrics.md +0 -0
  121. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/handoff-runtime.md +0 -0
  122. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/multi-home-list.md +0 -0
  123. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/relay-auth.md +0 -0
  124. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/relay-development-plan.md +0 -0
  125. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/relay-edge-policy.md +0 -0
  126. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/relay-google-bootstrap.md +0 -0
  127. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/relay-lifecycle.md +0 -0
  128. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/relay-public-pilot-2026-09-17.md +0 -0
  129. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/relay-watchdog.md +0 -0
  130. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v0.6.1.md +0 -0
  131. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v0.6.2.md +0 -0
  132. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v0.7.0.md +0 -0
  133. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v0.8.0.md +0 -0
  134. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v0.9.0.md +0 -0
  135. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.0.0-alpha.1.md +0 -0
  136. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.0.0-beta.1.md +0 -0
  137. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.0.0-rc.1.md +0 -0
  138. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.0.0-rc.2.md +0 -0
  139. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.0.0-rc.3.md +0 -0
  140. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.0.0-rc.4.md +0 -0
  141. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.0.0.md +0 -0
  142. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.0.1.md +0 -0
  143. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.0.2.md +0 -0
  144. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.0.3.md +0 -0
  145. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.0.4.md +0 -0
  146. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.1.0.md +0 -0
  147. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.1.1.md +0 -0
  148. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.1.2.md +0 -0
  149. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.2.0.md +0 -0
  150. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.2.1.md +0 -0
  151. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.3.0.md +0 -0
  152. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/releases/v1.3.1.md +0 -0
  153. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/validation/69-rc.md +0 -0
  154. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/validation/85-antigravity.md +0 -0
  155. {session_peer-1.3.2 → session_peer-1.4.0}/docs/ko/wake.md +0 -0
  156. {session_peer-1.3.2 → session_peer-1.4.0}/docs/multi-home-list.md +0 -0
  157. {session_peer-1.3.2 → session_peer-1.4.0}/docs/relay-auth.md +0 -0
  158. {session_peer-1.3.2 → session_peer-1.4.0}/docs/relay-development-plan.md +0 -0
  159. {session_peer-1.3.2 → session_peer-1.4.0}/docs/relay-edge-policy.md +0 -0
  160. {session_peer-1.3.2 → session_peer-1.4.0}/docs/relay-google-bootstrap.md +0 -0
  161. {session_peer-1.3.2 → session_peer-1.4.0}/docs/relay-lifecycle.md +0 -0
  162. {session_peer-1.3.2 → session_peer-1.4.0}/docs/relay-public-pilot-2026-09-17.md +0 -0
  163. {session_peer-1.3.2 → session_peer-1.4.0}/docs/relay-watchdog.md +0 -0
  164. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v0.6.1.md +0 -0
  165. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v0.6.2.md +0 -0
  166. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v0.7.0.md +0 -0
  167. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v0.8.0.md +0 -0
  168. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v0.9.0.md +0 -0
  169. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.0.0-alpha.1.md +0 -0
  170. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.0.0-beta.1.md +0 -0
  171. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.0.0-rc.1.md +0 -0
  172. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.0.0-rc.2.md +0 -0
  173. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.0.0-rc.3.md +0 -0
  174. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.0.0-rc.4.md +0 -0
  175. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.0.0.md +0 -0
  176. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.0.1.md +0 -0
  177. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.0.2.md +0 -0
  178. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.0.3.md +0 -0
  179. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.0.4.md +0 -0
  180. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.1.0.md +0 -0
  181. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.1.1.md +0 -0
  182. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.1.2.md +0 -0
  183. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.2.0.md +0 -0
  184. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.2.1.md +0 -0
  185. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.3.0.md +0 -0
  186. {session_peer-1.3.2 → session_peer-1.4.0}/docs/releases/v1.3.1.md +0 -0
  187. {session_peer-1.3.2 → session_peer-1.4.0}/docs/validation/69-rc.md +0 -0
  188. {session_peer-1.3.2 → session_peer-1.4.0}/docs/validation/85-antigravity.md +0 -0
  189. {session_peer-1.3.2 → session_peer-1.4.0}/docs/wake.md +0 -0
  190. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/agent-adapters.md +0 -0
  191. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/ai-assistant-guide.md +0 -0
  192. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/antigravity.md +0 -0
  193. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/architecture/agent-transports.md +0 -0
  194. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/compatibility-v1.md +0 -0
  195. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/contracts/handoff-v1.md +0 -0
  196. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/diagnostics.md +0 -0
  197. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/download-metrics.md +0 -0
  198. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/handoff-runtime.md +0 -0
  199. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/multi-home-list.md +0 -0
  200. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/relay-auth.md +0 -0
  201. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/relay-development-plan.md +0 -0
  202. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/relay-edge-policy.md +0 -0
  203. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/relay-google-bootstrap.md +0 -0
  204. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/relay-lifecycle.md +0 -0
  205. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/relay-public-pilot-2026-09-17.md +0 -0
  206. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/relay-watchdog.md +0 -0
  207. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v0.6.1.md +0 -0
  208. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v0.6.2.md +0 -0
  209. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v0.7.0.md +0 -0
  210. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v0.8.0.md +0 -0
  211. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v0.9.0.md +0 -0
  212. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.0.0-alpha.1.md +0 -0
  213. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.0.0-beta.1.md +0 -0
  214. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.0.0-rc.1.md +0 -0
  215. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.0.0-rc.2.md +0 -0
  216. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.0.0-rc.3.md +0 -0
  217. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.0.0-rc.4.md +0 -0
  218. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.0.0.md +0 -0
  219. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.0.1.md +0 -0
  220. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.0.2.md +0 -0
  221. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.0.3.md +0 -0
  222. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.0.4.md +0 -0
  223. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.1.0.md +0 -0
  224. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.1.1.md +0 -0
  225. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.1.2.md +0 -0
  226. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.2.0.md +0 -0
  227. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.2.1.md +0 -0
  228. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.3.0.md +0 -0
  229. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/releases/v1.3.1.md +0 -0
  230. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/validation/69-rc.md +0 -0
  231. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/validation/85-antigravity.md +0 -0
  232. {session_peer-1.3.2 → session_peer-1.4.0}/docs/zh-CN/wake.md +0 -0
  233. {session_peer-1.3.2 → session_peer-1.4.0}/plugins/session-peer/.codex-plugin/plugin.json +0 -0
  234. {session_peer-1.3.2 → session_peer-1.4.0}/plugins/session-peer/.mcp.json +0 -0
  235. {session_peer-1.3.2 → session_peer-1.4.0}/plugins/session-peer/README.ja.md +0 -0
  236. {session_peer-1.3.2 → session_peer-1.4.0}/plugins/session-peer/README.ko.md +0 -0
  237. {session_peer-1.3.2 → session_peer-1.4.0}/plugins/session-peer/README.md +0 -0
  238. {session_peer-1.3.2 → session_peer-1.4.0}/plugins/session-peer/README.zh-CN.md +0 -0
  239. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/README.md +0 -0
  240. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/adapters.py +0 -0
  241. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/address_cli.py +0 -0
  242. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/address_selection.py +0 -0
  243. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/addresses.py +0 -0
  244. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/antigravity.py +0 -0
  245. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/claude.py +0 -0
  246. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/codex.py +0 -0
  247. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/handoff.py +0 -0
  248. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/handoff_process.py +0 -0
  249. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/handoff_remote.py +0 -0
  250. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/handoff_stdin.py +0 -0
  251. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/handoff_watch.py +0 -0
  252. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/messages.py +0 -0
  253. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/preset_cli.py +0 -0
  254. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/presets.py +0 -0
  255. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/registry.py +0 -0
  256. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/relay.py +0 -0
  257. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/release_verification.py +0 -0
  258. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/replies.py +0 -0
  259. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/ssh.py +0 -0
  260. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/ssh_config.py +0 -0
  261. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/ssh_identity.py +0 -0
  262. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/target_generation.py +0 -0
  263. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/update_preferences.py +0 -0
  264. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/updates.py +0 -0
  265. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_core/wake_chain.py +0 -0
  266. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/__init__.py +0 -0
  267. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/app.py +0 -0
  268. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/auth.py +0 -0
  269. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/cli.py +0 -0
  270. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/control.py +0 -0
  271. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/framing.py +0 -0
  272. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/guidance.py +0 -0
  273. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/identity.py +0 -0
  274. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/lifecycle.py +0 -0
  275. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/native.py +0 -0
  276. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/pairing_links.py +0 -0
  277. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/pairing_ui.py +0 -0
  278. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/recovery.py +0 -0
  279. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/relay.py +0 -0
  280. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/rotation.py +0 -0
  281. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/setup.py +0 -0
  282. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/store.py +0 -0
  283. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/transport_errors.py +0 -0
  284. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/wire.py +0 -0
  285. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_relay/worker.py +0 -0
  286. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_shorthand/__init__.py +0 -0
  287. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_shorthand/__main__.py +0 -0
  288. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_shorthand/sp-remove.sh +0 -0
  289. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_shorthand/sp.ps1 +0 -0
  290. {session_peer-1.3.2 → session_peer-1.4.0}/session_peer_shorthand/sp.sh +0 -0
  291. {session_peer-1.3.2 → session_peer-1.4.0}/tools/generate_session_peer.py +0 -0
@@ -1,3 +1,4 @@
1
1
  /session_peer.py text eol=lf
2
2
  /session_peer_core/*.py text eol=lf
3
3
  /tools/generate_session_peer.py text eol=lf
4
+ /skills/session-peer/SKILL.md text eol=lf
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: session-peer
3
- Version: 1.3.2
3
+ Version: 1.4.0
4
4
  Summary: Discover and message Claude Code, Codex, and Antigravity sessions locally, over SSH, through MCP, or via an optional end-to-end encrypted relay.
5
5
  Project-URL: Homepage, https://github.com/abruption/session-peer
6
6
  Project-URL: Repository, https://github.com/abruption/session-peer
@@ -21,6 +21,7 @@ Classifier: Programming Language :: Python :: 3.10
21
21
  Classifier: Programming Language :: Python :: 3.11
22
22
  Classifier: Programming Language :: Python :: 3.12
23
23
  Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Programming Language :: Python :: 3.14
24
25
  Classifier: Topic :: Software Development
25
26
  Classifier: Topic :: System :: Networking
26
27
  Classifier: Topic :: Utilities
@@ -67,7 +68,7 @@ in this ~22-second animation, not a screen recording; send success alone is not
67
68
  ### Install
68
69
 
69
70
  Python 3.9+. The core local/SSH CLI has no third-party Python dependencies.
70
- Source version: **1.3.2**. At the 2026-10-28 preparation checkpoint, the last verified published stable release was **1.3.1**. See the [maintenance release notes](docs/releases/v1.3.2.md) for macOS firewall guidance and Direct listener/TLS diagnostics. Control's Better Auth security update is in repository source, outside Python wheel/sdist, and requires a separately authorized rollout.
71
+ Source version: **1.4.0** (at the 2026-11-02 preparation checkpoint: unpublished candidate; latest published version 1.3.3). The [release notes](docs/releases/v1.4.0.md) describe bounded MCP discovery, delivery preflight and diagnostics, route presets, and the independent skill proposal. Python publication, Node Control deployment and independently managed skill updates are separate.
71
72
 
72
73
  The optional [MCP extra](docs/mcp.md) now requires `mcp>=1.30,<2`; its Python 3.10+ requirement and the dependency-free Python 3.9 core remain unchanged. Existing MCP environments need an explicit package upgrade.
73
74
 
@@ -139,7 +140,7 @@ require Unix, Python 3.11+, and `session-peer[relay]`, with pinned identities an
139
140
  explicit receiver policy. Package publication does not guarantee hosted-service availability.
140
141
  The blind Relay cannot decrypt application message content.
141
142
  [MCP / Codex plugin](https://github.com/abruption/session-peer/blob/main/docs/mcp.md) requires Python 3.10+
142
- and `session-peer[mcp]`; MCP wake requires both `send` and `wake` capabilities.
143
+ and `session-peer[mcp]`; MCP sends that actually request wake require both `send` and `wake` capabilities.
143
144
  [Wake](https://github.com/abruption/session-peer/blob/main/docs/wake.md) runs only when explicitly requested
144
145
  and can start a turn, consume usage, and change project files.
145
146
  The [Antigravity bridge](https://github.com/abruption/session-peer/blob/main/docs/antigravity.md) remains experimental.
@@ -33,7 +33,7 @@ session-peer 1.0.2による実際のローカル通信です。CodexがClaude Co
33
33
  ### インストール
34
34
 
35
35
  Python 3.9以上が必要です。基本のローカル・SSH CLIに外部Python依存パッケージはありません。
36
- ソースバージョン:**1.3.2**。2026-10-28の準備時点で、最後に確認した公開済み安定版は**1.3.1**でした。macOSのファイアウォール案内とDirectリスナー・TLSの診断については、[メンテナンスリリースの案内](docs/ja/releases/v1.3.2.md)を参照してください。ControlのBetter Authセキュリティ更新はリポジトリのソースにあり、Python wheel/sdistには含まれないため、別途承認された配備が必要です。
36
+ ソースバージョン:**1.4.0**(2026-11-02の準備時点:未公開の候補、当時の最新公開済みバージョンは1.3.3)。[リリースノート](docs/ja/releases/v1.4.0.md)では、範囲を制限したMCP探索、配信の事前確認と診断、経路プリセット、独立スキルの提案を説明します。Pythonの公開、Node Controlの配備、独立管理するスキルの更新は別々の作業です。
37
37
 
38
38
  任意の[MCPエクストラ](docs/ja/mcp.md)は`mcp>=1.30,<2`を必要とします。MCPのPython 3.10+要件と依存関係のないPython 3.9コアは変更しません。既存のMCP環境では明示的なパッケージ更新が必要です。
39
39
 
@@ -105,7 +105,7 @@ Unix、Python 3.11以上、`session-peer[relay]`、固定した識別情報と
105
105
  パッケージの公開はホスト型サービスの可用性を保証しません。
106
106
  ブラインドRelayはアプリケーションのメッセージ内容を復号できません。
107
107
  [MCP・Codexプラグイン](https://github.com/abruption/session-peer/blob/main/docs/ja/mcp.md)にはPython 3.10以上と
108
- `session-peer[mcp]` が必要で、MCP wakeには `send` と `wake` の両方の機能(capability)が必要です。
108
+ `session-peer[mcp]` が必要で、MCP の送信で実際に wake を要求するには `send` と `wake` の両方の機能(capability)が必要です。
109
109
  [Wake](https://github.com/abruption/session-peer/blob/main/docs/ja/wake.md)は明示的に依頼した場合だけ実行し、
110
110
  ターンの開始、利用枠の消費、プロジェクトファイルの変更を伴う場合があります。
111
111
  [Antigravityブリッジ](https://github.com/abruption/session-peer/blob/main/docs/ja/antigravity.md)は実験段階です。
@@ -33,7 +33,7 @@ session-peer 1.0.2를 사용해 실제 로컬 요청과 회신을 주고받았
33
33
  ### 설치
34
34
 
35
35
  Python 3.9 이상이 필요합니다. 기본 로컬·SSH CLI는 외부 Python 패키지에 의존하지 않습니다.
36
- 소스 버전: **1.3.2**. 2026-10-28 준비 시점의 마지막 확인 공개 안정판은 **1.3.1**이었습니다. macOS 방화벽 안내와 Direct 리스너·TLS 진단은 [유지보수 릴리스 안내](docs/ko/releases/v1.3.2.md)를 참고하십시오. Control의 Better Auth 보안 갱신은 저장소 소스에 있으며 Python wheel/sdist에는 포함되지 않으므로 별도로 승인된 배포가 필요합니다.
36
+ 소스 버전: **1.4.0**(2026-11-02 준비 시점 기준: 미공개 후보, 당시 최신 공개 버전 1.3.3). [릴리스 노트](docs/ko/releases/v1.4.0.md)는 범위를 제한한 MCP 탐색, 전달 사전 점검·진단, 경로 프리셋과 독립 스킬 제안을 설명합니다. Python 공개, Node Control 배포, 별도로 관리하는 스킬의 갱신은 서로 구분합니다.
37
37
 
38
38
  선택형 [MCP extra](docs/ko/mcp.md)는 이제 `mcp>=1.30,<2`를 요구합니다. MCP의 Python 3.10+ 요건과 의존성 없는 Python 3.9 핵심 CLI는 유지됩니다. 기존 MCP 환경에는 명시적인 패키지 업그레이드가 필요합니다.
39
39
 
@@ -105,7 +105,7 @@ Unix·Python 3.11 이상·`session-peer[relay]`, 고정된 기기 신원, 명시
105
105
  패키지를 공개해도 호스팅 서비스의 가용성이 보장되지는 않습니다.
106
106
  블라인드 Relay는 애플리케이션 메시지 내용을 복호화할 수 없습니다.
107
107
  [MCP(Model Context Protocol)·Codex 플러그인](https://github.com/abruption/session-peer/blob/main/docs/ko/mcp.md)은 Python 3.10 이상과
108
- `session-peer[mcp]`가 필요하며, MCP wake 기능에는 `send`와 `wake` 권한이 모두 필요합니다.
108
+ `session-peer[mcp]`가 필요하며, MCP 전송에서 실제 wake를 요청하려면 `send`와 `wake` 권한이 모두 필요합니다.
109
109
  [Wake](https://github.com/abruption/session-peer/blob/main/docs/ko/wake.md)는 명시적으로 요청한 경우에만 실행됩니다.
110
110
  턴을 시작하고 사용량을 소비하거나 프로젝트 파일을 변경할 수 있습니다.
111
111
  [Antigravity 브리지](https://github.com/abruption/session-peer/blob/main/docs/ko/antigravity.md)는 실험 단계입니다.
@@ -33,7 +33,7 @@ in this ~22-second animation, not a screen recording; send success alone is not
33
33
  ### Install
34
34
 
35
35
  Python 3.9+. The core local/SSH CLI has no third-party Python dependencies.
36
- Source version: **1.3.2**. At the 2026-10-28 preparation checkpoint, the last verified published stable release was **1.3.1**. See the [maintenance release notes](docs/releases/v1.3.2.md) for macOS firewall guidance and Direct listener/TLS diagnostics. Control's Better Auth security update is in repository source, outside Python wheel/sdist, and requires a separately authorized rollout.
36
+ Source version: **1.4.0** (at the 2026-11-02 preparation checkpoint: unpublished candidate; latest published version 1.3.3). The [release notes](docs/releases/v1.4.0.md) describe bounded MCP discovery, delivery preflight and diagnostics, route presets, and the independent skill proposal. Python publication, Node Control deployment and independently managed skill updates are separate.
37
37
 
38
38
  The optional [MCP extra](docs/mcp.md) now requires `mcp>=1.30,<2`; its Python 3.10+ requirement and the dependency-free Python 3.9 core remain unchanged. Existing MCP environments need an explicit package upgrade.
39
39
 
@@ -105,7 +105,7 @@ require Unix, Python 3.11+, and `session-peer[relay]`, with pinned identities an
105
105
  explicit receiver policy. Package publication does not guarantee hosted-service availability.
106
106
  The blind Relay cannot decrypt application message content.
107
107
  [MCP / Codex plugin](https://github.com/abruption/session-peer/blob/main/docs/mcp.md) requires Python 3.10+
108
- and `session-peer[mcp]`; MCP wake requires both `send` and `wake` capabilities.
108
+ and `session-peer[mcp]`; MCP sends that actually request wake require both `send` and `wake` capabilities.
109
109
  [Wake](https://github.com/abruption/session-peer/blob/main/docs/wake.md) runs only when explicitly requested
110
110
  and can start a turn, consume usage, and change project files.
111
111
  The [Antigravity bridge](https://github.com/abruption/session-peer/blob/main/docs/antigravity.md) remains experimental.
@@ -33,7 +33,7 @@ session-peer使用各智能体自身的收件箱和队列;接收方智能体
33
33
  ### 安装
34
34
 
35
35
  需要Python 3.9或更高版本。核心本地与SSH CLI没有第三方Python依赖。
36
- 源码版本:**1.3.2**。在2026-10-28的准备检查时,最后确认的已发布稳定版本为**1.3.1**。macOS防火墙说明和Direct监听器/TLS诊断请参阅[维护版本说明](docs/zh-CN/releases/v1.3.2.md)。Control的Better Auth安全更新位于仓库源码中,不包含在Python wheel/sdist内,需另行批准部署。
36
+ 源码版本:**1.4.0**(截至2026-11-02准备检查点:尚未发布的候选版本,当时最新已发布版本为1.3.3)。[发布说明](docs/zh-CN/releases/v1.4.0.md)介绍有限范围的MCP发现、传递预检与诊断、路由预设及独立技能提案。Python发布、Node Control部署及独立管理的技能更新是不同的工作。
37
37
 
38
38
  可选的[MCP extra](docs/zh-CN/mcp.md)现在要求`mcp>=1.30,<2`;MCP的Python 3.10+要求和无外部依赖的Python 3.9核心保持不变。现有MCP环境需要显式升级软件包。
39
39
 
@@ -105,7 +105,7 @@ Unix、Python 3.11以上和 `session-peer[relay]`,并要求固定设备身份
105
105
  软件包发布不保证托管服务可用性。
106
106
  盲转发Relay无法解密应用消息的内容。
107
107
  [MCP与Codex插件](https://github.com/abruption/session-peer/blob/main/docs/zh-CN/mcp.md)需要Python 3.10以上及
108
- `session-peer[mcp]`;MCP wake需要同时具备 `send` 和 `wake` 两项能力。
108
+ `session-peer[mcp]`;MCP 发送中实际请求 wake 时,需要同时具备 `send` 和 `wake` 两项能力。
109
109
  [Wake](https://github.com/abruption/session-peer/blob/main/docs/zh-CN/wake.md)仅在显式请求时运行,
110
110
  可能启动一轮任务、消耗使用额度或修改项目文件。
111
111
  [Antigravity桥接](https://github.com/abruption/session-peer/blob/main/docs/zh-CN/antigravity.md)仍处于实验阶段。
@@ -24,6 +24,10 @@ installation paths.
24
24
 
25
25
  ## Development and history
26
26
 
27
+ - [v1.4.0 preparation](releases/v1.4.0.md) records the merged MCP policy, preflight, diagnostics and preset changes at the 2026-11-02 source checkpoint; publication and independent skill adoption remain separate.
28
+
29
+ - [v1.3.3 maintenance preparation](releases/v1.3.3.md) covers Python 3.14 CI/metadata, contributor and publication guidance, and the verified compatibility skill v0.4.1 snapshot. Publication and operational deployment remain separate.
30
+
27
31
  - [v1.3.2 maintenance notes](releases/v1.3.2.md) explain macOS firewall approval, Direct listener/TLS diagnostics, the MCP SDK floor and the Control security update outside Python archives, which requires a separate rollout.
28
32
 
29
33
  - [v1.3.1 maintenance notes](releases/v1.3.1.md) cover the Control dependency fix, compatibility skill update and publication/deployment boundaries.
@@ -1,5 +1,7 @@
1
1
  # session-peer CLI reference
2
2
 
3
+ Source checkpoint 2026-11-02: the v1.4.0 source features below are prepared against published v1.3.3, not an availability announcement. Check the [release notes](releases/v1.4.0.md) and actual GitHub/PyPI publication before using them.
4
+
3
5
  [Back to the overview](../README.md)
4
6
 
5
7
  Detailed command behavior, installation options, transport limits, and historical validation follow below.
@@ -85,6 +87,14 @@ This scope is text-only: combining `--explain` with `--json` or `--output-format
85
87
 
86
88
  For send, the normal message requirement and limits still apply: supply `--message`, `--message-file` or stdin as usual; no placeholder body is generated. Explanation fields do not include the body or receipt secrets. Normal explanations use stdout; failed results or unexpected submission evidence use stderr, without moving existing summary/error output. Unknown evidence stays unknown, and an uncertain actual send must never trigger automatic resend.
87
89
 
90
+ <a id="unreleased-v140-candidate-structured-send-preview-357"></a>
91
+
92
+ ### v1.4.0 source: structured send preview (#357)
93
+
94
+ `send --dry-run --explain-json` opts into a versioned, allowlisted JSON explanation for local or SSH validation. It uses the same classification as the text preview and the native response before SSH adapter shaping. Normal message inputs and limits apply; no placeholder body is generated. The output excludes message contents, raw errors and paths. Unknown or unexpected submission evidence fails validation and does not authorize automatic retry.
95
+
96
+ `--explain-json` may be combined with `--json`, but requires `--dry-run` and rejects `--explain`, paired-device and experimental handoff modes before message input or destination work. Existing `--explain` stays text-only, and ordinary CLI JSON remains unchanged. Existing dry-run probes may start local/version processes or SSH connections, but this mode does not enqueue, post, start a model, reserve wake budget or create handoff authority. A passing preview is a point-in-time check, not approval, a reservation, later-send safety, consumption or ACK.
97
+
88
98
  ### Optional paired devices and Antigravity (v0.9)
89
99
 
90
100
  These features are available starting with PyPI v0.9.0. Antigravity remains
@@ -213,6 +223,20 @@ Checked ancestors must be owned by root or the current user and not writable by
213
223
 
214
224
  On macOS, mounts that ignore ownership are refused with `preset_ownership_unenforced`; an unavailable or unverifiable mount query is refused with `preset_mount_unverifiable`. Mode bits alone are not treated as proof that ownership is enforced. On Linux, ACLs on ancestors are also refused, as are filesystems whose ACL state cannot be verified. After an interrupted management command, inspect the current configuration because the change may already be visible; directory-sync failures are not silently accepted.
215
225
 
226
+ <a id="unreleased-v140-candidate-mcp-presets-359"></a>
227
+
228
+ ### v1.4.0 source: MCP presets (#359)
229
+
230
+ Input signatures: `list_sessions(destination="local", agent=null, include_inactive=false, preset=null, preset_revision=null)`; `send_message(destination, target, message, dry_run=false, wake=false, wake_timeout=30, preset=null, preset_revision=null)`; `preflight_send(destination, target, message, wake=false, wake_timeout=30, preset=null, preset_revision=null)`.
231
+
232
+ MCP preset lookup and selection use an explicit operator allowlist and the existing secure snapshot reader; they add no CLI preset-management commands or automatic selection. See [MCP preset policy and limits](mcp.md). MCP selection expands an approved route instead of combining CLI `--preset` with explicit routing flags. Existing CLI output, revision and filesystem-security contracts remain unchanged.
233
+
234
+ For MCP `list_sessions`, `preflight_send` and `send_message`, optional `preset` and `preset_revision` inputs require both the existing action permission and `presets`. Actual sends require the current `dp1:` revision and an explicit target. Wake and Reply-To URI combinations are rejected. A revision is checked during lookup, not as a target generation or authority, and later changes cannot cancel a route already expanded for invocation.
235
+
236
+ The new 64 KiB tool-result budget applies only to the `list_presets` metadata query. A preset is only a route selector for existing actions, with the same action authorization and exact policy-route matching. Successful `list_sessions` and `send_message` responses keep the existing CLI schema and native payload, without preset metadata, a new command or an added data projection. Existing native evidence and transport limits remain intact; real sends gain no aggregate 64 KiB limit. Inspect revisions separately with `list_presets`. Selected `preflight_send` may include only safe preset metadata: `name`, `agent`, `transport` and `revision`.
237
+
238
+ If any approved item is missing or its route mismatches policy, the whole metadata lookup is refused atomically. Fixed selector refusal codes include `preset_platform_unsupported`, `preset_route_unsupported`, `preset_revision_mismatch` and `preset_storage_unavailable`; no management or filesystem repair is attempted. Metadata-query failures precede invocation. After invocation, I/O or actual-send decode failure may follow submission: report `outcome_unknown` with `retryAllowed=false` and never retry automatically. Preserve any known native queued/submitted evidence.
239
+
216
240
  <a id="recipient-addressbook-development"></a>
217
241
 
218
242
  ### Recipient addressbook (v1.3.0)
@@ -415,7 +439,7 @@ Repeat `--host` to operate on several SSH destinations. `--json` is available on
415
439
 
416
440
  ### JSON response contract
417
441
 
418
- Every JSON result object starts with the same schema-versioned envelope:
442
+ Ordinary `--json` results from `list`, `send`, `doctor`, and `update` use the following schema-versioned envelope. The opt-in `--explain-json` output (`send.preflight`) and MCP metadata/preflight projections have separate documented schemas and intentionally omit `host`; do not add a host or infer a route from its absence:
419
443
 
420
444
  ```json
421
445
  {
@@ -901,6 +925,24 @@ executable and bounded home/state DB candidates, unsupported DB schemas, and
901
925
  permission or unknown failures as distinct codes. It does not connect to an
902
926
  inbox, write a queue, scan arbitrary directories, or alter agent/SSH settings.
903
927
 
928
+ v1.4.0 source (#358): `doctor --agent NAME` restricts checks and declared agent capabilities to the selected registered agent, including execution over SSH. It also skips the shared installed-skill inventory. `doctor --agent codex --selected-home-only --codex-home /absolute/home` checks only the selected Codex home and skips the inventory of other homes. These options do not enable reverse-route checks. Without them, existing all-agent and bounded multi-home diagnostics keep their behavior.
929
+
930
+ The MCP wrapper supports only the following checks and effects:
931
+
932
+ | Mode / agent | Checked facts | Process / connection effects |
933
+ | --- | --- | --- |
934
+ | Metadata | Policy and adapter declarations | None |
935
+ | Active Claude | Registry records, process identity metadata and filesystem inbox presence | No inbox connection |
936
+ | Active Codex | Executable presence, selected-home read-only SQLite queries and bounded writer scan | No native Codex execution or version query |
937
+ | Active Antigravity | Registered bridge metadata | No bridge or native RPC |
938
+ | Active SSH | Configured forward route, only after explicit probe permission | SSH configuration may execute commands; no reverse probe or automatic connection back to a return host |
939
+
940
+ Representative allowlisted codes include `sessions_dir_missing`, `inbox_present`, `codex_executable_missing`, `state_db_readable`, `unsaved_writer_check_unavailable` and `adapter_failed`. Results are limited to permitted agents and at most 32 checks per agent; these codes describe only the bounded scope above.
941
+
942
+ `ok` describes collection and format completeness, not availability. A complete `missing_home` result can have `ok=true`; read each agent's status separately. `diagnosticEvidence` is `point_in_time_only` for active results and `not_collected` in metadata mode. `readiness` remains `not_checked` because no per-target readiness is tested. A passing `state_db_readable` check means only that the read-only database query succeeded; it is not an effective-storage attestation or a return-route guarantee.
943
+
944
+ The stages `tcpAccept`, `tls` and `peerAuthentication` remain `not_checked`. Here `peerAuthentication` refers to paired-device authentication, separate from forward SSH authentication. `sshFailure` reports only a sanitized forward SSH failure category, such as `authentication_failed` or `host_key_failed`. No TCP, TLS, paired-device or return-host probe is added.
945
+
904
946
  Reverse SSH is checked only with `--check-return-route`. The destination runs a
905
947
  fixed `ssh ... true` probe with prompts, password authentication, host-key
906
948
  enrollment, and config mutation disabled. Forward SSH success is never reused as
@@ -7,23 +7,23 @@
7
7
  "zh-CN"
8
8
  ],
9
9
  "sources": {
10
- "README.md": "bbab4acce7d5bbb1b4a03bd22c48fc71feacc98e231e42d23468309f80be30d1",
11
- "RELEASING.md": "521f2c857e034714f63118eff5a9fcf8a0a4763b1e6c55b1797eee2a00aab424",
10
+ "README.md": "c0544fa8aed25891574805e6c9098dc8ee824b8669e16c34607cf82ec546a77f",
11
+ "RELEASING.md": "641babb664eb71da2425ec3ae666b843773350017a489076dcae29cd3a320db1",
12
12
  "SECURITY.md": "8f018f6f98002312e143609b9734aeb971ca5217e146597c06b57b5645031046",
13
- "docs/README.md": "b2113e46b366055cab95b77ab5940236bc8c18217144b9a6dbd08264773968c6",
13
+ "docs/README.md": "28c870c47298c52bd7d3d27d7b940d74e7bdd4a9b7a69000ed2bee7ea5d6fd0b",
14
14
  "docs/agent-adapters.md": "bf185d3121c94829bb412071a25c4d943302e10a6b2e713111e653b8f8c3ea91",
15
15
  "docs/ai-assistant-guide.md": "9624ec96b92fb688fae3be3c94cb3564c77985091be451fbf1f056a1af9b9d9c",
16
16
  "docs/antigravity.md": "f2b5122a0ce6e6fb5bd4d8ed50ce2c8bd2dc9c98ec8ce328405cf7c2cd24229d",
17
17
  "docs/architecture/agent-transports.md": "01a4e3942e87acb476595859f2e37f9653ea1e3bc19ebc68dced1adf20a6966f",
18
- "docs/cli-reference.md": "803668e9cc554e76ec9dabbb29560a7d2cbd9357370edccc9aa97eabcbc8c38a",
18
+ "docs/cli-reference.md": "c7836b27ffd6e1a4f0988846de4d3746a0a3242c9b5c54ae82c22e13e95065a7",
19
19
  "docs/compatibility-v1.md": "7e551aad37a369faff7e370728376763efb54c2c9e9cfd8556a0c19aabc3d103",
20
20
  "docs/contracts/handoff-v1.md": "46a953010c49214bd8f969412f26713384fbe09a0ba78ebf0fef75da40d0d889",
21
21
  "docs/diagnostics.md": "0949e53612eeab2cd7c7bbda498e14d71e9cb1b1189aa7722030cb8702cd8481",
22
22
  "docs/download-metrics.md": "a537300d3fe2b60273b6f4bd84e0ae0944364fda3881d7fb7e32ce665dc2c724",
23
23
  "docs/handoff-runtime.md": "a236e48392c91eca0f7c3734a6008a991955ae66d16fd71f97691aac5bf0091f",
24
- "docs/mcp.md": "48c761666abc09540fdbdb39b6974b0002e5cc89dda774ac6c24376190fa2c7b",
24
+ "docs/mcp.md": "80341daf0ae71ba618a6fea836921f2c8a42338cb27210cc030bae53d0da95f6",
25
25
  "docs/multi-home-list.md": "f8d8e3adf727e4842ea7c4d45e8f6523b11d0513bf2509d4d1204645875e6489",
26
- "docs/paired-devices.md": "03619867241a2db20d0b2281f17fdef2020ba159b7d565a0f5bc32de3152228d",
26
+ "docs/paired-devices.md": "1c6cf45187fdbac5a21e43968bc0cc39aee05af19904b4d176f1dd2a70065303",
27
27
  "docs/relay-auth.md": "e6da5291ce6a9da31e79e66ceeff7e9fef7e95046359acbf04d708c96ffab62f",
28
28
  "docs/relay-development-plan.md": "0abf750b36275ea4e467a0020e560277f08689f2d574aed7674133705383b1ff",
29
29
  "docs/relay-edge-policy.md": "c1c7f7a1c4303943c78ca334dab4034f66c0c272e40c007d07c3da2a496155eb",
@@ -54,7 +54,9 @@
54
54
  "docs/releases/v1.2.1.md": "70a3026c2d874a6fd7addcaef840ecfa84bf4f33a0165605217379acffa4fddb",
55
55
  "docs/releases/v1.3.0.md": "a422901b83c85cfb48ac0ad2f99dbc82dca46c4929a3016acd15010e4a18188b",
56
56
  "docs/releases/v1.3.1.md": "1600b3f6e708ded1cd5d0cad7b5f2d78244e0e4b01d122d727f2a692fccaf652",
57
- "docs/releases/v1.3.2.md": "fe97d1feec0c3a5ebe04d3b573d2c9872a95b110b9ed57a2ce4989f376e1b96f",
57
+ "docs/releases/v1.3.2.md": "980437303a02644814116b12279d14bf83e6b50c87eab2e0c88e433808f372e3",
58
+ "docs/releases/v1.3.3.md": "bb2707cc5ef4b763ee61a804fd8ce75b762731b16681ac6c322636a35657b892",
59
+ "docs/releases/v1.4.0.md": "6ab3365b9c286f81395cac99bb896e06ee1ee3ea759267b6bbe0e1623c76832f",
58
60
  "docs/validation/69-rc.md": "e490c6a9ad0fec9108b91c74922cedac7ddf214ed405f8f5523da22f48a4b222",
59
61
  "docs/validation/85-antigravity.md": "f89b175191cd98ab03d4029b487065133814b3c8dd8de8cd0a5cc367e2579e4f",
60
62
  "docs/wake.md": "cde135da2ea7be21c815bb265e694f737dbe467d8e76bb82eb118e3b86e29d22",
@@ -23,6 +23,10 @@
23
23
 
24
24
  ## 開発と履歴
25
25
 
26
+ - [v1.4.0準備](releases/v1.4.0.md)は、2026-11-02のソース確認時点でマージ済みのMCPポリシー、事前検査、診断、プリセットの変更を記録します。公開と独立したスキルの適用は別です。
27
+
28
+ - [v1.3.3 メンテナンス準備](releases/v1.3.3.md)は、Python 3.14 の CI・メタデータ、投稿・公開の案内、検証済みの互換スキル v0.4.1 コピーを扱います。公開と運用への配備は別です。
29
+
26
30
  - [v1.3.2メンテナンス案内](releases/v1.3.2.md)ではmacOSのファイアウォール承認、Directリスナー・TLS診断、MCP SDK下限、Python配布物の外にあるControlのセキュリティ更新と別途の配備について説明します。
27
31
 
28
32
  - [v1.3.1メンテナンス案内](releases/v1.3.1.md)はControlの依存関係修正、互換スキル更新、公開と運用配備の範囲を説明します。
@@ -1,5 +1,7 @@
1
1
  # session-peer CLI リファレンス
2
2
 
3
+ 2026-11-02のソース確認時点では、以下のv1.4.0ソース機能は公開済みv1.3.3を基に準備したもので、利用可能になったことの告知ではありません。利用前に[リリースノート](releases/v1.4.0.md)と実際のGitHub/PyPIの公開状況を確認してください。
4
+
3
5
  [概要に戻る](../../README.ja.md)
4
6
 
5
7
  ## 受信セッションの世代を固定する条件(開発中)
@@ -118,6 +120,14 @@ Handoff status は読み取り専用スナップショットを再利用し、in
118
120
 
119
121
  Send の通常のメッセージ入力要件と上限は変わりません。従来どおり `--message`、`--message-file` または stdin を使い、仮の本文は自動生成しません。説明フィールドに本文や receipt の秘密値は含めません。通常の説明は stdout に、失敗した結果や予期しない投入の証拠に関する説明は stderr に出力し、既存の要約・エラーの出力先は変えません。不明な証拠は不明のまま表示し、実際の送信結果が不確実な場合は自動再送しません。
120
122
 
123
+ <a id="未リリースの-v140-候補-構造化された送信プレビュー-357"></a>
124
+
125
+ ### v1.4.0 ソース: 構造化された送信プレビュー (#357)
126
+
127
+ `send --dry-run --explain-json` は、ローカルまたは SSH の検証について、バージョン付きで許可されたフィールドだけの JSON 説明を出力する選択肢です。テキストプレビューと同じ分類を使用し、SSH アダプターによる整形前のネイティブ応答を基にします。通常のメッセージ入力と上限が適用され、仮の本文は生成しません。出力にメッセージ本文、生のエラー、パスは含めません。結果が不明な場合や予期しない投入の証拠がある場合は検証に失敗し、自動再試行を許可しません。
128
+
129
+ `--explain-json` は `--json` と併用できますが、`--dry-run` が必須です。メッセージ入力や宛先処理の前に、`--explain`、ペアリング済みデバイス、実験的 handoff モードとの組み合わせを拒否します。既存の `--explain` はテキスト専用のままで、通常の CLI JSON は変わりません。既存の dry-run 検査はローカル・バージョン確認のプロセスや SSH 接続を開始する場合がありますが、このモードはキュー投入、inbox への送信、モデルの開始、wake 予算の予約、handoff 権限の作成を行いません。プレビューの合格は検査時点の結果であり、承認、予約、後の送信の安全性、消費、ACK を意味しません。
130
+
121
131
  ### オプションのペアリング済みデバイスと Antigravity (v0.9)
122
132
 
123
133
  これらの機能は PyPI v0.9.0 以降で利用可能です。Antigravity は引き続き
@@ -203,6 +213,20 @@ UUID は現在の一覧で確認した値に、ハッシュは選択したプリ
203
213
 
204
214
  macOS で所有権を無視するマウントは `preset_ownership_unenforced`、マウント照会が利用できない、または検証できない場合は `preset_mount_unverifiable` で拒否します。モードビットだけを所有権が強制される証拠とは扱いません。Linux では上位経路の ACL も、ACL 状態を検証できないファイルシステムも拒否します。管理コマンドを中断した後は、変更が既に見えている可能性があるため現在の設定を確認してください。ディレクトリの同期失敗を黙って成功とは扱いません。
205
215
 
216
+ <a id="未リリースの-v140-候補-mcp-プリセット-359"></a>
217
+
218
+ ### v1.4.0 ソース: MCP プリセット (#359)
219
+
220
+ 入力シグネチャ: `list_sessions(destination="local", agent=null, include_inactive=false, preset=null, preset_revision=null)`; `send_message(destination, target, message, dry_run=false, wake=false, wake_timeout=30, preset=null, preset_revision=null)`; `preflight_send(destination, target, message, wake=false, wake_timeout=30, preset=null, preset_revision=null)`.
221
+
222
+ MCP プリセットの参照と選択では、オペレーターの明示的な許可リストと既存の安全なスナップショット読み取り関数を使います。CLI のプリセット管理コマンドや自動選択は追加しません。[MCP プリセットのポリシーと制限](mcp.md)を参照してください。MCP の選択では、CLI の `--preset` と明示的な経路フラグを組み合わせず、承認済みの経路を展開します。既存の CLI 出力、リビジョン、ファイルシステムの安全性に関する契約は変わりません。
223
+
224
+ MCP の `list_sessions`、`preflight_send`、`send_message` で任意の `preset`、`preset_revision` を指定するには、既存の操作権限と `presets` の両方が必要です。実際の送信には、現在の `dp1:` リビジョンと明示的な対象が必要です。wake や Reply-To URI との組み合わせは拒否します。リビジョンは参照時に確認するもので、対象の世代や権限ではありません。その後の変更で、呼び出し用にすでに展開された経路を取り消すことはできません。
225
+
226
+ 新しい 64 KiB のツール結果制限は `list_presets` のメタデータ参照だけに適用されます。プリセットは既存の操作の経路選択だけを担い、同じ操作権限とポリシー経路との完全一致を要求します。成功した `list_sessions` と `send_message` の応答では、プリセットのメタデータ、新しいコマンド名、追加のデータ射影を加えず、既存の CLI スキーマとネイティブのペイロードを維持します。既存のネイティブ証拠と通信上の制限を保ち、実際の送信に合計 64 KiB の制限を新設しません。リビジョンは `list_presets` で別途確認してください。選択済みの `preflight_send` に追加できるプリセットのメタデータは、安全な `name`、`agent`、`transport`、`revision` のみです。
227
+
228
+ 承認済みの項目が一つでも欠落しているか、経路がポリシーと一致しない場合、メタデータ参照全体を原子的に拒否します。固定の選択拒否コードには `preset_platform_unsupported`、`preset_route_unsupported`、`preset_revision_mismatch`、`preset_storage_unavailable` があり、管理操作やファイルシステムの修復は行いません。メタデータ参照のエラーは呼び出し前に発生します。呼び出し後の入出力エラーや実際の送信応答のデコード失敗は、送信後に起きる場合もあるため、`outcome_unknown` と `retryAllowed=false` を報告し、自動再試行しないでください。確認済みのネイティブのキュー登録・送信証拠は保持します。
229
+
206
230
  <a id="受信先アドレス帳開発中"></a>
207
231
 
208
232
  ### 受信先アドレス帳(v1.3.0)
@@ -406,7 +430,7 @@ session-peer send --to 'session-peer://v1/reply?agent=claude&session=api-worker&
406
430
 
407
431
  ### JSON レスポンス規約
408
432
 
409
- すべての JSON 結果オブジェクトは、同じスキーマバージョン付きのエンベロープで始まります:
433
+ `list`、`send`、`doctor`、`update` の通常の `--json` 結果には、次のスキーマバージョン付きエンベロープを使います。選択式の `--explain-json` 出力(`send.preflight`)と MCP のメタデータ・事前検査応答は、別途文書化されたスキーマを使い、`host` を意図的に省きます。ホストを補ったり、フィールドの欠如から経路を推測したりしないでください:
410
434
 
411
435
  ```json
412
436
  {
@@ -846,6 +870,24 @@ Codex メッセージは、測定された Codex サーバーの制限ではな
846
870
  不明な障害を個別のコードとして報告します。受信トレイへの接続、キューへの書き込み、
847
871
  任意のディレクトリのスキャン、エージェント/SSH 設定の変更は行いません。
848
872
 
873
+ v1.4.0 ソース (#358): `doctor --agent NAME` は SSH 経由も含め、チェックと宣言されたエージェント機能を選択した登録済みエージェントに限定し、共通のインストール済みスキル一覧の検査も省略します。`doctor --agent codex --selected-home-only --codex-home /absolute/home` は選択した Codex ホームのみを検査し、他のホームの一覧確認を省略します。これらのオプションは逆方向経路のチェックを有効にしません。省略すると、既存の全エージェントおよび制限付き複数ホーム診断の動作を維持します。
874
+
875
+ MCP ラッパーが対応する検査と実行上の影響は、次の範囲に限られます。
876
+
877
+ | モード / エージェント | 確認する事実 | プロセス / 接続への影響 |
878
+ | --- | --- | --- |
879
+ | メタデータ | ポリシーとアダプターの宣言 | なし |
880
+ | 能動 Claude | 登録記録、プロセス識別メタデータ、ファイルシステム上の受信箱の存在 | 受信箱には接続しない |
881
+ | 能動 Codex | 実行ファイルの存在、選択したホームの読み取り専用 SQLite クエリ、制限付き writer 走査 | ネイティブ Codex の実行やバージョン照会はしない |
882
+ | 能動 Antigravity | 登録されたブリッジのメタデータ | ブリッジやネイティブへの RPC はしない |
883
+ | 能動 SSH | 明示的なプローブ権限を得た後、設定済みの順方向経路のみ | SSH 設定がコマンドを実行する場合がある。逆方向プローブや返信先ホストへの自動接続はしない |
884
+
885
+ 許可されたコードの例は `sessions_dir_missing`、`inbox_present`、`codex_executable_missing`、`state_db_readable`、`unsaved_writer_check_unavailable`、`adapter_failed` です。結果は許可されたエージェントと、エージェントごとに最大 32 件のチェックに限られ、これらのコードが示すのは上記の限定範囲のみです。
886
+
887
+ `ok` は可用性ではなく、収集と形式の完全性を示します。完全な `missing_home` 結果でも `ok=true` になり得るため、各エージェントの状態は別途確認してください。`diagnosticEvidence` は能動結果では `point_in_time_only`、メタデータモードでは `not_collected` です。個別の対象の準備状態は検査しないため、`readiness` は `not_checked` のままです。`state_db_readable` の合格は読み取り専用 DB クエリの成功だけを意味し、有効なストレージの証明や返信経路の保証ではありません。
888
+
889
+ `tcpAccept`、`tls`、`peerAuthentication` の段階は `not_checked` のままです。ここでの `peerAuthentication` はペアリングされたデバイスの認証を指し、順方向 SSH 認証とは別です。`sshFailure` は `authentication_failed` や `host_key_failed` など、サニタイズされた順方向 SSH 失敗の分類だけを報告します。TCP、TLS、ペアリングされたデバイス、返信先ホストへのプローブは追加しません。
890
+
849
891
  リバース SSH は `--check-return-route` を指定した場合にのみチェックされます。送信先は、
850
892
  プロンプト、パスワード認証、ホストキー登録、および設定変更を無効にした状態で、
851
893
  固定の `ssh ... true` プローブを実行します。フォワード SSH の成功が、リバースパスが機能する
@@ -0,0 +1,125 @@
1
+ # オプションの Codex MCP 統合
2
+
3
+ 2026-11-02のソース確認時点では、以下のv1.4.0機能は公開済みv1.3.3を基に準備したもので、公開の告知ではありません。利用前に[リリースノート](releases/v1.4.0.md)と実際のGitHub/PyPIの公開状況を確認してください。
4
+
5
+ Python 3.10 以降でインストールします: `pipx install 'session-peer[mcp]'`(または隔離された venv にエクストラをインストール)。依存関係のない Python 3.9 CLI および `install.sh` は引き続きサポートされます。シェルインストーラーは MCP の依存関係をインストールしません。Python 3.9 では、MCP エントリポイントが Python 3.10+ が必要である旨を報告します。
6
+
7
+ 任意のエクストラはMCP SDK `mcp>=1.30,<2`を必要とします。上流の1.xセキュリティ修正を含む版まで依存関係の下限を引き上げるもので、stdio専用のこのサーバーで悪用可能な欠陥を確認したという意味ではありません。HTTP転送、OAuthサーバー経路、MCPクライアント経路は有効にしません。既存環境では明示的なパッケージ更新が必要で、宣言の変更だけではインストール済みSDKは更新されません。
8
+
9
+ `session-peer-mcp --config /absolute/path/policy.json` を起動します。ポリシーがない場合、サーバーは起動環境の Codex ホームを使用して、ローカルの一覧取得のみを許可します。ポリシーを指定するとデフォルトが置き換えられます。例:
10
+
11
+ ```json
12
+ {
13
+ "schemaVersion": 1,
14
+ "destinations": {
15
+ "local": {
16
+ "agents": ["claude", "codex"],
17
+ "capabilities": ["list"],
18
+ "codexHome": "/Users/me/.codex"
19
+ },
20
+ "worker": {
21
+ "host": "ubuntu@worker.example.ts.net",
22
+ "agents": ["claude", "codex"],
23
+ "capabilities": ["list", "send"],
24
+ "codexHome": "/home/ubuntu/.codex"
25
+ }
26
+ }
27
+ }
28
+ ```
29
+
30
+ 実際のユーザー名と SSH 送信先、設定済みの鍵、および known_hosts を使用してください。このファイルにパスワードを含めてはなりません。すべての Codex 送信先は、その送信先での絶対パスのホームを固定する必要があります。ホームを追加する場合は、個別の送信先 ID を追加してください。信頼できないプロセスによる変更からポリシーを保護してください。SSH 設定はオペレーターが管理する状態を維持します。
31
+
32
+ `codex mcp add session-peer -- /absolute/path/session-peer-mcp --config /absolute/path/policy.json` を使用して登録するか、リポジトリの `plugins/session-peer` バンドルを使用します: `codex plugin marketplace add /absolute/path/to/session-peer`、続いて `codex plugin add session-peer@session-peer`。このプラグインは PATH から `session-peer-mcp` を起動し、環境変数に設定されている場合は `SESSION_PEER_MCP_CONFIG` を読み取ります。最初に Python エクストラをインストールしてください。Python パッケージをインストールしても、既存の Codex 設定が変更されることはありません。
33
+
34
+ <a id="未リリースの-v140-候補-宛先メタデータの取得-356"></a>
35
+
36
+ ## v1.4.0 ソース: 宛先メタデータの取得 (#356)
37
+
38
+ `list_destinations()` は引数を取らず、オペレーターのポリシーのメタデータだけを返します。`schemaVersion` は 1 で、各項目には `destination`、`transport`、`agents`、`capabilities` が含まれます。子プロセスの起動やネットワークリクエストは行いません。SSH ホストの値と Codex ホームのパスは省略されます。送信先の名前は信頼できないデータとして扱ってください。設定されたケーパビリティはポリシー上の権限を示し、ネイティブエージェントとの互換性は示しません。
39
+
40
+ 応答には制約を明示します: `callerIdentity="unavailable"`、`readiness="not_checked"`、`submission="not_attempted"`、`consumption="not_checked"`、`ack="not_checked"`。このツールは宛先が64件を超える場合や、IDに表示できない文字がある場合、UTF-8で128バイトを超える場合に取得を拒否します。テキストと構造化データを合わせたMCPツール結果は64 KiB以内で、外側のJSON-RPCエンベロープは含みません。これは取得ツールの制限であり、ポリシーの読み込みと既存ツールの動作は変わりません。表示可能な文字の判定は、実行中のPythonのUnicodeデータベースに従います。既定のローカル一覧取得専用ポリシーは変わりません。
41
+
42
+ <a id="未リリースの-v140-候補-送信の事前検証-357"></a>
43
+
44
+ ## v1.4.0 ソース: 送信の事前検証 (#357)
45
+
46
+ `preflight_send(destination, target, message, wake=false, wake_timeout=30, preset=null, preset_revision=null)` は、既存の CLI dry-run 検査で通常のメッセージを検証します。オペレーターのポリシーは `schemaVersion` 2 を使用し、送信先とエージェントに対して `preflight` を明示的に許可する必要があります。バージョン 1 の既存のケーパビリティには新たな権限を追加せず、既定はローカル一覧取得専用のままです。事前検証に `send` は不要で、送信を許可するものではありません。wake の適格性を調べる場合は別途 `wake` が必要ですが、モデルの起動や wake 予算の予約は行いません。
47
+
48
+ バージョン付きの説明は、SSH アダプターによる整形前のネイティブ応答から許可された事実だけを抽出し、定められた拒否・不明の理由とオペレーターの対処を示します。メッセージ本文、生のエラー、認証情報、ホスト・ホームのパス、ネイティブの記録は含めません。結果が不明な場合や予期しない投入の証拠がある場合は、`retryAllowed=false` として検証に失敗します。自動再送しないでください。事前検証はメッセージの投入や handoff 権限の作成を行いません。デバイスと handoff のモードには対応しません。
49
+
50
+ 既存の dry-run 検査はローカル・バージョン確認のプロセスや SSH 接続を開始する場合があり、SSH 設定自体がコマンドを実行する場合もあります。このため、このツールは `readOnlyHint=false` と `openWorldHint=true` を使用します。ホストの承認はポリシーの権限とは別です。合格は検査時点の結果であり、経路の予約、有効なストレージの証明、承認、後の送信の保証、消費、ACK を意味しません。
51
+
52
+ <a id="未リリースの-v140-候補-制限付き診断-358"></a>
53
+
54
+ ## v1.4.0 ソース: 制限付き診断 (#358)
55
+
56
+ `diagnose_destination(destination="local", agent=null, active_probe=false)` には、`schemaVersion` 2 ポリシーで明示的な `diagnostics` 権限が必要です。既定モードはポリシーのメタデータと宣言されたエージェント機能のみを返し、CLI や検出プロセスの起動、ネットワーク要求は行いません。送信先 ID には送信先検出と同じ、表示可能文字と UTF-8 128 バイトの制限が適用されます。バージョン 1 と既定ポリシーは診断権限を付与しません。 既定モードの `declaredCapabilities` はアダプターの宣言に基づくブール値であり、実際の配信や準備状態を証明しません。
57
+
58
+ `active_probe=true` には、さらに `diagnostics_probe` が必要です。メタデータモードは全プラットフォームで利用できます。能動モードは現在 macOS と Linux のみをサポートし、Windows では CLI プロセスの起動やネットワーク要求を行わず、固定理由 `diagnostics_platform_unsupported` を返します。チェックは設定された送信先、固定された Codex ホームと許可されたエージェントのみを使用します。エージェントごとの doctor 呼び出しは最大 3 エージェントを検査し、20 秒の実行予算を共有した後にプロセスを終了処理します。厳密な経過時間の上限やリモートプロセス終了の保証ではありません。子プロセスの stdout と stderr はそれぞれ 64 KiB に制限されます。Codex のチェックは選択したホームのみを調べます。逆方向経路のプローブ、メッセージ送信、ネイティブモデルの起動、自動再試行は行いません。能動チェックは CLI プロセスや SSH 接続を開始でき、運用者の SSH 設定自体がコマンドを実行する場合もあります。ホストの承認はポリシー権限とは別です。選択的な能動チェックが運用者の SSH 設定を実行できるため、統合ツールは `readOnlyHint=false` と `idempotentHint=false` を使用します。
59
+
60
+ 応答は許可された状態値と診断コードを公開し、生のエラー、ホスト名、ホームパス、認証情報、セッション内容、不明な応答フィールドを除外します。メタデータモードは準備状態を検証しません。能動結果も検査時点の状態であり、消費や ACK の証拠、または送信権限ではありません。テキストと構造化ツール結果の合計は 64 KiB に制限されます。
61
+
62
+ 状態・チェックのフィールドが欠落または不正な場合、一部のチェックが不完全な場合、チェック一覧が切り詰められた場合は、正常とはせず不明・不完全(`diagnostic_incomplete`)として報告します。通信段階 `tcpAccept`、`tls`、`peerAuthentication` はすべて `not_checked` のままで、診断では個別に検証しません。
63
+
64
+ MCP ラッパーが対応する検査と実行上の影響は、次の範囲に限られます。
65
+
66
+ | モード / エージェント | 確認する事実 | プロセス / 接続への影響 |
67
+ | --- | --- | --- |
68
+ | メタデータ | ポリシーとアダプターの宣言 | なし |
69
+ | 能動 Claude | 登録記録、プロセス識別メタデータ、ファイルシステム上の受信箱の存在 | 受信箱には接続しない |
70
+ | 能動 Codex | 実行ファイルの存在、選択したホームの読み取り専用 SQLite クエリ、制限付き writer 走査 | ネイティブ Codex の実行やバージョン照会はしない |
71
+ | 能動 Antigravity | 登録されたブリッジのメタデータ | ブリッジやネイティブへの RPC はしない |
72
+ | 能動 SSH | 明示的なプローブ権限を得た後、設定済みの順方向経路のみ | SSH 設定がコマンドを実行する場合がある。逆方向プローブや返信先ホストへの自動接続はしない |
73
+
74
+ 許可されたコードの例は `sessions_dir_missing`、`inbox_present`、`codex_executable_missing`、`state_db_readable`、`unsaved_writer_check_unavailable`、`adapter_failed` です。結果は許可されたエージェントと、エージェントごとに最大 32 件のチェックに限られ、これらのコードが示すのは上記の限定範囲のみです。
75
+
76
+ `ok` は可用性ではなく、収集と形式の完全性を示します。完全な `missing_home` 結果でも `ok=true` になり得るため、各エージェントの状態は別途確認してください。`diagnosticEvidence` は能動結果では `point_in_time_only`、メタデータモードでは `not_collected` です。個別の対象の準備状態は検査しないため、`readiness` は `not_checked` のままです。`state_db_readable` の合格は読み取り専用 DB クエリの成功だけを意味し、有効なストレージの証明や返信経路の保証ではありません。
77
+
78
+ `tcpAccept`、`tls`、`peerAuthentication` の段階は `not_checked` のままです。ここでの `peerAuthentication` はペアリングされたデバイスの認証を指し、順方向 SSH 認証とは別です。`sshFailure` は `authentication_failed` や `host_key_failed` など、サニタイズされた順方向 SSH 失敗の分類だけを報告します。TCP、TLS、ペアリングされたデバイス、返信先ホストへのプローブは追加しません。
79
+
80
+ <a id="未リリースの-v140-候補-mcp-プリセット-359"></a>
81
+
82
+ ## v1.4.0 ソース: MCP プリセット (#359)
83
+
84
+ 入力シグネチャ: `list_sessions(destination="local", agent=null, include_inactive=false, preset=null, preset_revision=null)`; `send_message(destination, target, message, dry_run=false, wake=false, wake_timeout=30, preset=null, preset_revision=null)`; `preflight_send(destination, target, message, wake=false, wake_timeout=30, preset=null, preset_revision=null)`.
85
+
86
+ `list_presets(destination)` は承認済みの経路メタデータだけを読みます。`schemaVersion` 2 のポリシーで `presets` を明示的に許可し、宛先ごとの `presets` リストに `[a-z][a-z0-9_-]{0,63}` に一致する承認済みの名前を 1 件以上、128 件以下で指定する必要があります。バージョン 1 は新しいケーパビリティとフィールドを拒否します。ストアを読む前に権限を確認します。結果には宛先と一致する承認済みの `name`、`agent`、`transport`、`revision` と既存の `dp1:` トークンだけが含まれ、実際のホスト、ホーム、ストアのパスは省略されます。保存済み経路の参照では、セッションの探索、対象の選択、SSH・ネイティブ・バージョン確認のプローブ、データの更新を行いません。バージョン付きのテキストと構造化されたツール結果は、合計 64 KiB に制限されます。
87
+
88
+ `list_sessions`、`preflight_send`、`send_message` は任意の `preset`、`preset_revision` 入力を受け付けます。選択には既存の操作権限と `presets` の両方が必要です。保存済み経路やリビジョンが権限を与えることはありません。送信には明示的な対象が必要で、実際の送信には現在のリビジョンが必要です。プリセットを wake や Reply-To URI の対象と組み合わせることはできません。macOS/Linux の既存の Claude Code・Codex のローカルまたは SSH 経路だけをサポートし、Windows、デバイス、アドレス帳、handoff、プリセット管理のサポートは追加しません。
89
+
90
+ アダプターは既存の `XDG_CONFIG_HOME` の選択と安全な読み取り関数を使い、オペレーターの起動環境のストアから検証済みのスナップショットを一度だけ読みます。64 KiB・128 件の制限と、所有者、ACL、シンボリックリンク、マウントの検査を維持し、存在しないストアや安全でないストアを初期化、修復、置換しません。モデルはストアのパスを指定できません。選択した経路は、宛先のホスト、許可されたエージェント、固定された Codex ホームと完全に一致する必要があります。DNS 上の同一性や代替経路への切り替えは認めません。CLI の `--preset` と明示的な経路フラグを組み合わせず、承認済み経路を一つの実行計画に展開し、呼び出し前にポリシーを再確認します。
91
+
92
+ リビジョンは名前と経路の正確な値を表し、同じ値に戻すと同じトークンを再利用できます。参照時に検査するもので、対象の世代、呼び出し元の身元、ストレージの証明、ACK ではありません。その後の変更によって、すでに展開された呼び出しが遡って取り消されることはありません。プリセットを選択しない場合、既存のツール応答は変わりません。
93
+
94
+ 新しい 64 KiB のツール結果制限は `list_presets` のメタデータ参照だけに適用されます。プリセットは既存の操作の経路選択だけを担い、同じ操作権限とポリシー経路との完全一致を要求します。成功した `list_sessions` と `send_message` の応答では、プリセットのメタデータ、新しいコマンド名、追加のデータ射影を加えず、既存の CLI スキーマとネイティブのペイロードを維持します。既存のネイティブ証拠と通信上の制限を保ち、実際の送信に合計 64 KiB の制限を新設しません。リビジョンは `list_presets` で別途確認してください。選択済みの `preflight_send` に追加できるプリセットのメタデータは、安全な `name`、`agent`、`transport`、`revision` のみです。
95
+
96
+ 承認済みの項目が一つでも欠落しているか、経路がポリシーと一致しない場合、メタデータ参照全体を原子的に拒否します。固定の選択拒否コードには `preset_platform_unsupported`、`preset_route_unsupported`、`preset_revision_mismatch`、`preset_storage_unavailable` があり、管理操作やファイルシステムの修復は行いません。メタデータ参照のエラーは呼び出し前に発生します。呼び出し後の入出力エラーや実際の送信応答のデコード失敗は、送信後に起きる場合もあるため、`outcome_unknown` と `retryAllowed=false` を報告し、自動再試行しないでください。確認済みのネイティブのキュー登録・送信証拠は保持します。
97
+
98
+ ## ツールとパーミッション
99
+
100
+ 以下の二つのシグネチャは既存の基本インターフェースを説明します。v1.4.0ソースのツールと省略可能なプリセット引数は、上の各節と初期化済みMCPの`tools/list`スキーマを確認してください。ツールが表示されても、ポリシー上の権限が付与されるわけではありません。
101
+
102
+ - `list_sessions(destination="local", agent=null, include_inactive=false)` は CLI の構造化された一覧を返します。Agent は `claude` または `codex` です。省略した場合は許可されたエージェントを一覧表示します。
103
+ - `send_message(destination, target, message, dry_run=false, wake=false, wake_timeout=30)` は、`send` が明示的に許可されている場所にのみ 1 回送信します。Target は Claude 名/PID、`codex:<UUID>`、または設定されたホストとホームに正確に一致する Reply-To URI です。
104
+
105
+ MCP ツールのアノテーションは、一覧取得を読み取り専用、送信を非冪等としてマークします。必要に応じてホストクライアントのツール承認を設定してください。サーバーポリシーは宛先を個別に制限し、サンドボックスやホストの承認をバイパスすることはありません。別のホスト名が同じマシンに解決される場合でも、Reply-To URI 内の SSH エイリアスはポリシーと完全に一致する必要があります。そうでない場合は、直接ターゲットと設定済みの宛先 ID を使用してください。
106
+
107
+ 応答は MCP の structuredContent と text の両方で CLI の JSON フィールドを保持します。一覧取得の部分的な失敗では、検出されたセッションを保持し、isError を設定します。キューへの送信は消費ではありません。結果が unknown の送信を自動的に再試行しないでください。リモート送信後にキャンセルやトランスポートの切断が発生する可能性があります。received/status/wait ツールはありません。[明示的な wake](wake.md) には、`send` に加えて個別の `wake` ケーパビリティが必要です。wake を有効にする場合は、クライアントツールのタイムアウトを 150 秒に設定してください。
108
+
109
+ 共有 MCP プロセスは、呼び出し元のスレッドを確実には識別できません。サーバーを起動したセッションに帰属させるのではなく、メッセージは `session-peer MCP (caller session unavailable)` と識別し、Reply-To を省略します。認証のためにこのヘッダーに依存しないでください。メッセージ本文はシェルコマンド文字列ではなく stdin 経由で渡されます。通常の CLI の制限が依然として適用されます。
110
+
111
+ ## 検証
112
+
113
+ MCP エクストラの有無の両方で `python -m unittest discover -s tests -v` を実行します。オプションのテストでは実際の stdio MCP サーバーを起動し、モデルの認証情報なしで初期化、スキーマ、ポリシー拒否、および CLI の部分的な失敗を検証します。wheel と sdist の両方のインストールをテストしてください。実環境チェックでは Codex バージョン、OS、およびホストの承認設定を記録する必要があります。UDS アクセスは環境依存であり、承認のバイパスを約束するものではありません。メッセージには専用のテストセッションを使用してください。
114
+
115
+ CIではmacOS/LinuxのPython 3.10/3.13/3.14で、SDK下限の`mcp==1.30.0`と最新の互換1.xを別々に試験します。両プロファイルでstdio・ポリシー・タイムアウト・キャンセル・所有する子プロセスの終了処理を試験し、解決されたランタイム依存関係を監査して、版とレポートを保存します。推移的依存関係の版は通常の依存関係解決に従って選択されます。すべての推移的パッケージの最小版を試験するものではありません。版を固定したビルド・監査用要件はランタイム環境の外にインストールし、監査対象には初期構成用の`pip`/`setuptools`パッケージも含めます。既存の最新版解決監査とリリース監査も引き続き必須です。
116
+
117
+ 公式リファレンス: [Codex MCP](https://developers.openai.com/codex/extend/mcp), [Python MCP SDK](https://github.com/modelcontextprotocol/python-sdk)。 [SDK 1.30.0](https://pypi.org/pypi/mcp/1.30.0/json), [GHSA-84m7-p3x7-pcfv](https://github.com/modelcontextprotocol/python-sdk/security/advisories/GHSA-84m7-p3x7-pcfv), [GHSA-fmmv-w9g8-j3gc](https://github.com/modelcontextprotocol/python-sdk/security/advisories/GHSA-fmmv-w9g8-j3gc).
118
+
119
+ ### 非対話型クライアントの承認
120
+
121
+ Codex `exec` は、サーバーポリシーが許可している場合でも「requires approval, but approval policy is never」として send ツールを拒否することがあります。`approval_mode="auto"` は無条件の承認ではありません。非対話型統合を明示的に承認するオペレーターは、制限された宛先ポリシーと併せて、その特定の MCP サーバー/ツールに対して `mcp_servers.session_peer.tools.send_message.approval_mode="approve"` を設定できます。プラグインがこの設定を有効にすることはありません。対話型クライアントは、代わりに通常の承認プロンプトを使用できます。テストクライアントがこの承認設定を無関係なサーバーやツールにコピーしてはなりません。
122
+
123
+ macOS/LinuxではMCP CLI呼び出しごとに新しいプロセスグループを所有します。完了・timeout・取消時はleaderの回収前に制限時間付きのTERM→KILLでTERMを無視する子も整理し、キャンセルは引き続き伝播します。別sessionへ離脱した子やSSH先のプロセスは対象外です。Windowsは直接の子の終了のみで、ツリー終了は保証しません。ローカル終了で遠隔送信は取り消せません。timeoutは `outcome_unknown` のままで自動再送は禁止です。
124
+
125
+ 呼び出し元セッションが不明であることを示す From ラベルを含め、MCP の本文は宛先 CLI の受信側の枠で引用されます。本文のヘッダーや埋め込まれた Reply-To は権限を与えません。第三者への宛先はセッション所有者に確認してください。共有 MCP プロセスは、認証済み呼び出し元セッションや自動返信経路を引き続き提供できません。最終的な枠もネイティブメッセージの上限に含まれます。
@@ -122,7 +122,7 @@ WebSocket 切断の `closeSource` はコードの受信・送信方向を区別
122
122
 
123
123
  ### macOS Directリスナーの確認(#341)
124
124
 
125
- この節はv1.3.1以降の未公開の変更を説明します。`device serve`起動時の`ready:true`はローカルリスナーの設定だけを確認します。今回の変更は`directReadyConfirmed:false`を追加します。以前のレシーバーではフィールドがない場合があります。TCP接続、起動準備、ピアTLS成功は別々の観測です。TLSハンドシェイクは未認証のペアリング初期接続の場合もあるため、それだけでペアリング、ネイティブ対象へのアクセス、ACKを証明しません。既存のペアリング設定の準備確認は認証済みprobe/list要求を使います。
125
+ この節はv1.3.2で公開されたDirectリスナー診断を説明します。`device serve`起動時の`ready:true`はローカルリスナーの設定だけを確認します。今回の変更は`directReadyConfirmed:false`を追加します。以前のレシーバーではフィールドがない場合があります。TCP接続、起動準備、ピアTLS成功は別々の観測です。TLSハンドシェイクは未認証のペアリング初期接続の場合もあるため、それだけでペアリング、ネイティブ対象へのアクセス、ACKを証明しません。既存のペアリング設定の準備確認は認証済みprobe/list要求を使います。
126
126
 
127
127
  `--diagnostic-events`を指定すると、今回の変更は`direct_transport`ライフサイクル記録を出力します。`phase`はTCPコールバックへの進入時が`accepted`、ハンドシェイクの成功・失敗時が`peer_tls`です。上限のあるレシーバーごとの累積カウンターは`accepted`、`tlsCompleted`、`tlsFailed`です。単調時計で各段階につき60秒に最大1件、合計で1分に最大2件に制限し、TLS成功と失敗は同じ段階の制限を共有します。正常終了時には0件も含む`summary`スナップショットの出力を追加で1件試み、終了処理を繰り返しても再出力しません。これは終了時のスナップショットであり、定期通知や欠落のないイベント履歴ではありません。接続受け入れの拒否、未完了・キャンセルされたハンドシェイク、カウンターの上限により数値は一致しない場合があります。ベストエフォートのDirect記録にエンドポイントアドレス、ピアID、メッセージデータ、例外原文は含めません。記録がないだけで接続が受け付けられなかったとは断定できません。
128
128
 
@@ -1,5 +1,29 @@
1
1
  # v1.3.2 メンテナンスリリース
2
2
 
3
+ <a id="v132-publication-record"></a>
4
+
5
+ ## 公開記録 — 2026-10-29確認
6
+
7
+ 2026-10-29の読み取り専用の再確認で、[GitHub v1.3.2リリース](https://github.com/abruption/session-peer/releases/tag/v1.3.2)がソース`f5e7c49554ff02771990a151e00b52f2abf3df0a`から正式な変更不能のリリースとして公開されていることを確認しました。公開時刻は2026-10-28T01:52:40Zです。別途確認した[PyPIのバージョン記録](https://pypi.org/pypi/session-peer/1.3.2/json)には、取り下げられていない以下の2ファイルだけがあります。GitHubでの公開だけではPyPIでの提供を証明しません。
8
+
9
+ - wheel: `session_peer-1.3.2-py3-none-any.whl`, アップロード時刻 2026-10-28T01:55:11.612762Z.
10
+ - ソース配布物: `session_peer-1.3.2.tar.gz`, アップロード時刻 2026-10-28T01:55:13.659910Z.
11
+
12
+ SHA-256:
13
+
14
+ ```text
15
+ 196552714b755c2ff755f3de507bd94a17ebd27b1c474ede83fbcc1301c488de session_peer-1.3.2-py3-none-any.whl
16
+ e1824b089d2d3e38e03783f5dfc6e2d5ec54fa9758837deb0ebcbbb567837065 session_peer-1.3.2.tar.gz
17
+ ```
18
+
19
+ この記録が確認するのはパッケージ公開であり、運用の受け入れではありません。Node ControlはPython配布物の外にあり、受信機環境の更新、サービス再起動、別途管理するスキルの更新は、それぞれ承認された別の作業です。この記録でfleet、実際のOAuth、ネイティブエージェントACKの検証範囲は追加されません。
20
+
21
+ 以下の準備内容は、日付のある当時の記録のまま保存します。公開前の表現は過去時点の説明であり、現在の提供状況を示しません。既存のタグとリリース資産は変更していません。
22
+
23
+ <a id="v132-preparation-snapshot"></a>
24
+
25
+ ## 準備時点の記録 — 2026-10-28
26
+
3
27
  公開済みv1.3.1を基準に2026-10-28に準備しました。Direct機能のソース基準は`dac1c30b1553136b9379be0c6d94eef34ccbad51`で、最終統合リリースコミットではありません。本書は準備範囲を説明します。実際の公開記録は[GitHub Releases](https://github.com/abruption/session-peer/releases)と[PyPI](https://pypi.org/project/session-peer/)で確認してください。
4
28
 
5
29
  PR #345のゲート修正ソース基準は`a68c6cf16c234cd3fe72926e519e4178c093081a`です。マージ済みPR #347後の統合準備基準は、バージョン準備コミットより前の`ef7748a78e6b466f67074708f5c14decf37f31d7`です。最終公開記録でリリースコミットを別途特定します。