mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-09-22 09:34:53 +02:00
[eric] lint: extend max-folder-items governance to frontend (documented exceptions, drop blanket ignore)
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
"eslint-knip": "Node tooling deferred to a later pass.",
|
||||
"classes": "Placeholder check, not wired up. endpoints: orphaned-endpoint triage deferred.",
|
||||
"max-file-lines-exceptions": "Grandfather list of pre-existing >300-line files (existing debt, not new). Paths updated after the folder-tree restructure moved several of them.",
|
||||
"max-folder-items-exceptions": "Exact-path allow for folders that are intentionally big. backend/ and backend/apps are FastAPI feature-package registries (each child is an app mounted in main.py); agents/ aggregates agent subsystems; core/, service/, tools_lib/, tests/ are conventionally flat. These replaced a blanket backend/.lintignore-max-folder-items so the rule still catches NEW unplanned bloat in every other folder. The webapp_template Vite scaffold is a payload, exempted as a whole subtree by its own .lintignore-max-folder-items (same as vendored mcp-bundles).",
|
||||
"max-folder-items-exceptions": "Exact-path allow for folders that are intentionally big. backend/ and backend/apps are FastAPI feature-package registries (each child is an app mounted in main.py); agents/ aggregates agent subsystems; core/, service/, tools_lib/, tests/ are conventionally flat. These replaced a blanket backend/.lintignore-max-folder-items so the rule still catches NEW unplanned bloat in every other folder. Frontend entries follow the same idea and replaced the blanket frontend/.lintignore-max-folder-items: app/pages is the page registry, AgentChat/Dashboard/ChatInput/Settings-sections/Onboarding are organizational parents holding sub-areas, and shared/state (Redux slices) plus hooks/styles/steps/ac/editor and the *-cards/*-bubbles dirs are conventionally flat peer collections. The webapp_template Vite scaffold is a payload, exempted as a whole subtree by its own .lintignore-max-folder-items (same as vendored mcp-bundles).",
|
||||
"import-cycles": "Flags RUNTIME circular imports only (SCC>1). Skips type-only imports (import type / export type) and dynamic import() since neither runs at module init, which is why the idiomatic Redux store<->hooks type cycle is not flagged. Frontend alias resolution comes from import-cycle-aliases. Zero cycles today; the check keeps it that way."
|
||||
},
|
||||
"rules": {
|
||||
@@ -138,7 +138,27 @@
|
||||
"backend/apps/outputs",
|
||||
"backend/apps/service",
|
||||
"backend/apps/tools_lib",
|
||||
"backend/tests"
|
||||
"backend/tests",
|
||||
"frontend/src/shared",
|
||||
"frontend/src/shared/state",
|
||||
"frontend/src/shared/hooks",
|
||||
"frontend/src/shared/styles",
|
||||
"frontend/src/app/pages",
|
||||
"frontend/src/app/pages/AgentChat",
|
||||
"frontend/src/app/pages/AgentChat/ChatInput",
|
||||
"frontend/src/app/pages/AgentChat/ChatInput/hooks",
|
||||
"frontend/src/app/pages/AgentChat/ChatInput/model-picker",
|
||||
"frontend/src/app/pages/AgentChat/mcp-cards",
|
||||
"frontend/src/app/pages/AgentChat/tool-bubbles",
|
||||
"frontend/src/app/pages/Dashboard",
|
||||
"frontend/src/app/pages/Dashboard/hooks/interaction",
|
||||
"frontend/src/app/pages/Settings/sections",
|
||||
"frontend/src/app/pages/Tools/cards",
|
||||
"frontend/src/app/pages/Views",
|
||||
"frontend/src/app/components/Onboarding",
|
||||
"frontend/src/app/components/Onboarding/steps",
|
||||
"frontend/src/app/components/Onboarding/ac",
|
||||
"frontend/src/app/components/editor"
|
||||
],
|
||||
"no-nested-imports": [],
|
||||
"import-cycles": [],
|
||||
|
||||
Reference in New Issue
Block a user