chore(lint): clear the 8 existing ESLint errors so #128 can land#133
Merged
Conversation
The eslint-config-next ruleset surfaced 8 errors in the current codebase. Once the CI lint job from #128 merges, every PR (including the 0.1.2 release) would fail on these. Clearing them first so #128 can land without breaking main. - mcp/data.ts: 5x `any` on JSON-shaped Supabase rows → `Record<string, unknown>`. Matches the existing `GeneratedBrief.brief` typing right next to them and gives consumers an explicit narrow-required surface. - sidebar.tsx, mobile-nav.tsx: setState-in-effect on a hydration mount flag. This is the canonical Next.js theme-swap pattern — SSR can't know resolvedTheme, so we render the light logo first and swap after hydration. No useEffect-free version avoids the mismatch; disable the rule on the setMounted line with a comment explaining the intent. - invite/[token]/page.tsx: `Date.now()` purity error on the expiration check. This is a server component rendering per request, the rule targets client-side memoization concerns that don't apply on the server. Disable with a comment. Warnings (unused imports etc.) untouched — they don't fail the build, and addressing them is mechanical cleanup that doesn't belong in this PR.
This was referenced May 31, 2026
Merged
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.
What
#128 (external contributor, thanks @ayobamiseun) adds
yarn lintto the web CI job. As-is it would break every PR, because the codebase has 8 existing ESLint errors that the new step would catch. This PR clears them so #128 can merge without taking main red.Verified locally:
yarn lintexits 0 (11 warnings remain — unused imports etc. — out of scope, don't fail the build).Errors fixed
web/src/lib/mcp/data.ts@typescript-eslint/no-explicit-anyon JSON-shaped Supabase rowsanywithRecord<string, unknown>. Mirrors the existingGeneratedBrief.brieftyping right next to them.web/src/components/layout/sidebar.tsxreact-hooks/set-state-in-effecton hydration mount flagsetMounted(true)line with a comment. Canonical Next.js theme-swap pattern — SSR can't knowresolvedTheme, so we render the light logo first and swap after hydration. No useEffect-free version avoids the hydration mismatch.web/src/components/layout/mobile-nav.tsxweb/src/app/[locale]/invite/[token]/page.tsxreact-hooks/purityonDate.now()expiration checkOut of scope
@next/next/no-img-element) warning onai-provider-avatar.tsx— separatenext/imagemigration, also doesn't fail the build.Merge sequence
release/0.1.2branch, ready to reopen)