Skip to content
This repository was archived by the owner on Apr 21, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions apps/desktop/eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ export default [
'react/prop-types': 'off',
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'warn',
// react-hooks v7+ introduced this as 'error'; disable repo-wide pending a
// dedicated refactor PR (load-on-mount patterns need wider restructuring).
'react-hooks/set-state-in-effect': 'off',
'no-console': 'off',
'no-undef': 'off',
'prefer-const': 'error',
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"fumadocs-mdx": "^14.2.11",
"fumadocs-ui": "^16.7.10",
"lucide-react": "^0.577.0",
"next": "^16.2.2",
"next": "^16.2.4",
"react": "^19.0.0",
"react-dom": "^19.0.0"
},
Expand Down
4 changes: 4 additions & 0 deletions apps/web/eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,10 @@ export default [
'react/prop-types': 'off',
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'warn',
// react-hooks v7+ introduced this as 'error'; disabling repo-wide pending a
// dedicated refactor PR. Many existing effects legitimately set state as
// part of load-on-mount patterns which would require wider restructuring.
'react-hooks/set-state-in-effect': 'off',

// General rules
'no-console': 'off', // Allow console statements
Expand Down
4 changes: 2 additions & 2 deletions apps/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
"lucide-react": "^0.577.0",
"marked": "^17.0.6",
"motion": "^12.38.0",
"next": "^16.2.2",
"next": "^16.2.4",
"octokit": "^5.0.5",
"react": "^19.0.0",
"react-dom": "^19.0.0",
Expand Down Expand Up @@ -75,7 +75,7 @@
"@typescript-eslint/eslint-plugin": "^8.58.0",
"@typescript-eslint/parser": "^8.57.2",
"autoprefixer": "^10.4.20",
"eslint": "^10.2.0",
"eslint": "^9.39.4",
"eslint-config-next": "^16.2.2",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
Expand Down
1 change: 0 additions & 1 deletion apps/web/src/components/ai-keys/EditApiKeyDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ export function EditApiKeyDialog({ open, onOpenChange, keyId }: EditApiKeyDialog
useLayoutEffect(() => {
if (open && currentKey) {
// Reset form fields when dialog opens — intentional synchronous reset
// eslint-disable-next-line react-hooks/set-state-in-effect
setApiKey('');
setShowApiKey(false);
}
Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/lib/stripe/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export function getStripe(): Stripe {
if (!key) throw new Error('STRIPE_SECRET_KEY is not configured');

stripeInstance = new Stripe(key, {
apiVersion: '2026-02-25.clover',
apiVersion: '2026-03-25.dahlia',
typescript: true,
});
}
Expand Down
Loading
Loading