v1.0.0
中文
基于 v0.8.2..v1.0.0 的提交整理。首个 1.0.0 正式版桌面客户端。
新增
-
Hermes 风格 Bash 工具
- 前台 / 后台执行分流(
background参数) - 拒绝误用的前台长任务调用
bash-command-classification前台护栏逻辑- 主动触发 subagent 委托语言(
ensure-subagent-delegation) - PTY 会话 kill 改为进程组信号,清理更彻底
- 前台 / 后台执行分流(
-
Todo Widget 可见性开关
- 设置项
showTodos控制 todo 扩展面板显示 - 按最新 turn 使用情况过滤
- 兼容
rpiv-todo格式解析
- 设置项
-
通知体验增强
- 完成音与桌面通知独立开关
- 切换时请求系统通知权限并展示样例
- Electron 通知支持点击聚焦窗口
- 可见性变化时重载通知偏好(无需整页重挂载)
-
Git 面板批量操作
- 一键 Stage All / Discard All
- 空路径保护,避免误调用 API
-
草稿迁移
- 新会话草稿
new:<cwd>可转移到真实 session id - 首次发送后输入框内容不再被清空
- 新会话草稿
修复
-
SSE / 会话生命周期
- 事件流连接超时、中止与完整清理
- 发送失败时回滚乐观消息(不限于连接错误)
- 启动超时中销毁终端会话
- extension binding 失败后可重试
- wrapper 销毁时中止进行中操作并发送
session_destroyed - SSE 重连指数退避(最多 6 次),避免 tight reconnect 循环
- 丢弃迟到的 SSE / loadSession 结果,防止旧 run 复活流式气泡
- 分支切换时丢弃过期 context 响应
-
会话并发与持久化
- 拒绝并发 prompt(多标签 / 重叠 POST)
- busy 时禁止 fork
- 已销毁 wrapper 不再重置 idle timer
- 首条助手消息前也确保
.jsonl落盘,避免 idle 销毁后 ghost session id - 删除会话级联 reparent 前先销毁子 wrapper,并用原子 rename 写回
-
配置安全
models.json损坏时返回 500 +corrupt,防止 UI 用空配置覆盖models.json原子写入(tmp + rename)- skill 的
disable-model-invocation切换先剥离旧 key,避免 YAML 重复键 - 文件内容加载增加 request id,快速切换路径时不串数据
改进
- 设置页通用 / 外观 / MCP 分区滚动与 overflow 修复
- UI 圆角统一;去掉设置输入框硬编码
borderRadius: 0 - 移除废弃的
/api/cwd/exec、旧SettingsConfig弹层及相关死代码 - ChatWindow 用户输入提取对非数组 content 更稳健
- MessageView / FileViewer / ModelsConfig 加载与错误路径加固
内部调整
- 新增:
bash-command-classification、ensure-subagent-delegation及测试 - 强化
rpc-manager、useAgentSession、draft-store、session-reader - 版本:
@ct-jyjntc/pi-web@1.0.0
安装说明(本 Release 附件)
macOS
- 附件:
Pi-Web-1.0.0-arm64.dmg(Apple Silicon) - 签名:ad-hoc(未 Apple 公证)
- 若 Gatekeeper 拦截:
# 方式 1:右键 App → 打开 → 打开
# 方式 2:
xattr -cr "/Applications/Pi Web.app"
open "/Applications/Pi Web.app"Windows
- 附件:
Pi-Web-1.0.0-x64.exe(Windows x64 NSIS 安装包) - 双击安装,可自定义安装目录;安装后会创建桌面与开始菜单快捷方式。
- 如 SmartScreen 提示「Windows 已保护你的电脑」:点击「更多信息」→「仍要运行」。
English
Prepared from commits in v0.8.2..v1.0.0. First 1.0.0 stable desktop release.
Added
-
Hermes-style bash tool
- Foreground / background execution split (
backgroundparam) - Reject misused long-running foreground calls
- Foreground guardrails via
bash-command-classification - Proactive subagent-delegation language (
ensure-subagent-delegation) - PTY kill uses process-group signals for cleaner teardown
- Foreground / background execution split (
-
Todo widget visibility toggle
showTodossetting controls extension todo panels- Filter by latest-turn usage
- Parse
rpiv-todoformat
-
Notification UX
- Separate completion-sound and desktop-notification toggles
- Request permission + sample notification on enable
- Electron notifications click-to-focus the window
- Reload prefs on visibility change without remount
-
Git bulk actions
- Stage All / Discard All
- Empty-path guards
-
Draft transfer
- Promote
new:<cwd>drafts onto the real session id - Keeps typed text after the first send
- Promote
Fixed
-
SSE / session lifecycle
- Proper stream cleanup, abort, and connect timeout handling
- Roll back optimistic messages on any send failure
- Destroy terminal sessions on startup timeout
- Retryable extension binding after failure
- Abort in-flight work and emit
session_destroyedon wrapper teardown - Exponential SSE reconnect backoff (max 6 attempts)
- Drop late SSE / loadSession results from older runs
- Drop stale context responses during rapid branch switches
-
Session concurrency & persistence
- Reject concurrent prompts (multi-tab / overlapping POSTs)
- Block fork while busy
- Never revive idle timers on destroyed wrappers
- Persist
.jsonlbefore the first assistant message (no ghost session ids after idle destroy) - Destroy child wrappers before cascade reparent; atomic rename writes
-
Config safety
- Corrupt
models.jsonreturns 500 +corruptinstead of empty overwrite bait - Atomic
models.jsonwrites (tmp + rename) - Skill toggle strips existing
disable-model-invocationkey first (no duplicate YAML keys) - File content loads use request ids to avoid path-switch races
- Corrupt
Improved
- Settings page scrolling/overflow for general, appearance, MCP
- Consistent border-radius tokens; remove hardcoded zero radii on settings inputs
- Remove dead
/api/cwd/exec, legacySettingsConfig, and related code - More robust ChatWindow user-text extraction for non-array content
- Hardened load/error paths in MessageView / FileViewer / ModelsConfig
Internal
- New modules:
bash-command-classification,ensure-subagent-delegation(+ tests) - Hardened
rpc-manager,useAgentSession,draft-store,session-reader - Version:
@ct-jyjntc/pi-web@1.0.0
Install Notes
macOS
- Asset:
Pi-Web-1.0.0-arm64.dmg(Apple Silicon) - Signing: ad-hoc (not Apple notarized)
- If Gatekeeper blocks:
xattr -cr "/Applications/Pi Web.app"
open "/Applications/Pi Web.app"Windows
- Asset:
Pi-Web-1.0.0-x64.exe(Windows x64 NSIS installer) - Run the installer; you can choose the install directory. Desktop and Start Menu shortcuts are created.
- If SmartScreen says "Windows protected your PC": click "More info" → "Run anyway".