首页/新闻资讯/正文详情

OpenChamber 1.2.9 会话自动清理:可配置保留策略、全端同步与长期会话优化

发布时间:2026/9/24 15:35:46 来源:云帆数科 栏目:资讯中心
OpenChamber 1.2.9 会话自动清理:可配置保留策略、全端同步与长期会话优化
AI Agent人工智能代码智能体交互助手【免费下载链接】openchamberAgentic Development Environment based on OpenCode AI agent项目地址https://gitcode.com/gh_mirrors/op/openchamber点击查看免费下载导读OpenChamber 1.2.9 的核心主题是会话生命周期管理为桌面端、Web 与 VS Code 扩展统一引入了可配置保留期的会话自动清理Session Auto-Cleanup让长期使用产生的历史会话不再无限堆积同时新增了从移动端/PWA 设置视图直接检查并更新 Web 包的能力并针对长时间运行的会话做了多项性能优化。阅读完本文你将掌握 OpenChamber 会话保留策略的完整配置项保留天数、归档/删除动作、仅限已归档等、底层候选筛选与保护规则、父子会话的安全删除顺序以及更新检查与长期会话优化的实现路径。一、版本概览1.2.9 改了什么根据 changelog/1.2.9.md该版本2025-12-20围绕会话生命周期做了三件大事模块变更类型内容App桌面端 / WebNew会话自动清理保留期可配置覆盖所有应用版本VS Code 扩展同步支持AppNew可从移动端 / PWA 设置视图更新 Web 包AppNew针对长期会话的多项性能优化VS CodeImprovements带可配置保留期的会话自动清理长期会话优化下文逐一深入先剖析自动清理的底层实现与配置模型再看它在各端的接入方式与相关优化。二、会话自动清理从定时触发到安全删除2.1 整体工作流自动清理并非简单的到点就删而是一条有保护、有节流、可重入的流水线。从源码结构看核心链路分为四层触发层useSessionAutoCleanupHookhooks/useSessionAutoCleanup.ts挂载在应用根部负责按周期自动触发清理策略层buildSessionRetentionCandidatessync/session-retention.ts从全部会话中筛出符合删除/归档条件的候选列表执行层runSessionRetentionCleanupsync/session-retention.ts逐个执行archiveSession/deleteSession并处理失败与中断善后层cleanupPersistedSessionStatesync/session-deletion-cleanup.ts清除被删会话遗留的本地状态草稿、队列、置顶等。2.2 自动触发与节流Cooldown自动触发入口在 hooks/useSessionAutoCleanup.ts仅在autoDeleteEnabled开启、autoDeleteAfterDays 0、会话列表加载完成status ready且没有其他清理正在运行时才会执行执行频率受冷却期约束RETENTION_INTERVAL_MS DAY_MS24 小时即默认每 24 小时最多跑一次见 session-retention.ts。若上次运行时间距今不足一天则返回skippedReason: cooldown运行期间通过全局useSessionRetentionRunStore加锁isRunning避免应用内多个挂载点应用自动运行器 每个设置面板同时清理产生竞争。2.3 候选筛选哪些会话会被处理buildSessionRetentionCandidates的筛选逻辑如下session-retention.ts时间基线默认取session.time.updated ?? session.time.created若开启仅已归档模式则取session.time.archived。超过cutoffDays保留天数阈值即视为过期永久保护的会话以下条件命中任意一个即受保护绝不进入候选当前正在使用的会话session.id currentSessionId正在运行的会话activeSessionIds命中即global-session-status追踪的活跃会话被标记为共享的会话session.share通过 BTWby-the-way元数据关联的会话getBtwSessionID(session)见 lib/sessionBtwMetadata.ts最近 5 个会话RETENTION_KEEP_RECENT 5常量保证即使全部会话都很旧最近使用的 5 个也始终保留尚未超过截止时间戳的会话。级联保护当动作为delete或仅归档模式时被保留会话的所有祖先会话也会一并加入保护集防止 OpenCode 的删除整棵子树语义误删父会话session-retention.ts。2.4 执行顺序子会话优先杜绝级联失败OpenCode 中会话存在父子层级parentID删除父会话会级联删除整个子树。因此runSessionRetentionCleanup对候选列表做了孩子优先children first排序session-retention.ts先删除叶子会话再删除父会话只有全部子会话成功删除后父会话才进入删除队列。执行时session-retention.ts还会实时复查若发现某候选父会话仍有未删除的子会话可能是删除失败、运行中途变为受保护、或运行中新建的则跳过该父会话并记录为失败避免用父会话的级联删除绕过子会话的失败。2.5 运行时安全与中断保护清理是异步长任务期间用户可能切换 runtime桌面/Web/VS Code 等。代码通过subscribeRuntimeEndpointWillChange订阅运行时切换事件每次执行前用isCurrentRuntime()校验一旦运行时切换则立即中止剩余候选并返回skippedReason: runtime-changed且不会污染新运行时的autoDeleteLastRunAt时间戳session-retention.ts。2.6 删除后的本地状态善后与以往直接删除不同cleanupPersistedSessionStatesync/session-deletion-cleanup.ts会连带清理与该会话绑定的全部本地持久化数据消息队列useMessageQueueStore服务端持有的队列执行forgetQueue本地投影执行clearQueue待办事项useTodosPersistStore.clearSessionTodos会话文件夹归类useSessionFoldersStore.removeSessionEverywhere多选状态useSessionMultiSelectStore内联评论草稿useInlineCommentDraftStore.clearSessionDrafts会话置顶状态useSessionPinnedStore输入历史useInputHistoryStore.clearSession聊天草稿clearChatDraft。此外components/session/sidebar/list/useAuthoritativeSessionCleanup.ts 还提供权威清理以服务端全局会话列表为准绳一旦检测到某会话从权威列表消失无论经由何种方式删除就自动调用cleanupPersistedSessionState清理其残留本地状态形成兜底。三、配置模型保留期、动作与范围3.1 配置项总表所有配置集中在 UI 状态仓库 stores/useUIStore.ts默认值与解析规则如下配置项默认值说明解析规则lib/settings/registry.tsautoDeleteEnabledfalse是否启用自动清理默认关闭需手动开启布尔解析autoDeleteAfterDays30会话保留天数超过即过期parseIntegerInRange(1, 365)合法范围 1365 天sessionRetentionActionarchive过期会话的处置动作archive归档或delete删除parseOneOf([archive, delete])sessionRetentionOnlyArchivedfalse仅对已归档会话执行清理此时动作强制为delete布尔解析autoDeleteLastRunAtnull上次自动清理时间戳用于 24 小时冷却判断内部记录三处实现细节值得注意默认归档而非删除默认动作是archive即把过期会话归档而非物理删除更安全只有显式选择delete或开启仅已归档时才真正删除仅已归档强制删除设置sessionRetentionOnlyArchived时动作被强制为deleteuseUIStore.ts因为已归档会话的清理语义就是物理清除且切换该选项时会先应用 scope再恢复用户原来的归档/删除选择全局持久化这些值通过persist持久化useUIStore.ts重启后保留且可被设置注册表读取、跨运行时同步。3.2 设置界面与搜索在设置面板中通过 lib/settings/search.ts 注册的sessions.auto-cleanup条目即可搜索到相关设置项对应 UI 文案在 lib/i18n/messages/en.settings.ts 中定义为settings.openchamber.sessionRetention.field.enableAutoCleanupEnable Auto-Cleanup并已翻译到德、法、西、日、韩、葡、土、乌克兰、简体中文等全部语言包说明这是一套完整的用户可见配置入口。3.3 手动触发除了自动运行useSessionAutoCleanup还会返回runCleanup与当前候选列表candidateshooks/useSessionAutoCleanup.ts设置面板可据此提供立即清理按钮并可通过force: true绕过冷却期强制执行session-retention.ts。跳过原因disabled/loading/cooldown/no-candidates/running/runtime-changed会被明确返回便于 UI 呈现。四、VS Code 扩展中的会话自动清理1.2.9 将同一套保留策略带入了 VS Code 扩展扩展的 settings-registry.json 注册了sessionRetentionOnlyArchived与sessionRetentionAction两个设置项作用域均为instance并与其宿主端配置保持同一语义由于 UI 层配置通过scope: instance生效VS Code 扩展与桌面/Web 共享一致的保留配置来源用户在扩展内配置的保留规则与主应用行为对齐settings-registry-gate.test.ts 等测试保证了注册表与运行时读取的一致性删除后的状态善后同样覆盖 VS Code如 sync/session-deletion-cleanup.ts 注释所示VS Code 拥有自己的消息队列此时执行clearQueue清除本地投影。五、从移动端 / PWA 设置视图更新 Web 包1.2.9 的第二个新能力是移动端 / PWA 的设置视图可以直接检查并应用 Web 包更新。实现位于 stores/useUpdateStore.tscheckForUpdates先通过detectRuntimeType识别当前运行时desktop/web/vscode/mobile分别由isCapacitorApp、isElectronShell、isVSCodeRuntime、isWebRuntime判定随后调用checkForWebUpdates(runtime, version)向后端接口/api/openchamber/update-check发起低优先级priority: low后台请求——注释明确说明这样做的目的是启动时不为交互流量占用 socketuseUpdateStore.ts接口返回available、version、body、downloadUrl、updateCommand、nextSuggestedCheckInSec等字段其中nextSuggestedCheckInSec用于指导客户端下次检查时机避免频繁轮询VS Code 运行时通过window.__VSCODE_CONFIG__.extensionVersion上报扩展版本号参与比对桌面端会并行执行桌面更新检查checkForDesktopUpdates与 Web 更新检查checkForWebUpdates(desktop, appVersion)两者互不阻塞Promise.allSettled保证一个入口覆盖多种更新来源。配合移动端 App 的更新提示 UI如 apps/MobileSessionsSheet.tsx 中待处理 Web 更新的状态呈现、apps/MobileApp.tsx 中的挂起更新指示用户无需离开 PWA 即可完成 Web 包升级。六、长期会话Long Sessions性能优化针对长时间运行的会话1.2.9 做了多项配套优化从源码看主要包括分离式 Markdown DOM 缓存上限detachedMarkdownDomCachecomponents/chat/markdown/detachedMarkdownDomCache.ts对长期会话渲染产生的大 DOM 缓存设置了maxSessions: 8的上限超出即淘汰最旧缓存防止内存随会话时间线性膨胀工作状态置顶优化WorkStatusPinnedSection的注释指出置顶消息在长会话中最有价值——而长会话恰恰是最需要控制渲染量的时候components/chat/work-status/WorkStatusPinnedSection.tsx从交互设计上限制长会话中置顶内容的渲染成本会话消息上限UI 状态仓库中保留messageLimit: 200stores/useUIStore.ts等阈值配合清理机制共同约束超长会话的资源占用。这些优化与自动清理相辅相成清理机制控制会话数量缓存上限与渲染优化控制单会话体积。七、测试与可靠性验证该功能具备完整的测试覆盖核心用例集中在 sync/session-retention.test.ts分为三组retention eligibility验证候选筛选的资格判定保护规则、时间戳、最近保留数retention execution验证实际归档/删除执行、失败处理、运行时切换中断与冷却逻辑archived-only retention验证仅已归档模式下动作强制为删除的行为。配套的 sync/session-deletion-cleanup.test.ts 与 components/session/sidebar/list/useAuthoritativeSessionCleanup.test.ts 则分别覆盖本地状态善后与权威清理兜底共同保证删得干净、删得安全。八、小结OpenChamber 1.2.9 以会话生命周期治理为主线交出了一套完整方案自动清理24 小时冷却节流 最近 5 个/当前会话/活跃会话/共享会话多重保护 子会话优先的安全删除顺序 运行时切换中断保护可配置保留autoDeleteAfterDays1365 天、sessionRetentionActionarchive/delete、sessionRetentionOnlyArchived三个核心开关默认 30 天 归档桌面/Web/VS Code 全端一致连带善后删除会话同步清理消息队列、待办、文件夹、草稿、输入历史等本地状态更新与优化PWA/移动端设置视图可检查并应用 Web 包更新长期会话的 DOM 缓存与渲染得到针对性优化。对长期重度使用 OpenChamber 的开发者建议在设置中显式开启Enable Auto-Cleanup按需调整保留天数与处置动作即可在历史可回溯与存储可控之间找到平衡。赞分享AI Agent人工智能代码智能体交互助手【免费下载链接】openchamberAgentic Development Environment based on OpenCode AI agent项目地址https://gitcode.com/gh_mirrors/op/openchamber点击查看免费下载相关推荐PhpRedis会话过期策略TTL设置与自动清理完全指南PhpRedis会话过期策略TTL设置与自动清理完全指南 PhpRedis作为PHP与Redis之间的高效连接桥梁其会话管理功能在Web开发中至关重要。本文后端Gemini CLI 会话管理实战会话自动保存、恢复、检查点与保留策略深度解析Gemini CLI 会话管理实战会话自动保存、恢复、检查点与保留策略深度解析 Gemini CLI 的会话管理Session Management负责把人工智能AI Agent交互助手CLIMCP Clientsgo2rtc密钥轮换长期会话安全策略go2rtc密钥轮换长期会话安全策略 引言为何长期会话需要密钥轮换 你是否遇到过摄像头流在长时间运行后突然中断或者担心攻击者可能截获并解密你的实时视频流音视频后端上一篇RapidJSON 编码体系详解Unicode 支持、编码验证与 UTF-8/16/32 转码下一篇ant-design Upload 组件 defaultFileList 详解回显已上传文件并支持二次编辑创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Redwood Cells 完全指南:用声明式约定接管 GraphQL 数据获取与生命周期
Redwood Cells 完全指南:用声明式约定接管 GraphQL 数据获取与生命周期

