import { SchedulerStatusCard } from './SchedulerStatusCard' import { SpinnerIcon } from './SpinnerIcon' export function SchedulerTab({ isRunningGolden, isRunningRag, isRunningSynthetic, runGoldenTests, runRagTests, runSyntheticTests, }: { isRunningGolden: boolean isRunningRag: boolean isRunningSynthetic: boolean runGoldenTests: () => void runRagTests: () => void runSyntheticTests: () => void }) { return (
{/* Status Overview */}
} /> } /> } />
{/* Quick Actions */}

Quick Actions

{/* GitHub Actions vs Local - Comparison */} {/* Configuration Details */} {/* Detailed Explanation */}
) } function QuickActionButton({ label, isRunning, onClick, colorClass, }: { label: string isRunning: boolean onClick: () => void colorClass: string }) { return ( ) } function ComparisonTable() { const rows = [ { feature: 'Taegliche Tests (07:00)', gh: 'schedule: cron', local: 'macOS launchd', localColor: 'emerald' }, { feature: 'Push-basierte Tests', gh: 'on: push', local: 'Git post-commit Hook', localColor: 'emerald' }, { feature: 'PR-basierte Tests', gh: 'on: pull_request', ghColor: 'emerald', local: 'Nicht moeglich', localColor: 'amber' }, { feature: 'Regression-Check', gh: 'API-Call', local: 'Identischer API-Call', localColor: 'emerald' }, { feature: 'Benachrichtigungen', gh: 'GitHub Issues', local: 'Desktop/Slack/Email', localColor: 'emerald' }, { feature: 'DSGVO-Konformitaet', gh: 'Daten bei GitHub (US)', ghColor: 'amber', local: '100% lokal', localColor: 'emerald' }, { feature: 'Offline-Faehig', gh: 'Nein', ghColor: 'red', local: 'Ja', localColor: 'emerald' }, ] return (

GitHub Actions Alternative

Der lokale BQAS Scheduler ersetzt GitHub Actions und bietet DSGVO-konforme, vollstaendig lokale Test-Ausfuehrung.

{rows.map((row) => ( ))}
Feature GitHub Actions Lokaler Scheduler
{row.feature} {row.ghColor ? ( {row.gh} ) : ( {row.gh} )} {row.local}
) } function ConfigurationSection() { return (

Konfiguration

{/* launchd Configuration */}

launchd Job

{`# ~/Library/LaunchAgents/com.breakpilot.bqas.plist
Label: com.breakpilot.bqas
Schedule: 07:00 taeglich
Script: /voice-service/scripts/run_bqas.sh
Logs: /var/log/bqas/`}
{/* Environment Variables */}

Umgebungsvariablen

{[ { key: 'BQAS_SERVICE_URL', value: 'http://localhost:8091', color: 'text-slate-900' }, { key: 'BQAS_REGRESSION_THRESHOLD', value: '0.1', color: 'text-slate-900' }, { key: 'BQAS_NOTIFY_DESKTOP', value: 'true', color: 'text-emerald-600 font-medium' }, { key: 'BQAS_NOTIFY_SLACK', value: 'false', color: 'text-slate-400' }, ].map((env) => (
{env.key} {env.value}
))}
) } function ExplanationSection() { return (

Detaillierte Erklaerung

Warum ein lokaler Scheduler?

Der lokale BQAS Scheduler wurde entwickelt, um die gleiche Funktionalitaet wie GitHub Actions zu bieten, aber mit dem entscheidenden Vorteil, dass alle Daten zu 100% auf dem lokalen Mac Mini verbleiben. Dies ist besonders wichtig fuer DSGVO-Konformitaet, da keine Schuelerdaten oder Testergebnisse an externe Server uebertragen werden.

Komponenten

Installation

./voice-service/scripts/install_bqas_scheduler.sh install

Vorteile gegenueber GitHub Actions

) }