Files
breakpilot-lehrer/website/app/admin/rag
Benjamin Admin 451365a312 [split-required] Split remaining 500-680 LOC files (final batch)
website (17 pages + 3 components):
- multiplayer/wizard, middleware/wizard+test-wizard, communication
- builds/wizard, staff-search, voice, sbom/wizard
- foerderantrag, mail/tasks, tools/communication, sbom
- compliance/evidence, uni-crawler, brandbook (already done)
- CollectionsTab, IngestionTab, RiskHeatmap

backend-lehrer (5 files):
- letters_api (641 → 2), certificates_api (636 → 2)
- alerts_agent/db/models (636 → 3)
- llm_gateway/communication_service (614 → 2)
- game/database already done in prior batch

klausur-service (2 files):
- hybrid_vocab_extractor (664 → 2)
- klausur-service/frontend: api.ts (620 → 3), EHUploadWizard (591 → 2)

voice-service (3 files):
- bqas/rag_judge (618 → 3), runner (529 → 2)
- enhanced_task_orchestrator (519 → 2)

studio-v2 (6 files):
- korrektur/[klausurId] (578 → 4), fairness (569 → 2)
- AlertsWizard (552 → 2), OnboardingWizard (513 → 2)
- korrektur/api.ts (506 → 3), geo-lernwelt (501 → 2)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-25 08:56:45 +02:00
..

RAG Admin Page Refactoring

Status: Partially Refactored

The large page.tsx (2,964 lines) has been partially split into smaller components.

Structure

website/app/admin/rag/
├── page.tsx                    # Main page (needs update to import components)
├── types.ts                    # Shared type definitions (150 lines)
├── components/
│   ├── index.ts                # Component exports
│   ├── CollectionsTab.tsx      # Collections management (593 lines)
│   ├── UploadTab.tsx           # File upload (327 lines)
│   ├── IngestionTab.tsx        # Ingestion control (512 lines)
│   └── DocumentsTab.tsx        # Document browser (425 lines)
└── wizard/                     # Existing wizard subdirectory

Extracted Components

Component Lines Description
CollectionsTab 593 Collection CRUD, CollectionCard
UploadTab 327 File upload with drag & drop
IngestionTab 512 Ingestion control, progress, history
DocumentsTab 425 Document list, filtering, preview

Remaining in page.tsx

  • SearchTab (~230 lines)
  • MetricsTab (~110 lines)
  • SystemInfoTab (~350 lines)
  • Main component and tab navigation (~290 lines)

TODO

  1. Update page.tsx to import extracted components
  2. Extract remaining tabs (SearchTab, MetricsTab, SystemInfoTab)
  3. Add comprehensive tests

Types

All shared types are in types.ts:

  • Collection, CreateCollectionData
  • IngestionStatus, SearchResult
  • UploadResult, LiveProgress
  • IndexedStats, PendingFile
  • IndexedDocument, DocumentContent
  • SystemInfo, TabId

Usage

import { CollectionsTab, UploadTab, IngestionTab, DocumentsTab } from './components'
import type { Collection, IngestionStatus } from './types'