24 Commits

Author SHA1 Message Date
Sharang Parnerkar
b697963186 fix: use Alpine-compatible addgroup/adduser flags in Dockerfiles
Some checks failed
Deploy to Coolify / deploy (push) Has been cancelled
Replace --system/--gid/--uid (Debian syntax) with -S/-g/-u (BusyBox/Alpine).
Coolify ARG injection causes exit code 255 with Debian-style flags.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 22:38:31 +01:00
Sharang Parnerkar
ef6237ffdf refactor(coolify): externalize postgres, qdrant, S3
Some checks failed
Deploy to Coolify / deploy (push) Has been cancelled
- Replace bp-core-postgres with POSTGRES_HOST env var
- Replace bp-core-qdrant with QDRANT_URL env var
- Replace bp-core-minio with S3_ENDPOINT/S3_ACCESS_KEY/S3_SECRET_KEY

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 09:23:32 +01:00
Sharang Parnerkar
41a8f3b183 feat: add Coolify deployment configuration
Some checks failed
Deploy to Coolify / deploy (push) Has been cancelled
Add docker-compose.coolify.yml (8 services), .env.coolify.example,
and Gitea Action workflow for Coolify API deployment. Removes
core-health-check, paddleocr, transcription-worker, agent-core,
drive, and docs. Adds Traefik labels for *.breakpilot.ai domain
routing with Let's Encrypt SSL.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 10:43:15 +01:00
Benjamin Boenisch
414e0f5ec0 feat: edu-search-service migriert, voice-service/geo-service entfernt
All checks were successful
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 28s
CI / test-go-edu-search (push) Successful in 27s
CI / test-python-klausur (push) Successful in 1m45s
CI / test-python-agent-core (push) Successful in 16s
CI / test-nodejs-website (push) Successful in 21s
- edu-search-service von breakpilot-pwa nach breakpilot-lehrer kopiert (ohne vendor)
- opensearch + edu-search-service in docker-compose.yml hinzugefuegt
- voice-service aus docker-compose.yml entfernt (jetzt in breakpilot-core)
- geo-service aus docker-compose.yml entfernt (nicht mehr benoetigt)
- CI/CD: edu-search-service zu Gitea Actions und Woodpecker hinzugefuegt
  (Go lint, test mit go mod download, build, SBOM)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 18:36:38 +01:00
Benjamin Boenisch
d4e1d6bab6 fix: correct gradeToOberstufenPoints formula for grades < 2.0
All checks were successful
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 26s
CI / test-python-klausur (push) Successful in 1m44s
CI / test-python-agent-core (push) Successful in 16s
CI / test-nodejs-website (push) Successful in 15s
The formula int(17 - grade*3) was off by one for grades 1.0 and 1.3
due to integer truncation. Added +1 adjustment for grades < 2.0 to
match the intended mapping (1.0=15, 1.3=14).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 17:32:24 +01:00
Benjamin Boenisch
ccff37f91b fix(ci): replace actions/checkout with manual git clone
Some checks failed
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) Failing after 34s
CI / test-python-klausur (push) Successful in 1m50s
CI / test-python-agent-core (push) Successful in 17s
CI / test-nodejs-website (push) Successful in 18s
The act_runner cannot create /home/act_runner cache dir inside
container images. Replace actions/checkout@v4 with manual
git clone using GITHUB_SERVER_URL and GITHUB_REPOSITORY env vars.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-15 16:58:30 +01:00
Benjamin Boenisch
ce32850b09 fix(ci): use docker runner label instead of ubuntu-latest
Some checks failed
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) Failing after 1s
CI / test-python-klausur (push) Failing after 1s
CI / test-python-agent-core (push) Failing after 1s
CI / test-nodejs-website (push) Failing after 6s
The Gitea Actions runner on meghsakha uses label "docker".

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-15 16:53:32 +01:00
Benjamin Boenisch
50d0e65ef1 ci: add Gitea Actions workflow for external CI
Some checks failed
CI / go-lint (push) Has been cancelled
CI / python-lint (push) Has been cancelled
CI / nodejs-lint (push) Has been cancelled
CI / test-go-school (push) Has been cancelled
CI / test-python-klausur (push) Has been cancelled
CI / test-python-agent-core (push) Has been cancelled
CI / test-nodejs-website (push) Has been cancelled
Adds .gitea/workflows/ci.yaml with lint and test jobs.
Runs on gitea.meghsakha.com with Gitea Actions runner.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-15 16:39:00 +01:00
Benjamin Boenisch
4fd4b08f75 remove: geo-service komplett entfernt
Der Geo-Service (DSGVO-konforme Geografie-Lernplattform) war ein
nie genutzter Prototyp und wird nicht mehr benoetigt. Entfernt aus:
- Quellcode (geo-service/)
- CI/CD Pipeline (test, build, sbom, deploy steps)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-15 16:15:29 +01:00
Benjamin Boenisch
e76ae5d510 fix: agent-core test failures in session_manager and message_bus
- session_manager: add session to _local_cache in create_session()
  so get_session() and get_active_sessions() work without Redis/Postgres