后端前端Web框架开发工具 【免费下载链接】redwood RedwoodGraphQL 项目地址: https://gitcode.com/gh_mirrors/re/redwood 点击查看 免费下载 导读 Cells 是 Redwood 最具标志性的数据获取抽象:它用一套命名导出约定(QUERY、Loading、Empt… · 2026/9/24 15:35:46

深度学习图像分类————食物分类(理论与实战记录)
深度学习图像分类————食物分类(理论与实战记录)

理论部分分类任务前提——卷积神经网络(CNN)卷积神经网络是什么?核心原理:模拟人脑的视觉机制CNN 的设计灵感直接来自于人类大脑的视觉皮层。科学家发现,人脑在识别图像时,并不是一眼就看清所有像素&#x… · 2026/9/24 15:35:39

gyp-next 元构建系统指南:用一份 .gyp 描述生成 Xcode / Visual Studio / Ninja / Makefile 多平台构建
gyp-next 元构建系统指南:用一份 .gyp 描述生成 Xcode / Visual Studio / Ninja / Makefile 多平台构建

CLI构建工具开发工具 【免费下载链接】node-gyp Node.js native addon build tool 项目地址: https://gitcode.com/gh_mirrors/no/node-gyp 点击查看 免费下载 GYP(Generate Your Projects)是一个 Meta-Build system(元构建系统&… · 2026/9/24 15:35:39

