PaddlePaddle braucht libgomp.so.1 fuer Inferenz.
lang wird ignoriert bei explizitem model_name.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Model wird beim Container-Start geladen (nicht erst beim ersten Request).
Health-Check start_period auf 300s erhoeht fuer initialen Download.
/health gibt "loading" zurueck bis Modell bereit ist.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
lang="latin" braucht text_recognition_model_name in PP-OCRv5.
Neue API nutzt predict() statt ocr(), Ergebnis-Format angepasst.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Microservice fuer PaddleOCR auf Hetzner. FastAPI mit /ocr und /health
Endpoints, API-Key Auth, 4GB Memory Limit, Modell-Cache Volume.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove backend-core, billing-service, night-scheduler, and admin-core
as they are not used by any compliance/SDK service. Update
health-aggregator CHECK_SERVICES to reference consent-service instead.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Dockerfile hardcoded TARGETARCH=arm64 for Mac Mini. Coolify server
is x86_64, causing exit code 126 (wrong binary arch). Now uses Docker
BuildKit's auto-detected TARGETARCH with dpkg fallback.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add QDRANT_API_KEY to config.py (empty string = no auth)
- Pass api_key to QdrantClient constructor (None when empty)
- Add QDRANT_API_KEY to coolify compose and env example
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ChatInterface.tsx war falsch — der echte Investor Agent laeuft in
ChatFAB.tsx. Animierte Punkte + firstChunk-Logik dort implementiert.
Session-History laeuft bereits korrekt (FAB permanent gemountet).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
isWaiting im async Closure war immer true — lokale Variable
firstChunk ersetzt den State-Check zuverlaessig.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Drei animierte Punkte (iMessage-Style) erscheinen sofort nach dem
Absenden und verschwinden wenn der erste Token eintrifft.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Qwen3.5 denkt standardmaessig intern durch (think: true) — das
ueberschreitet den 2-Minuten-Timeout des Investor Agents.
think: false + num_ctx 8192 sorgt fuer schnelle direkte Antworten.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Camunda war nie aktiv (nur Frontend-Stub ohne Backend) — komplett entfernt.
Jitsi (5 Services), Synapse (2 Services) und Voice Service werden
ausschließlich vom Lehrer-Stack genutzt und gehören nicht in Core.
Nginx-Container-Namen auf bp-lehrer-jitsi-* aktualisiert (shared Network).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Serves original regulation PDFs from ~/rag-originals/ on port 3002
for the RAG QA Split-View Chunk-Browser. Adds volume mount to nginx.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Increase proxy_read_timeout from 300s to 600s for large PDF uploads
- Add proxy_send_timeout 600s (was defaulting to 60s)
- Fixes 504 Gateway Timeout when uploading 7.5MB+ IFRS PDFs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
qdrant-client 1.17.0 removed the search() method in favor of
query_points(). Update the wrapper to use the new API.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Switch to Ollama's bge-m3 model (1024-dim) for generating embeddings,
solving the dimension mismatch with Qdrant collections. Embedding-service
still used for chunking, reranking, and PDF extraction.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Qdrant collections use 1024-dim vectors (bge-m3) but the
embedding-service was configured with all-MiniLM-L6-v2 (384-dim).
Also increase memory limit to 8G for the larger model.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The embedding-service exposes endpoints at root level (/chunk, /embed,
/extract-pdf, /rerank) not under /api/v1/. Fix the RAG service's
embedding client to use the correct paths.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add docker-compose.coolify.yml (17 services), .env.coolify.example,
and Gitea Action workflow for Coolify API deployment. Removes nginx,
vault, gitea, woodpecker, mailpit, and dev-only services. Adds Traefik
labels for *.breakpilot.ai domain routing with Let's Encrypt SSL.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Refocus entire pitch deck narrative on machine/plant manufacturers with
in-house embedded software development. Key changes:
- i18n: All DE/EN texts updated (cover, problem, solution, market, etc.)
- MarketSlide: Dynamic unit formatting (Mrd/Mio/k) for SOM in millions
- SolutionSlide: Code-Security pillar with ScanLine icon
- HowItWorksSlide: GitBranch icon for code repo connection step
- CompetitionSlide: Security features reframed for firmware/embedded
- RegulatorySlide: Added CRA (Cyber Resilience Act) as 4th tab
- AI chat prompt: Updated Kernbotschaften for Maschinenbau USP
- DB migration: TAM 8.7B, SAM 850M, SOM 7.2M, customers 5-380 (2026-2030),
4 new differentiator features, product capabilities for code-security
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- voice-service in docker-compose.yml hinzugefuegt (bp-core-voice-service)
- nginx: voice-service upstream von bp-lehrer auf bp-core geaendert
- nginx: edu-search upstream von breakpilot-edu-search auf bp-lehrer-edu-search geaendert
- extra_hosts fuer edu-search entfernt (jetzt containerisiert in lehrer)
- health-aggregator: voice-service zu CHECK_SERVICES hinzugefuegt
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The session_store imports github.com/redis/go-redis/v9 but it was
missing from go.mod, causing build failures in CI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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>
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>