Kun v0.3.5 版本深度解析:全局命令面板、长会话数据安全与 Windows 兼容性全面加固
人工智能AI Agent自主智能体桌面应用MCP Clients【免费下载链接】KunLocal-first AI agent workspace for coding, writing, design, research, and automation — one runtime for desktop GUI and TUI.项目地址https://gitcode.com/gh_mirrors/de/Kun点击查看免费下载Kun v0.3.5 是一次以「数据安全 平台兼容」为主线同时带来全新 GUI 交互能力的发布版本它加入了全局命令面板CtrlK/CommandK修复了长会话 JSONL 压缩与追加写入的竞争、进程 PID 复用导致的陈旧锁误判、Hybrid Thread Store 的 SQLite 计数缺失以及 Windows 下 POSIX 权限语义、自动更新快捷方式丢失等一系列问题。读完本篇你将掌握命令面板的快捷键绑定与深搜机制、长会话events.jsonl/messages.jsonl压缩的底层防护逻辑以及升级 v0.3.5 的正确姿势与注意事项。一、版本总览v0.3.5 相对 v0.3.4 的主要变更引自 release/release-v0.3.5.md主题关联变更核心收益全局命令面板#1181CtrlK快速导航到设置、模型、会话、项目、扩展Provider 中转站多语言#1197本地网关页面跟随应用语言消除中英混杂长会话持久化与压缩#1185压缩与追加写入协调杜绝旧快照覆盖新记录Runtime 锁与 PID 复用#1186记录进程启动身份杜绝陈旧锁误判大量会话列表性能#1187补齐 SQLiteindexCount避免退回全量 JSONL 扫描Windows 文件权限兼容#1188不再因 Windows 不支持 POSIXchmod语义而失败Windows 自动更新快捷方式—更新后按配置重建桌面快捷方式Git / worktree 选择窗口#1189弹窗渲染到页面顶层不再被滚动容器裁剪本次升级不需要迁移或删除会话、设置、工作区和 Provider 配置建议 v0.3.4 用户直接升级。二、全局命令面板一个快捷键直达所有入口#11812.1 使用方式在 Workbench 中按下CtrlKmacOS 为CommandK即可快速搜索并打开设置、模型、会话、项目和扩展等常用入口。相比早期版本中会话搜索只覆盖单一侧边栏分区、且只匹配标题与预览文本命令面板把 GUI 的所有可达目的地聚合到了一个统一的键盘面上。安全边界同样明确命令面板只提供导航和安全操作不会直接执行删除等破坏性动作。2.2 快捷键如何注册命令面板的默认快捷键定义在共享快捷键注册表 src/shared/keyboard-shortcuts.ts 中// Registered last on purpose: findKeyboardShortcutCommand resolves the // first command whose bindings match, so any command a user has bound to // the palettes chord keeps its own behavior. { id: command-palette, labelKey: shortcutCommandPalette, descriptionKey: shortcutCommandPaletteDesc, defaultBindings: [CtrlK], platformDefaultBindings: { darwin: [MetaK] } }从源码注释可以看到一个精细的设计command-palette被刻意注册在注册表末尾因为findKeyboardShortcutCommand按「首匹配」解析快捷键——如果你把自己的CtrlK分给了别的命令那个命令仍会优先生效命令面板不会抢占用户自定义的绑定。用户也可以在设置中的快捷键部分重绑该组合键。2.3 会话深搜时间预算与无锁读取命令面板最有价值的能力之一是搜索历史会话中的用户与助手正文而不仅是标题。其设计文档位于 openspec/changes/add-gui-command-palette/proposal.md其中给出了几条关键的实现约束均可在当前仓库源码中得到印证新增一个本地路由GET /v1/threads/content-search跨全部项目扫描每条匹配都会标注其所属项目扫描的会话数、匹配数和墙钟时间都有硬性边界。路由实现见 kun/src/server/routes/thread-content-search.ts其中通过setTimeout设定了搜索截止时间deadline超时会安全返回已有结果而不是让一次慢查询持续占用 Runtime——这与发布说明中「深层文件扫描有严格的时间预算」的表述一致。无锁文本检索能力searchItemText面板的一个键入事件不会去拿会话线程的写队列也不会像加载条目那样触发历史压缩。文件会话库的实现见 kun/src/adapters/file/file-session-text-search.ts 及其测试 kun/src/adapters/file/file-session-store.search.test.ts。不支持该能力的存储实现会直接报告「无匹配」而不是退回重路径。结果采用纯函数确定性排序exact → prefix → word-boundary → subsequence再按来源优先级与工作区近期度打破平局使排序结果可以在测试中断言。扩展来源的条目保持 fail-closed只渲染有界的、由 Host 拥有的 manifest 展示元数据绝不执行扩展代码来填充一行。激活结果时面板仅复用既有的 store action 与桌面命令不新增 preload IPC 或 HTTP/SSE 表面。三、Provider 中转站页面多语言#1197Settings Providers Advanced local gateway本地网关高级设置页面此前会出现「顶部为英文、内容为中文」的混合界面v0.3.5 修复了这一问题使该页面完整跟随应用语言。网关 API、模型与目标、容错策略、验证监控、网络代理等分组文案已覆盖 Kun 支持的全部语言。英文语言包中的页面标题定义可见 src/renderer/src/locales/en/settings/navigation-providers.jsonmodelProviderModeRoutes: Advanced local gateway其余语言包中对应键的翻译即为本地化来源。四、长会话持久化与压缩#1185这是 v0.3.5 中数据安全性修复最重的一节。Kun 的会话以events.jsonl与messages.jsonl追加式存储后台压缩compaction会周期性重写这些文件以控制体积重写若与「正在追加的新记录」发生竞争就可能用旧快照覆盖新数据。v0.3.5 从四个层面消除了这个窗口。4.1 压缩与追加写入的协调发布说明指出「压缩期间只要文件发生变化就会丢弃旧快照并重新调度不会用过期结果覆盖新记录」。从源码结构看这套机制由两个模块协作完成修订号跟踪器kun/src/adapters/file/file-session-revision-cache.ts一个有界 LRU 修订号缓存用于检测并发 JSONL 替换。文件每被追加/替换一次修订号递增压缩任务提交替换前会核对起始修订号与当前修订号是否一致不一致即判定「文件在压缩期间发生了变化」丢弃本次结果并重新调度。压缩调度器kun/src/adapters/file/session-compaction-scheduler.ts对每个(kind, threadId)去抖合并调度请求默认 2 秒延迟多个schedule()调用在窗口内坍缩为一次执行所有物理重写被挂在一条串行尾链serialTail上避免多个超大遗留会话同时重写打满磁盘。发布说明提到的「显式刷新压缩任务后可以可靠读到最终结果」对应的就是调度器的flush()方法——它会循环排空直到没有匹配的定时任务与在途运行而不是取一次可能漏掉重试的快照。4.2 Windows 原子替换的受控重试原子写的核心是「先写临时文件、再rename覆盖」但 Windows 上rename经常因文件句柄未完全释放而抛出EPERM/EBUSY。kun/src/adapters/file/atomic-write.ts 对此做了受控重试const RETRYABLE_RENAME_ERROR_CODES new Set([EPERM, EACCES, EBUSY])renameFileWithRetry仅对上述可重试错误码进行有限次重试同时 v0.3.5 明确禁止压缩失败后直接覆盖正在使用的历史文件。4.3 损坏判定的精确化与临时文件时序修复末尾无换行段的处理无换行的最后一段只按「可能仍在写入」处理不视为损坏而文件中间出现的真实损坏仍会明确报错不会被静默忽略。临时文件提前删除的时序修复修复了异步替换尚未完成就删除临时文件*.tmp的问题。压缩产物路径的形态可参考 kun/src/adapters/file/file-session-jsonl.ts 中${path}.${process.pid}.${Date.now()}.${uuid}.tmp的命名重命名提交与临时文件清理现在被严格排序。4.4 给用户的实操建议发布文档给出的升级注意事项值得直接遵循不要为了处理压缩错误手工删除events.jsonl或messages.jsonl。升级后让 Kun 自动重试如果仍有报错请保留原文件和同一时间的日志用于排查。五、Runtime 锁与 PID 复用#11865.1 问题背景Runtime owner、写入声明和迁移锁传统上以 PID 标识持有者。但 Windows 和 Unix 都会在进程退出后复用旧 PID——一个完全无关的新进程可能恰好拿到锁记录里那个 PID导致系统误判锁仍被「持有者」握有进而永久阻塞或误抢占。5.2 解法记录进程启动身份v0.3.5 起锁在 PID 之外额外记录进程的启动身份。实现见 kun/src/server/runtime-process-identity.ts各平台的取证方式Windows通过 PowerShell 查询Win32_Process的CreationDate生成win32-v1:ISO 时间身份见 inspectWindowsProcessLinux读取/proc/pid/stat的启动 tick 数结合/proc/sys/kernel/random/boot_id生成linux-v1:boot_id:start_ticks身份见 inspectProcProcessboot_id 保证跨重启可区分。所有外部命令探测都有 3 秒超时与 16 KiB 输出上限boundedExec不会因为一个卡死的查询拖住主流程。5.3 兼容性与安全失败旧格式锁继续兼容可取得锁持有进程启动时间时会核对锁记录与进程的先后关系锁记录的启动时间早于「当前 PID 对应进程」的启动时间才算合法持有无法可靠检查时保持安全失败fail closed不会冒险抢占一个可能仍然存活的写入者。这与processExists的实现一致——kill(pid, 0)返回任何非ESRCH错误包括EPERM都视为「进程可能存在」见 runtime-process-identity.ts。锁文件格式版本保持兼容不需要迁移现有会话或数据目录升级即生效。相关行为有专项测试覆盖kun/src/server/runtime-process-identity.test.ts。六、大量会话时的列表性能#1187Kun 的 Hybrid Thread Store 以 SQLite 作为会话索引、JSONL 作为权威数据源。此前分页列表路径缺少 SQLite 侧的计数调用导致正常分页也会因缺少总数而抛错最终退回到全量 JSONL 目录扫描——会话越多越慢还会产生误导性的索引重建日志。v0.3.5 补齐了indexCount调用。从源码结构看kun/src/adapters/hybrid/hybrid-thread-list-page.ts 中HybridThreadListPageSource接口声明了indexCount(options): number | undefined分页入口hybridThreadStoreListPage仅在「数据库可用 索引就绪 无脏索引线程」时才走 SQLite keyset 分页否则回落到文件系统枚举。补齐计数后大量历史会话用户的日常分页不再触发重复的全量扫描。需要强调的是会话内容和索引格式本身没有任何变化这是一次纯内部修复。七、Windows 文件权限兼容#1188Windows 文件系统不支持 POSIXchmod权限位语义对文件强制chmod可能抛出EPERM。v0.3.5 之前附件、记忆、产物、子代理、后台 Shell 输出、请求追踪、浏览器审计、导入和 Runtime 数据迁移等路径上的权限加固步骤会因此整体失败。修复策略是按平台分支Windows 上跳过 POSIX 权限加固该语义本身不适用macOS 与 Linux 继续执行原有加固并保留真实权限错误报告不会为了兼容 Windows 而降低其他平台的安全检查。仓库中同类模式的示例可见 kun/src/cli/self-update.tsif (platform ! win32) await chmod(temporary, 0o755)八、Windows 自动更新桌面快捷方式此前 Windows 自动更新在清理旧安装范围或旧目录时会顺带删除桌面快捷方式而新安装因运行在--updated模式下会跳过快捷方式重建导致用户更新后桌面图标消失。v0.3.5 的修复新版本在安装内容验证成功后按当前安装设置重新创建桌面快捷方式并且继续遵守「不创建桌面快捷方式」的安装参数与 Windows 应用标识AppUserModelId语义。对于快捷方式已经丢失的现有用户可先从开始菜单启动 Kun 或重新运行安装包在升级到 v0.3.5 的过程中安装器会按配置重建快捷方式。九、Git / worktree 选择窗口#1189分支与 worktree 选择窗口此前渲染在聊天初始界面的滚动容器内部会被容器裁剪导致显示不全。v0.3.5 将其改为通过 React Portal 渲染到页面顶层——源码中可直接看到createPortal的引入见 src/renderer/src/components/chat/GitBranchPicker.tsx第 2 行导入、组件内以 Portal 挂载。配套行为保持不变弹窗根据上下可用空间自动定位并限制在当前视口内窗口缩放、内部滚动、外部点击与Escape关闭行为均正常。十、影响与升级指南升级建议v0.3.4 用户直接升级到 v0.3.5 即可不需要迁移或删除任何会话、设置、工作区或 Provider 配置锁文件格式版本保持兼容见第五节。压缩报错处理不要手工删除events.jsonl或messages.jsonl让 Kun 升级后自动重试持续报错时保留原文件与同期日志。Windows 快捷方式已丢失的用户按第八节操作升级过程会自动重建。完整 diff发布文档 release/release-v0.3.5.md 末尾附有官方 compare 链接可对照查看全部提交。十一、延伸阅读命令面板设计提案openspec/changes/add-gui-command-palette/proposal.md、openspec/changes/add-gui-command-palette/design.md快捷键注册表src/shared/keyboard-shortcuts.ts会话内容深搜路由kun/src/server/routes/thread-content-search.ts 与测试 kun/src/server/routes/thread-content-search.test.ts压缩调度与原子写kun/src/adapters/file/session-compaction-scheduler.ts、kun/src/adapters/file/atomic-write.ts、kun/src/adapters/file/file-session-revision-cache.ts进程身份识别kun/src/server/runtime-process-identity.tsHybrid 分页kun/src/adapters/hybrid/hybrid-thread-list-page.ts、kun/src/adapters/hybrid/hybrid-thread-store.ts相邻版本发布说明release/release-v0.3.4.md、release/release-v0.3.6.md赞分享人工智能AI Agent自主智能体桌面应用MCP Clients【免费下载链接】KunLocal-first AI agent workspace for coding, writing, design, research, and automation — one runtime for desktop GUI and TUI.项目地址https://gitcode.com/gh_mirrors/de/Kun点击查看免费下载相关推荐Kun 全局命令面板Command Palette实现剖析从快捷键注册到会话内容深度搜索Kun 全局命令面板Command Palette实现剖析从快捷键注册到会话内容深度搜索 Kun 的桌面 GUI 承载了大量目的地——聊天、Write、D人工智能AI Agent自主智能体桌面应用MCP ClientsKun 全局命令面板Command Palette深度解析从快捷键注册到会话内容检索的完整实现指南Kun 全局命令面板Command Palette深度解析从快捷键注册到会话内容检索的完整实现指南 本篇技术指南以 Kun 开源仓库中 add gui c人工智能AI Agent自主智能体桌面应用MCP Clients如何免费导出微信聊天记录本地完整备份三格式操作指南如何免费导出微信聊天记录本地完整备份三格式操作指南 一个活跃的微信用户一年大约产生 3 万条消息这些数据目前只存在一部手机的数据库里。设备迁移、清理操作都上一篇Ant引擎社区贡献如何参与开源项目开发下一篇Actual-Server未处理异常错误捕获与日志记录机制创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

