人工智能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),仅供参考