95 Commits
Author SHA1 Message Date
2977094657 7c5a18a3b5 fix(chat): persist packaged renderer diagnostics 2026-03-16 15:53:11 +08:00
2977094657 64c3e5e826 fix(chat): add packaged freeze diagnostics 2026-03-16 15:39:11 +08:00
2977094657 458a19a55d fix(chat-ui): 修复右键菜单越界和上下文模式状态丢失
- 为聊天右键菜单增加视口内重定位,避免菜单显示到屏幕外
- 在异步加载编辑状态后重新计算位置,并限制菜单高度支持滚动
- 补回 searchContext 状态传递,恢复上下文模式下的筛选禁用和提示横幅
2026-03-16 12:34:58 +08:00
2977094657 16a7e410a1 fix(chat-build): 避免预渲染阶段请求本地接口
- 移除聊天页 setup 阶段的服务端会话预取\n- 改为客户端挂载后再加载账号和会话数据\n- 修复 nuxt generate 在发布机构建时访问本地聊天接口导致的失败
2026-03-16 11:07:52 +08:00
2977094657 965cbd1aa5 refactor(chat-ui): 拆分聊天页组件并抽离组合式逻辑
- 将聊天页从超大单文件拆分为会话列表、会话面板、消息列表、消息项和覆盖层组件\n- 抽离会话、消息、搜索、导出、编辑、历史窗口等组合式逻辑\n- 下沉消息格式化、消息归一化、聊天记录解析与文件图标等工具模块\n- 新增 chat.css 并在 Nuxt 中注册,统一聊天页样式
2026-03-15 23:38:31 +08:00
2977094657 b8d0912907 fix(dev-runtime): 统一开发端口并优化页面初始化
- 新增 dev 启动脚本,自动分配前后端端口并等待 Nuxt 就绪后再启动 Electron
- 开发模式忽略持久化 API 覆盖,统一 Nuxt 与桌面端端口配置
- API 健康检查改为挂载后执行,聊天页预取改为 lazy,并隐藏搜索区账号切换
2026-03-15 19:35:36 +08:00
Alfred Tang a79ff81be0 fix: resolve chat messages not loading due to Nuxt auto-import bug and WCDB timeout
- Move frontend/utils/ to frontend/lib/ to avoid Nuxt unimport scanner
  incorrectly extracting function parameter names (value, fallback) as
  module-level exports, which injected phantom imports that broke all
  client-side JavaScript execution
- Update all import paths across 13 files from ~/utils/ to ~/lib/
- Add timeout (5s) and negative cache (60s TTL) to WCDB realtime
  ensure_connected() to prevent open_account() from hanging indefinitely
  when the WeChat database is locked
- Reorder selectContact() to fire loadMessages() before navigateTo() so
  the message fetch starts before route navigation triggers Suspense
- Add watch: false to SSR useAsyncData calls to prevent unnecessary
  re-fetching on client-side route changes
2026-03-14 17:17:10 +08:00
2977094657 a4acd32bb3 fix(logging): 完善服务端错误日志记录并支持设置页打开日志
- 为后端增加 5xx 请求与未处理异常日志记录
- 新增前端服务端错误上报工具与管理接口
- 在聊天导出、朋友圈信息加载、通用 API 请求中补充错误上报
- 设置页新增日志文件路径展示与一键打开能力
- 增加服务端错误日志相关测试
2026-03-12 19:01:47 +08:00
2977094657 e349e0cfe3 修复桌面端视频查看 2026-03-09 20:31:53 +08:00
2977094657 16a13af18a feat(chat): 支持位置消息与小程序卡片解析展示
- 新增位置消息解析,补充经纬度、地点名和地址字段
- 修复小程序分享 type 识别,避免嵌套 type 干扰
- 聊天页新增位置卡片展示,并补充小程序卡片样式
- 导出、搜索和会话预览同步支持位置消息
- 补充位置导出与小程序解析测试
2026-03-06 21:19:15 +08:00
2977094657 b5200713b3 refactor(frontend-api): 统一 useApiBase 并移除 localhost:8000 硬编码 2026-02-28 18:43:48 +08:00
2977094657 8a101b4c5e feat(settings): 设置弹窗支持后端端口切换(桌面/网页) 2026-02-28 18:43:48 +08:00
H3CoF6 5f404d694c fix: fix merge conflict 2026-02-28 00:22:37 +08:00
H3CoF6 a4c8d580eb fix: return aes_key to frontend 2026-02-28 00:11:07 +08:00
H3CoF6 2990e22001 feat: get image key during login 2026-02-27 23:17:26 +08:00
2977094657 43104ef2c4 improvement(wrapped-ui): 年度总结新增隐私模式开关(昵称/头像/消息/词云可模糊)
- Wrapped 页面右上角新增隐私模式开关,并在 deck 根节点挂载 wrapped-privacy