STM32 | ADC数字滤波算法实现与代码案例

STM32 | ADC数字滤波算法实现与代码案例

uint16_t ADC_IN_1(void) //ADC采集程序 {HAL_ADC_Start(&hadc1);//开始ADC采集HAL_ADC_PollForConversion(&hadc1,500);//等待采集结束if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC))//读取ADC完成标志位{return HAL_ADC_GetValue(&ha…

2026/10/12 3:06:46 阅读更多 →
C-SAM超声扫描失效分析避坑指南:从样品制备到图像判读的实战经验

C-SAM超声扫描失效分析避坑指南:从样品制备到图像判读的实战经验

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 3:06:46 阅读更多 →
企业IT架构转型之道:从演进式重构到落地实操的完整框架

企业IT架构转型之道:从演进式重构到落地实操的完整框架

最近好几个朋友,几乎是同一时间跑过来找我聊同一件事:公司业务越跑越快,可IT系统越来越吃力,一个新功能排期动不动就两周起,数据库扩容像挤牙膏,接口改一个字段要牵动五六个系统,领导还天天问数…

2026/10/12 3:06:46 阅读更多 →

最新新闻

WinForms Chart 时间轴实战:DateTime 转 OADate 与滚动条控制

WinForms Chart 时间轴实战:DateTime 转 OADate 与滚动条控制