BlockNote 开发者指南:从零搭建、目录架构到发布流程的完整实战手册
BlockNote 开发者指南:从零搭建、目录架构到发布流程的完整实战手册

前端富文本UI组件AI 应用 【免费下载链接】BlockNote A React Rich Text Editor thats block-based (Notion style) and extensible. Built on top of Prosemirror and Tiptap. 项目地址: https://gitcode.com/gh_mirrors/bl/BlockNote 点击查看 免费下载 本指南以… · 2026/9/24 16:03:27

tchMaterial-parser 使用教程:3 步把智慧教育平台电子课本存为本地 PDF
tchMaterial-parser 使用教程:3 步把智慧教育平台电子课本存为本地 PDF

tchMaterial-parser 使用教程:3 步把智慧教育平台电子课本存为本地 PDF 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内… · 2026/9/24 16:03:20

Skia 官方文档构建指南:使用 Doxygen 从源码生成 2D 图形库 API 文档
Skia 官方文档构建指南:使用 Doxygen 从源码生成 2D 图形库 API 文档

图形学 【免费下载链接】skia Skia is a complete 2D graphic library for drawing Text, Geometries, and Images. See documentation for contribution instructions. 项目地址: https://gitcode.com/gh_mirrors/ski/skia 点击查看 免费下载 本篇指南围绕 Skia 仓… · 2026/9/24 16:03:20

