Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 39 additions & 3 deletions docs/cli-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -495,6 +495,41 @@ Creation confirms both identities and shows the link only on the owner terminal.

### Updating

On macOS/Linux, hide the automatic runtime notice for one explicitly selected
stable version, or clear that preference:

```bash
session-peer update --dismiss-runtime-notice 1.3.1
session-peer update --clear-runtime-notice-dismissal
```

The version above is an example, not a release announcement. These local-only,
offline commands do not check, install or approve a release. They cannot be
combined with remote/SSH options or the check option. Only the exact normalized
version is hidden; later releases can still produce a notice, and clearing
restores the usual behavior. Explicit local checks retain the real latest version
and outdated result, with separate preference metadata. Remote checks, skill
notices and the existing global opt-out are unchanged. A remote command may still
show the calling CLI's own cached notice; its local preference is read once, not
once per target. Remote versions and results are never hidden by that preference.

The preference is stored separately from the update cache at
`$XDG_CONFIG_HOME/session-peer/update-notices.json`, or
`~/.config/session-peer/update-notices.json` when that variable is unset or empty.
The directory and file must be private and safely owned; unsafe paths are refused,
not repaired or redirected. Invalid or future-schema files hide nothing and are
not overwritten by either command: inspect the dedicated preference file first.
Windows does not yet support this per-version preference; ordinary updates,
checks and the global opt-out remain available.

Safety checks cover POSIX owner/mode bits, not a full ACL audit or physical-media
durability certification. Symlinked ancestors and explicitly relative config
paths are intentionally refused without fallback. The filesystem must support
directory-relative I/O, file locking and directory fsync. After inspecting and
backing up a malformed preference, an operator may explicitly remove only that
dedicated JSON file and run the preference command again; do not remove the lock
file while writers may be running. No automatic repair is performed.

For package-managed installs, use the same manager that installed the command:

```bash
Expand All @@ -518,9 +553,10 @@ session-peer update --host web-01 # push this program if version
```

Remote update compares against the **local program's version**, not the latest
GitHub release. It pushes even if the remote version is newer; check first and
update the local program before distributing it. The remote copy does not fetch
from GitHub. Remote version probes inspect only
GitHub release. It pushes only if the remote copy is missing or older, and leaves
a newer remote version unchanged. Check first and update the local program
before distributing it. The remote copy does not fetch from GitHub.
Remote version probes inspect only
`~/.local/share/session-peer/session_peer.py`, not pip/pipx/uv installations;
remote update installs that standalone path and its CLI link. For a
package-managed remote CLI, upgrade it with its own manager on that host instead.
Expand Down
2 changes: 1 addition & 1 deletion docs/i18n-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"docs/ai-assistant-guide.md": "9624ec96b92fb688fae3be3c94cb3564c77985091be451fbf1f056a1af9b9d9c",
"docs/antigravity.md": "f2b5122a0ce6e6fb5bd4d8ed50ce2c8bd2dc9c98ec8ce328405cf7c2cd24229d",
"docs/architecture/agent-transports.md": "01a4e3942e87acb476595859f2e37f9653ea1e3bc19ebc68dced1adf20a6966f",
"docs/cli-reference.md": "7b1e6e8d12069b45e12b65ebc02e2317f42ba0fe2b27e386b70d4616cd21c581",
"docs/cli-reference.md": "d2021243cef2dd29a48ee5d9378ded8b6e3a19e3042c3fa13899a463f700d83c",
"docs/compatibility-v1.md": "7e551aad37a369faff7e370728376763efb54c2c9e9cfd8556a0c19aabc3d103",
"docs/contracts/handoff-v1.md": "46a953010c49214bd8f969412f26713384fbe09a0ba78ebf0fef75da40d0d889",
"docs/diagnostics.md": "0949e53612eeab2cd7c7bbda498e14d71e9cb1b1189aa7722030cb8702cd8481",
Expand Down
43 changes: 40 additions & 3 deletions docs/ja/cli-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -451,6 +451,42 @@ session-peer device offer-cancel --state /private/device-state --offer-id OFFER-
<a id="updating"></a>
### 更新

