Repository navigation
refactor(log-viewer): remove Tabulator - #1174
Merged
Merged
Conversation
lukecotter
force-pushed
the
feat-inspector-lv-grid
branch
from
October 16, 2026 09:10
96bd81f to
ca9e923
Compare
lukecotter
force-pushed
the
feat-remove-tabulator
branch
from
October 16, 2026 09:10
96ea2d0 to
1d8f846
Compare
lukecotter
force-pushed
the
feat-inspector-lv-grid
branch
from
October 16, 2026 14:55
ca9e923 to
606c4cd
Compare
Every grid uses lv-grid, so remove the tabulator-tables package, log-viewer/src/tabulator, the Tabulator table code, the bench's Tabulator contender and the Tabulator lint rule. The helpers that lv-grid code still uses move to components/grid. Refs #1169
The extension no longer ships Tabulator, so the license notice goes, and the README acknowledgment says that earlier versions used it.
The Inspector read a grid row through a stand-in shaped like a Tabulator row. It now takes the row with a reader that gives its data and its parent.
No .scss file is left after the Tabulator removal, so sass and the SCSS build paths go.
Give the real reason the document copy of the tokens stays, and fix other comments that named Tabulator. The bench refuses c=tabulator, so a run cannot overwrite the Tabulator baseline, and drops its unused skip list.
lukecotter
force-pushed
the
feat-remove-tabulator
branch
from
October 16, 2026 15:53
1d8f846 to
41204e0
Compare
lcottercertinia
approved these changes
Oct 16, 2026
lcottercertinia
approved these changes
Oct 16, 2026
lcottercertinia
pushed a commit
that referenced
this pull request
Oct 16, 2026
…ctor call tree (#1182) ## Problem With nothing selected, the Inspector call tree showed zero-duration top-level lines as rows with no time, for example `USER_INFO`. ## Cause The whole-log tree built each top-level event with `realSubtree`, which keeps its root whatever its duration, as a selection is kept. ## Fix `subtreeRoots` takes a `dropEmpty` option. Only the whole-log tree turns it on: it leaves out a top-level row that has no duration and nothing timed below it. A selection still always shows. The Call Tree tab still shows `USER_INFO` as a row. ## Tests - New: "leaves out a top-level line with no duration, as the Inspector does for any row". It fails without the fix. - `pnpm lint`: pass - `pnpm test`: 2881/2881 pass, after merging main (#1174) ## CHANGELOG No entry. The `USER_INFO` row is itself unreleased, so this most likely never reached users.
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.
Part of #1169.
What changes
All 7 grids now use lv-grid, so this PR removes Tabulator:
tabulator-tablesand@types/tabulator-tablespackages.log-viewer/src/tabulator/. Its modules, renderer, group helpers, formatters, styles and their tests are deleted.TableShared.ts,CalltreeNameFormatter.ts,BottomUpTable.tsandExpandCollapse.ts.locatedRow.ts(the row path stamp),CategoryColoring.ts(the row formatters),ColumnViews.ts,ColumnSettingsController.tsandGridColumnMenuController.ts.compare.mjsstill compares against them.lana/no-tabulator-html-tooltiplint rule.The modules that lv-grid code still uses move to
components/grid/:ColumnViews.ts,ColumnWidths.ts,MinMax.tsandmeasureWidth.ts. TheProgress.cssrules move intoAppGrid's styles, the only grid that draws progress bars.LICENSE.txtno longer has the Tabulator notice, because the extension does not ship Tabulator now. The README acknowledgment says that earlier versions used it.Not changed
The build still injects each stylesheet into
document.head. Tabulator needed this for its popups ondocument.body.styles/tokens.cssis now the only stylesheet, and its document copy is still needed as a fallback that shadow roots inherit (for exampleDatabaseMetricCard.tsreads a token without adopting the tokens). The comments say it is a fallback only, as.claude/rules/log-viewer.mddoes.Follow-ups from /simplify and /code-review
RowReader(data,parentOf), not through a Tabulator-shaped stand-in.inspectorRowEventsbuilds the reader from thedataandparentOfoptions its callers already pass.sassand the SCSS build support go: no.scssfile is left.c=tabulator, so a run cannot overwrite the Tabulator baseline.Follow-ups from /deep-review
tabulator.id,title,hidden), with no Tabulator-shaped copy.RowData), and the inspector row options are the reader.scss. The rules keep the codicon font-size exemption, which now points atAppGrid.Commits
refactor(log-viewer): remove Tabulatordocs: drop the Tabulator notices and guidancerefactor(log-viewer): read Inspector rows through a row readerbuild: remove the SCSS supportchore: tidy what the Tabulator removal leftfix(bench): refuse an unknown grid bench contender at oncebuild: drop scss from the prettier globsdocs(rules): keep the codicon font-size exemption, now in AppGriddocs(log-viewer): call the document token copy a fallback, as the rule doesrefactor(log-viewer): give the column menu its target oncerefactor(log-viewer): name a column view's targets as targets, not tablesrefactor(log-viewer): pass the inspector row options as the row readerrefactor(log-viewer): type the row a reader gives the inspectortest(log-viewer): check every call-tree view names a real columntest(log-viewer): drop the rowFrames tests rowDetailSelection coversrefactor(log-viewer): build the column menu from the grid's own columnsrefactor(log-viewer): build the SOQL group cell without Tabulator's header shaperefactor(log-viewer): keep the progress bar styles in the grid that draws themNot in this PR
components/grid/.ColumnWidths.tsfor lv-grid. Its formula still uses Tabulator's sort-arrow reserve.Tests
pnpm lint: passpnpm test: 2880/2880 passpnpm exec jest --selectProjects log-viewer: 2511/2511 pass. Main has 2627; the removed tests were Tabulator's or duplicates.pnpm build: buildspnpm test:e2e:web: 2/2 pass before the rebase onto main. It was not run after the rebase or the review commits. CI runs it.