unsloth/studio/frontend/biome.json
Etherll 27b0a50a84 Studio: WIP — RAG preview UI, locator/auth refactor, tests, fixtures (pre-merge snapshot)
Snapshot taken before fast-forwarding feature/rag to origin and merging main.
Bundles in-flight work so the merge has a clean tree:

Frontend
- PDF preview panel (preview-panel, preview-pdf-view, preview-text-view,
  preview-unavailable) with lazy-rendered page thumbnail rail
- Resizable preview slot via useResizablePanelWidth hook (drag handle,
  localStorage persistence, viewport clamping)
- Neutral scrollbar + Source Excerpt card restyle (no brand-coloured rail)
- Preview-store + chat-adapter / rag-api / kb-detail wiring
- Frontend test harness (vitest.config, setupTests, biome update) and the
  paired __tests__ suites for preview, sources, document-row, chat-adapter,
  rag-api, knowledge-bases-tab, search-knowledge-base-tool-ui

Backend
- RAG locator + authorization modules with chunking / retrieval / tool /
  vector_store / studio_db updates
- Paired test_rag_* suites (authorization, locators, locator_backfill,
  locator_migration, preview_routes, preview_target_locators, source_identity)

Other
- tests/fixtures/rag-preview for preview route fixtures (sample.pdf,
  sample.txt, make_fixture_pdf.py)
- .gitignore + package(-lock).json adjustments for the new test runner

Will be squashed/reworked via interactive rebase after main is merged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 00:13:43 +03:00

150 lines
3.3 KiB
JSON

{
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
"files": {
"ignore": [
"dist",
"node_modules",
"test",
"test/**",
"**/._*",
"._*",
"**/.DS_Store",
"tsconfig*.json"
]
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2
},
"organizeImports": {
"enabled": true
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"a11y": { "all": true },
"complexity": { "all": true },
"correctness": { "all": true, "useImportExtensions": "off" },
"performance": { "all": true },
"security": { "all": true },
"style": {
"all": true,
"useNamingConvention": { "options": { "strictCase": false } }
},
"suspicious": { "all": true, "noReactSpecificProps": "off" }
}
},
"overrides": [
{
"include": ["vite.config.ts", "vitest.config.ts", "eslint.config.js"],
"linter": {
"rules": {
"correctness": { "noNodejsModules": "off" },
"style": { "noDefaultExport": "off" }
}
}
},
{
"include": ["src/components/assistant-ui/reasoning.tsx"],
"linter": {
"rules": {
"style": { "useNamingConvention": "off" }
}
}
},
{
"include": ["src/components/assistant-ui/attachment.tsx"],
"linter": {
"rules": {
"style": { "useNamingConvention": "off" }
}
}
},
{
"include": ["src/components/assistant-ui/tool-fallback.tsx"],
"linter": {
"rules": {
"style": { "useNamingConvention": "off" }
}
}
},
{
"include": ["src/components/component-example.tsx"],
"linter": {
"rules": {
"style": { "noNamespaceImport": "off" }
}
}
},
{
"include": ["src/config/env.ts"],
"linter": {
"rules": {
"style": { "useNamingConvention": "off" }
}
}
},
{
"include": ["src/components/layout/index.ts"],
"linter": {
"rules": {
"performance": { "noBarrelFile": "off" }
}
}
},
{
"include": ["src/features/**/index.ts"],
"linter": {
"rules": {
"performance": { "noBarrelFile": "off" }
}
}
},
{
"include": ["src/features/chat/thread-sidebar.tsx"],
"linter": {
"rules": {
"a11y": { "useSemanticElements": "off" }
}
}
},
{
"include": ["src/features/chat/runtime-provider.tsx"],
"linter": {
"rules": {
"style": { "useNamingConvention": "off" }
}
}
},
{
"include": ["src/components/assistant-ui/thread.tsx"],
"linter": {
"rules": {
"style": { "useNamingConvention": "off" }
}
}
},
{
"include": ["src/features/onboarding/components/steps/summary-step.tsx"],
"linter": {
"rules": {
"style": { "useExplicitLengthCheck": "off" }
}
}
},
{
"include": ["src/components/ui/**"],
"linter": {
"enabled": false
},
"formatter": {
"enabled": false
},
"organizeImports": {
"enabled": false
}
}
]
}