Add complete Academy backend (Go) and frontend (Next.js) for DSGVO/IT-Security/AI-Literacy compliance training:
- Go backend: Course CRUD, enrollments, quiz evaluation, PDF certificates (gofpdf), video generation pipeline (ElevenLabs + HeyGen)
- In-memory data store with PostgreSQL migration for future DB support
- Frontend: Course creation (AI + manual), lesson viewer, interactive quiz, certificate viewer with PDF download
- Fix existing compile errors in generate.go (SearchResult type mismatch), llm/service.go (unused var), rag/service.go (Unicode chars)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Removed: ai-compliance-sdk, dsms-node, dsms-gateway, developer-portal, night-scheduler
Removed nginx proxy: /sdk/v1/ from port 3002, port 3006, port 8093
All services now in breakpilot-core, breakpilot-lehrer, or breakpilot-compliance
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Academy, Whistleblower, Incidents frontend pages with API proxies and types
- Vendor compliance API proxy route
- Go backend handlers and models for all new SDK modules
- Investor pitch-deck app with interactive slides
- Blog section with DSGVO, AI Act, NIS2, glossary articles
- MkDocs documentation site
- CI/CD pipelines (Woodpecker, GitHub Actions), security scanning config
- Planning and implementation documentation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4-tab page (Quellen, Crawl-Jobs, Dokumente, Onboarding-Report) and
catch-all API proxy route to document-crawler service on port 8098.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Reframes the Developer Portal BYOEH page from teacher-specific exam
correction to a general SDK offering for business customers who need
to send sensitive data to the cloud for AI processing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds comprehensive BYOEH (Bring-Your-Own-Expectation-Horizon) architecture
documentation explaining the privacy-first KI exam correction workflow
including pseudonymization, client-side encryption, and namespace isolation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Document breakpilot-pwa, breakpilot-core, breakpilot-compliance as separate compose projects
- Add Developer Portal URLs (port 3006) and compliance services
- Remove billing-service and BreakpilotDrive from active services
- Add developer-portal and breakpilot-compliance-sdk to directory structure
- Document git-filter-repo cleanup (1.7GB -> 11MB)
- Add Docker commands for all three compose projects
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove communication, infrastructure, and development categories from
navigation (now in Admin Core on port 3008). Rename Admin v2 to
Admin Lehrer KI in sidebar, header, and browser title.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove compiled Go binaries (90 MB), 1400+ PDFs, and DOCX files
from git tracking. Files remain on disk but are now gitignored.
This reduces the push payload to allow syncing with external Gitea.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extends the Compliance Advisor from a Q&A chatbot into a full drafting engine
that can generate, validate, and refine compliance documents within Scope Engine
constraints. Includes intent classifier, state projector, constraint enforcer,
SOUL templates, Go backend endpoints, and React UI components.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add 29 new regulations (7 DE + 7 AT + 4 CH + 11 P2/P3) with country
metadata, legal corpus text excerpts, and updated RAG admin UI with
AT/CH type colors and labels. Fix module path in deploy script.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add public Foerderantrag (funding application) pages to the website.
Add website management section to admin-v2 with content and status APIs.
Extend Header, LandingContent, and i18n with new navigation entries.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move 23 sources (18 national data protection laws + 5 EDPB guidelines/SCC)
from bp_dsfa_corpus to bp_legal_corpus with vector preservation. Extend
REGULATIONS array with national_law and eu_guideline types. Mark migrated
sources in dsfa_corpus_ingestion.py to prevent re-ingestion.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove duplicate compliance and DSGVO admin pages that have been superseded
by the unified SDK pipeline. Update navigation, sidebar, roles, and module
registry to reflect the new structure. Add DSFA corpus API proxy and
source-policy components.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Rename `label` to `question` in profiling data (35 questions) to match
ScopeProfilingQuestion type — fixes missing question headings
- Sync ScopeWizardTab props with page.tsx (onEvaluate/canEvaluate/isEvaluating
instead of onComplete/companyProfile/currentLevel)
- Load companyProfile from SDK context instead of expecting it as prop
- Auto-prefill from company profile on mount when answers are empty
- Add "Aus Profil" badge for prefilled questions
- Replace title-only helpText tooltip with click-to-expand visible info box
- Fix ScopeQuestionBlockId to match actual block IDs in data
- Add `order` field to ScopeQuestionBlock type
- Fix completionStats to count against total required questions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Rename `label` to `question` in profiling data (35 questions) to match
ScopeProfilingQuestion type — fixes missing question headings
- Sync ScopeWizardTab props with page.tsx (onEvaluate/canEvaluate/isEvaluating
instead of onComplete/companyProfile/currentLevel)
- Load companyProfile from SDK context instead of expecting it as prop
- Auto-prefill from company profile on mount when answers are empty
- Add "Aus Profil" badge for prefilled questions
- Replace title-only helpText tooltip with click-to-expand visible info box
- Fix ScopeQuestionBlockId to match actual block IDs in data
- Add `order` field to ScopeQuestionBlock type
- Fix completionStats to count against total required questions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
These 5 data files were untracked and only saved in git stash.
They are required by catalog-registry.ts for the Katalogverwaltung.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
These 5 data files were untracked and only saved in git stash.
They are required by catalog-registry.ts for the Katalogverwaltung.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Without this, the Katalogverwaltung disappears from the dashboard sidebar
when any role (developer, manager, auditor, dsb) is selected.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Without this, the Katalogverwaltung disappears from the dashboard sidebar
when any role (developer, manager, auditor, dsb) is selected.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- /sdk/consent: Replace hardcoded mockDocuments with GET /api/admin/consent/documents
- /sdk/dsr: Replace createMockDSRList with fetchSDKDSRList via /api/sdk/v1/dsgvo/dsr
- /sdk/dsr/new: Replace console.log mock with real POST to create DSR requests
- /sdk/dsr/[requestId]: Replace mock lookup with real GET/PUT for DSR details and status updates
- /sdk/consent-management: Add real stats, GDPR process counts, and email template editor
- lib/sdk/dsr/api.ts: Add transformBackendDSR adapter (flat backend → nested frontend types)
Prepares for removal of /dsgvo and /compliance pages.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- /sdk/consent: Replace hardcoded mockDocuments with GET /api/admin/consent/documents
- /sdk/dsr: Replace createMockDSRList with fetchSDKDSRList via /api/sdk/v1/dsgvo/dsr
- /sdk/dsr/new: Replace console.log mock with real POST to create DSR requests
- /sdk/dsr/[requestId]: Replace mock lookup with real GET/PUT for DSR details and status updates
- /sdk/consent-management: Add real stats, GDPR process counts, and email template editor
- lib/sdk/dsr/api.ts: Add transformBackendDSR adapter (flat backend → nested frontend types)
Prepares for removal of /dsgvo and /compliance pages.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Begradigt schiefe Scans vor der OCR-Extraktion anhand der linksbuendigen
Wortanfaenge der Vokabelspalte. Tesseract liefert achsenparallele Boxen,
die bei ~2-3 Grad Schraege in Nachbarzeilen bluten — der Deskew behebt das.
- Neue Funktion deskew_image_by_word_alignment() in cv_vocab_pipeline.py
- Deskew-Integration im extract-with-boxes Endpoint (vor OCR)
- Neuer GET Endpoint /deskewed-image/{page} fuer begradigtes Seitenbild
- Frontend: GroundTruthPanel wechselt nach Extraktion auf deskewed Image
- ~1s Overhead durch schnellen Tesseract-Pass auf halbiertem Bild
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Begradigt schiefe Scans vor der OCR-Extraktion anhand der linksbuendigen
Wortanfaenge der Vokabelspalte. Tesseract liefert achsenparallele Boxen,
die bei ~2-3 Grad Schraege in Nachbarzeilen bluten — der Deskew behebt das.
- Neue Funktion deskew_image_by_word_alignment() in cv_vocab_pipeline.py
- Deskew-Integration im extract-with-boxes Endpoint (vor OCR)
- Neuer GET Endpoint /deskewed-image/{page} fuer begradigtes Seitenbild
- Frontend: GroundTruthPanel wechselt nach Extraktion auf deskewed Image
- ~1s Overhead durch schnellen Tesseract-Pass auf halbiertem Bild
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Katalogverwaltung von /sdk/catalog-manager nach /dashboard/catalog-manager
verschoben, damit sie im Admin-Dashboard mit Sidebar erscheint statt im
SDK-Bereich. Shared Components extrahiert, SDK-Route bleibt funktionsfaehig.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Katalogverwaltung von /sdk/catalog-manager nach /dashboard/catalog-manager
verschoben, damit sie im Admin-Dashboard mit Sidebar erscheint statt im
SDK-Bereich. Shared Components extrahiert, SDK-Route bleibt funktionsfaehig.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a step-through tool for creating 100% correct reference data (ground truth)
with position information. Users scan a page, review each vocabulary entry with
image crops, confirm or correct the OCR text, and save the result as JSON.
Backend: extract_entries_with_boxes() helper + 3 endpoints (extract-with-boxes,
ground-truth save/load). Frontend: GroundTruthPanel component with SVG overlay,
ImageCrop, keyboard shortcuts (Enter/Tab/arrows), and tab navigation in page.tsx.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a step-through tool for creating 100% correct reference data (ground truth)
with position information. Users scan a page, review each vocabulary entry with
image crops, confirm or correct the OCR text, and save the result as JSON.
Backend: extract_entries_with_boxes() helper + 3 endpoints (extract-with-boxes,
ground-truth save/load). Frontend: GroundTruthPanel component with SVG overlay,
ImageCrop, keyboard shortcuts (Enter/Tab/arrows), and tab navigation in page.tsx.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Switch from /admin/legal-corpus/search to /dsfa-rag/search endpoint.
Add RAGResult interface for type safety.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Switch from /admin/legal-corpus/search to /dsfa-rag/search endpoint.
Add RAGResult interface for type safety.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>