## 现象 安装 OfficeCLI 之后,Codeg 右侧文件栏会经常把工作区里的全部 Office 模板(`.docx` / `.xlsx` / `.pptx`)自动打开。这些文件并不是当前对话让智能体创建或编辑的,对话里也没有要求预览它们。 实际打开的包括 OfficeCLI 技能自带的样式模板。右侧文件栏面包屑为: `Code > … > warm--playful-organic > Cat-Secret-Life.pptx` 这是 morph-ppt 的风格模板 `codex-forge/bundled-skills/office/skills/morph-ppt/reference/styles/warm--playful-organic/Cat-Secret-Life.pptx`,不是用户文档。该页无法预览,中央显示: - 无法启动实时预览 - `too many office preview servers are already running` - 按钮「重试」 `src-tauri/src/office_watch/mod.rs` 里 `MAX_CONCURRENT_WATCHES = 32`。注释写明这是防止一次打开大量标签时无限制拉起 `officecli watch`。每个自动打开的 Office 标签都会占一个预览进程,已有 32 个还在跑或正在启动时,再打开的标签就返回这条错误。所以右侧一次铺开的模板数量已经顶到预览服务上限。 ## 期望 右侧文件栏只自动打开智能体本次实际创建或编辑的 Office 文件。项目或技能目录里原本就有的模板,不应因为安装了 OfficeCLI,或因为一次无关的文件事件,被整批打开。 ## 环境 - 系统:Windows - OfficeCLI:1.0.160(`%LOCALAPPDATA%\OfficeCLI\officecli.exe`) - 相关设置:设置 → Office 工具 →「自动打开预览」 - 文案:「当智能体创建或编辑 Word、Excel、PowerPoint 文件时,自动打开其实时预览。」 ## 对得上的代码 开关默认是开的。`src/lib/office-preview-prefs.ts` 只有在 localStorage 的 `workspace:office-auto-preview` 显式为 `"false"` 时才关闭,未设置时视为开启。 真正打开标签的是 `src/contexts/workspace-context.tsx` 里始终挂载的 workspace watch(约 2251 行起)。`changed_paths` 里每个可预览的 Office 路径都会走 `openFilePreview`。过滤只排除隐藏路径和 `~$` 所有者文件,没有区分「智能体本次产出」和「仓库里原有的模板」。同一次会话用内存集合去重,重新进入工作区后会再次打开。 因此安装 OfficeCLI 后,这个默认开关一旦生效,只要一批模板同时被报告为变更(安装、技能同步、对话期间的扫描,或外部程序触摸文件),右侧文件栏就会一次铺开全部模板。设置文案写的是「智能体创建或编辑时」,实现比文案宽。模板一多,后面的标签还会因为预览进程达到 32 个上限而停在「无法启动实时预览」。 ## 临时规避 设置 → Office 工具 → 关闭「自动打开预览」。 ## 相关 与 #1090 的表现同类:项目内的 docx/xlsx 模板会在对话期间被自动打开成标签,模型并未读取它们。这里的触发点是安装 OfficeCLI 之后,范围是全部 Office 模板,位置是右侧文件栏。
Activity
fix(office): auto-open only Office files the agent's tools wrote this…
# Release version 0.42.1
Merge upstream/main into fork (2026-11-08) (#20)