macOS/Linux では、指定した安定版一つの自動ランタイム通知を非表示にするか、
その設定を解除できます。

```bash
session-peer update --dismiss-runtime-notice 1.3.1
session-peer update --clear-runtime-notice-dismissal
```

上記のバージョンは使用例であり、リリースの告知ではありません。これらはローカルの
設定だけをオフラインで変更し、リリースの確認・インストール・承認は行いません。
リモート/SSH オプションや確認オプションとは併用できません。正規化したバージョンが
完全に一致する通知だけを非表示にするため、後続リリースは通知されることがあります。
解除すると通常の動作に戻ります。明示的なローカル確認は実際の最新バージョンと
更新の要否を保持し、通知設定は別の情報として報告します。リモート確認、スキル通知、
既存の全通知無効化設定は変更しません。リモートコマンドでも呼び出し元 CLI 自体の
キャッシュ通知が表示される場合があります。そのローカル設定は対象ごとではなく一度だけ
読み取り、リモートのバージョンや結果を非表示にはしません。

設定は更新キャッシュと分けて
`$XDG_CONFIG_HOME/session-peer/update-notices.json` に保存します。環境変数が未設定か
空の場合は `~/.config/session-peer/update-notices.json` を使います。
ディレクトリとファイルには安全な所有権と非公開の権限が必要です。安全でないパスは
修復や迂回をせず拒否します。設定ファイルが不正または将来のスキーマの場合は、
通知を非表示にしません。どちらのコマンドもそのファイルを上書きしないため、
まず専用の設定ファイルを確認してください。
Windows はまだバージョン別設定に対応していませんが、通常の更新・確認と
全通知無効化は引き続き利用できます。

安全確認は POSIX の所有者と権限ビットが対象であり、ACL(追加のアクセス権)の
完全な監査や物理媒体への永続化の保証ではありません。上位パスのシンボリックリンクや
相対指定の設定パスは、代替パスに切り替えず拒否します。ファイルシステムには、
ディレクトリ基準の入出力、ファイルロック、ディレクトリの fsync(同期)が必要です。
不正な設定を確認・バックアップした後、運用者は専用の JSON ファイルだけを明示的に
削除し、設定コマンドを再実行できます。書き込みが動作中の可能性がある場合は
ロックファイルを削除しないでください。自動修復は行いません。

パッケージ管理されたインストールの場合は、コマンドをインストールしたのと同じマネージャーを使用します:

```bash
Expand All @@ -474,8 +510,9 @@ session-peer update --host web-01 # push this program if version
```

リモート更新は、最新の GitHub リリースではなく、**ローカルプログラムのバージョン**と
比較します。リモートバージョンの方が新しい場合でもプッシュするため、配布する前にまず確認し、
ローカルプログラムを更新してください。リモートのコピーが GitHub から取得することはありません。
比較します。リモートのコピーがない場合か古い場合だけプッシュし、新しい場合は変更しません。
配布する前にまず確認し、ローカルプログラムを更新してください。
リモート側で GitHub からプログラムを取得することはありません。
リモートバージョンのプローブは `~/.local/share/session-peer/session_peer.py` のみを検査し、
pip/pipx/uv のインストールは検査しません。リモート更新は、そのスタンドアロンパスと CLI
リンクをインストールします。パッケージ管理されたリモート CLI の場合は、代わりにそのホスト上の
Expand All @@ -484,7 +521,7 @@ pip/pipx/uv のインストールは検査しません。リモート更新は
ローカルまたはリモートの `update` のいずれも、Claude スキルを更新しません。スタンドアロンプログラムと
スキルの両方を更新するには、目的のリリースのチェックアウトから `install.sh` を再実行してください。
ローカルの `session-peer update --check` および `session-peer update` は、自動通知で
使用されるのと同じキャッシュも設定します。
使用されるのと同じキャッシュにもデータを書き込みます。

### Orca が管理する Claude プロファイル

