From a9ec32ad312f76ba94daa7e269d6f74da1328dd8 Mon Sep 17 00:00:00 2001 From: digua Date: Fri, 4 Sep 2026 16:26:12 +0800 Subject: [PATCH] feat(changelog): add contributor attribution --- changelogs/cn.json | 230 ++++++++++++++++++++----- changelogs/cn.md | 86 ++++----- changelogs/en.json | 228 +++++++++++++++++++----- changelogs/en.md | 86 ++++----- changelogs/ja.json | 228 +++++++++++++++++++----- changelogs/ja.md | 86 ++++----- changelogs/tw.json | 230 ++++++++++++++++++++----- changelogs/tw.md | 86 ++++----- scripts/changelog-to-markdown.mjs | 30 ++-- src/components/home/ChangelogModal.vue | 24 ++- src/components/home/changelogData.ts | 21 ++- 11 files changed, 979 insertions(+), 356 deletions(-) diff --git a/changelogs/cn.json b/changelogs/cn.json index 2d706642..f2579076 100644 --- a/changelogs/cn.json +++ b/changelogs/cn.json @@ -11,19 +11,37 @@ "新增长期记忆,支持管理偏好、关于我、联系人和群聊记忆,并按问题自动调用相关内容", "长期记忆支持关联来源消息,AI 形成的结论可返回原对话核验", "统一全局与单会话 AI 的对话列表、输入框和 @ 选择交互", - "聊天记录查看器支持拖拽调整宽度并记住布局", + { + "text": "聊天记录查看器支持拖拽调整宽度并记住布局", + "contributors": ["KokerZhou"] + }, "分析页将 SQL 实验室和调试工具统一收纳到“更多”", - "【CLI】支持通过 Unix Domain Socket 启动 Web 服务" + { + "text": "【CLI】支持通过 Unix Domain Socket 启动 Web 服务", + "contributors": ["KokerZhou"] + } ] }, { "type": "fix", "items": [ "修复 WeFlow 与缺少稳定消息 ID 的聊天记录在增量导入、合并时可能过度去重的问题,避免真实消息丢失", - "修复 AI 回复失败后错误状态、会话列表和后续提问可能异常的问题", - "修复 AI 对话保存和编辑时可能留下不完整轮次的问题,并仅允许编辑最新一轮提问", - "修复长对话压缩可能丢失消息边界和记忆来源关联的问题", - "修复同名 AI 服务配置可能读取错误凭据的问题", + { + "text": "修复 AI 回复失败后错误状态、会话列表和后续提问可能异常的问题", + "contributors": ["Sanssssssssssssssss"] + }, + { + "text": "修复 AI 对话保存和编辑时可能留下不完整轮次的问题,并仅允许编辑最新一轮提问", + "contributors": ["Sanssssssssssssssss"] + }, + { + "text": "修复长对话压缩可能丢失消息边界和记忆来源关联的问题", + "contributors": ["Sanssssssssssssssss"] + }, + { + "text": "修复同名 AI 服务配置可能读取错误凭据的问题", + "contributors": ["Sanssssssssssssssss"] + }, "修复切换或返回分析页面时可能重复加载或继续显示导入前旧数据的问题", "完善跨对话分析的时间范围、联系人解析、扫描预算和截断提示" ] @@ -50,7 +68,12 @@ }, { "type": "fix", - "items": ["导入文件夹改为独立按钮,避免与选择文件互相抢入口"] + "items": [ + { + "text": "导入文件夹改为独立按钮,避免与选择文件互相抢入口", + "contributors": ["kongjiyu"] + } + ] }, { "type": "perf", @@ -140,7 +163,10 @@ "items": [ "修复 QQ 自动导入在 UID/UIN 变化、缺失 owner 或合并会话中的匹配与成员映射问题,避免重复会话和成员身份错乱", "修复合并导入因平台消息 ID 冲突或私聊身份不足导致的消息误删,并保留有效 owner 与会话身份信息", - "修复动态关键词排行请求、快速切换与多色模式问题,避免结果过期或未知类型导致页面崩溃", + { + "text": "修复动态关键词排行请求、快速切换与多色模式问题,避免结果过期或未知类型导致页面崩溃", + "contributors": ["kelaocai"] + }, "统一洞察加载过渡,并恢复年度活动日历配色与关系视图切换控件" ] }, @@ -161,7 +187,10 @@ "QQ Shuakami 与 QQ Chat Exporter 导入接入 Rust 原生解析,提升大型导出文件的处理稳定性", "多文件导入新增安全并发调度,避免同一会话并发写入,并提供逐文件进度和失败详情", "新增隐私安全的匿名产品统计,仅上报白名单内的运行环境与功能使用事件", - "【Web CLI】本地语义索引运行组件改为首次使用时按需安装,Docker 镜像继续预装所需组件" + { + "text": "【Web CLI】本地语义索引运行组件改为首次使用时按需安装,Docker 镜像继续预装所需组件", + "contributors": ["kelaocai"] + } ] }, { @@ -240,19 +269,35 @@ "type": "fix", "items": [ "修复纯 Web 端并发访问 OPFS、概览筛选竞争、词频统计和关系分析过滤问题", - "前端图标改为本地打包,避免运行时依赖外部图标服务", + { + "text": "前端图标改为本地打包,避免运行时依赖外部图标服务", + "contributors": ["KokerZhou"] + }, "统一 ChatLab JSONL 自动识别与格式校验规则,并拒绝无法解析的 owner 信息", "【桌面端】阻止迁移过程删除当前数据目录,并拒绝新旧数据目录相互嵌套或指向同一路径", - "【CLI】Docker 部署持久化用户数据与系统状态,并默认仅向 localhost 暴露端口" + { + "text": "【CLI】Docker 部署持久化用户数据与系统状态,并默认仅向 localhost 暴露端口", + "contributors": ["KokerZhou"] + } ] }, { "type": "docs", - "items": ["新增 Docker 部署指南,并完善 AI 分析价值与本地隐私说明"] + "items": [ + { + "text": "新增 Docker 部署指南,并完善 AI 分析价值与本地隐私说明", + "contributors": ["KokerZhou"] + } + ] }, { "type": "ci", - "items": ["发布 amd64 与 arm64 架构的 ChatLab CLI Docker 镜像"] + "items": [ + { + "text": "发布 amd64 与 arm64 架构的 ChatLab CLI Docker 镜像", + "contributors": ["KokerZhou"] + } + ] } ] }, @@ -263,7 +308,12 @@ "changes": [ { "type": "feat", - "items": ["【桌面端】新增应用锁,支持密码、立即锁定、启动时解锁和闲置超时自动锁定"] + "items": [ + { + "text": "【桌面端】新增应用锁,支持密码、立即锁定、启动时解锁和闲置超时自动锁定", + "contributors": ["xyz-225648"] + } + ] }, { "type": "fix", @@ -271,7 +321,10 @@ "数据目录迁移后保留旧数据并提示人工确认清理,避免迁移或重试过程中误删源文件", "大体积 ChatLab JSONL 改为分批流式处理,避免导入卡死并保留合并导入中的成员头像", "统一桌面端与 CLI Web 的多文件批量导入流程,支持串行进度、取消和结果汇总", - "【桌面端】应用锁增加失败次数限制、冷却时间和启动状态保护,避免刷新或重启绕过锁定" + { + "text": "【桌面端】应用锁增加失败次数限制、冷却时间和启动状态保护,避免刷新或重启绕过锁定", + "contributors": ["xyz-225648"] + } ] } ] @@ -334,7 +387,10 @@ "items": [ "统一各端 Push 导入的校验、去重、成员推断和 dry-run 结果,避免预览与实际写入不一致", "补导历史消息后,聊天记录按时间与消息 ID 稳定排序,避免旧消息出现在末尾", - "修复 QCE / QQ Chat Exporter 私聊被误判为群聊并产生“0”成员的问题" + { + "text": "修复 QCE / QQ Chat Exporter 私聊被误判为群聊并产生“0”成员的问题", + "contributors": ["shuakami"] + } ] } ] @@ -359,7 +415,10 @@ "items": [ "修复 ChatLab JSON 导出不可直接重新导入的问题,并保留成员、owner 和别名元数据", "增强自动增量导入的去重、混合消息身份识别和 ChatLab 重复导入区分能力", - "WhatsApp TXT 解析支持带括号时间戳和点号 AM/PM 标记" + { + "text": "WhatsApp TXT 解析支持带括号时间戳和点号 AM/PM 标记", + "contributors": ["hh7418695"] + } ] }, { @@ -415,7 +474,10 @@ "修复 SQL 实验室导出 CSV 失败的问题", "导入 JSONL 等流式成员数据时保留头像,支持增量导入新头像", "打开 AI 日志改为共享路由处理,本机 CLI Web 和桌面端行为保持一致", - "概览身份卡跟随当前选择的时间范围刷新" + { + "text": "概览身份卡跟随当前选择的时间范围刷新", + "contributors": ["qikairo7"] + } ] }, { @@ -584,8 +646,14 @@ "type": "fix", "items": [ "修复多关键词消息搜索功能", - "修复词云词典加载 UX 回归问题", - "修复排行榜标签与 emoji 清洗", + { + "text": "修复词云词典加载 UX 回归问题", + "contributors": ["qikairo7"] + }, + { + "text": "修复排行榜标签与 emoji 清洗", + "contributors": ["qikairo7"] + }, "修复 v8 数据库迁移缺少国际化文本", "【CLI】修复工具适配器中会话上下文传递与预处理缺失" ] @@ -612,8 +680,14 @@ { "type": "fix", "items": [ - "修复高频词统计中含有平台回复消息占位符的问题", - "修复词云文本中包含媒体占位符的问题", + { + "text": "修复高频词统计中含有平台回复消息占位符的问题", + "contributors": ["qikairo7"] + }, + { + "text": "修复词云文本中包含媒体占位符的问题", + "contributors": ["qikairo7"] + }, "修复 Jieba 自定义词典变更后语言偏好缓存与词频缓存未失效的问题", "修复时效性分析缓存未按日失效的问题", "修复时间轴面板默认滚动位置及会话跳转功能失效的问题", @@ -719,7 +793,10 @@ "修复 AI 助手消息未填满聊天区域宽度", "优化分析计划生成区块的展示样式", "修复思考深度选择跨重启不持久的问题", - "修复 JSONL 时间戳规范化导致增量导入异常", + { + "text": "修复 JSONL 时间戳规范化导致增量导入异常", + "contributors": ["cnYui"] + }, "【桌面端】修复 execute_sql 工具未注册到桌面端工具注册表" ] }, @@ -776,8 +853,14 @@ { "type": "feat", "items": [ - "新增斜杠触发的 AI 图表运行时,支持在对话中生成并渲染 ECharts 图表", - "优化 AI 图表结果展示体验,补充图表渲染状态和多类型图表适配" + { + "text": "新增斜杠触发的 AI 图表运行时,支持在对话中生成并渲染 ECharts 图表", + "contributors": ["CEQ151"] + }, + { + "text": "优化 AI 图表结果展示体验,补充图表渲染状态和多类型图表适配", + "contributors": ["CEQ151"] + } ] }, { @@ -787,7 +870,10 @@ "修复预设问题标签和侧边栏元素层叠顺序异常", "【CLI Web】修复开发后端生命周期清理不完整的问题", "【桌面端】修复自动技能未注册图表工具,导致图表技能无法完整执行的问题", - "【桌面端】修复 Windows 标题栏覆盖层切换主题后缓存未刷新和显示不平滑的问题" + { + "text": "【桌面端】修复 Windows 标题栏覆盖层切换主题后缓存未刷新和显示不平滑的问题", + "contributors": ["CEQ151"] + } ] }, { @@ -860,7 +946,10 @@ "items": [ "修复数据目录迁移与数据库迁移流程中的多处边界问题,避免旧库字段缺失或路径切换导致读取失败", "修复数据目录迁移提示在旧数据不存在或目录变更后仍错误显示的问题", - "修复增量导入后侧边栏消息数量未刷新的问题", + { + "text": "修复增量导入后侧边栏消息数量未刷新的问题", + "contributors": ["CEQ151"] + }, "修复侧边栏折叠状态仅存于 sessionStorage 导致刷新后丢失的问题", "修复 AI 配置编辑时已保存密钥未正确启用拉取模型和验证按钮的问题", "修复 AI 共享 SSE 流式响应的稳定性问题", @@ -925,7 +1014,10 @@ { "type": "feat", "items": [ - "新增消息派生(Fork)功能,可从任意 AI 回复处创建独立分支会话", + { + "text": "新增消息派生(Fork)功能,可从任意 AI 回复处创建独立分支会话", + "contributors": ["CEQ151"] + }, "状态栏新增推理强度选择器,支持为每个推理模型单独记忆并切换思维等级", "推理等级控制新增 default/auto 选项,扩展对 Kimi、Doubao、Gemini 等更多模型家族的覆盖", "消息分析视图拆分为「类型分析」和「时间分析」两个标签页,增加丰富统计洞察卡片", @@ -1144,7 +1236,10 @@ "items": [ "修复 Web 模式下会话索引、跨域代理、Demo 保护和运行时异常等问题", "修复 Web 模式下应用版本显示为空的问题", - "修复 AI Agent 证据检索、Web 端事件流和错误格式化等问题", + { + "text": "修复 AI Agent 证据检索、Web 端事件流和错误格式化等问题", + "contributors": ["CEQ151"] + }, "修复同步展示与导入逻辑不一致的问题", "修复 CLI 开发模式下 ESM 模块解析问题", "修复 CLI 安装后可能找不到既有桌面端数据的问题", @@ -1255,7 +1350,10 @@ { "type": "feat", "items": [ - "订阅会话时支持按类型筛选与选择", + { + "text": "订阅会话时支持按类型筛选与选择", + "contributors": ["xunchahaha"] + }, "支持远程会话分页发现与按需加载更多", "支持为数据源配置每次拉取的消息条数" ] @@ -1457,7 +1555,10 @@ "type": "fix", "items": [ "修复 WhatsApp 时间解析正则与行匹配正则宽严不一致问题", - "修复 WhatsApp 12 小时制时间与 NNBSP 字符解析兼容性问题" + { + "text": "修复 WhatsApp 12 小时制时间与 NNBSP 字符解析兼容性问题", + "contributors": ["kongjiyu"] + } ] }, { @@ -1532,7 +1633,10 @@ "优化 AI 对话样式与整体交互体验", "支持 FTS5 全文搜索并新增快速搜索工具", "精简部分工具搜索参数,降低 token 开销", - "新增 Electron 应用 E2E 测试框架,支持端口管理与实例隔离" + { + "text": "新增 Electron 应用 E2E 测试框架,支持端口管理与实例隔离", + "contributors": ["l17728"] + } ] }, { @@ -1545,7 +1649,12 @@ }, { "type": "test", - "items": ["补充可复用的 E2E 启动器冒烟测试能力"] + "items": [ + { + "text": "补充可复用的 E2E 启动器冒烟测试能力", + "contributors": ["l17728"] + } + ] }, { "type": "docs", @@ -1607,7 +1716,10 @@ { "type": "fix", "items": [ - "修复消息去重误判,并统一空字符串去重语义", + { + "text": "修复消息去重误判,并统一空字符串去重语义", + "contributors": ["lnexin"] + }, "修复 AI 会话链路与前端 type-check 错误", "增加默认 assistant 兜底逻辑,修复异常场景", "修复每日消息趋势不展示的问题" @@ -1674,7 +1786,10 @@ "items": [ "新增聊天记录预处理管道", "新增预处理设置界面与配置管理能力", - "Agent 支持基于会话的上下文时间线与运行状态展示", + { + "text": "Agent 支持基于会话的上下文时间线与运行状态展示", + "contributors": ["n-WN"] + }, "新增 AI 调试模式并增强日志可观测性" ] }, @@ -1771,7 +1886,10 @@ "type": "fix", "items": [ "修复增量更新后会话索引生成范围不准确的问题(fix #79)", - "修复迁移与会话扫描时误处理非聊天 SQLite 文件的问题" + { + "text": "修复迁移与会话扫描时误处理非聊天 SQLite 文件的问题", + "contributors": ["n-WN"] + } ] }, { @@ -1801,7 +1919,12 @@ }, { "type": "fix", - "items": ["修复 LINE 聊天记录解析问题"] + "items": [ + { + "text": "修复 LINE 聊天记录解析问题", + "contributors": ["haotien91"] + } + ] }, { "type": "docs", @@ -1817,9 +1940,15 @@ { "type": "feat", "items": [ - "设置内新增数据目录位置配置", + { + "text": "设置内新增数据目录位置配置", + "contributors": ["xunchahaha"] + }, "数据存储目录迁移逻辑优化", - "目录切换新增确认弹窗", + { + "text": "目录切换新增确认弹窗", + "contributors": ["xunchahaha"] + }, "解析逻辑优化(WeFlow / Echotrace)" ] }, @@ -1829,12 +1958,21 @@ "修复 Windows 自定义筛选时消息量过大导致崩溃的问题", "修复第三方中转 API 调用 tool_call 导致对话异常结束的问题", "修复部分 WhatsApp 聊天记录无法正确识别的问题", - "修复管理页面表头层级显示问题" + { + "text": "修复管理页面表头层级显示问题", + "contributors": ["xunchahaha"] + } ] }, { "type": "refactor", - "items": ["重构 session 查询模块", "完善迁移日志输出"] + "items": [ + "重构 session 查询模块", + { + "text": "完善迁移日志输出", + "contributors": ["xunchahaha"] + } + ] } ] }, @@ -2010,7 +2148,10 @@ "支持增量导入", "支持批量导入", "样式优化", - "Windows 端支持原生窗口控制并实现主题同步 (#31)" + { + "text": "Windows 端支持原生窗口控制并实现主题同步 (#31)", + "contributors": ["JiQingzhe2004"] + } ] }, { @@ -2128,7 +2269,10 @@ "支持配置代理(resolve #7)", "优化AI模型界面交互", "添加用户配置API教程", - "1、新增GLM两个免费调用模型 2、新增豆包服务商和对应的最新模型", + { + "text": "1、新增GLM两个免费调用模型 2、新增豆包服务商和对应的最新模型", + "contributors": ["JiQingzhe2004"] + }, "AI回复不输出think内容" ] } diff --git a/changelogs/cn.md b/changelogs/cn.md index 99ba886e..ccb14eec 100644 --- a/changelogs/cn.md +++ b/changelogs/cn.md @@ -10,17 +10,17 @@ - 新增长期记忆,支持管理偏好、关于我、联系人和群聊记忆,并按问题自动调用相关内容 - 长期记忆支持关联来源消息,AI 形成的结论可返回原对话核验 - 统一全局与单会话 AI 的对话列表、输入框和 @ 选择交互 -- 聊天记录查看器支持拖拽调整宽度并记住布局 +- 聊天记录查看器支持拖拽调整宽度并记住布局 (by [@KokerZhou](https://github.com/KokerZhou)) - 分析页将 SQL 实验室和调试工具统一收纳到“更多” -- 【CLI】支持通过 Unix Domain Socket 启动 Web 服务 +- 【CLI】支持通过 Unix Domain Socket 启动 Web 服务 (by [@KokerZhou](https://github.com/KokerZhou)) ### 🐛 修复 - 修复 WeFlow 与缺少稳定消息 ID 的聊天记录在增量导入、合并时可能过度去重的问题,避免真实消息丢失 -- 修复 AI 回复失败后错误状态、会话列表和后续提问可能异常的问题 -- 修复 AI 对话保存和编辑时可能留下不完整轮次的问题,并仅允许编辑最新一轮提问 -- 修复长对话压缩可能丢失消息边界和记忆来源关联的问题 -- 修复同名 AI 服务配置可能读取错误凭据的问题 +- 修复 AI 回复失败后错误状态、会话列表和后续提问可能异常的问题 (by [@Sanssssssssssssssss](https://github.com/Sanssssssssssssssss)) +- 修复 AI 对话保存和编辑时可能留下不完整轮次的问题,并仅允许编辑最新一轮提问 (by [@Sanssssssssssssssss](https://github.com/Sanssssssssssssssss)) +- 修复长对话压缩可能丢失消息边界和记忆来源关联的问题 (by [@Sanssssssssssssssss](https://github.com/Sanssssssssssssssss)) +- 修复同名 AI 服务配置可能读取错误凭据的问题 (by [@Sanssssssssssssssss](https://github.com/Sanssssssssssssssss)) - 修复切换或返回分析页面时可能重复加载或继续显示导入前旧数据的问题 - 完善跨对话分析的时间范围、联系人解析、扫描预算和截断提示 @@ -41,7 +41,7 @@ ### 🐛 修复 -- 导入文件夹改为独立按钮,避免与选择文件互相抢入口 +- 导入文件夹改为独立按钮,避免与选择文件互相抢入口 (by [@kongjiyu](https://github.com/kongjiyu)) ### ⚡ 性能 @@ -109,7 +109,7 @@ - 修复 QQ 自动导入在 UID/UIN 变化、缺失 owner 或合并会话中的匹配与成员映射问题,避免重复会话和成员身份错乱 - 修复合并导入因平台消息 ID 冲突或私聊身份不足导致的消息误删,并保留有效 owner 与会话身份信息 -- 修复动态关键词排行请求、快速切换与多色模式问题,避免结果过期或未知类型导致页面崩溃 +- 修复动态关键词排行请求、快速切换与多色模式问题,避免结果过期或未知类型导致页面崩溃 (by [@kelaocai](https://github.com/kelaocai)) - 统一洞察加载过渡,并恢复年度活动日历配色与关系视图切换控件 ### ⚡ 性能 @@ -125,7 +125,7 @@ - QQ Shuakami 与 QQ Chat Exporter 导入接入 Rust 原生解析,提升大型导出文件的处理稳定性 - 多文件导入新增安全并发调度,避免同一会话并发写入,并提供逐文件进度和失败详情 - 新增隐私安全的匿名产品统计,仅上报白名单内的运行环境与功能使用事件 -- 【Web CLI】本地语义索引运行组件改为首次使用时按需安装,Docker 镜像继续预装所需组件 +- 【Web CLI】本地语义索引运行组件改为首次使用时按需安装,Docker 镜像继续预装所需组件 (by [@kelaocai](https://github.com/kelaocai)) ### 🐛 修复 @@ -183,18 +183,18 @@ ### 🐛 修复 - 修复纯 Web 端并发访问 OPFS、概览筛选竞争、词频统计和关系分析过滤问题 -- 前端图标改为本地打包,避免运行时依赖外部图标服务 +- 前端图标改为本地打包,避免运行时依赖外部图标服务 (by [@KokerZhou](https://github.com/KokerZhou)) - 统一 ChatLab JSONL 自动识别与格式校验规则,并拒绝无法解析的 owner 信息 - 【桌面端】阻止迁移过程删除当前数据目录,并拒绝新旧数据目录相互嵌套或指向同一路径 -- 【CLI】Docker 部署持久化用户数据与系统状态,并默认仅向 localhost 暴露端口 +- 【CLI】Docker 部署持久化用户数据与系统状态,并默认仅向 localhost 暴露端口 (by [@KokerZhou](https://github.com/KokerZhou)) ### 📝 文档 -- 新增 Docker 部署指南,并完善 AI 分析价值与本地隐私说明 +- 新增 Docker 部署指南,并完善 AI 分析价值与本地隐私说明 (by [@KokerZhou](https://github.com/KokerZhou)) ### 👷 CI -- 发布 amd64 与 arm64 架构的 ChatLab CLI Docker 镜像 +- 发布 amd64 与 arm64 架构的 ChatLab CLI Docker 镜像 (by [@KokerZhou](https://github.com/KokerZhou)) ## v0.32.0 (2026-07-18) @@ -202,14 +202,14 @@ ### ✨ 新功能 -- 【桌面端】新增应用锁,支持密码、立即锁定、启动时解锁和闲置超时自动锁定 +- 【桌面端】新增应用锁,支持密码、立即锁定、启动时解锁和闲置超时自动锁定 (by [@xyz-225648](https://github.com/xyz-225648)) ### 🐛 修复 - 数据目录迁移后保留旧数据并提示人工确认清理,避免迁移或重试过程中误删源文件 - 大体积 ChatLab JSONL 改为分批流式处理,避免导入卡死并保留合并导入中的成员头像 - 统一桌面端与 CLI Web 的多文件批量导入流程,支持串行进度、取消和结果汇总 -- 【桌面端】应用锁增加失败次数限制、冷却时间和启动状态保护,避免刷新或重启绕过锁定 +- 【桌面端】应用锁增加失败次数限制、冷却时间和启动状态保护,避免刷新或重启绕过锁定 (by [@xyz-225648](https://github.com/xyz-225648)) ## v0.31.3 (2026-07-17) @@ -253,7 +253,7 @@ - 统一各端 Push 导入的校验、去重、成员推断和 dry-run 结果,避免预览与实际写入不一致 - 补导历史消息后,聊天记录按时间与消息 ID 稳定排序,避免旧消息出现在末尾 -- 修复 QCE / QQ Chat Exporter 私聊被误判为群聊并产生“0”成员的问题 +- 修复 QCE / QQ Chat Exporter 私聊被误判为群聊并产生“0”成员的问题 (by [@shuakami](https://github.com/shuakami)) ## v0.31.0 (2026-07-13) @@ -271,7 +271,7 @@ - 修复 ChatLab JSON 导出不可直接重新导入的问题,并保留成员、owner 和别名元数据 - 增强自动增量导入的去重、混合消息身份识别和 ChatLab 重复导入区分能力 -- WhatsApp TXT 解析支持带括号时间戳和点号 AM/PM 标记 +- WhatsApp TXT 解析支持带括号时间戳和点号 AM/PM 标记 (by [@hh7418695](https://github.com/hh7418695)) ### ♻️ 重构 @@ -314,7 +314,7 @@ - 修复 SQL 实验室导出 CSV 失败的问题 - 导入 JSONL 等流式成员数据时保留头像,支持增量导入新头像 - 打开 AI 日志改为共享路由处理,本机 CLI Web 和桌面端行为保持一致 -- 概览身份卡跟随当前选择的时间范围刷新 +- 概览身份卡跟随当前选择的时间范围刷新 (by [@qikairo7](https://github.com/qikairo7)) ### 📝 文档 @@ -445,8 +445,8 @@ ### 🐛 修复 - 修复多关键词消息搜索功能 -- 修复词云词典加载 UX 回归问题 -- 修复排行榜标签与 emoji 清洗 +- 修复词云词典加载 UX 回归问题 (by [@qikairo7](https://github.com/qikairo7)) +- 修复排行榜标签与 emoji 清洗 (by [@qikairo7](https://github.com/qikairo7)) - 修复 v8 数据库迁移缺少国际化文本 - 【CLI】修复工具适配器中会话上下文传递与预处理缺失 @@ -466,8 +466,8 @@ ### 🐛 修复 -- 修复高频词统计中含有平台回复消息占位符的问题 -- 修复词云文本中包含媒体占位符的问题 +- 修复高频词统计中含有平台回复消息占位符的问题 (by [@qikairo7](https://github.com/qikairo7)) +- 修复词云文本中包含媒体占位符的问题 (by [@qikairo7](https://github.com/qikairo7)) - 修复 Jieba 自定义词典变更后语言偏好缓存与词频缓存未失效的问题 - 修复时效性分析缓存未按日失效的问题 - 修复时间轴面板默认滚动位置及会话跳转功能失效的问题 @@ -555,7 +555,7 @@ - 修复 AI 助手消息未填满聊天区域宽度 - 优化分析计划生成区块的展示样式 - 修复思考深度选择跨重启不持久的问题 -- 修复 JSONL 时间戳规范化导致增量导入异常 +- 修复 JSONL 时间戳规范化导致增量导入异常 (by [@cnYui](https://github.com/cnYui)) - 【桌面端】修复 execute_sql 工具未注册到桌面端工具注册表 ### test @@ -600,8 +600,8 @@ ### ✨ 新功能 -- 新增斜杠触发的 AI 图表运行时,支持在对话中生成并渲染 ECharts 图表 -- 优化 AI 图表结果展示体验,补充图表渲染状态和多类型图表适配 +- 新增斜杠触发的 AI 图表运行时,支持在对话中生成并渲染 ECharts 图表 (by [@CEQ151](https://github.com/CEQ151)) +- 优化 AI 图表结果展示体验,补充图表渲染状态和多类型图表适配 (by [@CEQ151](https://github.com/CEQ151)) ### 🐛 修复 @@ -609,7 +609,7 @@ - 修复预设问题标签和侧边栏元素层叠顺序异常 - 【CLI Web】修复开发后端生命周期清理不完整的问题 - 【桌面端】修复自动技能未注册图表工具,导致图表技能无法完整执行的问题 -- 【桌面端】修复 Windows 标题栏覆盖层切换主题后缓存未刷新和显示不平滑的问题 +- 【桌面端】修复 Windows 标题栏覆盖层切换主题后缓存未刷新和显示不平滑的问题 (by [@CEQ151](https://github.com/CEQ151)) ### ♻️ 重构 @@ -666,7 +666,7 @@ - 修复数据目录迁移与数据库迁移流程中的多处边界问题,避免旧库字段缺失或路径切换导致读取失败 - 修复数据目录迁移提示在旧数据不存在或目录变更后仍错误显示的问题 -- 修复增量导入后侧边栏消息数量未刷新的问题 +- 修复增量导入后侧边栏消息数量未刷新的问题 (by [@CEQ151](https://github.com/CEQ151)) - 修复侧边栏折叠状态仅存于 sessionStorage 导致刷新后丢失的问题 - 修复 AI 配置编辑时已保存密钥未正确启用拉取模型和验证按钮的问题 - 修复 AI 共享 SSE 流式响应的稳定性问题 @@ -717,7 +717,7 @@ ### ✨ 新功能 -- 新增消息派生(Fork)功能,可从任意 AI 回复处创建独立分支会话 +- 新增消息派生(Fork)功能,可从任意 AI 回复处创建独立分支会话 (by [@CEQ151](https://github.com/CEQ151)) - 状态栏新增推理强度选择器,支持为每个推理模型单独记忆并切换思维等级 - 推理等级控制新增 default/auto 选项,扩展对 Kimi、Doubao、Gemini 等更多模型家族的覆盖 - 消息分析视图拆分为「类型分析」和「时间分析」两个标签页,增加丰富统计洞察卡片 @@ -900,7 +900,7 @@ - 修复 Web 模式下会话索引、跨域代理、Demo 保护和运行时异常等问题 - 修复 Web 模式下应用版本显示为空的问题 -- 修复 AI Agent 证据检索、Web 端事件流和错误格式化等问题 +- 修复 AI Agent 证据检索、Web 端事件流和错误格式化等问题 (by [@CEQ151](https://github.com/CEQ151)) - 修复同步展示与导入逻辑不一致的问题 - 修复 CLI 开发模式下 ESM 模块解析问题 - 修复 CLI 安装后可能找不到既有桌面端数据的问题 @@ -990,7 +990,7 @@ ### ✨ 新功能 -- 订阅会话时支持按类型筛选与选择 +- 订阅会话时支持按类型筛选与选择 (by [@xunchahaha](https://github.com/xunchahaha)) - 支持远程会话分页发现与按需加载更多 - 支持为数据源配置每次拉取的消息条数 @@ -1147,7 +1147,7 @@ ### 🐛 修复 - 修复 WhatsApp 时间解析正则与行匹配正则宽严不一致问题 -- 修复 WhatsApp 12 小时制时间与 NNBSP 字符解析兼容性问题 +- 修复 WhatsApp 12 小时制时间与 NNBSP 字符解析兼容性问题 (by [@kongjiyu](https://github.com/kongjiyu)) ### 🔧 杂项 @@ -1210,7 +1210,7 @@ - 优化 AI 对话样式与整体交互体验 - 支持 FTS5 全文搜索并新增快速搜索工具 - 精简部分工具搜索参数,降低 token 开销 -- 新增 Electron 应用 E2E 测试框架,支持端口管理与实例隔离 +- 新增 Electron 应用 E2E 测试框架,支持端口管理与实例隔离 (by [@l17728](https://github.com/l17728)) ### 🐛 修复 @@ -1223,7 +1223,7 @@ ### test -- 补充可复用的 E2E 启动器冒烟测试能力 +- 补充可复用的 E2E 启动器冒烟测试能力 (by [@l17728](https://github.com/l17728)) ### 📝 文档 @@ -1274,7 +1274,7 @@ ### 🐛 修复 -- 修复消息去重误判,并统一空字符串去重语义 +- 修复消息去重误判,并统一空字符串去重语义 (by [@lnexin](https://github.com/lnexin)) - 修复 AI 会话链路与前端 type-check 错误 - 增加默认 assistant 兜底逻辑,修复异常场景 - 修复每日消息趋势不展示的问题 @@ -1333,7 +1333,7 @@ - 新增聊天记录预处理管道 - 新增预处理设置界面与配置管理能力 -- Agent 支持基于会话的上下文时间线与运行状态展示 +- Agent 支持基于会话的上下文时间线与运行状态展示 (by [@n-WN](https://github.com/n-WN)) - 新增 AI 调试模式并增强日志可观测性 ### 🐛 修复 @@ -1413,7 +1413,7 @@ ### 🐛 修复 - 修复增量更新后会话索引生成范围不准确的问题(fix #79) -- 修复迁移与会话扫描时误处理非聊天 SQLite 文件的问题 +- 修复迁移与会话扫描时误处理非聊天 SQLite 文件的问题 (by [@n-WN](https://github.com/n-WN)) ### ♻️ 重构 @@ -1437,7 +1437,7 @@ ### 🐛 修复 -- 修复 LINE 聊天记录解析问题 +- 修复 LINE 聊天记录解析问题 (by [@haotien91](https://github.com/haotien91)) ### 📝 文档 @@ -1449,9 +1449,9 @@ ### ✨ 新功能 -- 设置内新增数据目录位置配置 +- 设置内新增数据目录位置配置 (by [@xunchahaha](https://github.com/xunchahaha)) - 数据存储目录迁移逻辑优化 -- 目录切换新增确认弹窗 +- 目录切换新增确认弹窗 (by [@xunchahaha](https://github.com/xunchahaha)) - 解析逻辑优化(WeFlow / Echotrace) ### 🐛 修复 @@ -1459,12 +1459,12 @@ - 修复 Windows 自定义筛选时消息量过大导致崩溃的问题 - 修复第三方中转 API 调用 tool_call 导致对话异常结束的问题 - 修复部分 WhatsApp 聊天记录无法正确识别的问题 -- 修复管理页面表头层级显示问题 +- 修复管理页面表头层级显示问题 (by [@xunchahaha](https://github.com/xunchahaha)) ### ♻️ 重构 - 重构 session 查询模块 -- 完善迁移日志输出 +- 完善迁移日志输出 (by [@xunchahaha](https://github.com/xunchahaha)) ## v0.9.2 (2026-02-02) @@ -1603,7 +1603,7 @@ - 支持增量导入 - 支持批量导入 - 样式优化 -- Windows 端支持原生窗口控制并实现主题同步 (#31) +- Windows 端支持原生窗口控制并实现主题同步 (#31) (by [@JiQingzhe2004](https://github.com/JiQingzhe2004)) ### 🔧 杂项 @@ -1697,7 +1697,7 @@ - 支持配置代理(resolve #7) - 优化AI模型界面交互 - 添加用户配置API教程 -- 1、新增GLM两个免费调用模型 2、新增豆包服务商和对应的最新模型 +- 1、新增GLM两个免费调用模型 2、新增豆包服务商和对应的最新模型 (by [@JiQingzhe2004](https://github.com/JiQingzhe2004)) - AI回复不输出think内容 ## v0.1.3 (2025-12-25) diff --git a/changelogs/en.json b/changelogs/en.json index f9fef0c9..ea720530 100644 --- a/changelogs/en.json +++ b/changelogs/en.json @@ -11,19 +11,37 @@ "Add long-term memory for managing preferences, details about yourself, contacts, and groups, with relevant entries loaded automatically for each question", "Link long-term memories to source messages so AI-derived conclusions can be verified in the original conversation", "Unify conversation lists, composers, and @ mention selection across global and per-chat AI conversations", - "Let users resize the chat record viewer by dragging and remember the chosen width", + { + "text": "Let users resize the chat record viewer by dragging and remember the chosen width", + "contributors": ["KokerZhou"] + }, "Move SQL Lab and debug tools into a unified More section on analysis pages", - "【CLI】Support starting the Web service over a Unix Domain Socket" + { + "text": "【CLI】Support starting the Web service over a Unix Domain Socket", + "contributors": ["KokerZhou"] + } ] }, { "type": "fix", "items": [ "Fix excessive deduplication when incrementally importing or merging WeFlow records and messages without stable IDs, preventing valid messages from being lost", - "Fix error state, conversation list, and follow-up issues after an AI reply fails", - "Prevent incomplete turns when saving or editing AI conversations, and allow editing only the latest user turn", - "Fix long-conversation compression losing message boundaries or links to memory sources", - "Fix AI services with the same configuration name loading the wrong credentials", + { + "text": "Fix error state, conversation list, and follow-up issues after an AI reply fails", + "contributors": ["Sanssssssssssssssss"] + }, + { + "text": "Prevent incomplete turns when saving or editing AI conversations, and allow editing only the latest user turn", + "contributors": ["Sanssssssssssssssss"] + }, + { + "text": "Fix long-conversation compression losing message boundaries or links to memory sources", + "contributors": ["Sanssssssssssssssss"] + }, + { + "text": "Fix AI services with the same configuration name loading the wrong credentials", + "contributors": ["Sanssssssssssssssss"] + }, "Fix analysis pages reloading duplicate data or showing stale results after switching away and back", "Improve time ranges, contact resolution, scan budgets, and truncation notices for cross-chat analysis" ] @@ -52,7 +70,12 @@ }, { "type": "fix", - "items": ["Turn folder import into a dedicated button so it no longer competes with file selection"] + "items": [ + { + "text": "Turn folder import into a dedicated button so it no longer competes with file selection", + "contributors": ["kongjiyu"] + } + ] }, { "type": "perf", @@ -147,7 +170,10 @@ "items": [ "Fix QQ automatic import matching and member mapping when UID/UIN values change, owner metadata is missing, or sessions have been merged, preventing duplicate sessions and incorrect member identities", "Prevent merge imports from incorrectly removing messages when platform message IDs conflict or private-chat identity is incomplete, while preserving valid owner and session identity metadata", - "Fix request handling, rapid switching, and multi-color mode in dynamic keyword rankings, preventing stale results and crashes caused by unknown types", + { + "text": "Fix request handling, rapid switching, and multi-color mode in dynamic keyword rankings, preventing stale results and crashes caused by unknown types", + "contributors": ["kelaocai"] + }, "Unify loading transitions across Insights, and restore annual activity calendar colors and relationship view controls" ] }, @@ -170,7 +196,10 @@ "Use the Rust native parser for QQ Shuakami and QQ Chat Exporter imports to improve reliability with large exports", "Add safe concurrent scheduling for multi-file imports, preventing concurrent writes to the same session while reporting per-file progress and failures", "Add privacy-preserving anonymous product analytics that only report allowlisted environment and feature usage events", - "【CLI Web】Install the local semantic-index runtime on first use, while keeping it preinstalled in the Docker image" + { + "text": "【CLI Web】Install the local semantic-index runtime on first use, while keeping it preinstalled in the Docker image", + "contributors": ["kelaocai"] + } ] }, { @@ -253,19 +282,35 @@ "type": "fix", "items": [ "Fix concurrent OPFS access, overview filter race conditions, word frequency totals, and relationship analysis filters in the browser app", - "Bundle frontend icons locally to remove the runtime dependency on external icon services", + { + "text": "Bundle frontend icons locally to remove the runtime dependency on external icon services", + "contributors": ["KokerZhou"] + }, "Align ChatLab JSONL auto-detection with format validation and reject unresolved owner metadata", "【Desktop】Prevent migrations from deleting the active data directory and reject nested or equivalent legacy and active data paths", - "【CLI】Persist user data and system state in Docker deployments, and bind published ports to localhost by default" + { + "text": "【CLI】Persist user data and system state in Docker deployments, and bind published ports to localhost by default", + "contributors": ["KokerZhou"] + } ] }, { "type": "docs", - "items": ["Add a Docker deployment guide and clarify the benefits of AI analysis and local data privacy"] + "items": [ + { + "text": "Add a Docker deployment guide and clarify the benefits of AI analysis and local data privacy", + "contributors": ["KokerZhou"] + } + ] }, { "type": "ci", - "items": ["Publish ChatLab CLI Docker images for amd64 and arm64"] + "items": [ + { + "text": "Publish ChatLab CLI Docker images for amd64 and arm64", + "contributors": ["KokerZhou"] + } + ] } ] }, @@ -277,7 +322,10 @@ { "type": "feat", "items": [ - "【Desktop】Add an app lock with password protection, immediate locking, a startup unlock prompt, and automatic locking after inactivity" + { + "text": "【Desktop】Add an app lock with password protection, immediate locking, a startup unlock prompt, and automatic locking after inactivity", + "contributors": ["xyz-225648"] + } ] }, { @@ -286,7 +334,10 @@ "Keep old data after migrating the data directory and prompt for manual cleanup, preventing source files from being deleted during migrations or retries", "Process large ChatLab JSONL files in streaming batches to prevent import freezes and preserve member avatars in merged imports", "Unify multi-file batch imports across Desktop and CLI Web with sequential progress, cancellation, and result summaries", - "【Desktop】Add failed-attempt limits, cooldowns, and startup state protection to the app lock so refreshes or restarts cannot bypass it" + { + "text": "【Desktop】Add failed-attempt limits, cooldowns, and startup state protection to the app lock so refreshes or restarts cannot bypass it", + "contributors": ["xyz-225648"] + } ] } ] @@ -349,7 +400,10 @@ "items": [ "Align validation, deduplication, member inference, and dry-run results for Push imports across runtimes", "Keep backfilled chat history in chronological order using timestamps and message IDs", - "Fix QCE / QQ Chat Exporter private chats being detected as groups and creating a phantom “0” member" + { + "text": "Fix QCE / QQ Chat Exporter private chats being detected as groups and creating a phantom “0” member", + "contributors": ["shuakami"] + } ] } ] @@ -374,7 +428,10 @@ "items": [ "Fix ChatLab JSON exports so they can be imported again while preserving member, owner, and alias metadata", "Improve automatic incremental import deduplication, mixed message identity handling, and ChatLab reimport disambiguation", - "Support bracketed timestamps and dotted AM/PM markers in WhatsApp TXT parsing" + { + "text": "Support bracketed timestamps and dotted AM/PM markers in WhatsApp TXT parsing", + "contributors": ["hh7418695"] + } ] }, { @@ -435,7 +492,10 @@ "Fix CSV export failures in SQL Lab", "Preserve avatars when importing JSONL and other streamed member data, including incremental avatar imports", "Open AI logs through the shared route so local CLI Web and Desktop behave consistently", - "Refresh the overview identity card when the selected time range changes" + { + "text": "Refresh the overview identity card when the selected time range changes", + "contributors": ["qikairo7"] + } ] }, { @@ -606,8 +666,14 @@ "type": "fix", "items": [ "Fix multi-keyword message search", - "Fix UX regression in word cloud dictionary loading", - "Fix ranking label formatting and emoji cleanup", + { + "text": "Fix UX regression in word cloud dictionary loading", + "contributors": ["qikairo7"] + }, + { + "text": "Fix ranking label formatting and emoji cleanup", + "contributors": ["qikairo7"] + }, "Add missing i18n text for the v8 database migration", "[CLI] Fix missing session context forwarding and preprocessing in the tool adapter" ] @@ -634,8 +700,14 @@ { "type": "fix", "items": [ - "Fix catchphrase stats including platform reply message placeholders", - "Fix word cloud text including media placeholders", + { + "text": "Fix catchphrase stats including platform reply message placeholders", + "contributors": ["qikairo7"] + }, + { + "text": "Fix word cloud text including media placeholders", + "contributors": ["qikairo7"] + }, "Fix language-preference and word-frequency caches not being invalidated when the Jieba custom dictionary changes", "Fix time-sensitive analytics cache entries not expiring daily", "Fix timeline panel default scroll position and session jump not working", @@ -744,7 +816,10 @@ "Fix assistant messages not filling the full chat area width", "Improve the visual layout of the analysis plan generation block", "Fix thinking-level selection not persisting across restarts", - "Fix JSONL timestamp normalization causing incremental import failures", + { + "text": "Fix JSONL timestamp normalization causing incremental import failures", + "contributors": ["cnYui"] + }, "Desktop: Fix `execute_sql` tool not being registered in the desktop tool registry" ] }, @@ -803,8 +878,14 @@ { "type": "feat", "items": [ - "Add a slash-activated AI chart runtime that can generate and render ECharts charts in conversations", - "Improve the AI chart result experience with clearer rendering states and support for more chart types" + { + "text": "Add a slash-activated AI chart runtime that can generate and render ECharts charts in conversations", + "contributors": ["CEQ151"] + }, + { + "text": "Improve the AI chart result experience with clearer rendering states and support for more chart types", + "contributors": ["CEQ151"] + } ] }, { @@ -814,7 +895,10 @@ "Fix preset question chips and sidebar elements stacking incorrectly", "CLI Web: Fix incomplete cleanup of the development backend lifecycle", "Desktop: Register the chart tool for automatic skills so chart skills can run correctly", - "Desktop: Refresh the Windows title bar overlay cache after theme changes and smooth its display" + { + "text": "Desktop: Refresh the Windows title bar overlay cache after theme changes and smooth its display", + "contributors": ["CEQ151"] + } ] }, { @@ -889,7 +973,10 @@ "items": [ "Fix multiple edge cases in data directory and database migrations to prevent missing legacy columns or failed reads after path changes", "Fix legacy data migration prompts appearing incorrectly when no legacy data exists or after directory changes", - "Fix sidebar message counts not refreshing after incremental imports", + { + "text": "Fix sidebar message counts not refreshing after incremental imports", + "contributors": ["CEQ151"] + }, "Fix sidebar collapsed state being lost after refresh because it was stored only in sessionStorage", "Fix fetch-models and validate buttons not being enabled when editing AI settings with a saved key", "Fix stability issues in shared AI SSE streaming", @@ -956,7 +1043,10 @@ { "type": "feat", "items": [ - "Add a Fork button to AI replies to branch the conversation from any point into an independent session", + { + "text": "Add a Fork button to AI replies to branch the conversation from any point into an independent session", + "contributors": ["CEQ151"] + }, "Add a per-model thinking level selector in the status bar, with the choice remembered per model slot", "Extend thinking level controls with default and auto options, covering Kimi, Doubao, Gemini, and more model families", "Split the message analysis view into Type Analysis and Time Analysis tabs, each with enriched statistical insight cards", @@ -1184,7 +1274,10 @@ "items": [ "Fix Web-mode issues around session indexes, CORS proxying, demo safeguards, and runtime errors", "Fix the app version showing as empty in Web mode", - "Fix AI Agent evidence retrieval, Web event streaming, and error formatting issues", + { + "text": "Fix AI Agent evidence retrieval, Web event streaming, and error formatting issues", + "contributors": ["CEQ151"] + }, "Fix inconsistencies between sync display and import logic", "Fix ESM module resolution in CLI development mode", "Fix cases where the CLI could not find existing desktop data after installation", @@ -1299,7 +1392,10 @@ { "type": "feat", "items": [ - "Add session type filtering and selection when subscribing to sessions.", + { + "text": "Add session type filtering and selection when subscribing to sessions.", + "contributors": ["xunchahaha"] + }, "Add paginated remote session discovery with on-demand loading.", "Allow each data source to configure how many messages are fetched per request." ] @@ -1503,7 +1599,10 @@ "type": "fix", "items": [ "Fix inconsistency between WhatsApp time-parsing regex rules and line-matching regex rules.", - "Fix compatibility issues when parsing WhatsApp 12-hour time formats and NNBSP characters." + { + "text": "Fix compatibility issues when parsing WhatsApp 12-hour time formats and NNBSP characters.", + "contributors": ["kongjiyu"] + } ] }, { @@ -1584,7 +1683,10 @@ "Improve AI chat styling and overall interaction flow.", "Add FTS5 full-text search support with a quick search tool.", "Trim search parameters in selected tools to reduce token usage.", - "Add an E2E testing framework for Electron apps with port management and instance isolation." + { + "text": "Add an E2E testing framework for Electron apps with port management and instance isolation.", + "contributors": ["l17728"] + } ] }, { @@ -1600,7 +1702,12 @@ }, { "type": "test", - "items": ["Add reusable smoke-test coverage for the E2E app launcher."] + "items": [ + { + "text": "Add reusable smoke-test coverage for the E2E app launcher.", + "contributors": ["l17728"] + } + ] }, { "type": "docs", @@ -1662,7 +1769,10 @@ { "type": "fix", "items": [ - "Fix false positives in message deduplication and unify empty-string deduplication behavior", + { + "text": "Fix false positives in message deduplication and unify empty-string deduplication behavior", + "contributors": ["lnexin"] + }, "Fix AI conversation flow issues and frontend type-check errors", "Add a fallback default assistant for edge cases", "Fix daily message trends not rendering" @@ -1729,7 +1839,10 @@ "items": [ "Add a chat-history preprocessing pipeline.", "Add preprocessing settings UI and configuration management.", - "Add session-based context timelines and runtime status for the Agent.", + { + "text": "Add session-based context timelines and runtime status for the Agent.", + "contributors": ["n-WN"] + }, "Add an AI debug mode with improved log observability." ] }, @@ -1836,7 +1949,10 @@ "type": "fix", "items": [ "Fix inaccurate session index generation scope after incremental updates (fix #79).", - "Fix non-chat SQLite files being incorrectly processed during migration and session scanning." + { + "text": "Fix non-chat SQLite files being incorrectly processed during migration and session scanning.", + "contributors": ["n-WN"] + } ] }, { @@ -1866,7 +1982,12 @@ }, { "type": "fix", - "items": ["Fix parsing issues for LINE chat logs."] + "items": [ + { + "text": "Fix parsing issues for LINE chat logs.", + "contributors": ["haotien91"] + } + ] }, { "type": "docs", @@ -1882,9 +2003,15 @@ { "type": "feat", "items": [ - "Add a data directory location setting", + { + "text": "Add a data directory location setting", + "contributors": ["xunchahaha"] + }, "Optimize data directory migration logic", - "Add a confirmation dialog for directory switching", + { + "text": "Add a confirmation dialog for directory switching", + "contributors": ["xunchahaha"] + }, "Improve parser logic (WeFlow / Echotrace)" ] }, @@ -1894,12 +2021,21 @@ "Fix crashes on Windows when custom filtering processes large message volumes", "Fix conversations ending early when third-party relay APIs call tool_call", "Fix some WhatsApp chat logs not being detected correctly", - "Fix manage page header stacking above settings" + { + "text": "Fix manage page header stacking above settings", + "contributors": ["xunchahaha"] + } ] }, { "type": "refactor", - "items": ["Refactor session query module", "Improve migration logging"] + "items": [ + "Refactor session query module", + { + "text": "Improve migration logging", + "contributors": ["xunchahaha"] + } + ] } ] }, @@ -2079,7 +2215,10 @@ "Support incremental import", "Support batch import", "Style improvements", - "Support native window controls and theme sync on Windows (#31)" + { + "text": "Support native window controls and theme sync on Windows (#31)", + "contributors": ["JiQingzhe2004"] + } ] }, { @@ -2197,7 +2336,10 @@ "Support proxy configuration (resolve #7)", "Improve AI model UI interactions", "Add API tutorial for user configuration", - "Add two free GLM models; add Doubao provider and latest models", + { + "text": "Add two free GLM models; add Doubao provider and latest models", + "contributors": ["JiQingzhe2004"] + }, "AI replies no longer output think content" ] } diff --git a/changelogs/en.md b/changelogs/en.md index 6917e2ce..f6e9281f 100644 --- a/changelogs/en.md +++ b/changelogs/en.md @@ -10,17 +10,17 @@ - Add long-term memory for managing preferences, details about yourself, contacts, and groups, with relevant entries loaded automatically for each question - Link long-term memories to source messages so AI-derived conclusions can be verified in the original conversation - Unify conversation lists, composers, and @ mention selection across global and per-chat AI conversations -- Let users resize the chat record viewer by dragging and remember the chosen width +- Let users resize the chat record viewer by dragging and remember the chosen width (by [@KokerZhou](https://github.com/KokerZhou)) - Move SQL Lab and debug tools into a unified More section on analysis pages -- 【CLI】Support starting the Web service over a Unix Domain Socket +- 【CLI】Support starting the Web service over a Unix Domain Socket (by [@KokerZhou](https://github.com/KokerZhou)) ### 🐛 Bug Fixes - Fix excessive deduplication when incrementally importing or merging WeFlow records and messages without stable IDs, preventing valid messages from being lost -- Fix error state, conversation list, and follow-up issues after an AI reply fails -- Prevent incomplete turns when saving or editing AI conversations, and allow editing only the latest user turn -- Fix long-conversation compression losing message boundaries or links to memory sources -- Fix AI services with the same configuration name loading the wrong credentials +- Fix error state, conversation list, and follow-up issues after an AI reply fails (by [@Sanssssssssssssssss](https://github.com/Sanssssssssssssssss)) +- Prevent incomplete turns when saving or editing AI conversations, and allow editing only the latest user turn (by [@Sanssssssssssssssss](https://github.com/Sanssssssssssssssss)) +- Fix long-conversation compression losing message boundaries or links to memory sources (by [@Sanssssssssssssssss](https://github.com/Sanssssssssssssssss)) +- Fix AI services with the same configuration name loading the wrong credentials (by [@Sanssssssssssssssss](https://github.com/Sanssssssssssssssss)) - Fix analysis pages reloading duplicate data or showing stale results after switching away and back - Improve time ranges, contact resolution, scan budgets, and truncation notices for cross-chat analysis @@ -41,7 +41,7 @@ ### 🐛 Bug Fixes -- Turn folder import into a dedicated button so it no longer competes with file selection +- Turn folder import into a dedicated button so it no longer competes with file selection (by [@kongjiyu](https://github.com/kongjiyu)) ### ⚡ Performance @@ -109,7 +109,7 @@ - Fix QQ automatic import matching and member mapping when UID/UIN values change, owner metadata is missing, or sessions have been merged, preventing duplicate sessions and incorrect member identities - Prevent merge imports from incorrectly removing messages when platform message IDs conflict or private-chat identity is incomplete, while preserving valid owner and session identity metadata -- Fix request handling, rapid switching, and multi-color mode in dynamic keyword rankings, preventing stale results and crashes caused by unknown types +- Fix request handling, rapid switching, and multi-color mode in dynamic keyword rankings, preventing stale results and crashes caused by unknown types (by [@kelaocai](https://github.com/kelaocai)) - Unify loading transitions across Insights, and restore annual activity calendar colors and relationship view controls ### ⚡ Performance @@ -125,7 +125,7 @@ - Use the Rust native parser for QQ Shuakami and QQ Chat Exporter imports to improve reliability with large exports - Add safe concurrent scheduling for multi-file imports, preventing concurrent writes to the same session while reporting per-file progress and failures - Add privacy-preserving anonymous product analytics that only report allowlisted environment and feature usage events -- 【CLI Web】Install the local semantic-index runtime on first use, while keeping it preinstalled in the Docker image +- 【CLI Web】Install the local semantic-index runtime on first use, while keeping it preinstalled in the Docker image (by [@kelaocai](https://github.com/kelaocai)) ### 🐛 Bug Fixes @@ -183,18 +183,18 @@ ### 🐛 Bug Fixes - Fix concurrent OPFS access, overview filter race conditions, word frequency totals, and relationship analysis filters in the browser app -- Bundle frontend icons locally to remove the runtime dependency on external icon services +- Bundle frontend icons locally to remove the runtime dependency on external icon services (by [@KokerZhou](https://github.com/KokerZhou)) - Align ChatLab JSONL auto-detection with format validation and reject unresolved owner metadata - 【Desktop】Prevent migrations from deleting the active data directory and reject nested or equivalent legacy and active data paths -- 【CLI】Persist user data and system state in Docker deployments, and bind published ports to localhost by default +- 【CLI】Persist user data and system state in Docker deployments, and bind published ports to localhost by default (by [@KokerZhou](https://github.com/KokerZhou)) ### 📝 Documentation -- Add a Docker deployment guide and clarify the benefits of AI analysis and local data privacy +- Add a Docker deployment guide and clarify the benefits of AI analysis and local data privacy (by [@KokerZhou](https://github.com/KokerZhou)) ### 👷 CI -- Publish ChatLab CLI Docker images for amd64 and arm64 +- Publish ChatLab CLI Docker images for amd64 and arm64 (by [@KokerZhou](https://github.com/KokerZhou)) ## v0.32.0 (2026-07-18) @@ -202,14 +202,14 @@ ### ✨ Features -- 【Desktop】Add an app lock with password protection, immediate locking, a startup unlock prompt, and automatic locking after inactivity +- 【Desktop】Add an app lock with password protection, immediate locking, a startup unlock prompt, and automatic locking after inactivity (by [@xyz-225648](https://github.com/xyz-225648)) ### 🐛 Bug Fixes - Keep old data after migrating the data directory and prompt for manual cleanup, preventing source files from being deleted during migrations or retries - Process large ChatLab JSONL files in streaming batches to prevent import freezes and preserve member avatars in merged imports - Unify multi-file batch imports across Desktop and CLI Web with sequential progress, cancellation, and result summaries -- 【Desktop】Add failed-attempt limits, cooldowns, and startup state protection to the app lock so refreshes or restarts cannot bypass it +- 【Desktop】Add failed-attempt limits, cooldowns, and startup state protection to the app lock so refreshes or restarts cannot bypass it (by [@xyz-225648](https://github.com/xyz-225648)) ## v0.31.3 (2026-07-17) @@ -253,7 +253,7 @@ - Align validation, deduplication, member inference, and dry-run results for Push imports across runtimes - Keep backfilled chat history in chronological order using timestamps and message IDs -- Fix QCE / QQ Chat Exporter private chats being detected as groups and creating a phantom “0” member +- Fix QCE / QQ Chat Exporter private chats being detected as groups and creating a phantom “0” member (by [@shuakami](https://github.com/shuakami)) ## v0.31.0 (2026-07-13) @@ -271,7 +271,7 @@ - Fix ChatLab JSON exports so they can be imported again while preserving member, owner, and alias metadata - Improve automatic incremental import deduplication, mixed message identity handling, and ChatLab reimport disambiguation -- Support bracketed timestamps and dotted AM/PM markers in WhatsApp TXT parsing +- Support bracketed timestamps and dotted AM/PM markers in WhatsApp TXT parsing (by [@hh7418695](https://github.com/hh7418695)) ### ♻️ Refactoring @@ -314,7 +314,7 @@ - Fix CSV export failures in SQL Lab - Preserve avatars when importing JSONL and other streamed member data, including incremental avatar imports - Open AI logs through the shared route so local CLI Web and Desktop behave consistently -- Refresh the overview identity card when the selected time range changes +- Refresh the overview identity card when the selected time range changes (by [@qikairo7](https://github.com/qikairo7)) ### 📝 Documentation @@ -445,8 +445,8 @@ ### 🐛 Bug Fixes - Fix multi-keyword message search -- Fix UX regression in word cloud dictionary loading -- Fix ranking label formatting and emoji cleanup +- Fix UX regression in word cloud dictionary loading (by [@qikairo7](https://github.com/qikairo7)) +- Fix ranking label formatting and emoji cleanup (by [@qikairo7](https://github.com/qikairo7)) - Add missing i18n text for the v8 database migration - [CLI] Fix missing session context forwarding and preprocessing in the tool adapter @@ -466,8 +466,8 @@ ### 🐛 Bug Fixes -- Fix catchphrase stats including platform reply message placeholders -- Fix word cloud text including media placeholders +- Fix catchphrase stats including platform reply message placeholders (by [@qikairo7](https://github.com/qikairo7)) +- Fix word cloud text including media placeholders (by [@qikairo7](https://github.com/qikairo7)) - Fix language-preference and word-frequency caches not being invalidated when the Jieba custom dictionary changes - Fix time-sensitive analytics cache entries not expiring daily - Fix timeline panel default scroll position and session jump not working @@ -555,7 +555,7 @@ - Fix assistant messages not filling the full chat area width - Improve the visual layout of the analysis plan generation block - Fix thinking-level selection not persisting across restarts -- Fix JSONL timestamp normalization causing incremental import failures +- Fix JSONL timestamp normalization causing incremental import failures (by [@cnYui](https://github.com/cnYui)) - Desktop: Fix `execute_sql` tool not being registered in the desktop tool registry ### test @@ -600,8 +600,8 @@ ### ✨ Features -- Add a slash-activated AI chart runtime that can generate and render ECharts charts in conversations -- Improve the AI chart result experience with clearer rendering states and support for more chart types +- Add a slash-activated AI chart runtime that can generate and render ECharts charts in conversations (by [@CEQ151](https://github.com/CEQ151)) +- Improve the AI chart result experience with clearer rendering states and support for more chart types (by [@CEQ151](https://github.com/CEQ151)) ### 🐛 Bug Fixes @@ -609,7 +609,7 @@ - Fix preset question chips and sidebar elements stacking incorrectly - CLI Web: Fix incomplete cleanup of the development backend lifecycle - Desktop: Register the chart tool for automatic skills so chart skills can run correctly -- Desktop: Refresh the Windows title bar overlay cache after theme changes and smooth its display +- Desktop: Refresh the Windows title bar overlay cache after theme changes and smooth its display (by [@CEQ151](https://github.com/CEQ151)) ### ♻️ Refactoring @@ -666,7 +666,7 @@ - Fix multiple edge cases in data directory and database migrations to prevent missing legacy columns or failed reads after path changes - Fix legacy data migration prompts appearing incorrectly when no legacy data exists or after directory changes -- Fix sidebar message counts not refreshing after incremental imports +- Fix sidebar message counts not refreshing after incremental imports (by [@CEQ151](https://github.com/CEQ151)) - Fix sidebar collapsed state being lost after refresh because it was stored only in sessionStorage - Fix fetch-models and validate buttons not being enabled when editing AI settings with a saved key - Fix stability issues in shared AI SSE streaming @@ -717,7 +717,7 @@ ### ✨ Features -- Add a Fork button to AI replies to branch the conversation from any point into an independent session +- Add a Fork button to AI replies to branch the conversation from any point into an independent session (by [@CEQ151](https://github.com/CEQ151)) - Add a per-model thinking level selector in the status bar, with the choice remembered per model slot - Extend thinking level controls with default and auto options, covering Kimi, Doubao, Gemini, and more model families - Split the message analysis view into Type Analysis and Time Analysis tabs, each with enriched statistical insight cards @@ -900,7 +900,7 @@ - Fix Web-mode issues around session indexes, CORS proxying, demo safeguards, and runtime errors - Fix the app version showing as empty in Web mode -- Fix AI Agent evidence retrieval, Web event streaming, and error formatting issues +- Fix AI Agent evidence retrieval, Web event streaming, and error formatting issues (by [@CEQ151](https://github.com/CEQ151)) - Fix inconsistencies between sync display and import logic - Fix ESM module resolution in CLI development mode - Fix cases where the CLI could not find existing desktop data after installation @@ -990,7 +990,7 @@ ### ✨ Features -- Add session type filtering and selection when subscribing to sessions. +- Add session type filtering and selection when subscribing to sessions. (by [@xunchahaha](https://github.com/xunchahaha)) - Add paginated remote session discovery with on-demand loading. - Allow each data source to configure how many messages are fetched per request. @@ -1147,7 +1147,7 @@ ### 🐛 Bug Fixes - Fix inconsistency between WhatsApp time-parsing regex rules and line-matching regex rules. -- Fix compatibility issues when parsing WhatsApp 12-hour time formats and NNBSP characters. +- Fix compatibility issues when parsing WhatsApp 12-hour time formats and NNBSP characters. (by [@kongjiyu](https://github.com/kongjiyu)) ### 🔧 Chores @@ -1210,7 +1210,7 @@ - Improve AI chat styling and overall interaction flow. - Add FTS5 full-text search support with a quick search tool. - Trim search parameters in selected tools to reduce token usage. -- Add an E2E testing framework for Electron apps with port management and instance isolation. +- Add an E2E testing framework for Electron apps with port management and instance isolation. (by [@l17728](https://github.com/l17728)) ### 🐛 Bug Fixes @@ -1223,7 +1223,7 @@ ### test -- Add reusable smoke-test coverage for the E2E app launcher. +- Add reusable smoke-test coverage for the E2E app launcher. (by [@l17728](https://github.com/l17728)) ### 📝 Documentation @@ -1274,7 +1274,7 @@ ### 🐛 Bug Fixes -- Fix false positives in message deduplication and unify empty-string deduplication behavior +- Fix false positives in message deduplication and unify empty-string deduplication behavior (by [@lnexin](https://github.com/lnexin)) - Fix AI conversation flow issues and frontend type-check errors - Add a fallback default assistant for edge cases - Fix daily message trends not rendering @@ -1333,7 +1333,7 @@ - Add a chat-history preprocessing pipeline. - Add preprocessing settings UI and configuration management. -- Add session-based context timelines and runtime status for the Agent. +- Add session-based context timelines and runtime status for the Agent. (by [@n-WN](https://github.com/n-WN)) - Add an AI debug mode with improved log observability. ### 🐛 Bug Fixes @@ -1413,7 +1413,7 @@ ### 🐛 Bug Fixes - Fix inaccurate session index generation scope after incremental updates (fix #79). -- Fix non-chat SQLite files being incorrectly processed during migration and session scanning. +- Fix non-chat SQLite files being incorrectly processed during migration and session scanning. (by [@n-WN](https://github.com/n-WN)) ### ♻️ Refactoring @@ -1437,7 +1437,7 @@ ### 🐛 Bug Fixes -- Fix parsing issues for LINE chat logs. +- Fix parsing issues for LINE chat logs. (by [@haotien91](https://github.com/haotien91)) ### 📝 Documentation @@ -1449,9 +1449,9 @@ ### ✨ Features -- Add a data directory location setting +- Add a data directory location setting (by [@xunchahaha](https://github.com/xunchahaha)) - Optimize data directory migration logic -- Add a confirmation dialog for directory switching +- Add a confirmation dialog for directory switching (by [@xunchahaha](https://github.com/xunchahaha)) - Improve parser logic (WeFlow / Echotrace) ### 🐛 Bug Fixes @@ -1459,12 +1459,12 @@ - Fix crashes on Windows when custom filtering processes large message volumes - Fix conversations ending early when third-party relay APIs call tool_call - Fix some WhatsApp chat logs not being detected correctly -- Fix manage page header stacking above settings +- Fix manage page header stacking above settings (by [@xunchahaha](https://github.com/xunchahaha)) ### ♻️ Refactoring - Refactor session query module -- Improve migration logging +- Improve migration logging (by [@xunchahaha](https://github.com/xunchahaha)) ## v0.9.2 (2026-02-02) @@ -1603,7 +1603,7 @@ - Support incremental import - Support batch import - Style improvements -- Support native window controls and theme sync on Windows (#31) +- Support native window controls and theme sync on Windows (#31) (by [@JiQingzhe2004](https://github.com/JiQingzhe2004)) ### 🔧 Chores @@ -1697,7 +1697,7 @@ - Support proxy configuration (resolve #7) - Improve AI model UI interactions - Add API tutorial for user configuration -- Add two free GLM models; add Doubao provider and latest models +- Add two free GLM models; add Doubao provider and latest models (by [@JiQingzhe2004](https://github.com/JiQingzhe2004)) - AI replies no longer output think content ## v0.1.3 (2025-12-25) diff --git a/changelogs/ja.json b/changelogs/ja.json index 0597fd75..48ad2d60 100644 --- a/changelogs/ja.json +++ b/changelogs/ja.json @@ -11,19 +11,37 @@ "好み、自分について、連絡先、グループの情報を管理できる長期メモリを追加し、質問に応じて関連する内容を自動的に参照", "長期メモリを参照元メッセージに関連付け、AI が生成した結論を元の会話で確認できるように改善", "グローバル AI チャットと各チャット内 AI の会話一覧、入力欄、@ メンション選択を統一", - "チャット履歴ビューアーをドラッグでリサイズし、選択した幅を保持できるように改善", + { + "text": "チャット履歴ビューアーをドラッグでリサイズし、選択した幅を保持できるように改善", + "contributors": ["KokerZhou"] + }, "分析ページの SQL ラボとデバッグツールを「その他」にまとめて配置", - "【CLI】Unix Domain Socket 経由で Web サービスを起動できる機能を追加" + { + "text": "【CLI】Unix Domain Socket 経由で Web サービスを起動できる機能を追加", + "contributors": ["KokerZhou"] + } ] }, { "type": "fix", "items": [ "WeFlow および安定したメッセージ ID がないチャット履歴の差分インポートや統合で重複排除が過剰に働き、有効なメッセージが失われる問題を修正", - "AI の応答に失敗した後、エラー状態、会話一覧、次の質問が正しく処理されないことがある問題を修正", - "AI 会話の保存や編集で不完全なターンが残る問題を修正し、編集対象を直近の質問のみに制限", - "長い会話の圧縮時に、メッセージ境界やメモリの参照元リンクが失われることがある問題を修正", - "同じ名前の AI サービス設定で誤った認証情報が読み込まれる問題を修正", + { + "text": "AI の応答に失敗した後、エラー状態、会話一覧、次の質問が正しく処理されないことがある問題を修正", + "contributors": ["Sanssssssssssssssss"] + }, + { + "text": "AI 会話の保存や編集で不完全なターンが残る問題を修正し、編集対象を直近の質問のみに制限", + "contributors": ["Sanssssssssssssssss"] + }, + { + "text": "長い会話の圧縮時に、メッセージ境界やメモリの参照元リンクが失われることがある問題を修正", + "contributors": ["Sanssssssssssssssss"] + }, + { + "text": "同じ名前の AI サービス設定で誤った認証情報が読み込まれる問題を修正", + "contributors": ["Sanssssssssssssssss"] + }, "分析ページを切り替えて戻った際に重複して読み込んだり、インポート前の古いデータが表示されたりする問題を修正", "クロスチャット分析の期間指定、連絡先の解決、スキャン上限、結果省略時の案内を改善" ] @@ -50,7 +68,12 @@ }, { "type": "fix", - "items": ["フォルダーのインポートを独立したボタンに変更し、ファイル選択と操作が競合しないように改善"] + "items": [ + { + "text": "フォルダーのインポートを独立したボタンに変更し、ファイル選択と操作が競合しないように改善", + "contributors": ["kongjiyu"] + } + ] }, { "type": "perf", @@ -145,7 +168,10 @@ "items": [ "QQ の自動インポートで UID/UIN の変更、owner 情報の欠落、セッションのマージがある場合の照合とメンバー対応を修正し、セッションの重複やメンバー識別の不整合を防止", "プラットフォームメッセージ ID の競合や個人チャットの識別情報不足により、マージ時にメッセージが誤って削除される問題を修正。有効な owner とセッション識別情報も保持", - "動的キーワードランキングのリクエスト処理、高速な表示切り替え、マルチカラーモードを修正し、古い結果の表示や未知の種類によるクラッシュを防止", + { + "text": "動的キーワードランキングのリクエスト処理、高速な表示切り替え、マルチカラーモードを修正し、古い結果の表示や未知の種類によるクラッシュを防止", + "contributors": ["kelaocai"] + }, "インサイトの読み込み切り替えを統一し、年間アクティビティカレンダーの配色と関係ビューの切り替え操作を復元" ] }, @@ -168,7 +194,10 @@ "QQ Shuakami / QQ Chat Exporter のインポートに Rust ネイティブパーサーを導入し、大容量エクスポートの処理を安定化", "複数ファイルのインポートに安全な並行スケジューリングを追加し、同一セッションへの同時書き込みを防止。ファイルごとの進捗と失敗内容も表示", "許可リストに含まれる実行環境と機能利用イベントだけを送信する、プライバシーに配慮した匿名利用統計を追加", - "【CLI Web】ローカルセマンティックインデックスの実行コンポーネントを初回利用時に自動インストール。Docker イメージには引き続き必要なコンポーネントを同梱" + { + "text": "【CLI Web】ローカルセマンティックインデックスの実行コンポーネントを初回利用時に自動インストール。Docker イメージには引き続き必要なコンポーネントを同梱", + "contributors": ["kelaocai"] + } ] }, { @@ -247,19 +276,35 @@ "type": "fix", "items": [ "ブラウザ版における OPFS の同時アクセス、概要フィルターの競合、単語頻度集計、関係分析フィルターの問題を修正", - "フロントエンドのアイコンをローカルに同梱し、実行時の外部アイコンサービス依存を解消", + { + "text": "フロントエンドのアイコンをローカルに同梱し、実行時の外部アイコンサービス依存を解消", + "contributors": ["KokerZhou"] + }, "ChatLab JSONL の自動判定と形式検証ルールを統一し、解決できない owner 情報を拒否", "【デスクトップ版】移行処理による使用中のデータディレクトリ削除を防止し、新旧ディレクトリの入れ子や同一パス指定を拒否", - "【CLI】Docker デプロイでユーザーデータとシステム状態を永続化し、公開ポートをデフォルトで localhost のみにバインド" + { + "text": "【CLI】Docker デプロイでユーザーデータとシステム状態を永続化し、公開ポートをデフォルトで localhost のみにバインド", + "contributors": ["KokerZhou"] + } ] }, { "type": "docs", - "items": ["Docker デプロイガイドを追加し、AI 分析の利点とローカルプライバシーの説明を改善"] + "items": [ + { + "text": "Docker デプロイガイドを追加し、AI 分析の利点とローカルプライバシーの説明を改善", + "contributors": ["KokerZhou"] + } + ] }, { "type": "ci", - "items": ["amd64 / arm64 向けの ChatLab CLI Docker イメージを公開"] + "items": [ + { + "text": "amd64 / arm64 向けの ChatLab CLI Docker イメージを公開", + "contributors": ["KokerZhou"] + } + ] } ] }, @@ -271,7 +316,10 @@ { "type": "feat", "items": [ - "【デスクトップ版】パスワード保護、即時ロック、起動時のロック解除要求、無操作時の自動ロックに対応したアプリロックを追加" + { + "text": "【デスクトップ版】パスワード保護、即時ロック、起動時のロック解除要求、無操作時の自動ロックに対応したアプリロックを追加", + "contributors": ["xyz-225648"] + } ] }, { @@ -280,7 +328,10 @@ "データディレクトリの移行後も旧データを残し、手動での確認・削除を案内することで、移行や再試行時の移行元ファイルの誤削除を防止", "大容量の ChatLab JSONL をストリーミングで分割処理し、インポートの停止を防ぐとともに、マージインポート時のメンバー画像を保持", "デスクトップ版と CLI Web の複数ファイル一括インポート処理を統一し、順次処理の進捗表示、キャンセル、結果サマリーに対応", - "【デスクトップ版】アプリロックに失敗回数制限、クールダウン、起動時の状態保護を追加し、再読み込みや再起動による回避を防止" + { + "text": "【デスクトップ版】アプリロックに失敗回数制限、クールダウン、起動時の状態保護を追加し、再読み込みや再起動による回避を防止", + "contributors": ["xyz-225648"] + } ] } ] @@ -343,7 +394,10 @@ "items": [ "各環境の Push インポートで検証、重複排除、メンバー推定、dry-run の結果を統一し、事前確認と実際の書き込みの差異を解消", "過去メッセージの追加インポート後も、タイムスタンプとメッセージ ID に基づく安定した時系列順で表示", - "QCE / QQ Chat Exporter の個人チャットがグループと誤判定され、「0」メンバーが生成される問題を修正" + { + "text": "QCE / QQ Chat Exporter の個人チャットがグループと誤判定され、「0」メンバーが生成される問題を修正", + "contributors": ["shuakami"] + } ] } ] @@ -368,7 +422,10 @@ "items": [ "ChatLab JSON の書き出しをそのまま再インポートできるよう修正し、メンバー、owner、別名のメタデータを保持", "自動増分インポートの重複排除、混在するメッセージ ID の判定、ChatLab 再インポートの識別を強化", - "WhatsApp TXT 解析で括弧付きタイムスタンプとドット付き AM/PM 表記に対応" + { + "text": "WhatsApp TXT 解析で括弧付きタイムスタンプとドット付き AM/PM 表記に対応", + "contributors": ["hh7418695"] + } ] }, { @@ -427,7 +484,10 @@ "SQL Lab で CSV エクスポートに失敗する問題を修正", "JSONL などのストリーミングされたメンバー情報をインポートする際にアバターを保持し、増分インポートでも新しいアバターを取り込めるよう修正", "AI ログを共有ルートから開くようにし、ローカルの CLI Web とデスクトップで挙動を統一", - "概要の本人カードが選択中の期間に合わせて更新されるよう修正" + { + "text": "概要の本人カードが選択中の期間に合わせて更新されるよう修正", + "contributors": ["qikairo7"] + } ] }, { @@ -596,8 +656,14 @@ "type": "fix", "items": [ "複数キーワードによるメッセージ検索を修正", - "ワードクラウドの辞書読み込みにおける UX 回帰を修正", - "ランキングラベルと絵文字クリーニングの問題を修正", + { + "text": "ワードクラウドの辞書読み込みにおける UX 回帰を修正", + "contributors": ["qikairo7"] + }, + { + "text": "ランキングラベルと絵文字クリーニングの問題を修正", + "contributors": ["qikairo7"] + }, "v8 データベース移行時の i18n テキスト欠落を修正", "【CLI】ツールアダプターでのセッションコンテキスト転送と前処理の欠落を修正" ] @@ -624,8 +690,14 @@ { "type": "fix", "items": [ - "頻出ワード統計にプラットフォームの返信プレースホルダーが含まれる問題を修正", - "ワードクラウドのテキストにメディアプレースホルダーが含まれる問題を修正", + { + "text": "頻出ワード統計にプラットフォームの返信プレースホルダーが含まれる問題を修正", + "contributors": ["qikairo7"] + }, + { + "text": "ワードクラウドのテキストにメディアプレースホルダーが含まれる問題を修正", + "contributors": ["qikairo7"] + }, "Jieba カスタム辞書変更後に言語設定キャッシュと単語頻度キャッシュが無効化されない問題を修正", "時間依存の分析キャッシュが1日ごとに期限切れにならない問題を修正", "タイムラインパネルのデフォルトスクロール位置とセッションジャンプが機能しない問題を修正", @@ -734,7 +806,10 @@ "AI アシスタントのメッセージがチャット領域の幅全体を埋めない問題を修正しました", "分析プラン生成ブロックの表示スタイルを改善しました", "再起動後に思考レベルの選択が保持されない問題を修正しました", - "JSONL のタイムスタンプ正規化により差分インポートが失敗する問題を修正しました", + { + "text": "JSONL のタイムスタンプ正規化により差分インポートが失敗する問題を修正しました", + "contributors": ["cnYui"] + }, "【デスクトップ】execute_sql ツールがデスクトップのツールレジストリに登録されない問題を修正しました" ] }, @@ -793,8 +868,14 @@ { "type": "feat", "items": [ - "スラッシュ操作で起動できる AI グラフ実行環境を追加し、会話内で ECharts グラフを生成・表示できるようにしました", - "AI グラフ結果の表示体験を改善し、レンダリング状態と複数のグラフ種別への対応を追加しました" + { + "text": "スラッシュ操作で起動できる AI グラフ実行環境を追加し、会話内で ECharts グラフを生成・表示できるようにしました", + "contributors": ["CEQ151"] + }, + { + "text": "AI グラフ結果の表示体験を改善し、レンダリング状態と複数のグラフ種別への対応を追加しました", + "contributors": ["CEQ151"] + } ] }, { @@ -804,7 +885,10 @@ "プリセット質問チップとサイドバー要素の重なり順が崩れる問題を修正しました", "【CLI Web】開発バックエンドのライフサイクル cleanup が不完全になる問題を修正しました", "【デスクトップ】自動スキルでグラフツールが登録されず、グラフスキルを正しく実行できない問題を修正しました", - "【デスクトップ】Windows のタイトルバー overlay がテーマ切り替え後にキャッシュを更新せず、表示が不安定になる問題を修正しました" + { + "text": "【デスクトップ】Windows のタイトルバー overlay がテーマ切り替え後にキャッシュを更新せず、表示が不安定になる問題を修正しました", + "contributors": ["CEQ151"] + } ] }, { @@ -879,7 +963,10 @@ "items": [ "データディレクトリ移行とデータベース移行の複数の境界ケースを修正し、旧データベースの列不足やパス切り替え後の読み取り失敗を防止", "旧データが存在しない場合やディレクトリ変更後にも移行案内が誤って表示される問題を修正", - "増分インポート後にサイドバーのメッセージ数が更新されない問題を修正", + { + "text": "増分インポート後にサイドバーのメッセージ数が更新されない問題を修正", + "contributors": ["CEQ151"] + }, "サイドバーの折りたたみ状態が sessionStorage のみに保存され、再読み込み後に失われる問題を修正", "保存済みキーで AI 設定を編集する際、モデル取得と検証ボタンが正しく有効化されない問題を修正", "共有 AI SSE ストリーミングの安定性に関する問題を修正", @@ -946,7 +1033,10 @@ { "type": "feat", "items": [ - "AI返答の任意の箇所から会話を分岐できるFork機能を追加", + { + "text": "AI返答の任意の箇所から会話を分岐できるFork機能を追加", + "contributors": ["CEQ151"] + }, "ステータスバーに推論強度セレクターを追加し、モデルごとに思考レベルを記憶・切替可能に", "推論レベル制御にdefault/autoオプションを追加し、Kimi・Doubao・Geminiなど多数のモデルファミリーに対応", "メッセージ分析ビューを「タイプ分析」と「時間分析」の2タブに分割し、統計インサイトカードを強化", @@ -1174,7 +1264,10 @@ "items": [ "Web モードのセッションインデックス、CORS プロキシ、Demo 保護、実行時エラーに関する問題を修正", "Web モードでアプリのバージョンが空表示になる問題を修正", - "AI Agent の根拠取得、Web 側イベントストリーム、エラー整形に関する問題を修正", + { + "text": "AI Agent の根拠取得、Web 側イベントストリーム、エラー整形に関する問題を修正", + "contributors": ["CEQ151"] + }, "同期表示とインポート処理の不整合を修正", "CLI 開発モードでの ESM モジュール解決問題を修正", "CLI インストール後に既存のデスクトップ版データを見つけられない場合がある問題を修正", @@ -1292,7 +1385,10 @@ { "type": "feat", "items": [ - "会話を購読する際に、種類で絞り込んで選択できるようにしました。", + { + "text": "会話を購読する際に、種類で絞り込んで選択できるようにしました。", + "contributors": ["xunchahaha"] + }, "リモート会話のページ分割取得と、必要に応じた追加読み込みに対応しました。", "データソースごとに、1 回の取得で読み込むメッセージ件数を設定できるようにしました。" ] @@ -1494,7 +1590,10 @@ "type": "fix", "items": [ "WhatsApp の時刻解析正規表現と行マッチ正規表現の厳密さが一致しない問題を修正", - "WhatsApp の12時間表記時刻と NNBSP 文字の解析互換性問題を修正" + { + "text": "WhatsApp の12時間表記時刻と NNBSP 文字の解析互換性問題を修正", + "contributors": ["kongjiyu"] + } ] }, { @@ -1573,7 +1672,10 @@ "AI 会話のスタイルと全体の操作体験を改善", "FTS5 全文検索に対応し、クイック検索ツールを追加", "一部ツールの検索パラメータを整理し、token 消費を削減", - "Electron アプリ向けに、ポート管理とインスタンス分離に対応した E2E テスト基盤を追加" + { + "text": "Electron アプリ向けに、ポート管理とインスタンス分離に対応した E2E テスト基盤を追加", + "contributors": ["l17728"] + } ] }, { @@ -1589,7 +1691,12 @@ }, { "type": "test", - "items": ["再利用可能な E2E ランチャーのスモークテストを追加"] + "items": [ + { + "text": "再利用可能な E2E ランチャーのスモークテストを追加", + "contributors": ["l17728"] + } + ] }, { "type": "docs", @@ -1651,7 +1758,10 @@ { "type": "fix", "items": [ - "メッセージ重複判定の誤検知を修正し、空文字列の重複排除ルールを統一", + { + "text": "メッセージ重複判定の誤検知を修正し、空文字列の重複排除ルールを統一", + "contributors": ["lnexin"] + }, "AI会話フローの不具合とフロントエンドのtype-checkエラーを修正", "例外時のための既定assistantフォールバックを追加", "日次メッセージ推移が表示されない問題を修正" @@ -1718,7 +1828,10 @@ "items": [ "チャット履歴の前処理パイプラインを追加", "前処理設定画面と設定管理機能を追加", - "Agent でセッション単位のコンテキストタイムラインと実行状態を表示", + { + "text": "Agent でセッション単位のコンテキストタイムラインと実行状態を表示", + "contributors": ["n-WN"] + }, "AI デバッグモードを追加し、ログの可観測性を向上" ] }, @@ -1821,7 +1934,10 @@ "type": "fix", "items": [ "増分更新後にセッション索引の生成範囲が不正確になる問題を修正(fix #79)", - "移行やセッション走査時に非チャット用 SQLite ファイルを誤処理する問題を修正" + { + "text": "移行やセッション走査時に非チャット用 SQLite ファイルを誤処理する問題を修正", + "contributors": ["n-WN"] + } ] }, { @@ -1851,7 +1967,12 @@ }, { "type": "fix", - "items": ["LINE チャット履歴の解析問題を修正"] + "items": [ + { + "text": "LINE チャット履歴の解析問題を修正", + "contributors": ["haotien91"] + } + ] }, { "type": "docs", @@ -1867,9 +1988,15 @@ { "type": "feat", "items": [ - "設定画面にデータディレクトリ位置の設定項目を追加", + { + "text": "設定画面にデータディレクトリ位置の設定項目を追加", + "contributors": ["xunchahaha"] + }, "データ保存先の移行ロジックを改善", - "ディレクトリ切り替え時の確認ダイアログを追加", + { + "text": "ディレクトリ切り替え時の確認ダイアログを追加", + "contributors": ["xunchahaha"] + }, "パーサーロジックを改善(WeFlow / Echotrace)" ] }, @@ -1879,12 +2006,21 @@ "Windows で大量メッセージを絞り込むとクラッシュする問題を修正", "外部中継 API が tool_call を返した際に会話が異常終了する問題を修正", "一部の WhatsApp 履歴を正しく認識できない問題を修正", - "管理画面のヘッダー階層表示の問題を修正" + { + "text": "管理画面のヘッダー階層表示の問題を修正", + "contributors": ["xunchahaha"] + } ] }, { "type": "refactor", - "items": ["session 検索モジュールを再構成", "移行ログ出力を改善"] + "items": [ + "session 検索モジュールを再構成", + { + "text": "移行ログ出力を改善", + "contributors": ["xunchahaha"] + } + ] } ] }, @@ -2067,7 +2203,10 @@ "増分インポートに対応", "一括インポートに対応", "スタイルを改善", - "Windows でネイティブウィンドウ操作とテーマ同期に対応(#31)" + { + "text": "Windows でネイティブウィンドウ操作とテーマ同期に対応(#31)", + "contributors": ["JiQingzhe2004"] + } ] }, { @@ -2185,7 +2324,10 @@ "プロキシ設定に対応(resolve #7)", "AI モデル画面の操作性を改善", "ユーザー設定 API のチュートリアルを追加", - "無料の GLM モデル 2 種を追加し、Doubao プロバイダーと最新モデルを追加", + { + "text": "無料の GLM モデル 2 種を追加し、Doubao プロバイダーと最新モデルを追加", + "contributors": ["JiQingzhe2004"] + }, "AI 応答で think 内容を出力しないよう調整" ] } diff --git a/changelogs/ja.md b/changelogs/ja.md index 3d97d262..182b1161 100644 --- a/changelogs/ja.md +++ b/changelogs/ja.md @@ -10,17 +10,17 @@ - 好み、自分について、連絡先、グループの情報を管理できる長期メモリを追加し、質問に応じて関連する内容を自動的に参照 - 長期メモリを参照元メッセージに関連付け、AI が生成した結論を元の会話で確認できるように改善 - グローバル AI チャットと各チャット内 AI の会話一覧、入力欄、@ メンション選択を統一 -- チャット履歴ビューアーをドラッグでリサイズし、選択した幅を保持できるように改善 +- チャット履歴ビューアーをドラッグでリサイズし、選択した幅を保持できるように改善 (by [@KokerZhou](https://github.com/KokerZhou)) - 分析ページの SQL ラボとデバッグツールを「その他」にまとめて配置 -- 【CLI】Unix Domain Socket 経由で Web サービスを起動できる機能を追加 +- 【CLI】Unix Domain Socket 経由で Web サービスを起動できる機能を追加 (by [@KokerZhou](https://github.com/KokerZhou)) ### 🐛 バグ修正 - WeFlow および安定したメッセージ ID がないチャット履歴の差分インポートや統合で重複排除が過剰に働き、有効なメッセージが失われる問題を修正 -- AI の応答に失敗した後、エラー状態、会話一覧、次の質問が正しく処理されないことがある問題を修正 -- AI 会話の保存や編集で不完全なターンが残る問題を修正し、編集対象を直近の質問のみに制限 -- 長い会話の圧縮時に、メッセージ境界やメモリの参照元リンクが失われることがある問題を修正 -- 同じ名前の AI サービス設定で誤った認証情報が読み込まれる問題を修正 +- AI の応答に失敗した後、エラー状態、会話一覧、次の質問が正しく処理されないことがある問題を修正 (by [@Sanssssssssssssssss](https://github.com/Sanssssssssssssssss)) +- AI 会話の保存や編集で不完全なターンが残る問題を修正し、編集対象を直近の質問のみに制限 (by [@Sanssssssssssssssss](https://github.com/Sanssssssssssssssss)) +- 長い会話の圧縮時に、メッセージ境界やメモリの参照元リンクが失われることがある問題を修正 (by [@Sanssssssssssssssss](https://github.com/Sanssssssssssssssss)) +- 同じ名前の AI サービス設定で誤った認証情報が読み込まれる問題を修正 (by [@Sanssssssssssssssss](https://github.com/Sanssssssssssssssss)) - 分析ページを切り替えて戻った際に重複して読み込んだり、インポート前の古いデータが表示されたりする問題を修正 - クロスチャット分析の期間指定、連絡先の解決、スキャン上限、結果省略時の案内を改善 @@ -41,7 +41,7 @@ ### 🐛 バグ修正 -- フォルダーのインポートを独立したボタンに変更し、ファイル選択と操作が競合しないように改善 +- フォルダーのインポートを独立したボタンに変更し、ファイル選択と操作が競合しないように改善 (by [@kongjiyu](https://github.com/kongjiyu)) ### ⚡ パフォーマンス @@ -109,7 +109,7 @@ - QQ の自動インポートで UID/UIN の変更、owner 情報の欠落、セッションのマージがある場合の照合とメンバー対応を修正し、セッションの重複やメンバー識別の不整合を防止 - プラットフォームメッセージ ID の競合や個人チャットの識別情報不足により、マージ時にメッセージが誤って削除される問題を修正。有効な owner とセッション識別情報も保持 -- 動的キーワードランキングのリクエスト処理、高速な表示切り替え、マルチカラーモードを修正し、古い結果の表示や未知の種類によるクラッシュを防止 +- 動的キーワードランキングのリクエスト処理、高速な表示切り替え、マルチカラーモードを修正し、古い結果の表示や未知の種類によるクラッシュを防止 (by [@kelaocai](https://github.com/kelaocai)) - インサイトの読み込み切り替えを統一し、年間アクティビティカレンダーの配色と関係ビューの切り替え操作を復元 ### ⚡ パフォーマンス @@ -125,7 +125,7 @@ - QQ Shuakami / QQ Chat Exporter のインポートに Rust ネイティブパーサーを導入し、大容量エクスポートの処理を安定化 - 複数ファイルのインポートに安全な並行スケジューリングを追加し、同一セッションへの同時書き込みを防止。ファイルごとの進捗と失敗内容も表示 - 許可リストに含まれる実行環境と機能利用イベントだけを送信する、プライバシーに配慮した匿名利用統計を追加 -- 【CLI Web】ローカルセマンティックインデックスの実行コンポーネントを初回利用時に自動インストール。Docker イメージには引き続き必要なコンポーネントを同梱 +- 【CLI Web】ローカルセマンティックインデックスの実行コンポーネントを初回利用時に自動インストール。Docker イメージには引き続き必要なコンポーネントを同梱 (by [@kelaocai](https://github.com/kelaocai)) ### 🐛 バグ修正 @@ -183,18 +183,18 @@ ### 🐛 バグ修正 - ブラウザ版における OPFS の同時アクセス、概要フィルターの競合、単語頻度集計、関係分析フィルターの問題を修正 -- フロントエンドのアイコンをローカルに同梱し、実行時の外部アイコンサービス依存を解消 +- フロントエンドのアイコンをローカルに同梱し、実行時の外部アイコンサービス依存を解消 (by [@KokerZhou](https://github.com/KokerZhou)) - ChatLab JSONL の自動判定と形式検証ルールを統一し、解決できない owner 情報を拒否 - 【デスクトップ版】移行処理による使用中のデータディレクトリ削除を防止し、新旧ディレクトリの入れ子や同一パス指定を拒否 -- 【CLI】Docker デプロイでユーザーデータとシステム状態を永続化し、公開ポートをデフォルトで localhost のみにバインド +- 【CLI】Docker デプロイでユーザーデータとシステム状態を永続化し、公開ポートをデフォルトで localhost のみにバインド (by [@KokerZhou](https://github.com/KokerZhou)) ### 📝 ドキュメント -- Docker デプロイガイドを追加し、AI 分析の利点とローカルプライバシーの説明を改善 +- Docker デプロイガイドを追加し、AI 分析の利点とローカルプライバシーの説明を改善 (by [@KokerZhou](https://github.com/KokerZhou)) ### 👷 CI -- amd64 / arm64 向けの ChatLab CLI Docker イメージを公開 +- amd64 / arm64 向けの ChatLab CLI Docker イメージを公開 (by [@KokerZhou](https://github.com/KokerZhou)) ## v0.32.0 (2026-07-18) @@ -202,14 +202,14 @@ ### ✨ 新機能 -- 【デスクトップ版】パスワード保護、即時ロック、起動時のロック解除要求、無操作時の自動ロックに対応したアプリロックを追加 +- 【デスクトップ版】パスワード保護、即時ロック、起動時のロック解除要求、無操作時の自動ロックに対応したアプリロックを追加 (by [@xyz-225648](https://github.com/xyz-225648)) ### 🐛 バグ修正 - データディレクトリの移行後も旧データを残し、手動での確認・削除を案内することで、移行や再試行時の移行元ファイルの誤削除を防止 - 大容量の ChatLab JSONL をストリーミングで分割処理し、インポートの停止を防ぐとともに、マージインポート時のメンバー画像を保持 - デスクトップ版と CLI Web の複数ファイル一括インポート処理を統一し、順次処理の進捗表示、キャンセル、結果サマリーに対応 -- 【デスクトップ版】アプリロックに失敗回数制限、クールダウン、起動時の状態保護を追加し、再読み込みや再起動による回避を防止 +- 【デスクトップ版】アプリロックに失敗回数制限、クールダウン、起動時の状態保護を追加し、再読み込みや再起動による回避を防止 (by [@xyz-225648](https://github.com/xyz-225648)) ## v0.31.3 (2026-07-17) @@ -253,7 +253,7 @@ - 各環境の Push インポートで検証、重複排除、メンバー推定、dry-run の結果を統一し、事前確認と実際の書き込みの差異を解消 - 過去メッセージの追加インポート後も、タイムスタンプとメッセージ ID に基づく安定した時系列順で表示 -- QCE / QQ Chat Exporter の個人チャットがグループと誤判定され、「0」メンバーが生成される問題を修正 +- QCE / QQ Chat Exporter の個人チャットがグループと誤判定され、「0」メンバーが生成される問題を修正 (by [@shuakami](https://github.com/shuakami)) ## v0.31.0 (2026-07-13) @@ -271,7 +271,7 @@ - ChatLab JSON の書き出しをそのまま再インポートできるよう修正し、メンバー、owner、別名のメタデータを保持 - 自動増分インポートの重複排除、混在するメッセージ ID の判定、ChatLab 再インポートの識別を強化 -- WhatsApp TXT 解析で括弧付きタイムスタンプとドット付き AM/PM 表記に対応 +- WhatsApp TXT 解析で括弧付きタイムスタンプとドット付き AM/PM 表記に対応 (by [@hh7418695](https://github.com/hh7418695)) ### ♻️ リファクタリング @@ -314,7 +314,7 @@ - SQL Lab で CSV エクスポートに失敗する問題を修正 - JSONL などのストリーミングされたメンバー情報をインポートする際にアバターを保持し、増分インポートでも新しいアバターを取り込めるよう修正 - AI ログを共有ルートから開くようにし、ローカルの CLI Web とデスクトップで挙動を統一 -- 概要の本人カードが選択中の期間に合わせて更新されるよう修正 +- 概要の本人カードが選択中の期間に合わせて更新されるよう修正 (by [@qikairo7](https://github.com/qikairo7)) ### 📝 ドキュメント @@ -445,8 +445,8 @@ ### 🐛 バグ修正 - 複数キーワードによるメッセージ検索を修正 -- ワードクラウドの辞書読み込みにおける UX 回帰を修正 -- ランキングラベルと絵文字クリーニングの問題を修正 +- ワードクラウドの辞書読み込みにおける UX 回帰を修正 (by [@qikairo7](https://github.com/qikairo7)) +- ランキングラベルと絵文字クリーニングの問題を修正 (by [@qikairo7](https://github.com/qikairo7)) - v8 データベース移行時の i18n テキスト欠落を修正 - 【CLI】ツールアダプターでのセッションコンテキスト転送と前処理の欠落を修正 @@ -466,8 +466,8 @@ ### 🐛 バグ修正 -- 頻出ワード統計にプラットフォームの返信プレースホルダーが含まれる問題を修正 -- ワードクラウドのテキストにメディアプレースホルダーが含まれる問題を修正 +- 頻出ワード統計にプラットフォームの返信プレースホルダーが含まれる問題を修正 (by [@qikairo7](https://github.com/qikairo7)) +- ワードクラウドのテキストにメディアプレースホルダーが含まれる問題を修正 (by [@qikairo7](https://github.com/qikairo7)) - Jieba カスタム辞書変更後に言語設定キャッシュと単語頻度キャッシュが無効化されない問題を修正 - 時間依存の分析キャッシュが1日ごとに期限切れにならない問題を修正 - タイムラインパネルのデフォルトスクロール位置とセッションジャンプが機能しない問題を修正 @@ -555,7 +555,7 @@ - AI アシスタントのメッセージがチャット領域の幅全体を埋めない問題を修正しました - 分析プラン生成ブロックの表示スタイルを改善しました - 再起動後に思考レベルの選択が保持されない問題を修正しました -- JSONL のタイムスタンプ正規化により差分インポートが失敗する問題を修正しました +- JSONL のタイムスタンプ正規化により差分インポートが失敗する問題を修正しました (by [@cnYui](https://github.com/cnYui)) - 【デスクトップ】execute_sql ツールがデスクトップのツールレジストリに登録されない問題を修正しました ### test @@ -600,8 +600,8 @@ ### ✨ 新機能 -- スラッシュ操作で起動できる AI グラフ実行環境を追加し、会話内で ECharts グラフを生成・表示できるようにしました -- AI グラフ結果の表示体験を改善し、レンダリング状態と複数のグラフ種別への対応を追加しました +- スラッシュ操作で起動できる AI グラフ実行環境を追加し、会話内で ECharts グラフを生成・表示できるようにしました (by [@CEQ151](https://github.com/CEQ151)) +- AI グラフ結果の表示体験を改善し、レンダリング状態と複数のグラフ種別への対応を追加しました (by [@CEQ151](https://github.com/CEQ151)) ### 🐛 バグ修正 @@ -609,7 +609,7 @@ - プリセット質問チップとサイドバー要素の重なり順が崩れる問題を修正しました - 【CLI Web】開発バックエンドのライフサイクル cleanup が不完全になる問題を修正しました - 【デスクトップ】自動スキルでグラフツールが登録されず、グラフスキルを正しく実行できない問題を修正しました -- 【デスクトップ】Windows のタイトルバー overlay がテーマ切り替え後にキャッシュを更新せず、表示が不安定になる問題を修正しました +- 【デスクトップ】Windows のタイトルバー overlay がテーマ切り替え後にキャッシュを更新せず、表示が不安定になる問題を修正しました (by [@CEQ151](https://github.com/CEQ151)) ### ♻️ リファクタリング @@ -666,7 +666,7 @@ - データディレクトリ移行とデータベース移行の複数の境界ケースを修正し、旧データベースの列不足やパス切り替え後の読み取り失敗を防止 - 旧データが存在しない場合やディレクトリ変更後にも移行案内が誤って表示される問題を修正 -- 増分インポート後にサイドバーのメッセージ数が更新されない問題を修正 +- 増分インポート後にサイドバーのメッセージ数が更新されない問題を修正 (by [@CEQ151](https://github.com/CEQ151)) - サイドバーの折りたたみ状態が sessionStorage のみに保存され、再読み込み後に失われる問題を修正 - 保存済みキーで AI 設定を編集する際、モデル取得と検証ボタンが正しく有効化されない問題を修正 - 共有 AI SSE ストリーミングの安定性に関する問題を修正 @@ -717,7 +717,7 @@ ### ✨ 新機能 -- AI返答の任意の箇所から会話を分岐できるFork機能を追加 +- AI返答の任意の箇所から会話を分岐できるFork機能を追加 (by [@CEQ151](https://github.com/CEQ151)) - ステータスバーに推論強度セレクターを追加し、モデルごとに思考レベルを記憶・切替可能に - 推論レベル制御にdefault/autoオプションを追加し、Kimi・Doubao・Geminiなど多数のモデルファミリーに対応 - メッセージ分析ビューを「タイプ分析」と「時間分析」の2タブに分割し、統計インサイトカードを強化 @@ -900,7 +900,7 @@ - Web モードのセッションインデックス、CORS プロキシ、Demo 保護、実行時エラーに関する問題を修正 - Web モードでアプリのバージョンが空表示になる問題を修正 -- AI Agent の根拠取得、Web 側イベントストリーム、エラー整形に関する問題を修正 +- AI Agent の根拠取得、Web 側イベントストリーム、エラー整形に関する問題を修正 (by [@CEQ151](https://github.com/CEQ151)) - 同期表示とインポート処理の不整合を修正 - CLI 開発モードでの ESM モジュール解決問題を修正 - CLI インストール後に既存のデスクトップ版データを見つけられない場合がある問題を修正 @@ -990,7 +990,7 @@ ### ✨ 新機能 -- 会話を購読する際に、種類で絞り込んで選択できるようにしました。 +- 会話を購読する際に、種類で絞り込んで選択できるようにしました。 (by [@xunchahaha](https://github.com/xunchahaha)) - リモート会話のページ分割取得と、必要に応じた追加読み込みに対応しました。 - データソースごとに、1 回の取得で読み込むメッセージ件数を設定できるようにしました。 @@ -1147,7 +1147,7 @@ ### 🐛 バグ修正 - WhatsApp の時刻解析正規表現と行マッチ正規表現の厳密さが一致しない問題を修正 -- WhatsApp の12時間表記時刻と NNBSP 文字の解析互換性問題を修正 +- WhatsApp の12時間表記時刻と NNBSP 文字の解析互換性問題を修正 (by [@kongjiyu](https://github.com/kongjiyu)) ### 🔧 雑務 @@ -1210,7 +1210,7 @@ - AI 会話のスタイルと全体の操作体験を改善 - FTS5 全文検索に対応し、クイック検索ツールを追加 - 一部ツールの検索パラメータを整理し、token 消費を削減 -- Electron アプリ向けに、ポート管理とインスタンス分離に対応した E2E テスト基盤を追加 +- Electron アプリ向けに、ポート管理とインスタンス分離に対応した E2E テスト基盤を追加 (by [@l17728](https://github.com/l17728)) ### 🐛 バグ修正 @@ -1223,7 +1223,7 @@ ### test -- 再利用可能な E2E ランチャーのスモークテストを追加 +- 再利用可能な E2E ランチャーのスモークテストを追加 (by [@l17728](https://github.com/l17728)) ### 📝 ドキュメント @@ -1274,7 +1274,7 @@ ### 🐛 バグ修正 -- メッセージ重複判定の誤検知を修正し、空文字列の重複排除ルールを統一 +- メッセージ重複判定の誤検知を修正し、空文字列の重複排除ルールを統一 (by [@lnexin](https://github.com/lnexin)) - AI会話フローの不具合とフロントエンドのtype-checkエラーを修正 - 例外時のための既定assistantフォールバックを追加 - 日次メッセージ推移が表示されない問題を修正 @@ -1333,7 +1333,7 @@ - チャット履歴の前処理パイプラインを追加 - 前処理設定画面と設定管理機能を追加 -- Agent でセッション単位のコンテキストタイムラインと実行状態を表示 +- Agent でセッション単位のコンテキストタイムラインと実行状態を表示 (by [@n-WN](https://github.com/n-WN)) - AI デバッグモードを追加し、ログの可観測性を向上 ### 🐛 バグ修正 @@ -1413,7 +1413,7 @@ ### 🐛 バグ修正 - 増分更新後にセッション索引の生成範囲が不正確になる問題を修正(fix #79) -- 移行やセッション走査時に非チャット用 SQLite ファイルを誤処理する問題を修正 +- 移行やセッション走査時に非チャット用 SQLite ファイルを誤処理する問題を修正 (by [@n-WN](https://github.com/n-WN)) ### ♻️ リファクタリング @@ -1437,7 +1437,7 @@ ### 🐛 バグ修正 -- LINE チャット履歴の解析問題を修正 +- LINE チャット履歴の解析問題を修正 (by [@haotien91](https://github.com/haotien91)) ### 📝 ドキュメント @@ -1449,9 +1449,9 @@ ### ✨ 新機能 -- 設定画面にデータディレクトリ位置の設定項目を追加 +- 設定画面にデータディレクトリ位置の設定項目を追加 (by [@xunchahaha](https://github.com/xunchahaha)) - データ保存先の移行ロジックを改善 -- ディレクトリ切り替え時の確認ダイアログを追加 +- ディレクトリ切り替え時の確認ダイアログを追加 (by [@xunchahaha](https://github.com/xunchahaha)) - パーサーロジックを改善(WeFlow / Echotrace) ### 🐛 バグ修正 @@ -1459,12 +1459,12 @@ - Windows で大量メッセージを絞り込むとクラッシュする問題を修正 - 外部中継 API が tool_call を返した際に会話が異常終了する問題を修正 - 一部の WhatsApp 履歴を正しく認識できない問題を修正 -- 管理画面のヘッダー階層表示の問題を修正 +- 管理画面のヘッダー階層表示の問題を修正 (by [@xunchahaha](https://github.com/xunchahaha)) ### ♻️ リファクタリング - session 検索モジュールを再構成 -- 移行ログ出力を改善 +- 移行ログ出力を改善 (by [@xunchahaha](https://github.com/xunchahaha)) ## v0.9.2 (2026-02-02) @@ -1603,7 +1603,7 @@ - 増分インポートに対応 - 一括インポートに対応 - スタイルを改善 -- Windows でネイティブウィンドウ操作とテーマ同期に対応(#31) +- Windows でネイティブウィンドウ操作とテーマ同期に対応(#31) (by [@JiQingzhe2004](https://github.com/JiQingzhe2004)) ### 🔧 雑務 @@ -1697,7 +1697,7 @@ - プロキシ設定に対応(resolve #7) - AI モデル画面の操作性を改善 - ユーザー設定 API のチュートリアルを追加 -- 無料の GLM モデル 2 種を追加し、Doubao プロバイダーと最新モデルを追加 +- 無料の GLM モデル 2 種を追加し、Doubao プロバイダーと最新モデルを追加 (by [@JiQingzhe2004](https://github.com/JiQingzhe2004)) - AI 応答で think 内容を出力しないよう調整 ## v0.1.3 (2025-12-25) diff --git a/changelogs/tw.json b/changelogs/tw.json index 6bb37c7d..7389559a 100644 --- a/changelogs/tw.json +++ b/changelogs/tw.json @@ -11,19 +11,37 @@ "新增加長期記憶,可管理偏好、關於我、聯絡人與群組記憶,並依問題自動載入相關內容", "長期記憶可連結來源訊息,方便回到原始對話核對 AI 產生的結論", "統一全域與單一對話 AI 的對話清單、輸入框和 @ 選取操作", - "聊天記錄檢視器可拖曳調整寬度,並記住版面設定", + { + "text": "聊天記錄檢視器可拖曳調整寬度,並記住版面設定", + "contributors": ["KokerZhou"] + }, "分析頁將 SQL 實驗室與除錯工具統一收納至「更多」", - "【CLI】支援透過 Unix Domain Socket 啟動 Web 服務" + { + "text": "【CLI】支援透過 Unix Domain Socket 啟動 Web 服務", + "contributors": ["KokerZhou"] + } ] }, { "type": "fix", "items": [ "修正 WeFlow 與缺少穩定訊息 ID 的聊天記錄在增量匯入、合併時可能過度去重的問題,避免真實訊息遺失", - "修正 AI 回覆失敗後,錯誤狀態、對話清單與後續提問可能異常的問題", - "修正 AI 對話在儲存或編輯時可能留下不完整輪次的問題,並僅允許編輯最新一輪提問", - "修正長對話壓縮可能遺失訊息邊界或記憶來源連結的問題", - "修正同名 AI 服務設定可能讀取錯誤憑證的問題", + { + "text": "修正 AI 回覆失敗後,錯誤狀態、對話清單與後續提問可能異常的問題", + "contributors": ["Sanssssssssssssssss"] + }, + { + "text": "修正 AI 對話在儲存或編輯時可能留下不完整輪次的問題,並僅允許編輯最新一輪提問", + "contributors": ["Sanssssssssssssssss"] + }, + { + "text": "修正長對話壓縮可能遺失訊息邊界或記憶來源連結的問題", + "contributors": ["Sanssssssssssssssss"] + }, + { + "text": "修正同名 AI 服務設定可能讀取錯誤憑證的問題", + "contributors": ["Sanssssssssssssssss"] + }, "修正切換或返回分析頁面時可能重複載入,或繼續顯示匯入前舊資料的問題", "完善跨對話分析的時間範圍、聯絡人解析、掃描預算與截斷提示" ] @@ -50,7 +68,12 @@ }, { "type": "fix", - "items": ["匯入資料夾改為獨立按鈕,避免與選取檔案互相搶入口"] + "items": [ + { + "text": "匯入資料夾改為獨立按鈕,避免與選取檔案互相搶入口", + "contributors": ["kongjiyu"] + } + ] }, { "type": "perf", @@ -140,7 +163,10 @@ "items": [ "修正 QQ 自動匯入在 UID/UIN 變更、缺少 owner 資訊或工作階段已合併時的比對與成員對應問題,避免產生重複工作階段或錯誤的成員身分", "修正合併匯入因平台訊息 ID 衝突或私人聊天身分資訊不足而誤刪訊息的問題,並保留有效的 owner 與工作階段身分資訊", - "修正動態關鍵字排行的請求、快速切換與多色模式,避免顯示過期結果或因未知類型導致頁面當機", + { + "text": "修正動態關鍵字排行的請求、快速切換與多色模式,避免顯示過期結果或因未知類型導致頁面當機", + "contributors": ["kelaocai"] + }, "統一洞察頁面的載入轉場,並恢復年度活動日曆配色與關係檢視切換控制項" ] }, @@ -161,7 +187,10 @@ "QQ Shuakami 與 QQ Chat Exporter 匯入改用 Rust 原生解析,提升大型匯出檔案的處理穩定性", "多檔案匯入加入安全的並行排程,避免同一工作階段同時寫入,並顯示各檔案的進度與失敗資訊", "新增兼顧隱私的匿名產品統計,只回報白名單內的執行環境與功能使用事件", - "【CLI Web】本機語意索引執行元件改為首次使用時按需安裝,Docker 映像仍預先內建所需元件" + { + "text": "【CLI Web】本機語意索引執行元件改為首次使用時按需安裝,Docker 映像仍預先內建所需元件", + "contributors": ["kelaocai"] + } ] }, { @@ -240,19 +269,35 @@ "type": "fix", "items": [ "修正純 Web 版同時存取 OPFS、概覽篩選競態、詞頻統計與關係分析篩選問題", - "前端圖示改為隨應用程式一併封裝,避免執行時依賴外部圖示服務", + { + "text": "前端圖示改為隨應用程式一併封裝,避免執行時依賴外部圖示服務", + "contributors": ["KokerZhou"] + }, "統一 ChatLab JSONL 自動辨識與格式驗證規則,並拒絕無法解析的 owner 資訊", "【桌面版】防止移轉程序刪除目前使用中的資料目錄,並拒絕新舊資料目錄互相巢狀或指向同一路徑", - "【CLI】Docker 部署會保存使用者資料與系統狀態,並預設只將連接埠綁定至 localhost" + { + "text": "【CLI】Docker 部署會保存使用者資料與系統狀態,並預設只將連接埠綁定至 localhost", + "contributors": ["KokerZhou"] + } ] }, { "type": "docs", - "items": ["新增 Docker 部署指南,並補充 AI 分析效益與本機隱私說明"] + "items": [ + { + "text": "新增 Docker 部署指南,並補充 AI 分析效益與本機隱私說明", + "contributors": ["KokerZhou"] + } + ] }, { "type": "ci", - "items": ["發布適用於 amd64 與 arm64 架構的 ChatLab CLI Docker 映像檔"] + "items": [ + { + "text": "發布適用於 amd64 與 arm64 架構的 ChatLab CLI Docker 映像檔", + "contributors": ["KokerZhou"] + } + ] } ] }, @@ -263,7 +308,12 @@ "changes": [ { "type": "feat", - "items": ["【桌面版】新增應用程式鎖定,支援密碼、立即鎖定、啟動時解鎖,以及閒置逾時自動鎖定"] + "items": [ + { + "text": "【桌面版】新增應用程式鎖定,支援密碼、立即鎖定、啟動時解鎖,以及閒置逾時自動鎖定", + "contributors": ["xyz-225648"] + } + ] }, { "type": "fix", @@ -271,7 +321,10 @@ "資料目錄移轉後保留舊資料並提示使用者手動確認清理,避免移轉或重試時誤刪來源檔案", "大型 ChatLab JSONL 改為串流分批處理,避免匯入卡住,並保留合併匯入中的成員頭像", "統一桌面版與 CLI Web 的多檔批次匯入流程,提供循序處理進度、取消與結果摘要", - "【桌面版】應用程式鎖定新增失敗次數限制、冷卻時間與啟動狀態保護,避免重新整理或重新啟動後繞過鎖定" + { + "text": "【桌面版】應用程式鎖定新增失敗次數限制、冷卻時間與啟動狀態保護,避免重新整理或重新啟動後繞過鎖定", + "contributors": ["xyz-225648"] + } ] } ] @@ -334,7 +387,10 @@ "items": [ "統一各端 Push 匯入的驗證、去重、成員推斷與 dry-run 結果,避免預覽與實際寫入不一致", "補匯入歷史訊息後,聊天記錄會依時間與訊息 ID 穩定排序,避免舊訊息出現在最後", - "修正 QCE / QQ Chat Exporter 私人聊天被誤判為群組並產生「0」成員的問題" + { + "text": "修正 QCE / QQ Chat Exporter 私人聊天被誤判為群組並產生「0」成員的問題", + "contributors": ["shuakami"] + } ] } ] @@ -359,7 +415,10 @@ "items": [ "修正 ChatLab JSON 匯出無法直接重新匯入的問題,並保留成員、owner 與別名元資料", "強化自動增量匯入的去重、混合訊息身份識別與 ChatLab 重複匯入判斷", - "WhatsApp TXT 解析支援括號時間戳與點號 AM/PM 標記" + { + "text": "WhatsApp TXT 解析支援括號時間戳與點號 AM/PM 標記", + "contributors": ["hh7418695"] + } ] }, { @@ -415,7 +474,10 @@ "修正 SQL 實驗室匯出 CSV 失敗的問題", "匯入 JSONL 等串流成員資料時保留頭像,並支援增量匯入新頭像", "開啟 AI 日誌改由共享路由處理,讓本機 CLI Web 與桌面端行為一致", - "概覽身份卡會跟隨目前選取的時間範圍更新" + { + "text": "概覽身份卡會跟隨目前選取的時間範圍更新", + "contributors": ["qikairo7"] + } ] }, { @@ -584,8 +646,14 @@ "type": "fix", "items": [ "修正多關鍵字訊息搜尋功能", - "修正詞雲詞典載入 UX 回歸問題", - "修正排行榜標籤與 emoji 清理", + { + "text": "修正詞雲詞典載入 UX 回歸問題", + "contributors": ["qikairo7"] + }, + { + "text": "修正排行榜標籤與 emoji 清理", + "contributors": ["qikairo7"] + }, "修正 v8 資料庫遷移缺少國際化文字的問題", "【CLI】修正工具轉接器中會話上下文傳遞與前處理缺失的問題" ] @@ -612,8 +680,14 @@ { "type": "fix", "items": [ - "修正高頻詞統計中含有平台回覆訊息占位符的問題", - "修正詞雲文字中包含媒體占位符的問題", + { + "text": "修正高頻詞統計中含有平台回覆訊息占位符的問題", + "contributors": ["qikairo7"] + }, + { + "text": "修正詞雲文字中包含媒體占位符的問題", + "contributors": ["qikairo7"] + }, "修正 Jieba 自訂詞典變更後語言偏好快取與詞頻快取未失效的問題", "修正時效性分析快取未按日失效的問題", "修正時間軸面板預設捲動位置及會話跳轉功能失效的問題", @@ -719,7 +793,10 @@ "修正 AI 助理訊息未填滿聊天區域寬度", "改善分析計畫產生區塊的顯示樣式", "修正思考深度選擇跨重新啟動後不持久的問題", - "修正 JSONL 時間戳記規範化導致增量匯入異常", + { + "text": "修正 JSONL 時間戳記規範化導致增量匯入異常", + "contributors": ["cnYui"] + }, "【桌面版】修正 execute_sql 工具未註冊至桌面版工具清單" ] }, @@ -776,8 +853,14 @@ { "type": "feat", "items": [ - "新增以斜線指令觸發的 AI 圖表執行環境,可在對話中產生並渲染 ECharts 圖表", - "改善 AI 圖表結果呈現,補上更清楚的渲染狀態與多種圖表類型支援" + { + "text": "新增以斜線指令觸發的 AI 圖表執行環境,可在對話中產生並渲染 ECharts 圖表", + "contributors": ["CEQ151"] + }, + { + "text": "改善 AI 圖表結果呈現,補上更清楚的渲染狀態與多種圖表類型支援", + "contributors": ["CEQ151"] + } ] }, { @@ -787,7 +870,10 @@ "修正預設問題標籤與側邊欄元素的層疊順序異常", "【CLI Web】修正開發後端生命週期清理不完整的問題", "【桌面版】修正自動技能未註冊圖表工具,導致圖表技能無法完整執行的問題", - "【桌面版】修正 Windows 標題列覆蓋層在切換主題後快取未更新與顯示不順的問題" + { + "text": "【桌面版】修正 Windows 標題列覆蓋層在切換主題後快取未更新與顯示不順的問題", + "contributors": ["CEQ151"] + } ] }, { @@ -860,7 +946,10 @@ "items": [ "修正資料目錄遷移與資料庫遷移流程中的多個邊界情境,避免舊資料庫欄位缺失或路徑切換後讀取失敗", "修正舊資料不存在或目錄變更後,資料遷移提示仍錯誤顯示的問題", - "修正增量匯入後側邊欄訊息數量未更新的問題", + { + "text": "修正增量匯入後側邊欄訊息數量未更新的問題", + "contributors": ["CEQ151"] + }, "修正側邊欄收合狀態只存於 sessionStorage,導致重新整理後遺失的問題", "修正編輯 AI 設定且已儲存金鑰時,拉取模型與驗證按鈕未正確啟用的問題", "修正 AI 共享 SSE 串流回應的穩定性問題", @@ -925,7 +1014,10 @@ { "type": "feat", "items": [ - "新增訊息分叉(Fork)功能,可從任意 AI 回覆處建立獨立分支對話", + { + "text": "新增訊息分叉(Fork)功能,可從任意 AI 回覆處建立獨立分支對話", + "contributors": ["CEQ151"] + }, "狀態列新增推理強度選擇器,支援為每個推理模型個別記憶並切換思維等級", "推理等級控制新增 default/auto 選項,擴展對 Kimi、Doubao、Gemini 等更多模型系列的支援", "訊息分析檢視拆分為「類型分析」與「時間分析」兩個分頁,提供豐富統計洞察卡片", @@ -1144,7 +1236,10 @@ "items": [ "修復 Web 模式下會話索引、跨來源代理、Demo 保護與執行階段錯誤等問題", "修復 Web 模式下應用程式版本顯示為空的問題", - "修復 AI Agent 證據檢索、Web 端事件串流與錯誤格式化等問題", + { + "text": "修復 AI Agent 證據檢索、Web 端事件串流與錯誤格式化等問題", + "contributors": ["CEQ151"] + }, "修復同步顯示與匯入邏輯不一致的問題", "修復 CLI 開發模式下的 ESM 模組解析問題", "修復 CLI 安裝後可能找不到既有桌面版資料的問題", @@ -1255,7 +1350,10 @@ { "type": "feat", "items": [ - "訂閱會話時支援依類型篩選與選取", + { + "text": "訂閱會話時支援依類型篩選與選取", + "contributors": ["xunchahaha"] + }, "支援遠端會話分頁發現與按需載入更多", "支援為資料來源設定每次拉取的訊息數量" ] @@ -1457,7 +1555,10 @@ "type": "fix", "items": [ "修正 WhatsApp 時間解析正則與行匹配正則寬嚴不一致的問題", - "修正 WhatsApp 12 小時制時間與 NNBSP 字元的解析相容性問題" + { + "text": "修正 WhatsApp 12 小時制時間與 NNBSP 字元的解析相容性問題", + "contributors": ["kongjiyu"] + } ] }, { @@ -1532,7 +1633,10 @@ "優化 AI 對話樣式與整體互動體驗", "支援 FTS5 全文搜尋,並新增快速搜尋工具", "精簡部分工具的搜尋參數,降低 token 消耗", - "新增 Electron 應用 E2E 測試框架,支援連接埠管理與實例隔離" + { + "text": "新增 Electron 應用 E2E 測試框架,支援連接埠管理與實例隔離", + "contributors": ["l17728"] + } ] }, { @@ -1545,7 +1649,12 @@ }, { "type": "test", - "items": ["補充可重複使用的 E2E 啟動器冒煙測試能力"] + "items": [ + { + "text": "補充可重複使用的 E2E 啟動器冒煙測試能力", + "contributors": ["l17728"] + } + ] }, { "type": "docs", @@ -1607,7 +1716,10 @@ { "type": "fix", "items": [ - "修復訊息去重誤判,並統一空字串的去重行為", + { + "text": "修復訊息去重誤判,並統一空字串的去重行為", + "contributors": ["lnexin"] + }, "修復 AI 對話流程與前端 type-check 錯誤", "補上預設 assistant 的兜底邏輯,修復例外情境", "修復每日訊息趨勢未顯示的問題" @@ -1674,7 +1786,10 @@ "items": [ "新增聊天紀錄前處理流程", "新增前處理設定介面與設定管理能力", - "Agent 支援依會話顯示上下文時間軸與執行狀態", + { + "text": "Agent 支援依會話顯示上下文時間軸與執行狀態", + "contributors": ["n-WN"] + }, "新增 AI 除錯模式並提升日誌可觀測性" ] }, @@ -1771,7 +1886,10 @@ "type": "fix", "items": [ "修復增量更新後會話索引產生範圍不準確的問題(fix #79)", - "修復遷移與會話掃描時誤處理非聊天 SQLite 檔案的問題" + { + "text": "修復遷移與會話掃描時誤處理非聊天 SQLite 檔案的問題", + "contributors": ["n-WN"] + } ] }, { @@ -1801,7 +1919,12 @@ }, { "type": "fix", - "items": ["修復 LINE 聊天紀錄解析問題"] + "items": [ + { + "text": "修復 LINE 聊天紀錄解析問題", + "contributors": ["haotien91"] + } + ] }, { "type": "docs", @@ -1817,9 +1940,15 @@ { "type": "feat", "items": [ - "設定中新增資料目錄位置選項", + { + "text": "設定中新增資料目錄位置選項", + "contributors": ["xunchahaha"] + }, "優化資料儲存目錄遷移邏輯", - "切換目錄時新增確認彈窗", + { + "text": "切換目錄時新增確認彈窗", + "contributors": ["xunchahaha"] + }, "優化解析邏輯(WeFlow / Echotrace)" ] }, @@ -1829,12 +1958,21 @@ "修復 Windows 自訂篩選時訊息量過大導致崩潰的問題", "修復第三方中轉 API 呼叫 tool_call 導致對話異常結束的問題", "修復部分 WhatsApp 聊天紀錄無法正確辨識的問題", - "修復管理頁表頭層級顯示問題" + { + "text": "修復管理頁表頭層級顯示問題", + "contributors": ["xunchahaha"] + } ] }, { "type": "refactor", - "items": ["重構 session 查詢模組", "補強遷移日誌輸出"] + "items": [ + "重構 session 查詢模組", + { + "text": "補強遷移日誌輸出", + "contributors": ["xunchahaha"] + } + ] } ] }, @@ -2010,7 +2148,10 @@ "支援增量匯入", "支援批次匯入", "優化樣式", - "Windows 端支援原生視窗控制並實作主題同步(#31)" + { + "text": "Windows 端支援原生視窗控制並實作主題同步(#31)", + "contributors": ["JiQingzhe2004"] + } ] }, { @@ -2128,7 +2269,10 @@ "支援設定代理(resolve #7)", "優化 AI 模型介面互動", "新增使用者設定 API 教學", - "新增 2 個免費 GLM 模型,並加入豆包服務商與最新模型", + { + "text": "新增 2 個免費 GLM 模型,並加入豆包服務商與最新模型", + "contributors": ["JiQingzhe2004"] + }, "AI 回覆不再輸出 think 內容" ] } diff --git a/changelogs/tw.md b/changelogs/tw.md index 311836f6..9af1a353 100644 --- a/changelogs/tw.md +++ b/changelogs/tw.md @@ -10,17 +10,17 @@ - 新增加長期記憶,可管理偏好、關於我、聯絡人與群組記憶,並依問題自動載入相關內容 - 長期記憶可連結來源訊息,方便回到原始對話核對 AI 產生的結論 - 統一全域與單一對話 AI 的對話清單、輸入框和 @ 選取操作 -- 聊天記錄檢視器可拖曳調整寬度,並記住版面設定 +- 聊天記錄檢視器可拖曳調整寬度,並記住版面設定 (by [@KokerZhou](https://github.com/KokerZhou)) - 分析頁將 SQL 實驗室與除錯工具統一收納至「更多」 -- 【CLI】支援透過 Unix Domain Socket 啟動 Web 服務 +- 【CLI】支援透過 Unix Domain Socket 啟動 Web 服務 (by [@KokerZhou](https://github.com/KokerZhou)) ### 🐛 修復 - 修正 WeFlow 與缺少穩定訊息 ID 的聊天記錄在增量匯入、合併時可能過度去重的問題,避免真實訊息遺失 -- 修正 AI 回覆失敗後,錯誤狀態、對話清單與後續提問可能異常的問題 -- 修正 AI 對話在儲存或編輯時可能留下不完整輪次的問題,並僅允許編輯最新一輪提問 -- 修正長對話壓縮可能遺失訊息邊界或記憶來源連結的問題 -- 修正同名 AI 服務設定可能讀取錯誤憑證的問題 +- 修正 AI 回覆失敗後,錯誤狀態、對話清單與後續提問可能異常的問題 (by [@Sanssssssssssssssss](https://github.com/Sanssssssssssssssss)) +- 修正 AI 對話在儲存或編輯時可能留下不完整輪次的問題,並僅允許編輯最新一輪提問 (by [@Sanssssssssssssssss](https://github.com/Sanssssssssssssssss)) +- 修正長對話壓縮可能遺失訊息邊界或記憶來源連結的問題 (by [@Sanssssssssssssssss](https://github.com/Sanssssssssssssssss)) +- 修正同名 AI 服務設定可能讀取錯誤憑證的問題 (by [@Sanssssssssssssssss](https://github.com/Sanssssssssssssssss)) - 修正切換或返回分析頁面時可能重複載入,或繼續顯示匯入前舊資料的問題 - 完善跨對話分析的時間範圍、聯絡人解析、掃描預算與截斷提示 @@ -41,7 +41,7 @@ ### 🐛 修復 -- 匯入資料夾改為獨立按鈕,避免與選取檔案互相搶入口 +- 匯入資料夾改為獨立按鈕,避免與選取檔案互相搶入口 (by [@kongjiyu](https://github.com/kongjiyu)) ### ⚡ 效能 @@ -109,7 +109,7 @@ - 修正 QQ 自動匯入在 UID/UIN 變更、缺少 owner 資訊或工作階段已合併時的比對與成員對應問題,避免產生重複工作階段或錯誤的成員身分 - 修正合併匯入因平台訊息 ID 衝突或私人聊天身分資訊不足而誤刪訊息的問題,並保留有效的 owner 與工作階段身分資訊 -- 修正動態關鍵字排行的請求、快速切換與多色模式,避免顯示過期結果或因未知類型導致頁面當機 +- 修正動態關鍵字排行的請求、快速切換與多色模式,避免顯示過期結果或因未知類型導致頁面當機 (by [@kelaocai](https://github.com/kelaocai)) - 統一洞察頁面的載入轉場,並恢復年度活動日曆配色與關係檢視切換控制項 ### ⚡ 效能 @@ -125,7 +125,7 @@ - QQ Shuakami 與 QQ Chat Exporter 匯入改用 Rust 原生解析,提升大型匯出檔案的處理穩定性 - 多檔案匯入加入安全的並行排程,避免同一工作階段同時寫入,並顯示各檔案的進度與失敗資訊 - 新增兼顧隱私的匿名產品統計,只回報白名單內的執行環境與功能使用事件 -- 【CLI Web】本機語意索引執行元件改為首次使用時按需安裝,Docker 映像仍預先內建所需元件 +- 【CLI Web】本機語意索引執行元件改為首次使用時按需安裝,Docker 映像仍預先內建所需元件 (by [@kelaocai](https://github.com/kelaocai)) ### 🐛 修復 @@ -183,18 +183,18 @@ ### 🐛 修復 - 修正純 Web 版同時存取 OPFS、概覽篩選競態、詞頻統計與關係分析篩選問題 -- 前端圖示改為隨應用程式一併封裝,避免執行時依賴外部圖示服務 +- 前端圖示改為隨應用程式一併封裝,避免執行時依賴外部圖示服務 (by [@KokerZhou](https://github.com/KokerZhou)) - 統一 ChatLab JSONL 自動辨識與格式驗證規則,並拒絕無法解析的 owner 資訊 - 【桌面版】防止移轉程序刪除目前使用中的資料目錄,並拒絕新舊資料目錄互相巢狀或指向同一路徑 -- 【CLI】Docker 部署會保存使用者資料與系統狀態,並預設只將連接埠綁定至 localhost +- 【CLI】Docker 部署會保存使用者資料與系統狀態,並預設只將連接埠綁定至 localhost (by [@KokerZhou](https://github.com/KokerZhou)) ### 📝 文件 -- 新增 Docker 部署指南,並補充 AI 分析效益與本機隱私說明 +- 新增 Docker 部署指南,並補充 AI 分析效益與本機隱私說明 (by [@KokerZhou](https://github.com/KokerZhou)) ### 👷 CI -- 發布適用於 amd64 與 arm64 架構的 ChatLab CLI Docker 映像檔 +- 發布適用於 amd64 與 arm64 架構的 ChatLab CLI Docker 映像檔 (by [@KokerZhou](https://github.com/KokerZhou)) ## v0.32.0 (2026-07-18) @@ -202,14 +202,14 @@ ### ✨ 新功能 -- 【桌面版】新增應用程式鎖定,支援密碼、立即鎖定、啟動時解鎖,以及閒置逾時自動鎖定 +- 【桌面版】新增應用程式鎖定,支援密碼、立即鎖定、啟動時解鎖,以及閒置逾時自動鎖定 (by [@xyz-225648](https://github.com/xyz-225648)) ### 🐛 修復 - 資料目錄移轉後保留舊資料並提示使用者手動確認清理,避免移轉或重試時誤刪來源檔案 - 大型 ChatLab JSONL 改為串流分批處理,避免匯入卡住,並保留合併匯入中的成員頭像 - 統一桌面版與 CLI Web 的多檔批次匯入流程,提供循序處理進度、取消與結果摘要 -- 【桌面版】應用程式鎖定新增失敗次數限制、冷卻時間與啟動狀態保護,避免重新整理或重新啟動後繞過鎖定 +- 【桌面版】應用程式鎖定新增失敗次數限制、冷卻時間與啟動狀態保護,避免重新整理或重新啟動後繞過鎖定 (by [@xyz-225648](https://github.com/xyz-225648)) ## v0.31.3 (2026-07-17) @@ -253,7 +253,7 @@ - 統一各端 Push 匯入的驗證、去重、成員推斷與 dry-run 結果,避免預覽與實際寫入不一致 - 補匯入歷史訊息後,聊天記錄會依時間與訊息 ID 穩定排序,避免舊訊息出現在最後 -- 修正 QCE / QQ Chat Exporter 私人聊天被誤判為群組並產生「0」成員的問題 +- 修正 QCE / QQ Chat Exporter 私人聊天被誤判為群組並產生「0」成員的問題 (by [@shuakami](https://github.com/shuakami)) ## v0.31.0 (2026-07-13) @@ -271,7 +271,7 @@ - 修正 ChatLab JSON 匯出無法直接重新匯入的問題,並保留成員、owner 與別名元資料 - 強化自動增量匯入的去重、混合訊息身份識別與 ChatLab 重複匯入判斷 -- WhatsApp TXT 解析支援括號時間戳與點號 AM/PM 標記 +- WhatsApp TXT 解析支援括號時間戳與點號 AM/PM 標記 (by [@hh7418695](https://github.com/hh7418695)) ### ♻️ 重構 @@ -314,7 +314,7 @@ - 修正 SQL 實驗室匯出 CSV 失敗的問題 - 匯入 JSONL 等串流成員資料時保留頭像,並支援增量匯入新頭像 - 開啟 AI 日誌改由共享路由處理,讓本機 CLI Web 與桌面端行為一致 -- 概覽身份卡會跟隨目前選取的時間範圍更新 +- 概覽身份卡會跟隨目前選取的時間範圍更新 (by [@qikairo7](https://github.com/qikairo7)) ### 📝 文件 @@ -445,8 +445,8 @@ ### 🐛 修復 - 修正多關鍵字訊息搜尋功能 -- 修正詞雲詞典載入 UX 回歸問題 -- 修正排行榜標籤與 emoji 清理 +- 修正詞雲詞典載入 UX 回歸問題 (by [@qikairo7](https://github.com/qikairo7)) +- 修正排行榜標籤與 emoji 清理 (by [@qikairo7](https://github.com/qikairo7)) - 修正 v8 資料庫遷移缺少國際化文字的問題 - 【CLI】修正工具轉接器中會話上下文傳遞與前處理缺失的問題 @@ -466,8 +466,8 @@ ### 🐛 修復 -- 修正高頻詞統計中含有平台回覆訊息占位符的問題 -- 修正詞雲文字中包含媒體占位符的問題 +- 修正高頻詞統計中含有平台回覆訊息占位符的問題 (by [@qikairo7](https://github.com/qikairo7)) +- 修正詞雲文字中包含媒體占位符的問題 (by [@qikairo7](https://github.com/qikairo7)) - 修正 Jieba 自訂詞典變更後語言偏好快取與詞頻快取未失效的問題 - 修正時效性分析快取未按日失效的問題 - 修正時間軸面板預設捲動位置及會話跳轉功能失效的問題 @@ -555,7 +555,7 @@ - 修正 AI 助理訊息未填滿聊天區域寬度 - 改善分析計畫產生區塊的顯示樣式 - 修正思考深度選擇跨重新啟動後不持久的問題 -- 修正 JSONL 時間戳記規範化導致增量匯入異常 +- 修正 JSONL 時間戳記規範化導致增量匯入異常 (by [@cnYui](https://github.com/cnYui)) - 【桌面版】修正 execute_sql 工具未註冊至桌面版工具清單 ### test @@ -600,8 +600,8 @@ ### ✨ 新功能 -- 新增以斜線指令觸發的 AI 圖表執行環境,可在對話中產生並渲染 ECharts 圖表 -- 改善 AI 圖表結果呈現,補上更清楚的渲染狀態與多種圖表類型支援 +- 新增以斜線指令觸發的 AI 圖表執行環境,可在對話中產生並渲染 ECharts 圖表 (by [@CEQ151](https://github.com/CEQ151)) +- 改善 AI 圖表結果呈現,補上更清楚的渲染狀態與多種圖表類型支援 (by [@CEQ151](https://github.com/CEQ151)) ### 🐛 修復 @@ -609,7 +609,7 @@ - 修正預設問題標籤與側邊欄元素的層疊順序異常 - 【CLI Web】修正開發後端生命週期清理不完整的問題 - 【桌面版】修正自動技能未註冊圖表工具,導致圖表技能無法完整執行的問題 -- 【桌面版】修正 Windows 標題列覆蓋層在切換主題後快取未更新與顯示不順的問題 +- 【桌面版】修正 Windows 標題列覆蓋層在切換主題後快取未更新與顯示不順的問題 (by [@CEQ151](https://github.com/CEQ151)) ### ♻️ 重構 @@ -666,7 +666,7 @@ - 修正資料目錄遷移與資料庫遷移流程中的多個邊界情境,避免舊資料庫欄位缺失或路徑切換後讀取失敗 - 修正舊資料不存在或目錄變更後,資料遷移提示仍錯誤顯示的問題 -- 修正增量匯入後側邊欄訊息數量未更新的問題 +- 修正增量匯入後側邊欄訊息數量未更新的問題 (by [@CEQ151](https://github.com/CEQ151)) - 修正側邊欄收合狀態只存於 sessionStorage,導致重新整理後遺失的問題 - 修正編輯 AI 設定且已儲存金鑰時,拉取模型與驗證按鈕未正確啟用的問題 - 修正 AI 共享 SSE 串流回應的穩定性問題 @@ -717,7 +717,7 @@ ### ✨ 新功能 -- 新增訊息分叉(Fork)功能,可從任意 AI 回覆處建立獨立分支對話 +- 新增訊息分叉(Fork)功能,可從任意 AI 回覆處建立獨立分支對話 (by [@CEQ151](https://github.com/CEQ151)) - 狀態列新增推理強度選擇器,支援為每個推理模型個別記憶並切換思維等級 - 推理等級控制新增 default/auto 選項,擴展對 Kimi、Doubao、Gemini 等更多模型系列的支援 - 訊息分析檢視拆分為「類型分析」與「時間分析」兩個分頁,提供豐富統計洞察卡片 @@ -900,7 +900,7 @@ - 修復 Web 模式下會話索引、跨來源代理、Demo 保護與執行階段錯誤等問題 - 修復 Web 模式下應用程式版本顯示為空的問題 -- 修復 AI Agent 證據檢索、Web 端事件串流與錯誤格式化等問題 +- 修復 AI Agent 證據檢索、Web 端事件串流與錯誤格式化等問題 (by [@CEQ151](https://github.com/CEQ151)) - 修復同步顯示與匯入邏輯不一致的問題 - 修復 CLI 開發模式下的 ESM 模組解析問題 - 修復 CLI 安裝後可能找不到既有桌面版資料的問題 @@ -990,7 +990,7 @@ ### ✨ 新功能 -- 訂閱會話時支援依類型篩選與選取 +- 訂閱會話時支援依類型篩選與選取 (by [@xunchahaha](https://github.com/xunchahaha)) - 支援遠端會話分頁發現與按需載入更多 - 支援為資料來源設定每次拉取的訊息數量 @@ -1147,7 +1147,7 @@ ### 🐛 修復 - 修正 WhatsApp 時間解析正則與行匹配正則寬嚴不一致的問題 -- 修正 WhatsApp 12 小時制時間與 NNBSP 字元的解析相容性問題 +- 修正 WhatsApp 12 小時制時間與 NNBSP 字元的解析相容性問題 (by [@kongjiyu](https://github.com/kongjiyu)) ### 🔧 雜項 @@ -1210,7 +1210,7 @@ - 優化 AI 對話樣式與整體互動體驗 - 支援 FTS5 全文搜尋,並新增快速搜尋工具 - 精簡部分工具的搜尋參數,降低 token 消耗 -- 新增 Electron 應用 E2E 測試框架,支援連接埠管理與實例隔離 +- 新增 Electron 應用 E2E 測試框架,支援連接埠管理與實例隔離 (by [@l17728](https://github.com/l17728)) ### 🐛 修復 @@ -1223,7 +1223,7 @@ ### test -- 補充可重複使用的 E2E 啟動器冒煙測試能力 +- 補充可重複使用的 E2E 啟動器冒煙測試能力 (by [@l17728](https://github.com/l17728)) ### 📝 文件 @@ -1274,7 +1274,7 @@ ### 🐛 修復 -- 修復訊息去重誤判,並統一空字串的去重行為 +- 修復訊息去重誤判,並統一空字串的去重行為 (by [@lnexin](https://github.com/lnexin)) - 修復 AI 對話流程與前端 type-check 錯誤 - 補上預設 assistant 的兜底邏輯,修復例外情境 - 修復每日訊息趨勢未顯示的問題 @@ -1333,7 +1333,7 @@ - 新增聊天紀錄前處理流程 - 新增前處理設定介面與設定管理能力 -- Agent 支援依會話顯示上下文時間軸與執行狀態 +- Agent 支援依會話顯示上下文時間軸與執行狀態 (by [@n-WN](https://github.com/n-WN)) - 新增 AI 除錯模式並提升日誌可觀測性 ### 🐛 修復 @@ -1413,7 +1413,7 @@ ### 🐛 修復 - 修復增量更新後會話索引產生範圍不準確的問題(fix #79) -- 修復遷移與會話掃描時誤處理非聊天 SQLite 檔案的問題 +- 修復遷移與會話掃描時誤處理非聊天 SQLite 檔案的問題 (by [@n-WN](https://github.com/n-WN)) ### ♻️ 重構 @@ -1437,7 +1437,7 @@ ### 🐛 修復 -- 修復 LINE 聊天紀錄解析問題 +- 修復 LINE 聊天紀錄解析問題 (by [@haotien91](https://github.com/haotien91)) ### 📝 文件 @@ -1449,9 +1449,9 @@ ### ✨ 新功能 -- 設定中新增資料目錄位置選項 +- 設定中新增資料目錄位置選項 (by [@xunchahaha](https://github.com/xunchahaha)) - 優化資料儲存目錄遷移邏輯 -- 切換目錄時新增確認彈窗 +- 切換目錄時新增確認彈窗 (by [@xunchahaha](https://github.com/xunchahaha)) - 優化解析邏輯(WeFlow / Echotrace) ### 🐛 修復 @@ -1459,12 +1459,12 @@ - 修復 Windows 自訂篩選時訊息量過大導致崩潰的問題 - 修復第三方中轉 API 呼叫 tool_call 導致對話異常結束的問題 - 修復部分 WhatsApp 聊天紀錄無法正確辨識的問題 -- 修復管理頁表頭層級顯示問題 +- 修復管理頁表頭層級顯示問題 (by [@xunchahaha](https://github.com/xunchahaha)) ### ♻️ 重構 - 重構 session 查詢模組 -- 補強遷移日誌輸出 +- 補強遷移日誌輸出 (by [@xunchahaha](https://github.com/xunchahaha)) ## v0.9.2 (2026-02-02) @@ -1603,7 +1603,7 @@ - 支援增量匯入 - 支援批次匯入 - 優化樣式 -- Windows 端支援原生視窗控制並實作主題同步(#31) +- Windows 端支援原生視窗控制並實作主題同步(#31) (by [@JiQingzhe2004](https://github.com/JiQingzhe2004)) ### 🔧 雜項 @@ -1697,7 +1697,7 @@ - 支援設定代理(resolve #7) - 優化 AI 模型介面互動 - 新增使用者設定 API 教學 -- 新增 2 個免費 GLM 模型,並加入豆包服務商與最新模型 +- 新增 2 個免費 GLM 模型,並加入豆包服務商與最新模型 (by [@JiQingzhe2004](https://github.com/JiQingzhe2004)) - AI 回覆不再輸出 think 內容 ## v0.1.3 (2025-12-25) diff --git a/scripts/changelog-to-markdown.mjs b/scripts/changelog-to-markdown.mjs index 3f49d62d..8966344e 100644 --- a/scripts/changelog-to-markdown.mjs +++ b/scripts/changelog-to-markdown.mjs @@ -26,14 +26,14 @@ const LOCALES = [ /** type → 各语言的标题(含 emoji)。缺失 type 回退为原始字符串,兼容未来扩展。 */ const TYPE_LABELS = { - feat: { cn: '✨ 新功能', en: '✨ Features', tw: '✨ 新功能', ja: '✨ 新機能' }, - fix: { cn: '🐛 修复', en: '🐛 Bug Fixes', tw: '🐛 修復', ja: '🐛 バグ修正' }, - refactor: { cn: '♻️ 重构', en: '♻️ Refactoring', tw: '♻️ 重構', ja: '♻️ リファクタリング' }, - perf: { cn: '⚡ 性能', en: '⚡ Performance', tw: '⚡ 效能', ja: '⚡ パフォーマンス' }, - docs: { cn: '📝 文档', en: '📝 Documentation', tw: '📝 文件', ja: '📝 ドキュメント' }, - style: { cn: '💄 样式', en: '💄 Styles', tw: '💄 樣式', ja: '💄 スタイル' }, - ci: { cn: '👷 CI', en: '👷 CI', tw: '👷 CI', ja: '👷 CI' }, - chore: { cn: '🔧 杂项', en: '🔧 Chores', tw: '🔧 雜項', ja: '🔧 雑務' }, + feat: { cn: '✨ 新功能', en: '✨ Features', tw: '✨ 新功能', ja: '✨ 新機能' }, + fix: { cn: '🐛 修复', en: '🐛 Bug Fixes', tw: '🐛 修復', ja: '🐛 バグ修正' }, + refactor: { cn: '♻️ 重构', en: '♻️ Refactoring', tw: '♻️ 重構', ja: '♻️ リファクタリング' }, + perf: { cn: '⚡ 性能', en: '⚡ Performance', tw: '⚡ 效能', ja: '⚡ パフォーマンス' }, + docs: { cn: '📝 文档', en: '📝 Documentation', tw: '📝 文件', ja: '📝 ドキュメント' }, + style: { cn: '💄 样式', en: '💄 Styles', tw: '💄 樣式', ja: '💄 スタイル' }, + ci: { cn: '👷 CI', en: '👷 CI', tw: '👷 CI', ja: '👷 CI' }, + chore: { cn: '🔧 杂项', en: '🔧 Chores', tw: '🔧 雜項', ja: '🔧 雑務' }, } // ── 渲染函数 ──────────────────────────────────────────────────────────────── @@ -44,6 +44,16 @@ const TYPE_LABELS = { * @param {string} langKey - 'cn' | 'en' | 'tw' | 'ja'(用于 type 标题查表) * @param {Array} entries - changelog 数组 */ +function renderChangelogItem(item) { + if (typeof item === 'string') return item + + const contributors = Array.isArray(item.contributors) ? item.contributors : [] + if (contributors.length === 0) return item.text + + const links = contributors.map((login) => `[@${login}](https://github.com/${encodeURIComponent(login)})`).join(', ') + return `${item.text} (by ${links})` +} + function renderMarkdown(h1, langKey, entries) { const lines = [`# ${h1}`, ''] @@ -66,7 +76,7 @@ function renderMarkdown(h1, langKey, entries) { lines.push(`### ${label}`) lines.push('') for (const item of items) { - lines.push(`- ${item}`) + lines.push(`- ${renderChangelogItem(item)}`) } lines.push('') } @@ -83,7 +93,7 @@ let hasError = false for (const { key, h1 } of LOCALES) { const jsonPath = resolve(ROOT, 'changelogs', `${key}.json`) - const mdPath = resolve(ROOT, 'changelogs', `${key}.md`) + const mdPath = resolve(ROOT, 'changelogs', `${key}.md`) let entries try { diff --git a/src/components/home/ChangelogModal.vue b/src/components/home/ChangelogModal.vue index da33ccd1..491056d3 100644 --- a/src/components/home/ChangelogModal.vue +++ b/src/components/home/ChangelogModal.vue @@ -8,8 +8,11 @@ import { getChangeTypeConfig } from './changelogTypeConfig' import { usePlatformService } from '@/services' import CaptureButton from '@/components/common/CaptureButton.vue' import { + getChangelogItemContributors, + getChangelogItemText, getBundledChangelogs, getBundledLatestVersion, + getGithubContributorUrl, hasBundledChangelogVersion, isBundledLatestVersion, normalizeChangelogVersion, @@ -370,7 +373,26 @@ defineExpose({ open, openWithData, close, fetchChangelogs, getLatestVersion, che class="relative text-sm text-gray-600 dark:text-gray-400" > - {{ item }} + {{ getChangelogItemText(item) }} + + (by  + + ) + diff --git a/src/components/home/changelogData.ts b/src/components/home/changelogData.ts index 1491173e..a51fc668 100644 --- a/src/components/home/changelogData.ts +++ b/src/components/home/changelogData.ts @@ -5,13 +5,20 @@ import twChangelogs from '../../../changelogs/tw.json' export type ChangelogChangeType = 'feat' | 'fix' | 'refactor' | 'docs' | 'chore' | 'style' | 'ci' +export interface StructuredChangelogChangeItem { + text: string + contributors?: string[] +} + +export type ChangelogChangeItem = string | StructuredChangelogChangeItem + export interface ChangelogItem { version: string date: string summary: string changes: { type: ChangelogChangeType - items: string[] + items: ChangelogChangeItem[] }[] } @@ -26,6 +33,18 @@ export function normalizeChangelogVersion(version?: string | null) { return version ? version.trim().replace(/^v/i, '') : null } +export function getChangelogItemText(item: ChangelogChangeItem) { + return typeof item === 'string' ? item : item.text +} + +export function getChangelogItemContributors(item: ChangelogChangeItem) { + return typeof item === 'string' ? [] : (item.contributors ?? []) +} + +export function getGithubContributorUrl(login: string) { + return `https://github.com/${encodeURIComponent(login)}` +} + export function getBundledChangelogs(locale: string): ChangelogItem[] { return BUNDLED_CHANGELOGS[locale] ?? BUNDLED_CHANGELOGS['en-US'] }