新增
工作区切换弹窗:卡片、搜索与分类筛选
- 外层 Tab 条的「+」从长菜单改为工作区切换弹窗(
WorkspacePickerDialog):每个工作区一张卡片,名称、路径、本地 / SSH 类型、当前 / 已打开状态与路径不可用提示放在一起;点击卡片切换,独立的编辑按钮仍可改名称、默认模型或删除记录 - 支持按名称与路径搜索,以及「全部 / 最近使用 / 已打开 / SSH」筛选。「最近使用」取最近打开的 8 个工作区;当前工作区优先展示,其余按最近打开时间排序。打开弹窗时清空上次筛选并聚焦搜索框,不让上一次搜索把列表悄悄藏起来
- 底部保留打开本地文件夹、新建本地工作区与新建 SSH 工作区入口;中英文文案同步补齐。当前激活的是功能页时,仍按
activeWorkspaceId标出正在使用的项目
专注会话窗口:只承载目标项目,不覆盖主窗口工作台
- 「在新窗口打开会话」改用
quick窗口身份与独立尺寸。窗口身份在加载渲染层之前登记,渲染层在握手前也先写入身份;目标会话在工作区激活和首屏挂载前建立,避免空布局先改写会话 hash、首屏多出无关草稿 - 不恢复主窗口的项目标签或最近项目;只为目标会话建立临时布局。没有会话路由时只补本窗口草稿,
ensure不读取共享工作台;切换当前项目内的会话、打开文件与调整面板均不写回主窗口的内外层布局,不允许跳到其他项目或全局功能页 - 全局浏览器广播按窗口隔离:只接收本窗口已打开会话拥有的页面,或已属于本窗口的手动页面(
browserId/clientTabId),不因其他项目、其他会话的广播恢复它们的工作台。自己的 Agent 页面仍放在右侧,不抢对话焦点 - 顶部改为显示当前项目名称,不渲染工作区标签与切换入口;侧边栏隐藏品牌、账户、全局导航和设置按钮,同时移除设置快捷命令、插件命令、状态栏及更新入口。会话列表、新建对话与搜索仍可用,顶部保留文件及面板开关;对话中的 MCP 管理仍可打开连接设置
- 侧边栏收窄为 240px,骨架屏同步;目标会话位于最近七天分组或归档中时自动展开对应区域,仍能直接看到当前项
长用户消息折叠:保留全文、附件与键盘访问
- 按正文实际渲染高度判断是否需要折叠,超过 220px 才显示「展开消息全文 / 收起消息」。短消息不画无效按钮,长消息用高度动画和底部渐隐提示剩余内容;每条消息独立展开,只读转录同样可用
- 折叠只裁切视觉高度,不截断或卸载全文,保留文字选择与读屏;图片和文件卡片留在正文下方,不随正文折叠。键盘焦点进入正文文件引用时自动展开,避免焦点落在看不见的裁切区
- 窗口缩放或正文尺寸变化时重新测量,保留手动展开状态;编辑使用全文,取消后重新测量,正文更新后恢复默认折叠。展开时暂停对话贴底,避免刚点开就被自动滚到消息末尾;用户滚回底部后恢复跟随
改动
插件市场分页:每页 12 项,页码与下一页状态贯通 IPC
plugins:marketList新增page,返回值从数组改为PluginMarketPage(items/hasNext/page);主进程校正无效页码为第 1 页,向市场请求pageSize=12,继续携带客户端版本进行兼容性筛选- 页面新增上一页、下一页与当前页读数;加载中禁用翻页,第一页禁用上一页,是否还有下一页以服务端
hasNext为准。点击刷新按当前搜索词从第 1 页重新加载,网络错误仍与空列表分开显示
/init 从项目介绍改为有证据的维护指引
- 内置提示词要求先读已有根级与分目录
AGENTS.md、真实清单与配置,追踪代表性变更路径,再整理架构边界、状态归属、联动更新步骤、验证命令与已有陷阱;不把单个文件的写法或推测提升为全仓规则 - 保留仍准确的规则与原因,区分硬约束、偏好和局部例外,优先引用稳定路径与符号;只修改根级
AGENTS.md,不借初始化改代码、删除局部指引或顺手清理。明确项目文件不能越过上级指令与用户授权,未执行的测试不能写成通过
Office 三件套插件 0.1.0 → 0.1.1:图标与可直接展示的市场文案
ncw.writer/ncw.sheets/ncw.slides新增各自的 PNG 图标,清单名称改为可直接展示的「文字 / 表格 / 演示」,描述不再依赖本地化占位符;表格视图的图标改为table- 三个描述均明确需要先安装文档引擎
ncw.office-runtime,并给出https://github.com/AIDotNet/ncw-office-runtime/releases/latest的对应系统 ZIP 下载地址与「扩展 → 安装插件」入口。本批未把引擎打进编辑器插件,插件 API 仍为 0.3.3
修复
唤回主窗口不会误选专注窗口,重载不丢窗口身份
- 窗口注册表的存活账目保留完整
WindowContext,listWindows(kind)可按身份筛选;主进程与注册表的唤回路径都只选择main,不再因为专注窗口注册得更早而把它当主窗口显示 - 渲染层重载、旧 IPC frame 被忘掉后,重新登记沿用存活窗口的身份,不再把
quick默认为main;握手更新身份时,存活窗口的筛选结果同步更新
窄窗口里的对话框不再按固定宽度溢出视口
- 通用
Dialog在原有宽度之外增加calc(100vw - 20px)上限,包括新工作区切换弹窗在内的固定宽度浮层都受视口约束
测试
- 在 4 个既有回归测试文件中新增 24 项:窗口按身份唤回与重载保留身份;专注窗口冷启动、临时草稿、共享布局不读不写、同项目会话与文件操作、跨项目 / 全局入口限制、SSH 连接失败和精简界面;浏览器跨项目 / 跨会话隔离、自己的页面与
clientTabId合并;消息折叠的全文与附件保留、尺寸重测、贴底暂停及恢复、独立展开、键盘引用和编辑返回 - 全量套件 6761 项通过(29 skipped),零失败;
typecheck(node + web + plugins)与test:release(5 项)通过