Expand Down
39 changes: 37 additions & 2 deletions docs/ko/cli-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -450,6 +450,40 @@ session-peer device offer-cancel --state /private/device-state --offer-id OFFER-
<a id="updating"></a>
### 업데이트

macOS/Linux에서는 지정한 안정 버전 하나의 자동 런타임 알림만 숨기거나 그 설정을
해제할 수 있습니다.

```bash
session-peer update --dismiss-runtime-notice 1.3.1
session-peer update --clear-runtime-notice-dismissal
```

위 버전은 사용 예시이며 릴리스 발표가 아닙니다. 두 명령은 로컬 설정만 오프라인으로
변경하며 릴리스를 확인·설치·승인하지 않습니다. 원격/SSH 옵션이나 확인 옵션과 함께
사용할 수 없습니다. 정규화한 버전이 정확히 일치하는 알림만 숨기므로 이후 버전의
알림은 표시될 수 있고, 설정을 해제하면 기존 동작으로 돌아갑니다. 명시적인 로컬
확인은 실제 최신 버전과 구버전 여부를 그대로 보고하며 알림 설정은 별도 정보로
표시합니다. 원격 확인, 스킬 알림, 기존의 전체 알림 비활성화 설정은 바뀌지 않습니다.
원격 명령에서도 호출한 CLI 자체의 캐시 알림은 표시될 수 있습니다. 이때 로컬 설정은
대상별이 아닌 한 번만 읽으며, 원격 버전이나 결과는 해당 설정으로 숨기지 않습니다.

설정은 업데이트 캐시와 분리하여
`$XDG_CONFIG_HOME/session-peer/update-notices.json`에 저장합니다. 환경변수가 없거나
비어 있으면 `~/.config/session-peer/update-notices.json`을 사용합니다.
디렉터리와 파일은 안전한 소유권과 비공개 권한이 필요합니다. 안전하지 않은 경로는
수정하거나 다른 경로로 우회하지 않고 거부합니다. 손상되었거나 향후 스키마를 사용하는
파일은 알림을 숨기지 않으며 두 명령 모두 덮어쓰지 않으므로 전용 설정 파일을 먼저
확인하세요. Windows는 아직 버전별 설정을 지원하지 않지만 일반 업데이트·확인과
전체 알림 비활성화는 계속 사용할 수 있습니다.

안전 검사는 POSIX 소유권과 권한 비트를 확인합니다. ACL(접근 제어 목록)의 전체 검사나
물리 저장 매체의 내구성 인증은 수행하지 않습니다. 상위 경로의 심볼릭 링크와
상대 경로로 지정한 설정 위치는 다른 경로로 대체하지 않고 거부합니다. 파일시스템은
디렉터리 기준 입출력, 파일 잠금, 디렉터리 fsync(동기화)를 지원해야 합니다.
손상된 설정을 확인하고 백업한 뒤에는 운영자가 해당 전용 JSON 파일만 직접 제거하고
설정 명령을 다시 실행할 수 있습니다. 쓰기 작업이 실행 중일 수 있다면 잠금 파일을
제거하지 마세요. 자동 복구는 수행하지 않습니다.

패키지 관리자로 설치한 경우 명령어를 설치한 것과 동일한 관리자를 사용하세요:

```bash
Expand All @@ -473,8 +507,9 @@ session-peer update --host web-01 # push this program if version
```

원격 업데이트는 최신 GitHub 릴리스가 아니라 **로컬 프로그램의 버전**과 비교합니다.
원격 버전이 더 최신이더라도 푸시하므로, 배포하기 전에 먼저 확인하고 로컬 프로그램을
업데이트하세요. 원격 복사본은 GitHub에서 가져오지 않습니다. 원격 버전 검사는
원격 복사본이 없거나 더 오래된 경우에만 푸시하고, 원격이 더 최신이면 그대로 둡니다.
배포하기 전에 먼저 확인하고 로컬 프로그램을 업데이트하세요.
원격 복사본은 GitHub에서 가져오지 않습니다. 원격 버전 검사는
pip/pipx/uv 설치가 아니라 `~/.local/share/session-peer/session_peer.py`만 검사합니다.
원격 업데이트는 해당 독립 실행형 경로와 CLI 링크를 설치합니다. 패키지 관리자로
설치된 원격 CLI의 경우 해당 호스트에서 자체 관리자로 업그레이드하세요.
Expand Down
15 changes: 14 additions & 1 deletion docs/zh-CN/cli-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,19 @@ session-peer device offer-cancel --state /private/device-state --offer-id OFFER-
<a id="updating"></a>
### 更新

