| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-05-12 | refactor flamegraph TUI model into focused sub-controllers | Paul Buetow | |
| Break the god-class Model in internal/tui/flamegraph/model.go into four focused sub-controllers that each own a single concern: - ZoomNavigator : zoom path, stack, root node, and reset/undo logic - SelectionManager: selected frame index, clamp, traversal, navigation - FrameAnimator : spring animation, frame layout swap, ancestry index - SearchController: search query, match indices, filter-visible set All four are embedded in Model so existing field access (m.selectedIdx, m.zoomPath, etc.) is promoted unchanged, keeping tests and callers intact. Model methods now delegate to the sub-controllers rather than holding all logic inline. Also split RenderTerminalView (88 lines) into computeRenderParams, buildToolbar, buildFilteredStatus, and buildNormalStatus helpers, and extracted buildSnapshotMsg from RefreshFromLiveTrieCmd. All functions are now ≤ 50 lines. All tests pass. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> | |||
| 2026-05-12 | refactor flamegraph model.go: split Update and frameIndexAt below 50-line limit | Paul Buetow | |
| Extract handleSearchInput and handleKeyNavigation from Update (111 lines → 33), then split handleKeyNavigation into handleModeKey and handleMovementKey. Extract frameCoordToTargetRow and findFrameAtRow from frameIndexAt (66 lines → 32). All new helpers are ≤ 29 lines; behavior is preserved. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> | |||
| 2026-05-11 | speed up flame graph TUI under heavy event load | Paul Buetow | |
| Move the per-tick snapshot refresh off the Bubble Tea update goroutine, add a frame ancestry index so navigation and filter helpers run in O(subtree) instead of O(frames), skip refresh and animation while the user is actively pressing keys, and memoize View() output. Keystrokes (pause, filter, navigate) now land within one frame even when the live trie ingests thousands of events per tick. - new SnapshotTree() on LiveTrie bypasses JSON marshal+unmarshal - RefreshFromLiveTrieCmd runs SnapshotTree + layout + ancestry on a background goroutine, coalesced via refreshInFlight, and returns a flameSnapshotReadyMsg the Update loop applies cheaply - driveWindow gate (250 ms after last key press) skips refresh dispatch and snaps frames directly to target without animation while the user is driving - View() caches its rendered string keyed on the inputs that affect output; cache is bypassed during animation Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | |||
| 2026-03-18 | cleanup | Paul Buetow | |
| 2026-03-10 | tui/flamegraph: tighten arrow escape parsing (task 423) | Paul Buetow | |
| 2026-03-10 | tui/flamegraph: centralize animation tick scheduling (task 422) | Paul Buetow | |
| 2026-03-09 | tui: harden paused flame rendering | Paul Buetow | |
| 2026-03-09 | tui: fix flamegraph click re-rooting | Paul Buetow | |
| 2026-03-09 | tui: use full width for zoomed flame bars | Paul Buetow | |
| 2026-03-08 | tui: reserve p for pid picker | Paul Buetow | |
| 2026-03-06 | fix(tui): restore bubble modes and stabilize flame zoom lineage | Paul Buetow | |
| 2026-03-06 | feat(tui): add flamegraph click lineage undo and scope quit key | Paul Buetow | |
| 2026-03-06 | refactor: use interfaces for TUI runtime binding sources (task 382) | Paul Buetow | |
| 2026-03-06 | feat(tui): add flamegraph bytes metric toggle | Paul Buetow | |
| 2026-03-06 | flamegraph: use full viewport with capped bar height and preserve footer/status | Paul Buetow | |
| 2026-03-06 | flamegraph: keep non-matches visible in filter and add pgup/pgdn selection jumps | Paul Buetow | |
| 2026-03-06 | flamegraph: make esc undo one zoom level and aggregate syscalls by default | Paul Buetow | |
| 2026-03-06 | Fix real live flamegraph key handling and startup viewport sync | Paul Buetow | |
| 2026-03-06 | Add live flamegraph test modes and dynamic synthetic live feed | Paul Buetow | |
| 2026-03-06 | Fix flamegraph navigation, filtering, and system-share feedback | Paul Buetow | |
| 2026-03-06 | Keep flame selection visible and improve arrow-key fallback | Paul Buetow | |
| 2026-03-06 | Improve flamegraph selection, filter, and zoom feedback | Paul Buetow | |
| 2026-03-05 | Normalize Go import grouping with local ior section | Paul Buetow | |
| 2026-03-05 | Make flame tab default and fix flame hotkey routing | Paul Buetow | |
| 2026-03-05 | Add flamegraph benchmark suite and reuse hot-path buffers | Paul Buetow | |
| 2026-03-05 | task 365: animate flamegraph layout on resize | Paul Buetow | |
| 2026-03-05 | task 364: animate flamegraph zoom transitions | Paul Buetow | |
| 2026-03-05 | task 363: animate flamegraph data refresh transitions | Paul Buetow | |
| 2026-03-05 | task 362: add flamegraph harmonica animation state | Paul Buetow | |
| 2026-03-05 | task 361: add flamegraph control actions and toolbar | Paul Buetow | |
| 2026-03-05 | task 360: add flamegraph search and match navigation | Paul Buetow | |
| 2026-03-05 | task 359: add flamegraph zoom interactions | Paul Buetow | |
| 2026-03-05 | task 358: add flamegraph keyboard navigation | Paul Buetow | |
| 2026-03-05 | task 357: add flamegraph subtree highlighting | Paul Buetow | |
| 2026-03-05 | task 356: implement flamegraph terminal view renderer | Paul Buetow | |
| 2026-03-05 | task 355: add terminal flamegraph layout renderer | Paul Buetow | |
| 2026-03-05 | task 354: wire dashboard flame tab to LiveTrie | Paul Buetow | |
| 2026-03-05 | task 351: add flamegraph TUI model scaffold | Paul Buetow | |
