mirror of
https://github.com/stablyai/orca.git
synced 2026-09-25 00:02:35 +00:00
* feat(design-system): gate renderer UI with @shadcn/lint Wires shadcn-ui/lint's Oxlint plugin into the two places this repo already ratchets: the changed-lines PR gate for rules the renderer can't satisfy today, and `pnpm lint` for the one that is already at zero. - config/oxlint-design-system.json: no-restyle (layout allowed), no-raw-colors, require-static-classes -- scoped to src/renderer/**/*.tsx, run over added lines only. Measured at 10 findings across the last 60 commits (771 changed files), so it holds the line without a migration. - config/oxlint-dead-classes.json: no-unknown-classes repo-wide, with the renderer's plain-CSS hook namespaces allow-listed. Now at zero. - no-inline-styles and no-arbitrary-values stay off; STYLEGUIDE says why. Fixes the three live bugs the linter found: - `--editor-surface` never reached `@theme inline`, so `bg-editor-surface` generated no CSS -- 12 editor/artifact/notebook panes fell through to the page background instead of #1e1e1e in dark mode. - `scrollbar-none` is not a Tailwind utility and was declared nowhere, so the remote file browser breadcrumbs showed the scrollbar they meant to hide. Declared as a real `@utility`. - Notebook markdown cells used `markdown-preview-body`, which no stylesheet defines; the styled class is `markdown-body`. They rendered unstyled. * ci: run the dead-class gate in PR CI `pnpm lint` gained check:dead-classes, and pr-workflow-lint-parity requires every `pnpm lint` step to have a matching step in pr.yml. * fix(notebook): keep markdown theme selectors working
78 lines
1.9 KiB
JSON
78 lines
1.9 KiB
JSON
{
|
|
"$schema": "../node_modules/oxlint/configuration_schema.json",
|
|
"plugins": [],
|
|
"categories": {
|
|
"correctness": "off",
|
|
"suspicious": "off",
|
|
"pedantic": "off",
|
|
"perf": "off",
|
|
"style": "off",
|
|
"restriction": "off",
|
|
"nursery": "off"
|
|
},
|
|
"jsPlugins": [
|
|
{
|
|
"name": "shadcn",
|
|
"specifier": "@shadcn/lint"
|
|
}
|
|
],
|
|
"settings": {
|
|
"shadcn": {
|
|
"note": "See docs/STYLEGUIDE.md for the role each token and primitive plays."
|
|
}
|
|
},
|
|
"rules": {},
|
|
"overrides": [
|
|
{
|
|
"files": ["**/src/renderer/**/*.tsx"],
|
|
"rules": {
|
|
"shadcn/no-unknown-classes": [
|
|
"error",
|
|
{
|
|
"allow": [
|
|
"agent-map-*",
|
|
"comment-md-*",
|
|
"compact-agent-*",
|
|
"feature-wall-*",
|
|
"is-*",
|
|
"markdown-annotation-*",
|
|
"markdown-body",
|
|
"markdown-dark",
|
|
"markdown-doc-link*",
|
|
"markdown-light",
|
|
"markdown-preview",
|
|
"markdown-preview-search*",
|
|
"markdown-preview-shell",
|
|
"markdown-review-*",
|
|
"markdown-toc-*",
|
|
"mobile-browser-driver-banner",
|
|
"mobile-driver-banner",
|
|
"native-chat-*",
|
|
"orca-*",
|
|
"pdfViewer",
|
|
"popover-scroll-content",
|
|
"popover-wheel-scroll",
|
|
"ravpr-*",
|
|
"ravs-*",
|
|
"scrollbar-editor",
|
|
"scrollbar-sleek",
|
|
"scrollbar-sleek-lg",
|
|
"scrollbar-sleek-parent",
|
|
"toaster",
|
|
"worktree-sidebar-scrollbar",
|
|
"xterm-*"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"files": ["**/*.test.tsx"],
|
|
"rules": {
|
|
"shadcn/no-unknown-classes": "off"
|
|
}
|
|
}
|
|
],
|
|
"ignorePatterns": ["**/node_modules", "**/dist", "**/out", "cloud/**", "mobile/**"]
|
|
}
|