company-desktop
|
18aa1d1260
|
feat: 通知脚本支持 Telegram 通道
用户没有企业微信,改用 Telegram Bot。同一台机器的 api.telegram.org 需要走本地代理
(实测 127.0.0.1:7897),所以发送逻辑要显式支持代理。
- notify.json 新增 telegram 段:token / chatId / proxy
(也认环境变量 PI_NOTIFY_TELEGRAM_TOKEN、PI_NOTIFY_TELEGRAM_CHAT)
- 未配置 proxy 时回落 HTTPS_PROXY 环境变量,再回落系统(IE)代理
- 文本超过 3900 字符截断(Telegram 上限 4096)
- 自检 -Probe 同时报告 webhook 与 telegram 两个通道的结果,token 只显示前 10 位
- SKILL.md 更新通道配置说明,补上 notify.json 的完整示例与代理注意事项
实测:假 token 时返回 "(401) 未经授权",说明请求确实穿过了代理到达 api.telegram.org,
只是凭据无效;未配置时正确报告 not configured。真实推送待用户提供 bot token。
|
2026-10-28 15:55:13 +08:00 |
|
company-desktop
|
46d76317c7
|
feat: 通知脚本支持本地 webhook 配置与连通性自检
接微信/钉钉时 URL 是密钥,不能进仓库,也不适合每次都写在命令行里。
- webhook 取值顺序:-Url 参数 > 环境变量 PI_NOTIFY_WEBHOOK >
%USERPROFILE%\.pi\agent\notify.json 的 webhook 字段 > notify_webhook.txt 纯文本
(两个备用文件都在仓库之外,不会被提交)
- 新增 -Probe:只做一次连通性自检并打印结果(URL 打码,只显示前 32 位与后 8 位)
- 修正一个误判:企业微信/钉钉出错时仍返回 HTTP 200 + errcode,
原来只判断 HTTP 成功会把"密钥无效"当成发送成功。
现在解析响应体,errcode/code 非 0 一律视为失败并把原因带出来
(实测假 key 返回 errcode=93000 invalid webhook url)
验证:-Probe 在"未配置"和"配置了假 key"两种情况下都给出正确结论,
未做真实推送(还缺用户的企业微信机器人地址)。
|
2026-10-28 15:51:00 +08:00 |
|
company-desktop
|
dff08b17a3
|
feat: 需要用户决策时主动通知(桌面 toast / 决策日志 / IM 机器人)
背景:用户可能不在终端前面(远程连过来、或者走开了),agent 把问题打在终端里就停住,
人根本不知道,等于空等。
新增:
- tools/notify_decision.ps1
- Windows toast(WinRT),失败则回退到模态弹窗(120 秒自动关),并带提示音
- 追加写入 %USERPROFILE%\.pi\agent\decisions\pending.md,漏看 toast 也不丢问题
- 可选 webhook:-Url 或环境变量 PI_NOTIFY_WEBHOOK;
企业微信/钉钉用 {"msgtype":"text",...},URL 含 feishu/lark 时自动换飞书格式
- 中文必须走 -MessageFile(UTF-8 读取),避免命令行参数被控制台代码页弄乱
- 任何失败都 exit 0,通知出问题不能反过来中断 agent
- .pi/skills/notify-decision/SKILL.md:什么时候该通知、消息里必须写清"要决定什么 /
选项与代价 / 我的建议与默认动作"三件事、通道配置方式
- AGENTS.md:加一小节指向该 skill,并在仓库内 skill 表格里登记
验证:本机跑通三种调用(ASCII -Message、中文 -MessageFile、加 -NoBeep),
中文在决策日志里显示正常;toast 通过 PowerShell appId 注册,WinRT 接口检测为可用。
仅新增工具与文档,未触碰任何编译产物与源码。
|
2026-10-28 15:48:23 +08:00 |
|