Skip to content

导出日志;panic 先写日志;拼音查询限长 - #28

Merged
Cocoon-break merged 1 commit into
mainfrom
feat/log-export
Nov 2, 2026
Merged

Cocoon-break merged 1 commit into
mainfrom
feat/log-export

Conversation

@Cocoon-break

Copy link
Copy Markdown
Owner

背景

真机关闭贴图闪退(#27),内测用户也反馈应用会突然退出。发布版 panic = "abort" + strip = true 且没有 panic 钩子,Rust 侧任何 panic 都会无声退出;用户闪退后通过即时通讯工具反馈,需要一个能直接拖进聊天窗口的文件。

改动

  • 导出日志(M17 规则 6、M15“日志”行):托盘菜单“导出日志”与设置“通用”标签新的“日志”一行。日志目录、最近 30 天 xPaste 的系统崩溃报告(macOS DiagnosticReports/xpaste-*.ips,Windows WER AppCrash_xpaste.exe_*/Report.wer)和 info.txt(版本、平台、架构、系统版本、导出时间)打成 xPaste-日志-<版本>-<时间>.zip 放进“下载”并选中。新增依赖 zip(只开 deflate,后端 zlib-rs 已在锁文件里)与 chrono(clock)。
  • panic 写日志(5.3 第 4 条):run() 开头装钩子,记线程与位置;消息只记字面量,格式化消息可能带剪切板内容(如字符串切片越界会附原文),只进 debug。打开数据库、面板初始化失败先 log::error!(tauri 随后 panic)。
  • 拼音查询限长(M05 规则 11):超过 64 个字母不按拼音匹配。原先音节切分递归深度随长度增长,粘贴 20 万个 a 在 2 MiB 栈上溢出;补了复现测试。
  • 规格说明 v0.1.47。

验收

  • make check
  • Windows CI(diag.rs 的 Windows 分支本机无法交叉编译)
  • 真机:托盘“导出日志” → “下载”里出现 zip 并在访达里选中,包内有 info.txt、logs/、crash/
  • 真机:设置 → 通用 → “导出日志”,同上

🤖 Generated with Claude Code

- 托盘“导出日志”与设置“通用”标签的“日志”一行:日志、最近 30 天的系统崩溃报告和版本信息打成 zip
  放进“下载”并在访达 / 资源管理器里选中,方便内测用户拖进聊天窗口
- 发布版 panic=abort:装 panic 钩子,退出前记线程与位置(只记写死的消息,避免带出剪切板内容);
  打开数据库、面板初始化失败先记日志
- 关键词超过 64 个字母不按拼音匹配:音节切分递归深度随长度增长,粘贴超长字母串会撑爆线程栈
- 规格说明 v0.1.47

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Cocoon-break
Cocoon-break merged commit 02abb83 into main Nov 2, 2026
2 checks passed
@Cocoon-break
Cocoon-break deleted the feat/log-export branch November 2, 2026 08:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant