-
10323ce814
fix(tui): add area offset to settings popup positioning (closes #31)
master
dailz
2026-06-11 16:49:37 +08:00
-
c1a931551b
fix(tui): handle settings save errors and rewrite truncate_to_columns (closes #30)
dailz
2026-06-11 16:08:57 +08:00
-
dfc016c348
fix(tui): wrap color backward cycle at index 0 instead of clamping (closes #29)
dailz
2026-06-11 15:05:42 +08:00
-
19a3b877f9
fix(core): tighten word boundary to reject digits and underscores in level detection (closes #28)
dailz
2026-06-11 14:28:13 +08:00
-
5cb56dafd8
fix(core): correct tab-stop alignment and width overflow in wrap_line_chars
dailz
2026-06-11 13:37:14 +08:00
-
e99861c76d
fix(tui): add MAX_WRAP_INPUT_LEN guard to prevent UI freeze on oversized lines (closes #26)
dailz
2026-06-11 13:15:11 +08:00
-
a43ef673b0
fix(tui): rebase v_offset before VHI invalidation to prevent viewport jump (closes #25)
dailz
2026-06-11 09:49:10 +08:00
-
70f930eef7
fix(tui): use updated v_offset after params_changed in ensure_viewport_cache (#24)
dailz
2026-06-11 08:58:10 +08:00
-
463c53148b
fix(tui): filter KeyEventKind to prevent Release/Repeat from triggering commands (closes #23)
dailz
2026-06-10 17:34:17 +08:00
-
e9f75ce3b1
fix(parser): detect duplicate JSON keys via custom Visitor instead of silent last-wins (closes #22)
dailz
2026-06-10 15:22:55 +08:00
-
ef1889767a
fix(parser): trim whitespace in LogLevel::from_str to prevent misclassification (closes #21)
dailz
2026-06-10 13:37:11 +08:00
-
eedab3ac96
fix(parser): strip UTF-8 BOM before JSON parsing
dailz
2026-06-10 11:37:00 +08:00
-
8e9600dda2
fix(parser): preserve non-string timestamp/level fields instead of silently dropping them (closes #19)
dailz
2026-06-10 10:47:04 +08:00
-
2cebbd94c4
fix: concurrent cache save uses unique temp files (#17)
dailz
2026-06-09 16:13:39 +08:00
-
0d88e933e6
fix(io): replace blocking channel sends with cancel-aware alternatives (closes #16)
dailz
2026-06-09 15:14:37 +08:00
-
420b853cb9
fix(watcher): filter Remove events by path to prevent false removed reports (closes #15)
dailz
2026-06-09 13:18:23 +08:00
-
7852e92ecc
fix(watcher): forward notify backend errors instead of silently discarding
dailz
2026-06-09 11:26:54 +08:00
-
d37ed6df68
fix(io): harden read_cache against zero-length false hits and overflow (closes #13)
dailz
2026-06-09 10:48:34 +08:00
-
b58d66f2aa
fix(io): use unicode-width for correct CJK/emoji/zero-width display width (closes #12)
dailz
2026-06-07 12:50:17 +08:00
-
d4679a7543
fix(io): update visual height of last line on append without trailing newline (closes #11)
dailz
2026-06-07 09:46:24 +08:00
-
8844e58cb4
Merge fix/m20-append-lines-error-handling: fix append_lines I/O error swallowing (closes #45) + clippy cleanup
dailz
2026-06-07 09:17:41 +08:00
-
-
6a2f8ecb66
fix(bench): resolve pre-existing clippy warnings in report.rs and mmap_reader.rs
fix/m20-append-lines-error-handling
dailz
2026-06-07 09:15:34 +08:00
-
f6081b9fe9
fix(bench): propagate I/O errors in append_lines instead of silently defaulting to 0 (closes #45)
dailz
2026-06-07 09:13:37 +08:00
-
-
97a2c6a925
fix(bench): regenerate growable file each iteration in truncate safety benchmarks (closes #44)
dailz
2026-06-07 09:02:19 +08:00
-
e6e0e2cc90
fix(bench): correct lines_read to actual successful reads in bench_scroll_rss
dailz
2026-06-07 08:50:20 +08:00
-
ffaf462bae
Merge fix/m23-single-frame-tail-overlap: [M23] small file single_frame_tail overlap fix
dailz
2026-06-07 08:32:58 +08:00
-
-
a8dc067cd4
fix(bench): [M23] prevent single_frame_tail/head overlap for small files
fix/m23-single-frame-tail-overlap
dailz
2026-06-07 08:31:00 +08:00
-
-
502479677b
fix(bench): warn when clear_file_cache fails instead of silently skipping cold benchmarks (closes #41)
dailz
2026-06-05 17:28:57 +08:00
-
5656b26d7b
refactor(bench): unify line counting in get_file_info to use count_existing_lines
dailz
2026-06-05 17:04:46 +08:00
-
a8b64e78bd
fix(bench): stabilize report column/row ordering across input permutations (#39)
dailz
2026-06-05 16:24:41 +08:00
-
e945a357f7
fix(bench): warn on all reset_vm_hwm errors, not just PermissionDenied
dailz
2026-06-05 15:52:01 +08:00
-
fb57584546
fix(bench): validate --suites names, reject unknown suites at CLI boundary
dailz
2026-06-05 15:20:24 +08:00
-
9baec5ab69
fix(bench): refresh PreadReader index periodically in scroll_during_append (closes #36)
dailz
2026-06-05 14:40:32 +08:00
-
6dd87d2872
fix(bench): wrap file writes with BufWriter to reduce syscall overhead
dailz
2026-06-05 14:01:35 +08:00
-
83f633a562
fix(bench): make can_reset_vm_hwm side-effect-free with open probe (closes #34)
dailz
2026-06-05 13:34:01 +08:00
-
dad5f5a635
fix(bench): eliminate SIGBUS handler static mut UB with Once + raw atomics (closes #33)
dailz
2026-06-05 13:22:02 +08:00
-
534a089b58
fix(tui): defer file-change events during Loading state to prevent stale reader (closes #10)
dailz
2026-06-04 17:32:58 +08:00
-
b7938e069d
fix(tui): RAII TerminalGuard prevents terminal corruption on error exit (closes #8)
dailz
2026-06-04 16:11:16 +08:00
-
d40d70c600
fix(watcher): use try_send to prevent blocking notify callback
dailz
2026-06-04 14:33:40 +08:00
-
1350f659fa
fix(io): eliminate SIGBUS risk in background indexer threads (closes #6)
dailz
2026-06-04 14:10:51 +08:00
-
1bb6b2e9f3
fix: eliminate TOCTOU race in IndexCache::save (closes #5)
dailz
2026-06-04 13:30:16 +08:00
-
bef0b44e91
fix(io): guard sampled_offsets index in get_line() to prevent panic on corrupt cache
dailz
2026-06-03 15:39:05 +08:00
-
24fe97a457
fix(io): eliminate TOCTOU race in FileReader open/reload
dailz
2026-06-03 15:08:22 +08:00
-
b6e655bff6
fix(io): handle file shrink in update_for_append to prevent SIGBUS
dailz
2026-06-03 14:47:23 +08:00
-
b3256b2917
fix: audit fixes for 4 medium-severity bugs: index_cache tail hash, read_cache doc, mutex poison recovery, Remove event handling
dailz
2026-05-10 17:03:07 +08:00
-
fb23e4c7cb
fix(tui): smooth visual-row scrolling during Loading state
dailz
2026-04-24 19:04:30 +08:00
-
8c5a838db0
fix(tui): j/k scroll by visual row instead of logical line
dailz
2026-04-24 07:41:30 +08:00
-
81cc72bd84
test(tui): add Loading + JSON expansion unit tests
dailz
2026-04-14 17:38:35 +08:00
-
06b2a39816
fix(tui): post-check cursor visibility in viewport during Loading
dailz
2026-04-14 17:09:50 +08:00
-
0941092b07
feat(tui): enable JSON expansion during Loading state
dailz
2026-04-14 16:52:17 +08:00
-
4ec3eb7cee
fix(core): cap incremental scan in get_line() to prevent O(N) blocking
dailz
2026-04-14 09:58:20 +08:00
-
05491304bf
fix(tui): allow free scrolling during progressive loading
dailz
2026-04-14 09:36:03 +08:00
-
a03af7e74e
feat(core): implement FileWatcher for live file tailing
dailz
2026-04-14 09:07:27 +08:00
-
bab3d9078a
feat(tui): replace O(N) scanning with progressive loading and VisualHeightIndex
dailz
2026-04-14 09:07:18 +08:00
-
f9f451e0d6
feat(core): implement ProgressiveFileReader with background indexer
dailz
2026-04-14 09:07:09 +08:00
-
210eecfa66
feat(core): extract wrap utilities and extend LineIndex for progressive loading
dailz
2026-04-14 09:06:52 +08:00
-
cfbe4900a5
feat(core): add LineSampler for fast line count estimation
dailz
2026-04-14 09:06:42 +08:00
-
2260d60302
feat(core): add disk index cache infrastructure
dailz
2026-04-14 09:06:36 +08:00
-
62a176441e
feat(core): refactor FileReader to use mmap with low-RSS index building
dailz
2026-04-12 20:50:58 +08:00
-
25a17779ff
feat(core): implement sparse LineIndex with BufReader streaming
dailz
2026-04-12 20:50:14 +08:00
-
02d7323a8b
feat(core): add Mmap error variant and memmap2 dependency
dailz
2026-04-12 20:49:27 +08:00
-
2ac3eb99c7
feat(tui): add Span-based rendering with level colors and settings panel
dailz
2026-04-12 10:52:45 +08:00
-
c6e83cb8c2
feat(tui): add AppMode, level_cache and config integration
dailz
2026-04-12 10:52:03 +08:00
-
ef4c2e7383
feat(tui): add color mapping module
dailz
2026-04-12 10:51:26 +08:00
-
c914912389
feat(core): add detect_level() for plain text logs
dailz
2026-04-12 10:50:59 +08:00
-
105e428a43
feat(core): add ColorConfig struct with TOML support
dailz
2026-04-12 10:50:39 +08:00
-
67a118a8c8
docs(core): add Chinese comments to types module
dailz
2026-04-11 16:30:20 +08:00
-
9082726e47
docs(core): add Chinese comments to error module
dailz
2026-04-11 16:26:24 +08:00
-
c04cc72b55
docs(core): add Chinese comments to parser module
dailz
2026-04-11 16:20:44 +08:00
-
e3f11d2165
docs(core): add Chinese comments to io module
dailz
2026-04-11 16:17:06 +08:00
-
1c9367f1f9
feat(tui): update status bar with Tab format hint
dailz
2026-04-11 11:38:42 +08:00
-
280c3f5014
feat(tui): add Tab key to toggle JSON pretty-print
dailz
2026-04-11 11:38:30 +08:00
-
8a664c02c8
fix(tui): use char-level wrapping instead of word-level for log lines
dailz
2026-04-11 09:02:01 +08:00
-
3c042e20a1
fix(tui): show [0/0] instead of [1/0] for empty files
dailz
2026-04-11 08:52:22 +08:00
-
6820246997
feat(tui): rewrite UI with line numbers, soft wrap, and scrolling
dailz
2026-04-10 23:38:06 +08:00
-
555ffc0836
feat(tui): expand App state with file loading and scroll
dailz
2026-04-10 23:28:23 +08:00
-
37bebc1a26
feat(core): implement JSON log parser
dailz
2026-04-10 23:08:26 +08:00
-
f173adc018
feat(core): implement FileReader with memchr line indexing
dailz
2026-04-10 23:01:03 +08:00
-
73322138c1
feat(tui): ratatui skeleton with layout
dailz
2026-04-10 21:20:14 +08:00
-
09e7f995fb
feat(gui): egui skeleton with dark theme
dailz
2026-04-10 21:19:34 +08:00
-
53250e5903
feat(core): declare module structure
dailz
2026-04-10 21:19:01 +08:00
-
843b3db081
feat(core): define error types with thiserror
dailz
2026-04-10 21:18:20 +08:00
-
8e977af52c
feat(core): define core types with tests
dailz
2026-04-10 21:17:57 +08:00
-
0ee82cbccd
feat(init): scaffold cargo workspace and CI
dailz
2026-04-10 21:17:22 +08:00