mirror of
https://github.com/multica-ai/multica.git
synced 2026-07-23 01:59:24 +02:00
* fix(deps): add eslint phantom dep detection + fix existing violations (MUL-2654) Introduce eslint-plugin-import-x/no-extraneous-dependencies rule to prevent phantom deps from causing production build splits when pnpm creates peer-dep variants. Fix all existing phantom deps across the monorepo, unify catalog references, and enable desktop smoke CI on PRs. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: multica-agent <github@multica.ai> * revert(ci): remove desktop smoke PR trigger per user feedback The existing smoke workflow only verifies packaging completes — it does not actually start the app or check rendering. This means it wouldn't have caught the white-screen bug (which was a runtime issue, not a build failure). Adding it to PRs would slow CI without providing meaningful protection. The ESLint no-extraneous-dependencies rule is the actual prevention mechanism. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: multica-agent <github@multica.ai> * fix(deps): sync pnpm-lock.yaml for rehype-sanitize dep classification Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: multica-agent <github@multica.ai> * fix(ui): move rehype-sanitize to deps + declare eslint-config (MUL-2654) - Move rehype-sanitize from devDependencies to dependencies (used in production Markdown.tsx) - Add @multica/eslint-config to devDependencies (imported by eslint.config.mjs but previously undeclared) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: multica-agent <github@multica.ai> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: multica-agent <github@multica.ai>
46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
import eslint from "@eslint/js";
|
|
import tseslint from "typescript-eslint";
|
|
import importPlugin from "eslint-plugin-import-x";
|
|
|
|
/** @type {import("eslint").Linter.Config[]} */
|
|
export default [
|
|
eslint.configs.recommended,
|
|
...tseslint.configs.recommended,
|
|
{
|
|
plugins: {
|
|
"import-x": importPlugin,
|
|
},
|
|
rules: {
|
|
// Already enforced by TypeScript compiler (noUnusedLocals/noUnusedParameters)
|
|
"@typescript-eslint/no-unused-vars": "off",
|
|
// Allow explicit any where needed
|
|
"@typescript-eslint/no-explicit-any": "off",
|
|
// Prevent phantom dependencies — imports must be declared in package.json
|
|
"import-x/no-extraneous-dependencies": ["error", {
|
|
devDependencies: [
|
|
"**/*.test.{ts,tsx}",
|
|
"**/*.spec.{ts,tsx}",
|
|
"**/test/**",
|
|
"**/tests/**",
|
|
"**/vitest.config.*",
|
|
"**/vite.config.*",
|
|
"**/electron.vite.config.*",
|
|
"**/eslint.config.*",
|
|
"**/scripts/**",
|
|
"**/src/main/**",
|
|
"**/src/preload/**",
|
|
],
|
|
peerDependencies: true,
|
|
}],
|
|
},
|
|
},
|
|
{
|
|
ignores: [
|
|
"node_modules/",
|
|
"dist/",
|
|
".next/",
|
|
"out/",
|
|
],
|
|
},
|
|
];
|