• Joined on 2026-04-07
dailz closed issue dailz/logViewer#30 2026-06-11 16:10:33 +08:00
🟢 [L4] 设置保存错误被忽略
dailz commented on issue dailz/logViewer#30 2026-06-11 16:10:09 +08:00
🟢 [L4] 设置保存错误被忽略

修复方案

根因

app.rs:726 使用 let _ = self.color_config.save() 静默丢弃保存错误,用户按 Enter 退出设置后以为已保存,但磁盘写入可能失败。

修复内容

**1. 设置保存错误处理 (Oracle…

dailz commented on issue dailz/logViewer#29 2026-06-11 15:06:09 +08:00
🟢 [L3] 颜色向后循环不 wrap

已修复: dfc016c

根因: cycle_color 向后循环使用 saturating_sub(1).min(colors.len()-1),到索引 0 时被钳位为 0,无法 wrap 到最后一个颜色。

修复: 替换为 `if p == 0 { colors.len() - 1 } else…

dailz closed issue dailz/logViewer#29 2026-06-11 15:05:52 +08:00
🟢 [L3] 颜色向后循环不 wrap
dailz pushed to master at dailz/logViewer 2026-06-11 15:05:52 +08:00
dfc016c348 fix(tui): wrap color backward cycle at index 0 instead of clamping (closes #29)
dailz commented on issue dailz/logViewer#28 2026-06-11 14:28:49 +08:00
🟢 [L2] 词边界检测允许数字和下划线,ERROR123 被错误识别

已修复,提交 19a3b87。

改动: crates/core/src/parser/level.rs

  • 新增 is_ident_char(b) 辅助函数,将 is_ascii_alphabetic() 边界检查扩展为 `is_ascii_alphanumeric()
dailz pushed to master at dailz/logViewer 2026-06-11 14:28:20 +08:00
19a3b877f9 fix(core): tighten word boundary to reject digits and underscores in level detection (closes #28)
dailz closed issue dailz/logViewer#28 2026-06-11 14:28:20 +08:00
🟢 [L2] 词边界检测允许数字和下划线,ERROR123 被错误识别
dailz commented on issue dailz/logViewer#27 2026-06-11 13:38:24 +08:00
🟢 [L1] Tab 在窄终端(<4列)扩展超出宽度

已修复 — commit 5cb56da

修改文件: crates/core/src/io/wrap.rs — wrap_line_chars()

  1. 提取 TAB_WIDTH 常量(4),替代硬编码
  2. Tab stop 正确计算: TAB_WIDTH - (col % TAB_WIDTH)
  3. Tab 展开超过…
dailz pushed to master at dailz/logViewer 2026-06-11 13:37:24 +08:00
5cb56dafd8 fix(core): correct tab-stop alignment and width overflow in wrap_line_chars
dailz closed issue dailz/logViewer#27 2026-06-11 13:37:24 +08:00
🟢 [L1] Tab 在窄终端(<4列)扩展超出宽度
dailz commented on issue dailz/logViewer#26 2026-06-11 13:16:32 +08:00
🟡 [M16] TUI 渲染无 MAX_WRAP_INPUT_LEN 保护,巨大单行可冻结 UI

修复方案

根因分析

compute_line_entrycompute_visual_height 在渲染路径中直接调用 wrap_line_chars,未检查输入长度。当单行日志超过 10MB 时,逐字符遍历和 Vec 构建会冻结主线程。

此外…

dailz pushed to master at dailz/logViewer 2026-06-11 13:15:20 +08:00
e99861c76d fix(tui): add MAX_WRAP_INPUT_LEN guard to prevent UI freeze on oversized lines (closes #26)
a43ef673b0 fix(tui): rebase v_offset before VHI invalidation to prevent viewport jump (closes #25)
70f930eef7 fix(tui): use updated v_offset after params_changed in ensure_viewport_cache (#24)
Compare 3 commits »
dailz closed issue dailz/logViewer#26 2026-06-11 13:15:20 +08:00
🟡 [M16] TUI 渲染无 MAX_WRAP_INPUT_LEN 保护,巨大单行可冻结 UI
dailz closed issue dailz/logViewer#25 2026-06-11 09:50:36 +08:00
🟡 [M15] Ready 无 VisualHeightIndex 时走 Loading 滚动路径
dailz commented on issue dailz/logViewer#25 2026-06-11 09:50:27 +08:00
🟡 [M15] Ready 无 VisualHeightIndex 时走 Loading 滚动路径

修复方案

根因: Ready 状态下 VHI 被异步 invalidate 后(Tab toggle / resize / file append / Loading→Ready),v_offset 仍保留视觉行偏移值,但所有函数开始将其当作逻辑行偏移处理,导致视口跳跃…

dailz closed issue dailz/logViewer#24 2026-06-11 08:58:37 +08:00
🟡 [M14] ensure_viewport_cache 使用过时的 v_offset 局部变量
dailz commented on issue dailz/logViewer#24 2026-06-11 08:58:32 +08:00
🟡 [M14] ensure_viewport_cache 使用过时的 v_offset 局部变量

已修复,提交: 70f930e

根因: ensure_viewport_cache 在 params_changed 块之前捕获 v_offset 局部变量,而该块会重新计算 self.v_offset(cursor 居中 + clamp)。loading 分支仍使用旧值导致视口错位。

*…

dailz commented on issue dailz/logViewer#23 2026-06-10 17:35:27 +08:00
🟡 [M13] 未检查 KeyEventKind,Press/Repeat/Release 全当命令处理

修复方案: 在 handle_key 入口处统一过滤 KeyEventKind,新增 is_repeatable_key 方法。Release 全部忽略,Repeat 仅白名单键(滚动/导航)通过,Press 全部放行。Commit: 463c531,9个回归测试全部通过。