chore: hygiene close-out -- resizable-table proper fix, golangci-lint second pass, ls-lint node_modules ignore (BACKLOG 10/11) - #53
Merged
Conversation
… second pass, ls-lint node_modules ignore (BACKLOG 10/11) resizable-table.spec.ts (Standing #10, third recurrence post-hardening): structural fix, not another timeout bump. test.describe.configure({ mode: 'serial' }) makes the file's never-interleave requirement explicit; waitForStableBoundingBox polls for the handle's bounding box being IDENTICAL across two consecutive reads (a non-null box mid-reflow was always possible the old check couldn't see); the synthesized drag moved from one batched page.mouse.move(..., { steps: N }) call to discrete, individually-awaited moves (browsers coalesce rapid pointermove events within one CDP command -- real, documented browser behavior via PointerEvent.getCoalescedEvents()); two more expect.polls wait for the drag's actual DOM effect and the localStorage persist to land before the next step depends on them. A keyboard-resize alternative was checked and ruled out -- shared/ResizableTable.tsx has no keyboard path at all, building one would be a feature addition, not a test fix. Verified via 5 separate fresh playwright invocations (10/10) -- an in-process --repeat-each stress loop turned out to be a self-confounding methodology (accumulating same-worker degradation, not representative of a real CI run). golangci-lint second pass (Standing #11b, named future work in goal 0028): gocritic/prealloc/contextcheck/sqlclosecheck enabled. Triaged to zero findings on both build-tag variants -- 14 real findings fixed (1 gocritic assignOp, 13 prealloc slice-capacity hints), zero contextcheck/sqlclosecheck findings, no rule needed a scoped tweak or nolint suppression this pass. .ls-lint.yml (Standing #11c): root ignore: list gains node_modules, with a comment on the root-scoped-recursive-rule interaction that caused the original gap. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018pkViCNAuZp2vBv2K9AbUh
alicoding
enabled auto-merge (squash)
August 13, 2026 06:32
alicoding
added a commit
that referenced
this pull request
Aug 13, 2026
… second pass, ls-lint node_modules ignore (BACKLOG 10/11) (#53) resizable-table.spec.ts (Standing #10, third recurrence post-hardening): structural fix, not another timeout bump. test.describe.configure({ mode: 'serial' }) makes the file's never-interleave requirement explicit; waitForStableBoundingBox polls for the handle's bounding box being IDENTICAL across two consecutive reads (a non-null box mid-reflow was always possible the old check couldn't see); the synthesized drag moved from one batched page.mouse.move(..., { steps: N }) call to discrete, individually-awaited moves (browsers coalesce rapid pointermove events within one CDP command -- real, documented browser behavior via PointerEvent.getCoalescedEvents()); two more expect.polls wait for the drag's actual DOM effect and the localStorage persist to land before the next step depends on them. A keyboard-resize alternative was checked and ruled out -- shared/ResizableTable.tsx has no keyboard path at all, building one would be a feature addition, not a test fix. Verified via 5 separate fresh playwright invocations (10/10) -- an in-process --repeat-each stress loop turned out to be a self-confounding methodology (accumulating same-worker degradation, not representative of a real CI run). golangci-lint second pass (Standing #11b, named future work in goal 0028): gocritic/prealloc/contextcheck/sqlclosecheck enabled. Triaged to zero findings on both build-tag variants -- 14 real findings fixed (1 gocritic assignOp, 13 prealloc slice-capacity hints), zero contextcheck/sqlclosecheck findings, no rule needed a scoped tweak or nolint suppression this pass. .ls-lint.yml (Standing #11c): root ignore: list gains node_modules, with a comment on the root-scoped-recursive-rule interaction that caused the original gap. Claude-Session: https://claude.ai/code/session_018pkViCNAuZp2vBv2K9AbUh Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
alicoding
added a commit
that referenced
this pull request
Aug 15, 2026
… second pass, ls-lint node_modules ignore (BACKLOG 10/11) (#53) resizable-table.spec.ts (Standing #10, third recurrence post-hardening): structural fix, not another timeout bump. test.describe.configure({ mode: 'serial' }) makes the file's never-interleave requirement explicit; waitForStableBoundingBox polls for the handle's bounding box being IDENTICAL across two consecutive reads (a non-null box mid-reflow was always possible the old check couldn't see); the synthesized drag moved from one batched page.mouse.move(..., { steps: N }) call to discrete, individually-awaited moves (browsers coalesce rapid pointermove events within one CDP command -- real, documented browser behavior via PointerEvent.getCoalescedEvents()); two more expect.polls wait for the drag's actual DOM effect and the localStorage persist to land before the next step depends on them. A keyboard-resize alternative was checked and ruled out -- shared/ResizableTable.tsx has no keyboard path at all, building one would be a feature addition, not a test fix. Verified via 5 separate fresh playwright invocations (10/10) -- an in-process --repeat-each stress loop turned out to be a self-confounding methodology (accumulating same-worker degradation, not representative of a real CI run). golangci-lint second pass (Standing #11b, named future work in goal 0028): gocritic/prealloc/contextcheck/sqlclosecheck enabled. Triaged to zero findings on both build-tag variants -- 14 real findings fixed (1 gocritic assignOp, 13 prealloc slice-capacity hints), zero contextcheck/sqlclosecheck findings, no rule needed a scoped tweak or nolint suppression this pass. .ls-lint.yml (Standing #11c): root ignore: list gains node_modules, with a comment on the root-scoped-recursive-rule interaction that caused the original gap. Claude-Session: https://claude.ai/code/session_018pkViCNAuZp2vBv2K9AbUh Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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.
Summary
test.describe.configure({ mode: 'serial' });waitForStableBoundingBox(poll for the handle's box being identical across two consecutive reads, not just non-null); the synthesized drag moved from one batchedpage.mouse.move(..., { steps: N })to discrete individually-awaited moves (browsers coalesce rapid pointermove events within one CDP command); two moreexpect.polls wait for the drag's actual DOM effect and the localStorage persist to land before the next step depends on them. A keyboard-resize alternative was checked and ruled out (no keyboard path exists in the component; building one would be a feature addition, not a test fix)..ls-lint.ymlrootnode_modulesignore (Standing #11c), with a comment on the root-scoped-recursive-rule interaction that caused the original gap.Test plan
go vet . ./internal/...,golangci-lint run . ./internal/...(0 issues on both build tags),go test . ./internal/... -race -cover, bothgo buildvariantsscripts/check-loc.sh,ls_lintnpx tsc --noEmit,npx vitest run(260/260),npm run lint(0 errors),npm run boundaries(0 violations)npx playwright testinvocations (10/10 passed) — the more representative CI-realistic methodology after an in-process--repeat-eachstress loop turned out to be self-confounding (accumulating same-worker/browser degradation across dozens of rapid iterations, not a real CI condition)🤖 Generated with Claude Code
https://claude.ai/code/session_018pkViCNAuZp2vBv2K9AbUh