Serendipity
|
1e9c94eff9
|
fix: 全面代码审查修复 — 安全/类型/持久化/代码质量 (28项)
🔴 CRITICAL (1):
- tauri.conf.json: CSP 从 null 改为最小权限策略
🟠 HIGH (6):
- 新建 capabilities/default.json: Tauri v2 权限约束(store/dialog/clipboard)
- cli: 路径遍历防护 — 拒绝含 ParentDir 组件的输出路径
- HistoryList: 删除/清空同步持久化到 store,历史点击用 formData 回填
- ExportPanel: 移除 console.warn,getCurrentText any→QrState
- useQrEncode: WiFi 密码在历史中脱敏显示(P:***),Store 实例缓存
🟡 MEDIUM (10):
- mode.rs: Kanji fallback 从 UTF-8 字节改为 13-bit 零值占位(段内模式一致)
- mode.rs: Shift JIS 第二字节跳过 0x7F 空洞,修正行内索引
- mode.rs: encode_numeric/alphanumeric 添加 debug_assert! 前置条件
- mask.rs: best_matrix.unwrap()→expect() 附错误信息
- version.rs: ec_info 仅返回 count>0 的 BlockInfo,EcInfo/BlockInfo 加 Debug+Clone
- types/index.ts: HistoryEntry.mode string→ModeType,新增 formData 字段
- qrContext.tsx: 使用缓存 Store 加载历史
🟢 LOW (11):
- cargo fmt 全部文件
- svg.rs: String::new()→with_capacity() 预分配
- patterns.rs: encode_format_info 拆分为两行提高可读性
- png.rs: 提取 fill_module() 辅助函数降低嵌套
- ErrorBoundary: 添加 componentDidCatch 错误日志入口
- QrPreview: dangerouslySetInnerHTML→<img>+data URL(安全),loading 状态指示
- galois.rs/version.rs: 5 处 #[allow(clippy::indexing_slicing)]+安全文档
- 新建 utils/qrText.ts: 集中管理 6 种模式的文本构造,消除 ExportPanel/mode 间重复
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-17 14:10:13 +08:00 |
|
Serendipity
|
11d8cffa57
|
fix: tauri-plugin-store 配置格式 — {} 改为空 plugins
|
2026-06-17 09:16:35 +08:00 |
|
Serendipity
|
91bdf9ecc3
|
fix: 前端 HIGH/MEDIUM — timer 清理 + 历史持久化 + Error Boundary + console 移除
|
2026-06-17 09:03:38 +08:00 |
|
Serendipity
|
a46144f4dc
|
chore: 打包配置 — NSIS 安装包 + WebView2Loader.dll
|
2026-06-17 08:39:41 +08:00 |
|
Serendipity
|
7bad07344d
|
style: 暗色模式完善 + CSS 打磨 + 打包配置
|
2026-06-17 00:27:33 +08:00 |
|
Serendipity
|
ec20a5d083
|
feat: 历史记录面板(回填/删除/清空)
|
2026-06-17 00:25:26 +08:00 |
|
Serendipity
|
3c56fc45d3
|
feat: WiFi/vCard/Email/电话/SMS 全模式表单
|
2026-06-17 00:24:38 +08:00 |
|
Serendipity
|
1a4af38bac
|
feat: QR 预览 + 导出面板(PNG/SVG/复制) + 文本/URL 模式
|
2026-06-17 00:23:23 +08:00 |
|
Serendipity
|
8aacd3bea2
|
feat: 主布局 + 左侧模式面板
|
2026-06-17 00:21:19 +08:00 |
|
Serendipity
|
3186502edb
|
feat: 类型定义 + Context/Reducer + 编码 Hook
|
2026-06-17 00:20:32 +08:00 |
|
Serendipity
|
a952ebcb5f
|
feat: Tauri commands — encode/export/history CRUD
|
2026-06-17 00:19:39 +08:00 |
|
Serendipity
|
4d3147a1e9
|
feat: Tauri 2 + React 脚手架 — gui crate
|
2026-06-17 00:18:39 +08:00 |
|
Serendipity
|
6d11e96fff
|
fix: 移除错误的 egui crate(应为 Tauri 2,Task 2 重新脚手架)
|
2026-06-17 00:10:40 +08:00 |
|
Serendipity
|
95e3cc91ff
|
chore: workspace 加 gui 成员,qr-core 加 serde
|
2026-06-17 00:10:18 +08:00 |
|