ENG-08: AI-App gebuendelter Diensteinstiegspunkt (cmd/ai-app) #233

Merged
patrick merged 1 commits from feature/eng-08-ai-app-diensteinstiegspunkt into main 2026-09-28 01:26:06 +02:00
Owner

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

## 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)
patrick added 1 commit 2026-09-28 00:44:58 +02:00
ENG-08: ai-app gebuendelter diensteinstiegspunkt
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
AI-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
9dc7d7606e
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
patrick merged commit 6ce0344f1a into main 2026-09-28 01:26:06 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: scripte/nexarch#233