Flet ScrollDirection 详解:从滚动方向枚举到 OnScrollEvent 实战
Flet ScrollDirection 详解:从滚动方向枚举到 OnScrollEvent 实战

前端跨平台桌面应用移动开发 【免费下载链接】flet Build realtime web, mobile and desktop apps in Python only. No frontend experience required. 项目地址: https://gitcode.com/gh_mirrors/fl/flet 点击查看 免费下载 ScrollDirection 是 Flet 中描述用户主… · 2026/9/24 16:03:20

拓氪科技,用全域广告资源助力国内品牌扬帆出海
拓氪科技,用全域广告资源助力国内品牌扬帆出海

在全球化数字营销高速发展的当下,越来越多国内企业开启海外市场布局,海外推广成为品牌出海、订单增量、全球化品牌塑造的核心抓手。当下海外推广行业服务商数量繁多,但普遍存在资源零散、报价不透明、投放精准度低、落地案例同质化、售后运维… · 2026/9/24 16:03:08

应用案例 | 船舶海洋:基于MBSE 的船舶系统电磁兼容性设计专用软件开发
应用案例 | 船舶海洋:基于MBSE 的船舶系统电磁兼容性设计专用软件开发

一、项目背景随着船舶系统复杂度的不断提升,舰载电子设备的数量持续增加,系统间的电磁耦合关系也日益变得复杂,传统的基于文档的电磁兼容性设计方式已暴露出流程衔接性差、协同作业效率低、知识复用度不足等问题。以基于模型的系统工程&#… · 2026/9/24 16:03:02

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码