• Joined on 2026-04-07
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个回归测试全部通过。

dailz pushed to master at dailz/logViewer 2026-06-10 17:34:24 +08:00
463c53148b fix(tui): filter KeyEventKind to prevent Release/Repeat from triggering commands (closes #23)
dailz closed issue dailz/logViewer#23 2026-06-10 17:34:24 +08:00
🟡 [M13] 未检查 KeyEventKind,Press/Repeat/Release 全当命令处理
dailz pushed to master at dailz/logViewer 2026-06-10 15:23:04 +08:00
e9f75ce3b1 fix(parser): detect duplicate JSON keys via custom Visitor instead of silent last-wins (closes #22)
ef1889767a fix(parser): trim whitespace in LogLevel::from_str to prevent misclassification (closes #21)
Compare 2 commits »
dailz closed issue dailz/logViewer#22 2026-06-10 15:23:04 +08:00
🟡 [M12] 重复 JSON key 被 HashMap 静默折叠
dailz closed issue dailz/logViewer#21 2026-06-10 13:37:33 +08:00
🟡 [M11] LogLevel::from_str 不 trim 空白