在 macOS/Linux 上,可以隐藏指定稳定版本的自动运行时通知,或清除此设置:

```bash
session-peer update --dismiss-runtime-notice 1.3.1
session-peer update --clear-runtime-notice-dismissal
```

上述版本仅为示例,并非发行公告。这两个命令只离线修改本地设置,不检查、安装或批准发行版,不能与远程/SSH 选项或检查选项组合使用。只有规范化后完全匹配的版本才会隐藏;后续版本仍可能显示通知,清除后恢复通常行为。显式本地检查仍报告真实的最新版本及是否过时,通知设置作为独立信息提供。远程检查、技能通知和现有的全局关闭通知设置均不变。远程命令仍可能显示调用方 CLI 自身的缓存通知;此时只读取一次本地设置,而不是按目标分别读取。该设置不会隐藏远程版本或结果。

设置独立于更新缓存,保存到 `$XDG_CONFIG_HOME/session-peer/update-notices.json`;环境变量未设置或为空时使用 `~/.config/session-peer/update-notices.json`。目录和文件必须具有安全的所有权和私有权限。不安全的路径会被拒绝,不会自动修复或改用其他路径。无效的设置文件或采用未来版本模式的设置文件不会隐藏任何通知,两个命令也不会覆盖这些文件;请先检查专用设置文件。Windows 暂不支持按版本设置,但仍可使用普通更新、检查和全局关闭通知功能。

安全检查覆盖 POSIX 所有者和权限位,并非完整的 ACL(附加访问权限)审计或物理存储介质持久性认证。祖先路径中的符号链接和显式指定的相对配置路径会被有意拒绝,不会回退。文件系统必须支持基于目录的输入输出、文件锁和目录 fsync(同步)。检查并备份损坏的设置后,操作人员可手动删除该专用 JSON 文件(仅此文件),然后再次运行设置命令;可能仍有写入进程运行时,不要删除锁文件。系统不会自动修复。

对于通过包管理器安装的版本,请使用安装该命令的同一包管理器:

```bash
Expand All @@ -354,7 +367,7 @@ session-peer update --host web-01 --check # inspect the remote standalon
session-peer update --host web-01 # push this program if versions differ
```

远程更新是与**本地程序的版本**进行比较,而非最新的 GitHub Release。即使远程版本更新它也会推送;在分发之前,请先检查并更新本地程序。远程副本不会从 GitHub 获取更新。远程版本探测仅检查 `~/.local/share/session-peer/session_peer.py`,不检查 pip/pipx/uv 安装;远程更新会安装该独立路径及其 CLI 链接。对于通过包管理器安装的远程 CLI,请改用该主机上自带的管理器进行升级。
远程更新是与**本地程序的版本**进行比较,而非最新的 GitHub Release。仅在远程副本不存在或更旧时推送,若远程版本较新则保持不变。在分发之前,请先检查并更新本地程序。远程副本不会从 GitHub 获取更新。远程版本探测仅检查 `~/.local/share/session-peer/session_peer.py`,不检查 pip/pipx/uv 安装;远程更新会安装该独立路径及其 CLI 链接。对于通过包管理器安装的远程 CLI,请改用该主机上自带的管理器进行升级。

无论是本地还是远程的 `update` 都不会刷新 Claude 技能。从所需发布版本的检出目录重新运行 `install.sh` 可同时刷新独立程序和技能。本地的 `session-peer update --check` 和 `session-peer update` 也会填充自动通知所使用的相同缓存。

Expand Down
Loading
Loading