Uh oh!
There was an error while loading. Please reload this page.
chore(lint): clear the mechanical baseline lint errors (8 pkgs, #2713 Wave 1) - #2730
Merged
Conversation
Extends the fields/core lint-gate cleanup from #2709 to eight more packages whose lint was red at baseline on main — so the per-package `lint` gate could not catch new violations of the same class. Errors only; no behavior change. - no-useless-catch (data-objectstack): unwrap 5 rethrow-only try/catch blocks - preserve-caught-error (cli, data-objectstack, react): scoped disable w/ justification (ES2020 lib types the 1-arg Error only, per #2709 core case) - prefer-const (plugin-calendar, plugin-map) - no-empty-object-type (plugin-designer): extend-only interfaces -> type alias - no-useless-assignment (react): drop dead initializer - no-require-imports (plugin-calendar, plugin-timeline tests): async vi.mock factory with await import('react') - stale eslint-disable (plugin-markdown): drop unknown-rule react/no-danger directive, keep rationale as a plain comment Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
Uh oh!
There was an error while loading. Please reload this page.
os-zhuang added a commit
that referenced
this pull request
Jul 20, 2026
…ui#2713 Wave 2) (#2737) Wave 2 of the #2713 lint-gate restoration (after #2730). Nine packages red at baseline on main; cleared every error, no behavior change (warnings out of scope). - rules-of-hooks (i18n, plugin-grid, plugin-view, plugin-list): translation helpers wrapped a provider-safe hook in try/catch -> unwrap (the #2709 fix); plugin-kanban moved its if(error) early return below the useCallback; collaboration __unsafe_usePresenceContext keeps its danger-prefix name via a justified scoped disable - static-components (layout, plugin-list, plugin-report): icon/registry lookups are stable refs -> scoped disable; plugin-charts TreemapCell (genuine inline component) hoisted to module scope - no-irregular-whitespace (plugin-grid ImportWizard): literal U+FEFF CSV BOM written as the escape (runtime-identical) - no-useless-assignment (plugin-grid BulkActionDialog): drop dead initializer - no-unsafe-function-type (plugin-view ViewTabBar): explicit callable signature - no-require-imports (plugin-kanban, plugin-view tests): async vi.mock + await import Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This was referenced Jul 20, 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 freeto 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.
Extends the fields/core lint-gate cleanup from #2709 to the first wave of #2713 — eight packages whose per-package
lintwas red at baseline onmain, so the gate could not catch new violations of the same class. Errors only; zero behavior change (warnings are out of scope per the issue). Grouped into one small PR because the fixes are same-class and mechanical (per the maintainer's call on #2713).What changed (per rule)
no-useless-catch(data-objectstack, ×5) — unwrapped fivetry { … } catch (err) { throw err }blocks whosecatchonly re-threw. Errors still propagate identically; the 6catchblocks that do real work are untouched.preserve-caught-error(cli×4,data-objectstack×2,react×1) — each caught error's message is inlined into the thrownError. A scoped disable with a justifying comment carries each site, because all three packages target ES2020, whose lib types the 1-argErrorconstructor only (sonew Error(msg, { cause })won't compile) — the same reasoning feat(fields): select+multiple → multi-value chip picker; restore fields/core lint gates #2709 used for the core case. Verified: none overridelibto ES2022.prefer-const(plugin-calendar×3,plugin-map×1) —let→constfor never-reassigned bindings.no-empty-object-type(plugin-designer×2) — empty extend-only interfaces → equivalenttypealiases.no-useless-assignment(react×1) — dropped a dead initializer that both branches overwrite before it's read (let pool = objects→let pool: any[]).no-require-imports(plugin-calendar,plugin-timelinetests) — the hoistedvi.mockfactories now use anasyncfactory withawait import('react')instead ofrequire('react')(a real fix, not a disable).eslint-disabledirective (plugin-markdown) — removed areact/no-dangerdisable whose plugin is not loaded in the flat config; ESLint v10 reports the unknown-rule reference as an error. Rationale kept as a plain comment.No lint config was loosened.
Verification
eslint→ 0 errors in all 8 packages (were 27 errors total at baseline).turbo run build(the dts/declaration build CI gates on) → 21/21 tasks green across the 8 packages + their dep graph.data-objectstack(176),react/useRecordSearch(10), the two changedvi.mocktests (7), plusplugin-calendar/plugin-map/plugin-designer/cli(60). 253 total.Scope / follow-ups
This is Wave 1 of #2713 (the pure-mechanical packages that go fully to 0). Remaining red packages — the
react-hooks/rules-of-hooks+static-componentsheavy ones (app-shell, components, plugin-gantt, plugin-detail, plugin-dashboard, plugin-chatbot, and the small mixed set) — follow in later waves.Refs #2713 · pattern from #2709
🤖 Generated with Claude Code