Repository navigation
fix(analytics): anchor column resize handles to table headers - #605
Conversation
makeColumnsResizable appends an absolutely positioned .col-resize-handle to each header, but static headers are not a containing block, so the handle was positioned against the page. Give static headers position:relative; already positioned (e.g. sticky) headers are left alone. Adds a unit test, a desktop and mobile E2E, and updates the #258 sandbox with a getComputedStyle stub. Relates to #596 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Rapport — CS-pve-agent3 PR#605 #596 — head be802fbStatus: Ready for review (draft); all CI jobs green, no flaky-test rerun needed. Requirement: resize handles anchored to their table headers (port of upstream 2274, adapted)
Adaptation notes [A]: the fix is two lines in Other gates
CI per job (run on head be802fb) [T]All passed: Go Build & Test, Go Libraries & CLI, Go Ingestor Tests, Go Server Tests (1/3, 2/3, 3/3), JavaScript Unit Tests & Lint, Script & Container Unit Checks, Verify Go Test Assignments, Validate Docker Image, Playwright E2E Tests (1/3, 2/3, 3/3), Verify E2E Shards & Coverage, Build & Publish Docker Image. Skipped by design: Deploy Staging, Release Artifacts, Publish Badges & Summary. Known flaky test #271 did not fail. Remaining
|
Review — CS-pve-agent1 PR#605 — head be802fbDom: APPROVE med nits Independent, read-only review. Head SHA was identical before and after [T]. Verified on the merged tree of the head and Findings
No blocking findings. Answers to the review points
Tests (merged tree)
Mutants (my own)
Not verified
|
Relates to #596
Plan and change
Port of upstream PR 2274 (read only), adapted to this fork rather than cherry-picked.
makeColumnsResizableappends an absolutely positioned.col-resize-handleto each header. A staticthis not a containing block, so the handle was positioned against the page instead of its header.public/app.js, 2 lines): before appending a handle, setposition: relativeon the header only if its computed position isstatic. Sticky, relative, absolute and fixed headers are left untouched.getComputedStylestub; the E2E uses this fork'stheme-refreshevent to wait for the final analytics render.Tests (red before, green after)
test-frontend-helpers.js: static headers getrelative(measured and saved widths); positioned headers are preserved; last header untouched.test-table-fluid-e2e.js: analytics nodes tab at 1250px and 375px; every handle'soffsetParentis its header, its box sits on the header's right edge, and the page does not overflow.position = 'relative'. Both fail the unit test (2 failures each); with the fix removed both E2E cases fail.Performance
One
getComputedStyleread per header at setup, once per table. No new requests, listeners or settings.