简介:这份资源围绕VS自带Chart控件展开,面向需要在WinForms项目中实现时间轴图表的.NET开发者,重点解决x轴按时间刻度显示并配合滚动条浏览长时数据的问题。示例采用从Excel读取数据的方式,x轴时间格式为MM-dd HH:mm:ss:fff&#…

2026/10/12 4:02:25 阅读更多 →
Java微信退款接口实战:从签名、证书到异步回调与对账的完整链路

Java微信退款接口实战:从签名、证书到异步回调与对账的完整链路

简介:这是一份面向Java后端开发者的微信退款接口实现示例资源,聚焦商户在用户发起退款时通过API与微信服务器完成安全交互的完整流程。内容围绕Java网络编程、HTTPS安全通信、PKCS12证书管理、RSA2048数字签名与JSON数据处理展开,适合需要对接…

2026/10/12 4:02:25 阅读更多 →
iOS PDF电子签章实战:PDFKit绘制、坐标系与防篡改校验

iOS PDF电子签章实战:PDFKit绘制、坐标系与防篡改校验

简介:面向iOS开发者的PDF电子签章库,原生渲染与加载,体积控制得较小,适用于合同签署、贷款协议、单据确认等需要电子签章的移动场景,适合有一定Objective-C/iOS原生开发基础的工程师。资源共7个文件,压缩包…