- Tailwind 新增 wrapped-privacy-* 细粒度模糊样式:仅模糊昵称/消息/关键词/头像,hover 可临时显示

- Wrapped 各卡片/可视化统一接入新 class,逐步替换原 privacy-blur 用法(词云/聊天回放/气泡等)
2026-02-27 16:43:28 +08:00
2977094657 6b24daf7bf improvement(wrapped-ui): Bento 总览支持微信表情资源渲染并优化占位逻辑
- topEmoji.kind=wechat 时使用 assetPath 渲染图片,加载失败自动回退到文本/Unicode 展示
- 计数展示统一切到 topEmojiCount(兼容旧 topUnicodeEmojiCount 回退)
- Wrapped 首页占位壳对 Bento summary 卡片放行,交由卡片内部处理 loading/error 状态
2026-02-26 20:02:03 +08:00
2977094657 3072297769 feat(wrapped): 新增便当总览卡片(Card #7)
- 增加 Card07BentoSummary 前端渲染与加载/失败重试交互(注入 wrappedRetryCard)

- 后端新增 card_07_bento_summary:基于已实现卡片聚合生成 snapshot,保证渲染稳定

- Wrapped manifest/implemented_upto 升级到 7,并支持按卡片 id 单独构建

- 新增 manifest 末尾卡片校验测试
2026-02-26 18:29:48 +08:00
2977094657 2dd103814a feat(wrapped): 新增年度关键词词云卡片(Card #6)
- 新增关键词词云后端计算:消息采样、jieba 分词、关键词权重与例句回看数据。

- Wrapped 年度卡片接入 Card #6,并对该卡片改为按请求重算(不走单卡缓存)。

- 前端新增 storm->cloud 词云动效卡片,支持词点击查看例句及动画阶段隐藏 deck 顶部 UI。

- 统一 wrapped 消息表名解码逻辑,兼容 sqlite text_factory=bytes。

- 新增关键词词云测试并加入 jieba 依赖。
2026-02-22 18:59:30 +08:00
2977094657 9acbfa7582 feat(sns): 支持外部分享卡片并增强媒体阶段识别
- 增强朋友圈 XML 解码与容错清洗,支持 bytes/hex/base64/zstd 场景。

- 补充外部分享(Type 5/42)字段提取与展示,新增 sourceName、链接卡片与导出渲染。

- 通过 Server-Timing + Timing-Allow-Origin 暴露 SNS 媒体阶段信息,前端改为从 ResourceTiming 读取,避免额外探测请求。

- 新增 XML 容错解析与 Server-Timing 注入测试。
2026-02-22 18:59:17 +08:00
2977094657 9254d46802 improvement(sns-media): 悬停展示朋友圈媒体来源阶段
- SNS 页面在封面/媒体悬停时显示来源阶段标识

- 后端媒体接口补充 X-SNS-Source 响应头标记命中来源

- CORS 暴露 X-SNS-Source / X-SNS-Hit-Type / X-SNS-X-Enc 供前端读取
2026-02-22 11:56:45 +08:00
2977094657 949990d125 feat(chat-edit-ui): 新增聊天编辑入口与修改记录页面
- 聊天右键菜单新增修改消息、字段编辑、恢复原消息、修复发送者、反转微信气泡位置

- 新增 /edits 页面,支持会话维度浏览修改记录与原/现对比

- 新增 EditedMessagePreview 组件复用聊天气泡样式

- 侧边栏新增修改记录入口

- useApi 增加 chat edits 相关接口,nuxt 配置支持可配置 API base

- 增加会话级反转消息位置前端显示开关(本地存储)
2026-02-22 11:56:28 +08:00
2977094657 abc8e3e828 improvement(sns): 优化视频号卡片样式(页面/导出)
- sns.vue:视频号 card 改为正方形封面(无图用文字占位),并移除 source/显示计数

- sns_export_service:HTML 导出同步相同布局与播放按钮样式
2026-02-19 20:01:29 +08:00
2977094657 ffa6491ed4 feat(wrapped): 增加月度好友墙卡片
- 新增月度好友墙卡片(chat/monthly_best_friends_wall):按月评选聊天搭子并输出评分维度

- 前端新增拍立得墙展示 12 个月获胜者与指标条,支持头像失败降级

- Wrapped deck 插入新卡片;emoji 卡片 id 顺延为 5,并同步更新测试

- Wrapped 页面默认展示上一年;切换年份时保持当前页并按需懒加载卡片

- WrappedCardShell(slide)支持 wide 布局;更新 wrapped cache version
2026-02-19 20:01:11 +08:00
2977094657 e4ba306dbf improvement(wrapped): 清理主题系统,Wrapped 固定 Modern
- 移除 useWrappedTheme 与主题切换入口(仅保留 Modern 视觉)

- 封面/卡片/年份选择器/热力图等组件去掉 Win98/Gameboy/DOS 分支与样式

- 删除 themedHeatColor、CRT/像素字体相关样式,降低维护成本
2026-02-18 23:04:04 +08:00
2977094657 b70e7f35a7 improvement(wrapped): 年度总结仅保留 Modern 主题
- 移除复古主题切换入口(控制面板/左上角按钮)与 Win98/CRT 相关 UI

- 简化 useWrappedTheme:仅保留 off(Modern),历史主题值自动回退

- Modern 下也展示 LuckyBlock 占位图,并同步更新 README 说明
2026-02-18 19:11:47 +08:00
2977094657 1ad2c38994 fix(desktop-update): 修复更新弹窗关闭无效 2026-02-18 17:53:49 +08:00
2977094657 3d989e4a17 feat(decrypt): 解密支持 SSE 实时进度
- 新增 /api/decrypt_stream(GET + SSE):扫描 db_storage,逐库解密并推送 start/progress/complete/error

- 前端解密页优先使用 SSE 展示实时进度,不支持时回退到原 POST(无进度)

- 增加流式接口单测:验证事件序列与输出落盘
2026-02-18 16:54:25 +08:00
2977094657 c3913021c9 feat(app-shell): 桌面端集成自动更新(electron-updater)
- 集成 electron-updater:检查更新/下载/安装/忽略此版本,并推送下载进度到前端

- 打包版启动后自动检查更新;托盘菜单支持手动检查

- preload 暴露 updater IPC + __brand 标记;前端新增更新弹窗与设置页版本/检查更新入口

- 补全发布配置:artifactName/publish;release workflow 增加上传 latest.yml
2026-02-18 16:53:50 +08:00
2977094657 ed5ce0993e feat(sns): 朋友圈页支持联系人侧栏、导出与 Live Photo
- 左侧新增朋友圈联系人列表(按发圈数),支持搜索与“全部/单人”筛选
- 新增“导出全部/导出此人”,展示导出状态并支持下载 ZIP(SSE 优先,轮询兜底)
- Live Photo/实况:悬停播放、静音切换与预览弹窗
- 媒体请求统一透传 use_cache;关闭缓存时追加时间戳避免浏览器缓存
2026-02-17 23:41:34 +08:00
2977094657 20fc32a01a feat(settings): 增加朋友圈图片使用缓存开关
- 新增本地设置项 sns.settings.useCache(默认开启)
- 设置页增加“朋友圈图片使用缓存”开关与说明,用于控制下载解密失败时的缓存回退策略
2026-02-17 23:40:58 +08:00
2977094657 d446f3907f improvement(wrapped): 增加返回聊天页按钮
- Wrapped 页左上角新增返回按钮,快速回到 /chat
2026-02-15 14:33:49 +08:00
2977094657 c6cbb933e7 feat(contacts): 联系人支持拼音分组并补充性别/签名
- 解析 extra_buffer 补齐 gender/signature\n- 返回 pinyinKey/pinyinInitial,前端按 A-Z/# 分组排序展示\n- tests: 更新联系人导出用例覆盖新增字段
2026-02-15 14:33:28 +08:00
2977094657 fcfea031e3 feat(chat): 聊天页支持日历定位/卡片解析/HTML导出分页
- 新增 /api/chat/messages/daily_counts 与 /api/chat/messages/anchor,用于月度热力图与按日/首条定位\n- messages/around 支持跨 message 分片定位,定位更稳定\n- 新增 /api/chat/chat_history/resolve 与 /api/chat/appmsg/resolve,合并转发/链接卡片可按 server_id 补全\n- 新增 /api/chat/media/favicon,并补齐 link 本地缩略图处理\n- HTML 导出支持分页加载(html_page_size),避免大聊天单文件卡顿\n- tests: 覆盖 heatmap/anchor、favicon 缓存、HTML 分页导出
2026-02-15 14:32:47 +08:00
H3CoF6 05089e8ea0 Merge branch 'main' into feat/sns-media 2026-02-14 00:27:52 +08:00
H3CoF6 89c4579633 feat: add sns cover for user 2026-02-14 00:25:58 +08:00
H3CoF6 8b91bbf2c1 fix: use two type to find path correctly 2026-02-13 23:56:42 +08:00
H3CoF6 2b9003a996 fix: fix post type error 2026-02-13 23:42:06 +08:00
2977094657 616778bf1a feat(wrapped): 新增梗图年鉴(Emoji Universe)卡片
- 后端新增 card_04_emoji_universe:统计表情包/emoji 使用与画像

- 前端新增 Card04EmojiUniverse + VueBits Stack/ImageTrail 交互展示

- 更新 Wrapped manifest/Hero 预览与用例覆盖
2026-02-13 22:40:39 +08:00
2977094657 d3034b1fe0 feat(chat-export): 支持 HTML 导出(合并消息/远程缩略图可选下载)
- 导出格式新增 html:生成 index.html + 会话 messages.html,离线浏览

- 支持 chatHistory(合并消息)解析/渲染与弹窗查看

- 图片资源解析增强:MessageResourceInfo 优先 + md5/hdmd5 兜底

- HTML 导出可选下载远程缩略图(仅公网主机/图片类型/5MB 限制)

- 修复拍一拍误判、公众号封面样式识别;转账过期状态与前端展示
2026-02-13 22:39:48 +08:00
H3CoF6 e36fe397c2 feat: self nickname and head img for sns 2026-02-13 22:19:25 +08:00
H3CoF6 98b01b43d1 refactor: remove useless code 2026-02-13 21:14:17 +08:00
H3CoF6 274680d85c refactor: new sns logic 2026-02-13 21:12:47 +08:00
H3CoF6 2279503406 feat: calc sns video file path 2026-02-13 20:41:48 +08:00
H3CoF6 7cd45b8e4b feat: parse some other media like article 2026-02-13 19:56:13 +08:00
H3CoF6 695875f486 feat: calc img path for sns! 2026-02-13 05:01:23 +08:00
2977094657 d8d21395ee improvement(chat): 完善会话置顶与消息卡片解析展示
- 后端:会话列表支持置顶识别(isTop)并按置顶优先排序

- 后端:修正群聊 XML 发送者提取,避免 refermsg 嵌套误识别

- 后端:完善转账状态后处理与视频缩略图 MD5 回填(packed_info_data)

- 后端:补充 quoteThumbUrl/linkType/linkStyle 字段链路

- 前端:新增置顶会话背景态、引用链接缩略图预览与 LinkCard cover 样式

- 测试:新增转账、置顶、引用解析与视频缩略图相关回归用例
2026-02-11 21:57:43 +08:00
2977094657 250c12548d refactor(chat-ui): 抽离侧边栏并统一账号/实时/隐私状态
新增 SidebarRail 组件并统一主导航入口

引入 chatAccounts/chatRealtime/privacy 三个 Pinia store 复用全局状态

聊天/联系人/朋友圈页面去重侧栏逻辑,app 根布局统一承载标题栏与内容区
2026-02-11 12:14:21 +08:00
2977094657 bdde83a523 feat(settings): 新增独立设置页并统一桌面偏好读取
新增 /settings 页面,集中管理桌面行为与启动偏好开关

抽离 desktop-settings 工具,统一本地布尔配置读写

首页默认跳转逻辑改为复用设置工具,减少重复实现
2026-02-11 12:14:08 +08:00
2977094657 cc74cf16f0 feat(chat-ui): 会话列表未读提示与引用图片预览优化
- 未读展示改为头像红点,并在 lastMessage 前缀展示未读条数

- 引用消息支持图片缩略图预览,失败自动降级为纯文本引用

- 规范化 quoteVoiceUrl/quoteImageUrl 生成,与后端 media 接口对齐
2026-02-09 18:31:22 +08:00