Skip to content

v1.1.1

Latest

Choose a tag to compare

@ct-jyjntc ct-jyjntc released this 15 Aug 08:09
· 8 commits to main since this release

中文

基于 v1.1.0..v1.1.1 的提交整理(含版本提交)。桌面仍是 app:// + 双 IPC 运行时

本版把「展示层 / 会话投影 / 子代理内联对话 / 问卷卡片」一次落地:渲染器不再猜工具名,顶栏任务与用量改由 host 折叠,子代理可以像主会话一样实时看、续聊、中断。


新增

  • 子代理内联对话
    • 点顶栏子代理目录或工具行「查看记录」,在主聊天栏打开该子代理 transcript(不再弹对话框)
    • 标题栏显示「父标题 | 子标题」,点父标题返回
    • 实时 SSE 流式输出(/api/agent/:parent/child-events),底部可续聊 / 中断
    • 子会话通过 ?parent= 解析,不会出现在侧边栏,也不会另起一套 AgentSession
  • 内联问卷(ask_user_question
    • 问题直接嵌在对应工具卡片里:单选 / 多选 / 自己输入,一次提交或跳过
    • 不再连环弹出 extension 对话框
  • 顶栏会话标题
    • Settings 右侧显示当前会话名(或首条消息 / 「新会话」)
  • 工具展示层(presentation)
    • 一类工具一类卡片:终端 / 阅读 / 搜索 / 网页 / 提问 / diff;未知与 MCP 走通用行
    • todo 从对话里抬走,只留顶栏任务
    • 子代理工具行增加「查看记录」
  • 子代理 report
    • 子代理可向父模型汇报(wakeup 立刻叫醒 / quiet 下一轮);对用户隐藏,不画报告卡片
  • 工作区即时刷新
    • write / edit 完成后立刻通知资源管理器,不必等到回合结束
  • 流式 t/s 滑动窗口
    • 助手消息上的 token/s 改为近 2 秒窗口,不再是全程平均

改进

  • 顶栏任务 / 子代理触发器
    • 纯文字「N 个任务 ▾」「N 个子代理 ▾」,12px 灰色,无胶囊 / 图标;同时出现时中间竖线
    • 文案 Todo → Tasks / 待办 → 任务
  • 子代理目录树
    • popover 宽约 336、无标题栏 / Bot 图标
    • 按深度树形排列,折叠三角,同级预留缩进
    • 行两列:左标题 + 活动/状态,右 token 与耗时;点击打开内联对话
    • 已完成的子代理仍留在目录,方便回看
  • 工具卡片标题更稳
    • 结果回来后不再用空参数的 "web" / "search" 盖掉原来的查询 / URL
    • 编辑卡片从 hashline [path#TAG] 头抽出路径,并合并多文件 patch
    • write 默认轻量行,有 patch 才升级成 diff 卡片
    • 用户 ! bash 按终端工具行显示,并留在历史里
  • 停止 / 压缩 UX
    • 点停止立刻回到空闲(不必等 RPC)
    • 压缩上下文时也算忙碌,composer 可停
    • 权限 / 编辑等扩展确认框增加「停止 Agent」
    • 侧栏「运行中」改为 CSS 转圈,并尊重减少动态效果
  • 侧栏拖拽条
    • 独立 8px 命中区,idle 不再高亮
  • Git 状态 / diff
    • 面板与资源管理器带 fresh=1 绕过 1 秒缓存,写文件后增删行数会重拉
  • OAuth 模型设置
    • 已登录时不再留一块空说明

修复

  • 切会话 / 快速重挂载不再串上一会话的任务或 token 统计
  • 本回合把任务清空后,顶栏胶囊会消失(不再复活更早的列表)
  • 没有 entryIds 的直播行不再因重复 key 乱跳
  • 重新打开 Plan 会话时,edit/write 在第一次 set_tools 前就不会出现在工具列表里
  • 长耗时 debug_run 可被会话停止立刻打断
  • bash / compaction 行会留在历史(不再只渲染 user/assistant 时被丢掉)

移除

  • 项目下拉里的「筛选项目」输入框
  • 项目按钮上「其它工作区在跑 / 有未读」小圆点
  • 对话里的 todo 工具卡片
  • ask_user_question 连环弹窗
  • 子代理 transcript 对话框(改为内联主栏)
  • Plan 模式权限 overlay 对 edit/write 的第三道 deny(改由工具裁剪 + brief 两道)

架构 / 内部(单一所有权,无第六条恢复路径)

  • 展示层lib/tool-presentation.ts + lib/tool-presenters/* 在 load / SSE 上附着 presentation;渲染器只读、不按工具名分类
  • 会话投影lib/session-projections.ts 折叠 todos / title / tokens / context pressure,经 session GET 与 get_state 推到 chrome
  • Transcript 节点lib/conversation-nodes.ts 组装稳定 id 的节点列表;Transcript.tsxChatWindow 抽出
  • Tool-execute 合同:resume 时 adopt 全量工具 + 按当前 mode 裁剪;[] 仍是全关
  • RPC 命令开关抽到 lib/rpc-session-commands.tssend() 行为不变)
  • 子代理结算仍是一条路agent_end → 未收集结果注入隐藏 subagent-results;人续聊走父会话 subagent_followup
  • session-tool-repair:仅设计文档,本版未实现

安装说明

macOS

  • 附件:Pi-Web-1.1.1-arm64.dmg(Apple Silicon,~175MB)
  • 签名:ad-hoc(未公证);Gatekeeper:右键打开或 xattr -cr "/Applications/Pi Web.app"

Windows

  • 附件:Pi-Web-1.1.1-x64.exe(Windows x64 NSIS,~139MB)
  • 双击安装,可自定义安装目录;安装后会创建桌面与开始菜单快捷方式
  • SmartScreen:更多信息 → 仍要运行

English

Prepared from commits in v1.1.0..v1.1.1 (plus the version bump). Desktop remains app:// + dual IPC runtimes.

This release lands the presentation layer, host-folded session projections, inline child transcripts, and inline questionnaires. The renderer no longer guesses tool names; chrome todos/usage come from the host; child agents can be watched, continued, and interrupted like the parent.


Added

  • Inline child transcripts
    • Open from the top-bar catalog or a tool-row “View transcript” — fills the main chat column (no modal)
    • Top bar shows parent | child; click the parent title to return
    • Live SSE via /api/agent/:parent/child-events; compact composer for follow-up / interrupt
    • Children resolve with ?parent= and stay off the sidebar (no second AgentSession)
  • Inline ask_user_question questionnaire
    • Single/multi select + “Type something.” on the tool card; submit or skip
    • No more chained extension dialogs
  • Top-bar session title
  • Tool presentation layer
    • Declared cards: terminal / read / search / web / ask / diff; unknown + MCP stay generic
    • todo hoisted out of the transcript
    • Subagent tool rows gain “View transcript”
  • Subagent report
    • Child can report to the parent model (wakeup now / quiet next turn); hidden from the user transcript
  • Workspace change notify
    • Explorer refreshes on write/edit completion, not only at agent_end
  • Sliding-window t/s
    • Streaming token rate uses a ~2s window instead of a lifetime average

Improved

  • Top-bar Tasks / Subagents triggers
    • Plain text N tasks ▾ / N subagents ▾, 12px muted, no pills/icons; a rule between them when both show
    • Copy: Todo → Tasks
  • Subagent catalog tree
    • ~336px popover, no title bar / Bot icon
    • Depth tree with disclosure carets and reserved indent
    • Row: title + activity on the left, tokens + elapsed on the right; click opens the child pane
    • Completed children stay listed
  • Steadier tool-card titles
    • Empty-args results no longer overwrite query/URL titles
    • Edit cards extract hashline [path#TAG] headers and join multi-file patches
    • write is a light row unless a patch exists
    • User ! bash renders as a terminal row and stays in history
  • Stop / compact UX
    • Abort resets the UI immediately (does not wait for RPC)
    • Compaction counts as busy
    • Extension dialogs gain “Stop agent”
    • Sidebar running indicator is a CSS spinner (respects reduced motion)
  • Sidebar resize seam is a dedicated 8px hit target
  • Git status/diff use fresh=1 after writes
  • OAuth settings hide the empty login block when already connected

Fixed

  • Fast remount no longer paints the previous session’s todos/tokens
  • Clearing todos in the current turn hides the capsule
  • Live rows without entryIds no longer collide on React keys
  • Reopening a Plan session strips edit/write before the first client set_tools
  • Session Stop aborts a long debug_run immediately
  • bash / compaction rows stay in history

Removed

  • Project-picker filter box
  • Other-workspace activity dot on the project button
  • In-transcript todo cards
  • Chained ask-user dialogs
  • Child transcript modal (replaced by the inline pane)
  • Plan overlay edit/write deny (tool strip + brief only)

Architecture / internal (still 5 run-lifecycle recovery paths)

  • Presentation: host attaches presentation on load + SSE; renderer copies only
  • Projections: host folds todos / title / tokens / context pressure onto existing GET / get_state
  • Transcript nodes: assembleTranscript + extracted Transcript.tsx
  • Tool-execute contract: resume adopts full tools + mode-strip; [] stays all-off
  • RPC command switch extracted to lib/rpc-session-commands.ts
  • Child settlement unchanged: agent_end → hidden subagent-results; human follow-up is parent subagent_followup
  • session-tool-repair is spec-only (not shipped)

Assets

  • Pi-Web-1.1.1-arm64.dmg (~175MB, Apple Silicon, ad-hoc, not notarized)
  • Pi-Web-1.1.1-x64.exe (~139MB, Windows x64 NSIS)
  • Gatekeeper: Right-click → Open, or xattr -cr "/Applications/Pi Web.app"
  • SmartScreen: More info → Run anyway