2026/10/12 4:02:25 阅读更多 →
Linux实战100例:故障域分层与高危操作避坑指南

Linux实战100例:故障域分层与高危操作避坑指南

简介:本资源是面向Linux初学者与中级运维人员的实战型学习包,聚焦命令行操作、系统配置与常见故障排查,通过100个经典实例覆盖网络调用、Apache服务配置、错误代码解析等核心场景,帮助读者在真实环境中理解原理、积累排错经验。压…

2026/10/12 4:02:25 阅读更多 →
GLM-4源码包实战:从推理到LoRA微调与部署全流程

GLM-4源码包实战:从推理到LoRA微调与部署全流程

简介:GLM-4代码仓库完整源码包,面向大模型开发者、算法工程师及对本地部署感兴趣的技术爱好者,提供智谱AI第四代GLM系列模型的参考实现与基础使用框架。压缩包内共78个文件,包含Python脚本、YAML部署配置、JSON数据、Markdown说明…

2026/10/12 4:02:25 阅读更多 →
分红时代已死,资本证明时代崛起

分红时代已死,资本证明时代崛起

《分红时代已死,资本证明时代崛起》——下一轮能源周期,市场奖励的不是“投得更多”,而是“证明每一笔钱为何值得花”过去五年,能源公司靠不花钱赢得投资者;未来五年,要靠会花钱。投下去的是资本&#xff0…

2026/10/12 4:01:25 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →