cmd/ai-app buendelt summaryapi, semanticsearchapi, extractapi, residencyapi (GOV-03) und routingsuggestapi (WFS-02) unter einem ServeMux (analog connect/cmd/connect-app).
Inferenz-Queue-Worker (ENG-05) laeuft als eigene Goroutine, verdrahtet mit Quota-Enforcement/Verbrauchszaehlung (GOV-04) ueber Queue.SetQuotaEnforcer/Worker.SetUsageRecorder.
DSN, Service-Token, Listen-Adresse und Modellname ausschliesslich ueber Umgebungsvariablen (NEXARCH_AI_APP_TENANT_DSN/_SERVICE_TOKEN/_LISTEN_ADDR/_MODEL).
Realer Start auf Host 204 (Wegwerf-DB ai_eng08_dev): alle sechs Routen (healthz, residency, routing-suggestions, search, documents/summarize, invoices/extract) erreichbar, kein 404 -- erreicht.
Echter Inferenz-Auftrag durchlaeuft die Queue real bis zum Abschluss: automatisiert mit Mock-Provider (Status succeeded, Quota-Zaehlerstand 1) sowie real gegen den laufenden Dienst (Worker holte per SQL eingefuegten Job automatisch ab, echter HTTP-Aufruf an Ollama, korrektes Retry/dead_letter nach 3 Versuchen) -- erreicht.
Fehlende Pflicht-Umgebungsvariable: Exit-Code 1, klare Meldung, kein offener Port -- erreicht.
Bestehende Modul-Testsuite (go vet + go test ./... auf Host 204): alle Pakete gruen, keine Regression -- erreicht.
Entscheidungen
extractvalidate.RuleSet{} (leer) fuer extractapi: keine neue Fachlogik/Regelkonfiguration im Scope dieses Tickets.
quota.NewStore(pool, nil): kein Core-LIC-03-Reporter verdrahtet (Reporter ist optional, kein Core-Endpunkt/-Credential im Scope).
## Zusammenfassung
- cmd/ai-app buendelt summaryapi, semanticsearchapi, extractapi, residencyapi (GOV-03) und routingsuggestapi (WFS-02) unter einem ServeMux (analog connect/cmd/connect-app).
- Inferenz-Queue-Worker (ENG-05) laeuft als eigene Goroutine, verdrahtet mit Quota-Enforcement/Verbrauchszaehlung (GOV-04) ueber Queue.SetQuotaEnforcer/Worker.SetUsageRecorder.
- DSN, Service-Token, Listen-Adresse und Modellname ausschliesslich ueber Umgebungsvariablen (NEXARCH_AI_APP_TENANT_DSN/_SERVICE_TOKEN/_LISTEN_ADDR/_MODEL).
## Pruefungen (Details: ai/docs/ENG-08-PRUEFPROTOKOLL.md)
1. Realer Start auf Host 204 (Wegwerf-DB ai_eng08_dev): alle sechs Routen (healthz, residency, routing-suggestions, search, documents/summarize, invoices/extract) erreichbar, kein 404 -- erreicht.
2. Echter Inferenz-Auftrag durchlaeuft die Queue real bis zum Abschluss: automatisiert mit Mock-Provider (Status succeeded, Quota-Zaehlerstand 1) sowie real gegen den laufenden Dienst (Worker holte per SQL eingefuegten Job automatisch ab, echter HTTP-Aufruf an Ollama, korrektes Retry/dead_letter nach 3 Versuchen) -- erreicht.
3. Fehlende Pflicht-Umgebungsvariable: Exit-Code 1, klare Meldung, kein offener Port -- erreicht.
4. Bestehende Modul-Testsuite (go vet + go test ./... auf Host 204): alle Pakete gruen, keine Regression -- erreicht.
## Entscheidungen
- extractvalidate.RuleSet{} (leer) fuer extractapi: keine neue Fachlogik/Regelkonfiguration im Scope dieses Tickets.
- quota.NewStore(pool, nil): kein Core-LIC-03-Reporter verdrahtet (Reporter ist optional, kein Core-Endpunkt/-Credential im Scope).
- Worker-Poll-Intervall fest 2s, Default-Listen-Adresse 127.0.0.1:9600.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Zusammenfassung
Pruefungen (Details: ai/docs/ENG-08-PRUEFPROTOKOLL.md)
Entscheidungen
🤖 Generated with Claude Code