Compare commits

..

11 Commits

Author SHA1 Message Date
Benjamin Admin 0ff5399a62 Fix: Change empty path to '/' in recording_routes (FastAPI requirement)
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-school (push) Successful in 30s
CI / test-go-edu-search (push) Successful in 30s
CI / test-python-klausur (push) Failing after 2m29s
CI / test-python-agent-core (push) Successful in 22s
CI / test-nodejs-website (push) Successful in 23s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-25 15:21:59 +02:00
Benjamin Admin 354b0394e5 Fix: Re-export SessionResponse from classroom/routes/sessions barrel
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-25 15:15:49 +02:00
Benjamin Admin 20aea13181 Fix: Cast iframe ref to any for React 19 compat
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-25 15:11:38 +02:00
Benjamin Admin deb405a3a1 Fix: Add missing Category interface to audit-workspace types
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-25 15:02:53 +02:00
Benjamin Admin 03fc0c5945 Fix: Remove gpu-config reference (page was deleted in Phase 0)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-25 14:52:35 +02:00
Benjamin Admin 6a9eb048da Fix: use generic callback type for startActivity in useSessionHandlers
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-25 14:38:24 +02:00
Benjamin Admin c92f2dc7a7 Fix: startActivity parameter type mismatch in useSessionHandlers
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-25 14:29:40 +02:00
Benjamin Admin 4e27c9b35a Fix: conversation.muted also needs nullish coalescing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-25 14:16:25 +02:00
Benjamin Admin 8631971821 Fix: conversation.pinned may be undefined, use nullish coalescing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-25 14:02:13 +02:00
Benjamin Admin 713f0e7570 Fix: Rename .ts files containing JSX to .tsx
- studio-v2/app/meet/_components/types.ts → types.tsx
- website/app/admin/mail/constants.ts → constants.tsx
- website/app/admin/compliance/types.ts → types.tsx

Turbopack requires .tsx extension for files with JSX syntax.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-25 13:42:03 +02:00
Benjamin Admin df3f6e65c2 Fix: Remove unused useState import in EHWizardSteps
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-25 13:13:11 +02:00
11 changed files with 16 additions and 9 deletions
+4 -1
View File
@@ -6,7 +6,10 @@ Combines core session routes and action routes into a single router.
from fastapi import APIRouter
from .sessions_core import router as core_router, build_session_response
from .sessions_core import router as core_router, build_session_response # noqa: F401
# Re-export SessionResponse for backward compat (templates.py imports it)
from classroom.models import SessionResponse # noqa: F401
from .sessions_actions import router as actions_router
router = APIRouter()
+1 -1
View File
@@ -140,7 +140,7 @@ async def get_audit_log(
# RECORDING MANAGEMENT ENDPOINTS
# ==========================================
@router.get("", response_model=RecordingListResponse)
@router.get("/", response_model=RecordingListResponse)
async def list_recordings(
status: Optional[str] = Query(None, description="Filter by status"),
meeting_id: Optional[str] = Query(None, description="Filter by meeting ID"),
@@ -2,7 +2,6 @@
* EH Upload Wizard Steps - Individual step content renderers
*/
import { useState } from 'react'
interface EHMetadata {
title: string
@@ -181,14 +181,14 @@ function ChatHeader({ isDark, conversation, contact, showContactInfo, setShowCon
{/* Actions */}
<div className="flex items-center gap-2">
<HeaderButton isDark={isDark} active={conversation.pinned}
<HeaderButton isDark={isDark} active={conversation.pinned ?? false}
activeColor="amber" onClick={() => pinConversation(conversation.id)}
title={conversation.pinned ? 'Nicht mehr anheften' : 'Anheften'}>
<svg className="w-5 h-5" fill={conversation.pinned ? 'currentColor' : 'none'} stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={1.5} d="M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z" />
</svg>
</HeaderButton>
<HeaderButton isDark={isDark} active={conversation.muted}
<HeaderButton isDark={isDark} active={conversation.muted ?? false}
activeColor="red" onClick={() => muteConversation(conversation.id)}
title={conversation.muted ? 'Ton aktivieren' : 'Stummschalten'}>
<svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
@@ -13,7 +13,7 @@ export async function startSessionFlow(params: {
selectedMobileFile: { dataUrl: string; type: string; name: string } | null
storedDocuments: StoredDocument[]
ocrPrompts: OcrPrompts
startActivity: (type: string, meta: any) => void
startActivity: (...args: any[]) => void
setSession: (s: Session | null | ((prev: Session | null) => Session | null)) => void
setWorksheetTitle: (t: string) => void
setExtractionStatus: (s: string) => void
@@ -54,6 +54,12 @@ export interface AIInterpretation {
error?: string
}
export interface Category {
id: string
name: string
requirement_count: number
}
export const IMPLEMENTATION_STATUS = {
not_started: { label: 'Nicht gestartet', color: 'bg-slate-400' },
in_progress: { label: 'In Arbeit', color: 'bg-yellow-500' },
@@ -42,7 +42,7 @@ export default function LivePreviewPanel({ activeTab, iframeRef }: LivePreviewPa
{/* Preview Frame */}
<div className="relative h-[calc(100vh-340px)] bg-slate-100">
<iframe
ref={iframeRef}
ref={iframeRef as any}
src={`/?preview=true&section=${activeTab}#${activeTab}`}
className="w-full h-full border-0 scale-75 origin-top-left"
style={{
@@ -9,7 +9,7 @@ import type { SystemInfoConfig } from './types'
// Import individual configurations
import { dashboardConfig } from './dashboard-config'
import { gpuConfig } from './gpu-config'
import { consentConfig } from './consent-config'
import { dsrConfig } from './dsr-config'
import { securityConfig } from './security-config'
@@ -40,7 +40,6 @@ export const SYSTEM_INFO_CONFIGS: Record<string, SystemInfoConfig> = {
dashboard: dashboardConfig,
// Infrastructure
gpu: gpuConfig,
dsms: dsmsConfig,
sbom: sbomConfig,