feat(log-viewer): configurable column views across grids#860
Merged
Conversation
- New shared ColumnViews engine: preset views (General/Time/Governor Limits/Database/Memory), header-menu show/hide, and Reset — persisted per view via new lana.callTree/lana.database settings and an updateConfig message handler - Gov. Cost reworked to an average across all reported governors plus a Peak Limit (max) column; parser gains a per-node heapAllocated field + rollup to back the Heap columns - New call-tree columns (SOSL counts/rows, Heap + Self, Avg Self Time, self variants) rendered as % bars; SOSL plumbed through the aggregated/time-order/bottom-up row builds - Database SOQL/DML gain column views + a SOQL Query Plan view and % row-count bars; frozen Name column enabled via FrozenColumnsModule + full-width virtual renderer
- Move per-view column overrides to globalState (columnView stays a discoverable setting), routed through the LogView getConfig/updateConfig handler - Add inline per-view reset + live edited marker in the view dropdown and header menu, a Columns toolbar button that opens the menu, and keep the menu open for multi-toggle - Relabel governor columns Gov. Cost → Gov. Avg and Peak Limit → Gov. Peak so their avg-vs-max relationship reads clearly - Fix frozen-column bleed-through and restore the body horizontal scrollbar in DataGrid.scss; disable the sticky Name column pending a horizontal/vertical renderer fix
- exclude SOSL rows from governor cost — verified in-org they have no limit and don't count against the 50k query-rows limit; render them as a plain count instead of a bar against the wrong limit - compute governor cost during tree build instead of a second full-tree walk (annotateGovernorCost → per-row setGovernorCost) - persist the view chosen from the header context menu in Call Tree and Analysis, and fall back to the default view for an unknown persisted id - restore table.redraw() after show/hide so columns resize — stock tabulator does not re-run fitColumns on column visibility change
lcottercertinia
previously approved these changes
Jul 21, 2026
- add heapSize cases to governor-timeline.test: negative deltas (dealloc via negative HEAP_ALLOCATE) lower the line, absolute snapshots re-baseline to the cumulative peak, and a delta-less FINE log steps to cumulative with no grey divergence - clarify heap comments in apex-limit-series/governor-timeline: negative HEAP_ALLOCATE is the deallocation, HEAP_DEALLOCATE is distinct (no double-subtract), and cumulative 'Maximum heap size' is the authoritative peak
lcottercertinia
approved these changes
Jul 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📝 PR Overview
Adds configurable column views across the Call Tree, Analysis and Database (SOQL/DML) grids — switch between preset column sets, show/hide individual columns, and reset per view — so each grid can focus on the metrics that matter. Also adds new per-method metric columns and fixes grid rendering issues the wider column sets exposed.
🛠️ Changes made
lana.*setting; the opaque per-view overrides persist inglobalState, routed through theLogViewgetConfig/updateConfig handler.fitColumnson visibility change).overflow-x) and fix frozen-cell bleed-through CSS. The sticky Name column is temporarily disabled pending a horizontal/vertical renderer fix (commented with re-add notes).🧩 Type of change (check all applicable)
📷 Screenshots / gifs / video [optional]
🔗 Related Issues
closes #298
related #32
✅ Tests added?
📚 Docs updated?
🧪badge — see RELEASING.md)Anything else we need to know? [optional]
ColumnViews.ts+VsSelect.ts/ContextMenu.ts(menu + inline reset), theAppConfig/LogViewpersistence split, andDataGrid.scss(scroll + frozen-cell fixes).