mirror of
https://bitbucket.org/siakitem/my-pi.git
synced 2026-10-26 10:45:22 +00:00
refactor: notify/footer 持久配置收编到 config/,chrome bridge 地址固定
仓库规则要求 config/ 为唯一配置来源、不以环境变量作持久默认值: - pi-notify 改读 config/pi-notify.json(逐字段校验回退,复用原 parsers 钳制) - pi-minimal-footer 改读 config/pi-minimal-footer.json - pi-chrome 移除 PI_CHROME_BRIDGE_HOST/PORT,固定 127.0.0.1:17318 (浏览器端 service_worker.js 硬编码同一地址,单侧可配只会断连) Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
parent
0c45b1a438
commit
e996f59469
+19
-15
@@ -28,19 +28,21 @@ Do not separately install upstream when using the bundle, or notifications will
|
||||
- `/notify test`: send a notification immediately; click it to verify exact Kitty-window focus.
|
||||
- `/notify status`: show the active backend, visibility policy, and duration threshold.
|
||||
|
||||
Command overrides are session-local. Use environment variables for persistent defaults.
|
||||
Command overrides are session-local. Persistent defaults come from the bundle's `config/pi-notify.json`.
|
||||
|
||||
## Configuration
|
||||
|
||||
- `PI_NOTIFY_ENABLED`: `1`/`true` or `0`/`false`; default enabled.
|
||||
- `PI_NOTIFY_TITLE`: title template shared by completion and permission notifications; default `π - {project}`.
|
||||
- `PI_NOTIFY_BODY`: completion-notification body template; default `{message}`. Permission prompts use a bounded `Permission required · <agent> · <surface>` summary.
|
||||
- `PI_NOTIFY_MESSAGE_SOURCE`: `assistant`, `user`, or privacy mode `none`; default `assistant`. Privacy mode also hides permission values and requester details.
|
||||
- `PI_NOTIFY_MESSAGE_MAX`: maximum completion-message or permission-value characters before ellipsis; default `80`, maximum `500`.
|
||||
- `PI_NOTIFY_MIN_SECONDS`: minimum complete run duration; default `3`, range `0`–`3600`. This does not delay permission prompts.
|
||||
- `PI_NOTIFY_VISIBILITY`: Kitty policy `unfocused`, `invisible`, or `always`; default `always`.
|
||||
- `PI_NOTIFY_ACTION`: Kitty click action `focus` or `none`; default `focus`.
|
||||
- `PI_NOTIFY_SOUND_CMD`: optional shell command run after the notification. This is trusted local configuration and executes through a shell.
|
||||
Persistent defaults are read once per session from `config/pi-notify.json` inside the installed bundle; a missing or invalid file falls back to the defaults shown:
|
||||
|
||||
- `enabled`: `true`/`false`; default `true`.
|
||||
- `title`: title template shared by completion and permission notifications; default `π - {project}`.
|
||||
- `body`: completion-notification body template; default `{message}`. Permission prompts use a bounded `Permission required · <agent> · <surface>` summary.
|
||||
- `messageSource`: `assistant`, `user`, or privacy mode `none`; default `assistant`. Privacy mode also hides permission values and requester details.
|
||||
- `messageMax`: maximum completion-message or permission-value characters before ellipsis; default `80`, maximum `500`.
|
||||
- `minSeconds`: minimum complete run duration; default `3`, range `0`–`3600`. This does not delay permission prompts.
|
||||
- `visibility`: Kitty policy `unfocused`, `invisible`, or `always`; default `always`.
|
||||
- `action`: Kitty click action `focus` or `none`; default `focus`.
|
||||
- `soundCommand`: optional shell command run after the notification. This is trusted local configuration and executes through a shell.
|
||||
|
||||
Visibility policies:
|
||||
|
||||
@@ -70,12 +72,14 @@ The active tmux client type is checked so a stale `KITTY_WINDOW_ID` cannot force
|
||||
- `{status_icon}`: `✓` or `⚠`. This reports observed tool errors, not a definitive task-success verdict.
|
||||
- `{tool_error_count}`: observed tool error count.
|
||||
|
||||
Example for multiple projects without exposing assistant text on the lock screen:
|
||||
Example for multiple projects without exposing assistant text on the lock screen (`config/pi-notify.json`):
|
||||
|
||||
```bash
|
||||
export PI_NOTIFY_TITLE='π {status_icon} · {project}'
|
||||
export PI_NOTIFY_MESSAGE_SOURCE=none
|
||||
export PI_NOTIFY_VISIBILITY=unfocused
|
||||
```json
|
||||
{
|
||||
"title": "π {status_icon} · {project}",
|
||||
"messageSource": "none",
|
||||
"visibility": "unfocused"
|
||||
}
|
||||
```
|
||||
|
||||
Kitty must be allowed under **System Settings → Notifications**. Self-built or unsigned Kitty binaries may not be able to publish macOS notifications.
|
||||
|
||||
Reference in New Issue
Block a user