- message_bus: use asyncio.create_task() in request() for publish
  so handler runs concurrently and timeout actually fires

All 76 tests pass now.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-15 13:50:54 +01:00
Benjamin Boenisch
0dae5da405 fix: geo-service Pakete einzeln installieren (rasterio braucht GDAL) 2026-02-15 13:30:00 +01:00
Benjamin Boenisch
5ff2c8bad4 refactor: voice-service entfernt (verschoben nach breakpilot-core) 2026-02-15 13:26:07 +01:00
Benjamin Boenisch
d075973a08 fix: geo-service und agent-core Test-Imports in Pipeline 2026-02-15 13:15:13 +01:00
Benjamin Boenisch
526a0eed71 Complete pipeline: add school-service, klausur-service, BQAS, geo-service, agent-core tests
Added missing test steps:
- test-go-school (Go tests for school-service)
- test-bqas-golden (BQAS golden/regression/synthetic)
- test-bqas-rag (BQAS rag/notifier)
- test-python-klausur (klausur-service backend tests)
- test-python-geo (geo-service tests)
- test-python-agent-core (agent-core tests)

Added missing lint targets and build steps for school-service and geo-service
2026-02-15 12:34:53 +01:00
Benjamin Boenisch
8792d459b7 Re-add clone config with extra_hosts (repos now trusted) 2026-02-15 11:28:11 +01:00
Benjamin Boenisch
f25aedd2a6 Fix pipeline: remove custom clone and extra_hosts (trust level) 2026-02-15 10:57:07 +01:00
Benjamin Boenisch
afeaa14971 Add Woodpecker CI/CD pipeline
- Lint: ruff (Python services), next lint (Node.js apps)
- Tests: pytest for voice-service, jest for website
- Build: Docker images for all 6 services
- Security: SBOM generation + vulnerability scanning
- Deploy: manual docker compose deployment
2026-02-15 10:56:02 +01:00
Benjamin Boenisch
2d2690887f docs: update MkDocs index with full service table and architecture overview
- Add complete service table with containers, ports, and tech stack
- Add Core dependency table
- Add URLs section with Lehrer-Tools
- Add deployment and git instructions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 19:51:12 +01:00
Benjamin Boenisch
6a53f8d79c refactor: Remove all SDK/compliance pages and API routes from admin-lehrer
SDK/compliance content belongs exclusively in admin-compliance (port 3007).
Removed:
- All (sdk)/ pages (document-crawler, dsb-portal, industry-templates, multi-tenant, sso)
- All api/sdk/ proxy routes
- All developers/sdk/ documentation pages
- Unused lib/sdk/ modules (kept: catalog-manager + its deps for dashboard)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 09:24:36 +01:00
Benjamin Boenisch
27f1899428 feat: Sync SDK modules, API routes, blog and docs from admin-v2
- DSB Portal, Industry Templates, Multi-Tenant, SSO frontend pages
- All SDK API proxy routes (academy, crawler, incidents, vendors, whistleblower, etc.)
- Blog section with compliance articles
- BYOEH system documentation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 21:12:30 +01:00
Benjamin Boenisch
1bd1a0002a feat: Sync Document Crawler frontend page and API proxy (Phase 1.4)
Synced from admin-v2: 4-tab crawler page and catch-all API proxy route.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 20:35:29 +01:00
Benjamin Boenisch
8c1f7a783f refactor(admin-lehrer): Rename to Admin Lehrer KI and remove migrated categories
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>
2026-02-12 20:23:16 +01:00
Benjamin Boenisch
e22019b2d5 Add CLAUDE.md, MkDocs docs, .claude/rules
- CLAUDE.md: Comprehensive documentation for Lehrer KI platform
- docs-src: Klausur, Voice, Agent-Core, KI-Pipeline docs
- mkdocs.yml: Lehrer-specific nav with blue theme
- docker-compose: Added docs service (port 8010, profile: docs)
- .claude/rules: testing, docs, open-source, abiturkorrektur, vocab-worksheet, multi-agent, experimental-dashboard

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 00:49:25 +01:00
Benjamin Boenisch
5a31f52310 Initial commit: breakpilot-lehrer - Lehrer KI Platform
Services: Admin-Lehrer, Backend-Lehrer, Studio v2, Website,
Klausur-Service, School-Service, Voice-Service, Geo-Service,
BreakPilot Drive, Agent-Core

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 23:47:26 +01:00