历史记录、搜索与清理
已存储历史、对话当前显示的内容和模型压缩后的上下文彼此独立。删除任何内容前,先考虑导航或筛选。
搜索完整历史
- 在对话标题栏打开搜索聊天历史,或使用其配置的快捷键(默认 Ctrl/Cmd+F)。
- 选择整个会话或整个工作区并输入搜索词。
- 若除可读文本外还需要技术内容,请启用包含工具和思考。
- 选择摘要片段,或使用下一页结果继续查看当前页之后的内容。
搜索按字面匹配且不区分大小写,覆盖已存储历史,而非仅已挂载的对话行。工作区范围遵循所打开项目的授权目录树和工作树,而非 OpenCode 服务中的所有项目;其结果按对话分组,每组以对话标题和当前所在的工作树命名。文件/图片附件字节和不透明提供商状态不是可搜索文本。
进度行本页:… 个结果 · 已搜索 … 条消息描述的是此结果页,而非工作区总量。结果分批到达。被跳过的超大或不受支持消息会被报告;没有命中不代表这些消息中不存在匹配。扫描期间到达的新消息需要重新搜索,才能一致地包含进来。
打开空搜索不会扫描历史。更改查询/范围、关闭窗口或离开会话会取消过时搜索。读取失败时使用重试;它不会提交提示词或修改历史。
打开结果并使用时间线
- 选择当前会话搜索结果,跳转到其周围片段。
- 选择其他会话的结果,单独预览该消息;使用在会话中打开可转到该对话中的命中位置。
- 在消息时间线中悬停或聚焦标记查看摘要,再选择它导航:对应内容块会移到顶部,标记保持高亮直到你滚动;之后高亮会跟随对话顶部的内容块。使用首条/最新消息控件返回已存储历史的两端。
即使对话只保留有界片段,时间线仍表示完整会话结构。跳转会加载目标位置,而非获取所有中间消息。其他会话搜索预览不会加载该会话的完整对话或选择它;只有在会话中打开会切换对话。
工具标记遵循消息内容:在其中隐藏的工具类型没有标记(选择无时全部没有),等待权限的工具除外。仅运行了工具的步骤只显示其工具标记,不会出现空的智能体标记。
跳转加载期间,旧片段保持可见。新跳转或手动对话交互会取代过时导航;跳转失败会保留可见片段。请重试目标位置,而非反复重新加载整个项目。阅读历史不会更改输入框的智能体/模型选择。
对话过窄时(小于 420 CSS 像素),时间线会隐藏;此时使用搜索和对话控件。此响应式更改不会清除已保存的可见性偏好。
选择正确的历史操作
| 操作 | 位置 | 范围与后果 |
|---|---|---|
| 显示筛选 | 消息内容或设置 → 聊天 | 共享对话显示偏好;隐藏/折叠内容而不删除 |
| 压缩 | 命令面板压缩会话 | 所选会话的原生摘要/上下文压缩,而非删除技术输出 |
| 单回复清理 | 消息更多操作 → 从此回复中删除工具和推理 | 永久移除符合条件的已完成技术部分;保留最终文本 |
| 会话技术清理 | 命令面板删除会话工具和推理 | 对完整已存储会话历史规划,包括压缩前消息;保留最终文本及消息/会话元数据 |
| 删除会话 | 会话行删除会话,或删除所选会话 | 确认后递归删除原生对话及其后代子会话/历史;无法撤销 |
| 清理会话 | 命令面板 | 更广泛的会话删除,而非显示或上下文大小设置 |
消息内容适用于所有对话。在其顶部或设置 → 聊天中选择预设(无、精简、均衡或全部),再调整各行;之后消息内容的预设菜单会显示自定义。隐藏工具不会禁用工具、更改权限或移除已存储输出。为保持渲染响应,超大消息会在省略间隙显示再显示 … 项,超长文本或工具输出会在已隐藏其余 … 个字符一行处截止,并提供全部显示;剩余内容很多时则提供再显示 … 个字符,可能需要分几步展开。两者的展开都只影响显示,无法恢复已删除内容。
压缩会话
- 选择目标对话。
- 从命令面板运行压缩会话。
- 等待原生压缩结果,或检查压缩失败后再决定是否重试。
压缩会改变 OpenCode 继续会话所用的上下文。它不保证擦除先前存储的消息:完整历史搜索和技术清理仍可访问压缩前内容。不要用压缩代替删除敏感的已存储历史。
移除工具和推理
- 选择单回复操作,或针对所选会话运行删除会话工具和推理。
- 检查计划的工具/推理数量及所有跳过内容警告。
- 确认删除。对于整个会话的操作,查看对话上方进度,必要时使用取消控件。
只移除符合条件的已完成工具和推理。活动/未完成内容不会被裁剪;内容已更改时会拒绝操作,而非静默扩大你确认的范围。最终文本和消息/会话元数据保留,但移除的技术输出无法撤销。确认前请保留所需内容。
会话清理并非对整个会话原子执行。即使后续消息冲突或失败,先前成功移除的内容仍保持移除。取消会停止后续批次;不会回滚已派发批次,该批次仍可能提交。
存储繁忙时,请等待当前执行/存储工作完成。消息已更改时,请重新加载并重新选择。插件不可用时,请重新连接/打开 CodeNomad 并检查错误后重试。回复不确定时,请刷新并评估剩余内容;不要假定什么都没发生,也不要假定整个会话已清理。
删除与清理会话
删除父会话也会删除其后代子会话及其历史。确认前请检查对话族。任务专家清理不同:它会保留有子会话的会话。
- 明确要删除哪个对话时,优先使用具体行的删除会话。
- 更广泛的维护请运行清理会话,并阅读深度清理会话确认内容。
- 仅在允许移除空会话、已完成子智能体会话和未使用分叉时确认。
清理作用于当前项目已知的候选会话,移除范围可能不止空白主会话。这不是归档操作,且无法撤销。不要仅为隐藏繁忙侧栏而使用它。独立的自动清理空会话偏好范围更窄:它会检查会话确实为空,而非将未加载的对话视为空。
删除移除的是对话,而非 Git 提交,也不会回滚文件系统/外部影响。部分清理成功时,已删除会话仍保持删除。重试前请检查剩余列表和错误。分叉/撤销参阅对话;删除临时文件夹或工作树参阅项目。