Repository navigation
Configurator MVP: bounded STACKIT Model Serving configuration assistant #94
Copy link
Copy link
Closed
Labels
area:configuratorLanding Zone Configurator application, runtime and its infrastructureLanding Zone Configurator application, runtime and its infrastructureeffort:lArchitecture, lifecycle or multiple systems; split before implementationArchitecture, lifecycle or multiple systems; split before implementationmvp:requiredRequired acceptance gate for the agreed Configurator MVP; not a merge approvalRequired acceptance gate for the agreed Configurator MVP; not a merge approvalpriority:p1High impact correctness, security or required product capability; schedule firstHigh impact correctness, security or required product capability; schedule first
Description
Current Status (2026-10-04)
Operator-side Model Serving token provisioning and CF binding exist. A bounded chat endpoint/UI and requirement F09 are not implemented. This remains part of the original required MVP, not an optional item or silently deferred feature.
- Provision the operator Model Serving binding without exposing its token to the browser.
- Authenticate/authorise chat per active tenant/role and call Model Serving only from the backend/operator binding.
- Pin capability/schema/documentation knowledge to the reviewed Accelerator version and disclose execution limits.
- Ask for missing information; return schema-validated proposals with a visible diff and explicit user acceptance.
- Reuse deterministic compiler, template restrictions and permission checks; no model-generated Terraform execution or autonomous Apply.
- Treat repository/user text as untrusted data: no tool grants/scope expansion and no credentials, state or secret values sent to the model.
- Bound requests, concurrency, timeouts and retention; sanitize failures/logs.
- Test supported examples, missing inputs, unrelated requests, injection and tenant isolation; prove a real Model Serving round-trip.
Next Step and Dependencies
Begin with a bounded authenticated backend proposal contract using the existing editor/compiler schema, then the diff/acceptance UI and model qualification. Token availability alone is not chat acceptance. Tenant/catalogue policy depends on #91/#92; execution authority remains outside chat (#90). Current local UI bilingual support does not implement this assistant.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:configuratorLanding Zone Configurator application, runtime and its infrastructureLanding Zone Configurator application, runtime and its infrastructureeffort:lArchitecture, lifecycle or multiple systems; split before implementationArchitecture, lifecycle or multiple systems; split before implementationmvp:requiredRequired acceptance gate for the agreed Configurator MVP; not a merge approvalRequired acceptance gate for the agreed Configurator MVP; not a merge approvalpriority:p1High impact correctness, security or required product capability; schedule firstHigh impact correctness, security or required product capability; schedule first
Activity
lweberru commentedon Oct 4, 2026
MVP audit 2026-10-04: Updated the description and acceptance checklist against the current implementation. Implemented criteria are checked; remaining requirements are retained. Local tests are not a release or live customer acceptance. This issue stays open until its remaining criteria are met. The first remaining safety fix (#89, backend-free initial plans on existing/partial/legacy state) is now implemented locally: 23/23 isolated PostgreSQL tests and the full check gate (310 unit tests) pass. No customer Apply, API restart, native artifact rebind, commit or merge was performed.
lweberru commentedon Oct 10, 2026
Product decisions confirmed — 2026-10-10 (#94)
Concept before implementation. Confirmed scope:
Still to decide: conversation retention/deletion, representative complex acceptance scenarios, expected concurrency/latency. Preliminary overall estimate 30–50 engineering person-days, excluding external waits and missing module/compiler features, to refine through qualification.
Recorded locally in planning.md section 11. No chat implementation or real inference qualification is claimed; existing security and separate Plan/Apply acceptance criteria remain unchanged. Issue remains open.
lweberru commentedon Oct 10, 2026
Confirmed conversation lifecycle, feature parity and load target — 2026-10-10 (#94)
User confirmed:
Acceptance covers re-login/backend-restart resume, tenant/workspace/configuration isolation, current permission revocation, stale configuration revisions, both parent-deletion paths during inference, absolute three-month expiry without activity extension, sanitized restore, complete feature parity and five-session context isolation/bounded load behavior.
No monetary budget cap and no images remain unchanged. Concrete reference configurations and measured latency targets will be refined during the model spike and feature-matrix work. No chat, inference, deletion or load implementation/qualification is claimed here; issue remains open.
Recorded in local planning.md section 11 and mvp-acceptance.md; documentation consistency checks pass. No production database/cloud change or release.
lweberru commentedon Oct 10, 2026
Local concept coverage qualification — 2026-10-10 (#94)
Implemented the first executable concept package locally, not the chat runtime:
Verification: 26 focused cases pass; canonical app lint/types/build and 437 unit cases pass (53 environment-gated skips); no new editor diagnostics. Documentation/count/link consistency checks pass. No UI change; no new browser run for this concept/test-only step. Last prior browser qualification was 278 controlled cases.
Sources in local working tree: docs/assistant-feature-coverage.md, docs/assistant-feature-coverage.json, app/scripts/assistant-coverage.ts, app/tests/common-configuration.test.ts; planning and acceptance linked.
Next qualification: sanitized version-bound knowledge/model spike, then authorized persistent conversation/proposal lifecycle and overall diff; real A01–A24 model evaluations and deletion/restore/five-session behavior. Measured latency targets still pending. No inference, user DB/API activation, Cloud/State operation, commit/push/release. Issue remains open.
lweberru commentedon Oct 10, 2026
Local knowledge and synthetic Qwen spike — 2026-10-10 (#94)
Implemented locally: assistant/knowledge.ts builds a deterministic metadata/rule draft with 501 feature paths, modes, optionality, template IDs/source hashes without template values, five curated rules and exact knowledge-hash/engine-revision selection. Protected paths are requirements-only. Status remains local-draft-not-reviewed-release: this is NOT complete current STACKIT/module documentation retrieval, reviewed promotion or historical knowledge-package storage.
assistant/model-serving.ts + scripts/assistant-spike.ts provide a LOCAL SYNTHETIC Public/Standalone task, not an authenticated customer chat endpoint. Uses existing LZC_MODEL_SERVING_TOKEN process binding, configurable model (default Qwen/Qwen3-VL-235B-A22B-Instruct-FP8), explicit STACKIT eu01 inference allowlist and bounded timeout. No redirects/retries; bounded streamed response/JSON/schema/finish reason/model/template/question-path/reference checks. Synthetic task requires Standalone/public-corporate rule. No token in request body or output; CLI prints metadata only, errors are redacted.
Qualification: 7 focused cases cover wrong/stale knowledge, secret questions, invented/wrong existing templates, added tool grants, provider429/JSON/oversized output, and real AbortSignal timeout with no retry. Canonical lint/types/build +444 unit passes (53 environment-gated skips). No UI change or new browser run.
REAL blocker: actual CLI invocation closed with assistant_model_configuration_invalid; presence-only check confirmed LZC_MODEL_SERVING_TOKEN missing from local process environment. Existing Terraform/deployment binding is documented, but no local private outputs file was found. NO INFERENCE SENT; no real model access/latency claim. Required action: securely inject the existing Dev binding into local process environment, never chat/CLI args; do not create/rotate a token or print raw Terraform outputs.
Remaining: full trusted source ingestion/review/version persistence, real synthetic roundtrip then A01-A24 evals, authenticated tenant/workspace/config conversation persistence/lifecycle/diff, five-session and deletion/restore qualification. No new HTTP route, user DB/API/runner activation, Cloud/State change, commit/push/release. Issue remains open. Details: docs/assistant-feature-coverage.md and mvp-acceptance.md.
lweberru commentedon Oct 10, 2026
Local Terraform token recovered and real Qwen spike qualified (2026-10-10)
Resolved the previous operator-binding blocker autonomously after locating the Mac-transferred encrypted platform snapshot and original platform key (both private0600). Pinned OpenTofu1.12.6 read only the local model_serving_token output in an empty temporary directory with TF_ENCRYPTION supplied in memory. Captured stdout stayed in operator memory; decoded token passed only in the spike child environment. No token/key/raw state/model answer printed; no plaintext file, remote state pull, rotation or state mutation. No user action needed for this roundtrip.
Real synthetic evidence: exact Qwen/Qwen3-VL-235B-A22B-Instruct-FP8, HTTP200, accepted CLI result in11983ms, standalone,8 questions,5 curated references, authorizesExecution=false. KnowledgeSHA256 6fbe9d02cdb514f9c36ce39150a1ebc1aaa84c0d67a5dcf02a6a4cc2c8a1d370; existing engine pin a256f68 unchanged.
Five individually invoked synthetic requests total: four rejected, one accepted, no automatic retries. Redacted diagnosis found truncation at1200 completion tokens; raised bounded budget to4096. A complete subsequent answer had19 questions while schema permits8: added existing schema limits explicitly to the model prompt. Strict schema, finish reason, field/reference/template checks unchanged; test now asserts4096 and rejects9 questions.
Validation repeated:7 focused tests; canonical lint/types/build +444 unit passes,53 environment-gated skips. Acceptance and spike documentation updated. No UI/HTTP endpoint/user API/DB/runner activation, Cloud infrastructure/state mutation, commit/push/release. Knowledge remains local-draft-not-reviewed-release. One successful fixed synthetic task is NOT A01-A24 coverage, prompt-injection qualification, five-session load acceptance, latency guarantee or complete trusted-source ingestion/review/history. Authenticated persistent customer chat/lifecycle/diff remain open; #94 stays OPEN.
lweberru commentedon Oct 10, 2026
Local editor chat enabled with persistence and explicit scalar diff (2026-10-10)
Implemented first limited interactive version: visible configuration-chat panel above the editor for authenticated users opening a saved current-format configuration. Sends real user requirements through a bounded dialogue method, persists/resumes history, displays questions and separate before/after diff, explicitly accepts the entire scalar proposal as a new saved revision, supports deleting conversation. Unsaved local editor changes block send/accept. No publication, order, Plan/Apply/Destroy or grants.
API GET/POST/DELETE /api/v1/configurations/:id/assistant and explicit POST /accept use existing current tenant/platform authorization, owner RLS, Origin/CSRF and no-store. Migration053 conversation FK cascade, immutable runtime three-calendar-month expiry, max40 messages, expiry cleanup at access/start/60s. Reauthorize and check configuration/conversation revisions after model call; deleted parents/late answers cannot recreate conversation. Max5 active requests per API process, not stored-session quota. Known nonsecret root scalar fields only, exact types/no IDs; max8 questions/changes. Metadata/rules, public scalars and max12 historical role/content messages to model; no raw configs/state/plans/credential bindings. Recognizable secret assignment guard is NOT comprehensive DLP/injection proof.
Qualification:10 focused tests, canonical lint/types/build +447 unit passes/53 environment skips;32 real PostgreSQL cases including resume, owner isolation, stale acceptance, expiry, forbidden expiry extension, cleanup and deletion during inference.4 desktop/mobile chat+neighboring config cases pass with workers1/timeout60000 (each1-2sec), screenshots inspected/no page overflow. Parallel desktop reload/session timeouts occurred: CI/load budget remains open; full280 suite not claimed. Explicit shared inactive-chat GET fixture added, unknown requests remain guarded. Final history projection correction separately passes focused tests/lint/types.
Real integrated SYNTHETIC authorized HTTP chat on isolated DB:200 in2649ms,2 saved messages,1 change,0 questions; service restart resume and explicit accept as revision2 succeed. Test data removed. No user configuration sent for this inference.
User explicitly granted standing local API restart/new local migration/existing DB-role password rotation permission. Local login/chat activated with secure reproducible npm run dev:chat; original platform snapshot/key->in-memory existing token, no plaintext output/file/new model token. User DB now051-053, original configuration count and content/revision checksum unchanged. UI/health200, anonymous chat401, callback8000. No auth relaxation/runner activation/cloud mutation/commit/push/release. Shared browser has valid user session/config list, but hidden-page connector click could not open editor; manual actual-config dialog acceptance remains open.
LIMITS: no complex structure mutation, no chat selection of platform templates or ALZ template drafting, no complete config analysis context, no full trusted-source ingestion/review/history, no A01-A24 parity/restore/month-end/five-session load acceptance. Knowledge remains local-draft-not-reviewed-release and coverage matrix not-qualified. Issue remains OPEN. Details and user test steps: docs/assistant-feature-coverage.md and docs/mvp-acceptance.md.
lweberru commentedon Oct 10, 2026
Local pre-configuration template advice enabled (2026-10-10)
Implemented the requested actual template-selection assistant before opening a configuration, not another fixed synthetic spike. Authenticated platform users can describe requirements, answer follow-up questions and explicitly open a recommended existing template preview from Configurations or New Configuration. Templates share a configurable engine but network/firewall/region/isolation defaults matter; this is not a claim that every future feature is already implemented. No automatic configuration creation, draft replacement, publication, ordering or infrastructure execution.
Backend uses known template IDs/hashes and bounded trusted metadata, validated JSON, at most five questions, known rule references and null when more information is needed. Migration 054 stores private tenant/user advice with immutable UTC three-calendar-month expiry and 40-message bounds. Existing login/platform authorization, origin/CSRF and recognizable-secret checks apply; current authorization is checked again after inference. Conversation-scoped transaction locking and revision/expiry checks prevent concurrent overwrite and late resurrection after deletion. Advice shares the existing five-active-model-requests per-process guard, not a measured five-session load qualification.
Evidence: 11 focused assistant tests; canonical lint/typecheck/build and 448 unit passes with 53 gated skips; 33 real isolated PostgreSQL identity cases; four focused desktop/mobile advice and editor-chat workflows passed with one worker, including follow-ups, resume, explicit preview, delete and screenshots without page overflow. Existing full browser suite was not rerun.
Real standard-Qwen synthetic HTTP dialogue: first 200 in 6757 ms, four follow-up questions, templateId=null; after answers, 200 in 3146 ms recommending hub-and-spoke with no additional questions. Four persisted messages resumed with 200 and deleted with 204. Initial smoke-fixture cookie and HTTPS-origin mistakes were corrected before this successful result. No user configuration was sent to the model.
Standing authorized local API restart/DB-role rotation applied migration 054. Both existing local configurations retain the same content checksum; original keys preserved. UI and /healthz 200; anonymous advice 401. No cloud/state mutation, model-token rotation, runner activation, commit, push or release.
Acceptance tracking updated in docs/mvp-acceptance.md and docs/assistant-feature-coverage.md. Remaining: user evaluation of real requirements and recommendation rationale; automatic requirements handoff into editor values/separate config chat; DE/EN UI parity; complex structures and Application Landing Zone drafts; reviewed full trusted sources; A01-A24 semantic/security/DLP/injection/restore/month-end/load qualification. Feature matrix remains not-qualified. Issue stays open.
lweberru commentedon Oct 10, 2026
Fix template advice rejecting invented rule references (2026-10-10)
User reported the unavailable message after submitting an Enterprise Hub-and-Spoke requirement with central firewall. Authenticated GET succeeded, but the new advice row had zero messages. Exact request reproduction identified unknown_reference: Qwen invented rule reference IDs; the backend correctly rejected them rather than storing an unvalidated recommendation.
Fixed at the model contract: template advice now sends a strict Zod-generated response_format=json_schema with enums for known template IDs and rule references. Independent backend validation remains intact. Real STACKIT Model Serving accepted the schema. Added bounded internal diagnostic reasons without raw prompt, credentials, user IDs or model-response logging; API returns a redacted inference error and UI distinguishes inference failure, expired login and missing rights. Failed input remains available for explicit retry. No automatic retries or removal of untrusted references.
Evidence: exact direct model request now succeeds in 4471 ms with hub-and-spoke-firewall and four questions; 11 focused tests; canonical lint/typecheck/build and 448 unit passes with 53 gated skips; four desktop/mobile advice/editor-chat cases including failure display and retry pass. Authorized local API restart applied the fix. The actual shared user browser submitted the released requirement through the normal form, receiving HTTP 200 and a visible hub-and-spoke-firewall recommendation with four questions. Hidden-page connector click timed out; normal form requestSubmit preserved UI processing and auth/CSRF checks.
Both existing local configurations retain their original count/content checksum. No configuration selected, created, changed or executed; no DB migration change, cloud/state mutation, token rotation, publication or release. docs/mvp-acceptance.md updated. This fixes the reported error, not complete semantic/security qualification: routing all communication through the firewall still needs actual topology/configuration verification. Issue remains open.
lweberru commentedon Oct 10, 2026
Fortschritt 2026-10-10: aktuelles PIM-/Produktwissen im Assistenten
Editor-Chat und vorgelagerte Template-Beratung lesen pro Nachricht frisch die eigenen tenant-/benutzergebundenen Editor-Produktkataloge und öffentliche STACKIT PIM-v2-Produkte/SKUs. Kein Operator-Credential-Fallback; keine Secrets, Credential-Metadaten, IAM-Rollen/Permissions oder Referenzprojekt-IDs im Modellkontext. Regionale und produktspezifische Ausfälle bleiben getrennt. Technische ID-Felder und ID-Forderungen sind keine zulässigen Rückfragen; SKU-Artikelnummer ist nicht VPN-Plan-ID.
PIM: Cursor-Paginierung, Schema-/Regionsprüfung, feste Hosts, keine Redirects, Zeit-/Antwort-/Seitenlimits. Begrenzter relevanter Produktumfang und expliziter Kontextausschnitt (50 Produktoptionen / 100 PIM-SKUs je Region), keine Zusage vollständiger Kataloge oder Projektbestellbarkeit. Produkt-APIs bleiben Quelle technischer Auswahlwerte; PIM liefert öffentliche Merkmale.
Echte Nur-Lese-Prüfungen: eu01 fünf Produkte / 330 SKUs einschließlich drei VPN-Klassen 100/500/1000 Mbit/s; eu02 fünf Produkte / 129 SKUs, keine VPN-SKUs. Kein eu01-VPN-Fallback für eu02. Qwen ließ Leistungszahlen trotz geliefertem Kontext im freien Text aus und stellte teilweise unpassende fachliche Folgefragen. Deshalb ergänzt die finale Chat-Antwort eine deterministische begrenzte Faktenliste aus validierten PIM-Attributen. Finaler synthetischer echter Qwen-Roundtrip: 5802 ms, alle drei Bandbreiten enthalten, drei Fragen, keine ID-Frage, keine Änderung. Das ist keine vollständige Qualifikation freier Beratung.
Finale Nachweise: Lint / Typprüfung / Build, 453 Unit-Tests (+53 umgebungsgebundene Überspringungen), 34 echte isolierte PostgreSQL-Identity-Fälle, vier fokussierte Desktop-/Mobil-Dialogabläufe, IDE-Diagnostik und diff --check bestanden. Vollständige 282-E2E-Suite nicht erneut ausgeführt. Lokale API aktiviert: API/UI 200, anonym 401, alle drei Konfigurationen mit identischem Vorher-/Nachher-Fingerabdruck erhalten. Eigener Testcontainer entfernt; Migrationen 001-054 unverändert, kein Cloud-Plan/Apply/Destroy, Commit/Push/Release.
Offen: Benutzer-Browser-Sitzung abgelaufen (Session 401), erneuter STACKIT-Login für eigene fachliche Abnahme erforderlich. Freie Fragequalität, DE/EN-Faktenliste, RAM-Einheit, Zielprojektbestellbarkeit/Quoten und verschachtelte VPN-/komplexe Änderungen bleiben offen. A01-A24 unverändert not-qualified. Nachweise und Benutzereingriffe in landing-zone-configurator/docs/mvp-acceptance.md, Produktumfang/Quellen/Limits in docs/cloud-product-catalogues.md. Issue bleibt offen.
lweberru commentedon Oct 10, 2026
Fortschritt 2026-10-10: SNA zuerst und OPNsense-Vertrag
Konkreter Benutzerfall: zuerst das zentrale Netzwerk für ca. 100 Projekte planen, Firewall später. Komponentenwissen ergänzt: STACKIT Network Areas (SNA), Adresspool, Transfernetz, Projekt-Subnetzpräfixe/DNS; aktuell unterstützte zentrale Firewall OPNsense. Keine Palo-Alto-/Fortinet-/AWS-Network-Firewall-Alternativen, keine implizite Firewall bei Hub-and-Spoke. Netzwerkplanung, Firewall-Infrastruktur und Policy/Bootstrap sind getrennte Schritte.
Für erkannte Netzwerk-zuerst-Aufträge sind SNA-Fragepfade verbindlich und skalare Nebenänderungen im Ausgabeschema ausgeschlossen. Firewall-/VPN-/Bootstrap-/Secret-Fragen werden auch bei scheinbar passendem SNA-Feld zurückgewiesen. Global werden unveränderte skalare Vorschlagswerte entfernt: kein owner/company/region-Diff ohne tatsächliche Änderung. Authentifizierte Entwurfsberatung ist nicht Cloud-Ausführung; keine erfundenen Berechtigungsfehler.
Echter synthetischer Qwen-Test mit exaktem Benutzerwortlaut: zunächst unerwünschte externe Anbindungen und erfundene Berechtigungsprobleme. Nach priorisiertem SNA-Schrittauftrag 4720 ms: Fragen zu freien privaten Adressbereichen, Subnetzgröße je Projekt und Projektkommunikation; keine Firewall-/VPN-Frage, keine Änderung. Modell behauptete trotzdem zunächst 'ich konfiguriere'. Deshalb liefert der finale SNA-Schritt einen deterministischen ehrlichen Status: nur Planung, nichts konfiguriert, verschachtelte SNA-Werte noch nicht im Chat schreibbar, Erfassung im Netzwerkeditor. Keine behauptete vollständige freie Modellqualifikation.
Nachweise: 13 fokussierte Assistant-Tests einschließlich Scope- und No-op-Regression, finaler Lint-/Typ-/Build-Gate und 454 Unit-Tests (+53 umgebungsgebundene Überspringungen), IDE-Diagnostik und diff --check bestanden. Vollständige Browser-/PostgreSQL-Suite für diese enge Änderung nicht erneut ausgeführt. Keine Kundendaten an das Modell, keine Migration, kein Cloud-Plan/Apply/Destroy und kein Commit/Push/Release.
Geändertes Komponentenwissen ändert den Wissenshash. Alte Gespräche bleiben unverändert und werden vom bestehenden assistant_knowledge_changed-Gate blockiert. Benutzer muss für den nächsten Versuch selbst ein neues Gespräch starten; keine Agentenlöschung der bisherigen Historie oder Änderung der Konfiguration. Die Schritt-Erkennung ist begrenzt, kein allgemeiner persistenter Aufgabenplaner: Folgeantworten, allgemeine fachliche Pfadzuordnung und tatsächlich schreibbare SNA-Strukturen bleiben A04/A15 offen. Abnahme: landing-zone-configurator/docs/mvp-acceptance.md. Issue bleibt offen.
5 remaining items
lweberru commentedon Oct 10, 2026
Kuratiertes Wissen fuer alle Accelerator-Bereiche: 19 Themen (2026-10-10)
Auf Benutzerwunsch ist die SNA/Credential-Wissensbasis auf alle Accelerator-Fachbereiche erweitert. Keine Aenderung einer Nutzerkonfiguration, kein Commit/Push oder Cloud-Apply.
Nachweise: 41fokussierte Tests +Frische/Lint/Typen/Build +456Unit/53Skip, IDE/diff sauber. Vier echte synthetische Qwen-Checks: SNA-zuerst/Firewall-spaeter empfiehlt hub-and-spoke ohne Firewall12766ms; Firewall/Policy/VPN4436ms und Kubernetes/Namespaces3401ms mit neuen Quellenreferenzen/0Changes; SNA2493ms ein Vorschlag/0Fragen/native Kompilation+tfvars. Breite Antworten noch knapp/teils doppelte Referenzen: kein voller semantischer Qualifikationsnachweis. Keine Kundendaten/State/Plans/Credentials ans Modell. Browser/PG fuer diesen Wissensschritt nicht erneut ausgefuehrt.
Lokal aktiviert; API/UI erreichbar, anonymeSession401, vorhandeneKonfiguration unveraendert,001-055 immutable. Neuer Wissenshash erfordert explizit neues Gespraech; keine automatische Historienloeschung oder Aenderung bestehender Firewalldefaults. Architektur/Themenkatalog: landing-zone-configurator/docs/assistant-knowledge/README.md; Nachweise/offene Abnahme: docs/mvp-acceptance.md. Komplexe Service-Patches, Cross-Feature-Containment, volle Credential-/Ausfuehrungsparitaet und Quellenfreigaben bleiben offen. #94 bleibt offen.
lweberru commentedon Oct 10, 2026
Wissensupdates: bestehende Gespraeche fortsetzen (2026-10-10)
Neue Benutzerentscheidung umgesetzt und lokal aktiviert: Wissensupdates verlangen keinen Gespraechsneustart mehr. Dieser Nachweis ersetzt die Neustart-Vorgabe in den vorherigen Kommentaren.
Pruefung: gezielter echter PostgreSQL-Wissenswechseltest (alter Vorschlag gesperrt, gleiche ID/Historie/Ablauf, neuer Kontext/Hash, neue ausdrueckliche Uebernahme) bestanden. Alle 36 DB-Tests bestanden mit 30-Sekunden-Testlimit; erster Lauf unter paralleler Build-Last hatte einen Timeout und einen Session-Folgefehler. Frische/Lint/Typen/Build und 456 Unit-Tests (+53 Skips), IDE/diff sauber. Read-only Browserzugriff auf bestehende authentifizierte Session/Konfiguration/Gespraech jeweils 200. Vor/nach lokalem API-Restart Konfigurations- und Gespraechsbestand identisch; Hash-Update-Recht vorhanden, expires_at-Update weiterhin verboten.
Keine Nutzer-Nachricht abgesendet, kein Editor-Reload, kein Cloud-Lauf oder Commit/Push. Nutzer kann die bisherige Nachricht im vorhandenen Gespraech erneut senden. Abnahme: landing-zone-configurator/docs/mvp-acceptance.md; Vertrag: landing-zone-configurator/docs/assistant-knowledge/README.md. Keine neue Service-Patch- oder Ausfuehrungsberechtigung, A01-A24 weiterhin not-qualified; #94 bleibt offen.
lweberru commentedon Oct 10, 2026
Firewall-Entscheidungsberatung: Schemafehler reproduziert und behoben (2026-10-10)
Nutzerfrage zu zentraler hochverfuegbarer Firewall/Entscheidungen scheiterte mit proposal_schema. Echt mit synthetischen Werten reproduziert: Modell wollte firewall_bootstrap als String aendern. Transport erlaubte jeden Skalartyp pro Pfad, serverseitiger nativer Vertrag lehnte korrekt ab.
Fix lokal aktiv: Skalarpfade haben im Modellschema ihren nativen Typ/Optionalitaet. Firewall-Entscheidungseinstieg erlaubt 0 Changes, maximal 3 native Firewall-Fragen und serverseitigen Scope-Check; keine Bootstrap-Aktivierung. Weitere echte Proben lieferten unpassende Aktiv/Aktiv-, Public-IP-Failover- und Transfernetz-Aussagen. Deshalb normalisiert dieser begrenzte Einstieg auf eine feste native DE/EN-Entscheidungshilfe: OPNsense Aktiv/Passiv/CARP, unterschiedliche Zonen, LAN/WAN/HA-Adressen im SNA-Pool, kein zugesichertes automatisches Public-IP-Failover oder automatisches Erzwingen aller Verkehrswege. Fragen zu Verkehrsumfang/Ausnahmen, Kapazitaet und tolerierbarem Ausfall/Betrieb. Keine neuen Firewall-Patches; adaptive fachliche Gesamtqualifikation bleibt offen.
Nachweise: 16 fokussierte Assistant-Tests inkl. genauer Frage, bool/null statt String, Scope/3Pfaden/HA-Grenzen und Reject unerlaubter Mutation. Frische/Lint/Typen/Build +457 Unit/53 Skip, IDE/diff sauber. Finale echte synthetische Qwen-Probe 7479ms, 0Changes/3passende Fragen/native Referenzen und gepruefte HA-Grenzen. Zwischenproben mit falschen Fachaussagen nicht als bestanden gewertet. Keine Nutzerwerte/Historie/State/Credentials ans Modell; Browser-/PG-Suiten fuer reinen Transportfix nicht erneut ausgefuehrt.
API/UI lokal erreichbar, Schema unveraendert056, Konfigurations-/Gespraechsfingerabdruecke identisch vor/nach Restart. Nutzer kann im bestehenden Gespraech erneut senden, kein Reload/Neustart/Loeschen erforderlich. Kein Cloud-Apply/Commit/Push. Abnahme: landing-zone-configurator/docs/mvp-acceptance.md. A01-A24 not-qualified; #94 bleibt offen.
lweberru commentedon Oct 10, 2026
HA-Wissen aus PR #55 und kurzer Firewall-Einstieg (2026-10-10)
Nutzer kritisierte lange Antwort und unvollstaendiges HA-Wissen. PR #32 (OPNsense-Wechsel) und #51 (VPN/Policy) geprueft; HA-Commits d7633e2/1fb8f0c sind dem gemergten PR #55 zugeordnet. Aktueller Code implementiert aktive/passive Knoten in unterschiedlichen Zonen, Unicast-CARP/LAN-VIP als Plattform-Next-Hop, pfsync und XMLRPC-Policy-Sync. Post-API-Trigger repliziert Aliases/Kategorien/Regeln/NAT/statische Routen; API writes allein reichen nicht. Backup hat eigene WAN-IP fuer Zugang/Egress; primaere Public-IP bleibt NIC-gebunden. Separate Inbound-Umschaltung (z.B. manuelles DNS) bedeutet nicht fehlende LAN-HA.
Firewall-Wissen Version 2 um diese konkreten Faehigkeiten/Herkunft/Policy-Sync-Quellen ergaenzt, dabei kompakter. Native DE/EN-Einstiegsantwort jetzt kurz (<500 Zeichen DE) und nur eine Frage zum Verkehrsumfang, statt drei Betriebs-/Kapazitaetsfragen auf einmal. Bereits geforderte HA bestaetigen statt erneut abfragen. Vorherige lange Einstiegserklaerung abgeloest; Einstieg weiterhin bewusst fest/vertragstreu, nicht adaptive Gesamtqualifikation.
16 fokussierte Assistant-Tests +Wissensgenerierung/Budget/Frische/Lint/Typen/Build +457 Unit/53Skip, IDE/diff bestanden. Fuer diese Wissens-/Textkorrektur keine neue Modellinferenz/Browser-/DB-Suite oder Cloud-Failover-Pruefung; implementierte HA != gemessene Ausfall-/SLA-Qualifikation. Lokal aktiv API health/UI200, Konfigurations-/Gespraechsfingerabdruecke unveraendert. Kein Nutzerchat beschrieben/gesendet, keine Migration/Cloud-Ausfuehrung/Commit/Push. Bestehendes Gespraech kann mit aktuellem Wissen weiterlaufen.
Abnahme: landing-zone-configurator/docs/mvp-acceptance.md; Wissen: landing-zone-configurator/docs/assistant-knowledge/firewall-infrastructure.md. Keine neuen Firewall-Patchrechte, A01-A24 not-qualified; #94 bleibt offen.
lweberru commentedon Oct 10, 2026
Assistant: semantischer Planer noch nicht aktiviert
Lokaler Implementierungsstand 2026-10-10 nach Zustimmung zum gemeinsamen
Gespraechs-/Aenderungsvertrag; kein Laufzeit-Rollout dieser Fassung:
nicht-sensitiven Skalare: Firmenname, Firmenkuerzel, Region und bestehende
native SNA-Patches. Firewall-Admin-Benutzername, API-Secret-Version und
Bootstrap sind Operator-Eingaben, keine Geschaeftsentscheidungen und keine
Chat-Patches. Auch gespeicherte alte Vorschlaege werden erneut validiert.
Wissen, keine fest ersetzten Antworten. Firewall-Entscheidungen werden aus
woertlichen Benutzer-Belegen rekonstruiert: Verkehrswege, Kapazitaet, Betrieb.
Assistant-Beispiele gelten nicht als Zustimmung. Maximal eine naechste Frage
und 800 Zeichen Erklaerung, keine Firewall-Infrastruktur-Uebersetzung.
PostgreSQL-Identity-Faelle einschliesslich Ablehnung eines gespeicherten
Bootstrap-Patches bestehen auf der isolierten Testdatenbank. Kein neuer
Migrationseingriff; angewandte Migrationen 001-056 bleiben unveraendert.
Finales App-Gate: Wissensfrische, Lint, Typen, Build und 462 Unit-Tests
bestanden; 53 umgebungsgebundene Tests uebersprungen. Kein neuer Browser-
oder vollstaendiger Cloud-/A01-A24-Qualifikationslauf fuer diesen Planer.
Firewall-Ablaufs. Der explizite Themenwechsel zur SNA funktioniert in der
letzten Probe, aber die ausdrueckliche Anforderung eines vollstaendig
spezifizierten SNA-Vorschlags wird wiederholt als
advicestattdraftklassifiziert. Dadurch entsteht kein nativer Vorschlag. Beispiele, begrenzte
Vorabeinordnung und Weglassen der Transport-Enums haben dies nicht behoben.
insbesondere Beratung versus Vorschlagsvorbereitung und SNA-Rundlauf nach
Firewall-Historie. Die erlaubten Backend-Rechte duerfen dafuer nicht erweitert
oder durch Wort-Trigger und vorgefertigte Antworten umgangen werden.
Keine Aktivierung des neuen Planers: lokale API und Benutzerchats wurden fuer
diesen Arbeitsstand nicht neu gestartet oder veraendert. Die zuvor dokumentierte
Laufzeitfassung bleibt aktiv; die neuen Operator-Sperren sind dort deshalb noch
nicht aktiv. Kein Kunden-Chat wurde fuer die Proben verwendet. Kein Cloud-Plan,
Apply, Destroy, Token-/Schluesselwechsel, Commit, Push oder Release. A01-A24
bleiben
not-qualified. Keine Benutzerabnahme dieses Planers anfordern, bevordie konkrete technische Fehlergrenze behoben ist.
lweberru commentedon Oct 10, 2026
Assistant: separates Intent-Modell erfolgreich gegengeprueft
Nach ausdruecklicher Benutzerfreigabe am 2026-10-10 wurde
openai/gpt-oss-120bvom bestehenden Model-Serving-Endpunkt ausschliesslichfuer
conversation_intentgetestet. Das Antwortmodell bleibtQwen/Qwen3-VL-235B-A22B-Instruct-FP8. Der Client unterstuetzt dafuer optionalintentModel; ohne diesen Wert bleibt die bisherige Modellwahl erhalten.Antworten werden gegen das jeweils angeforderte Modell geprueft. Keine neue
Environment-/Runtime-Verdrahtung und keine Aktivierung dieser Fassung.
Drei reale synthetische Gegenchecks bestehen fuer die Intent-Grenze:
Thema SNA, Modus
draft, ein nativerconnectivity.network_areas-Patch,erfolgreiche lokale Kompilation und tfvars-Export; keine Ausfuehrung.
advice,keine Aenderung. Namenlose Firewall-Kapazitaetsantwort: Firewall-Thema,
Modus
advice, Verkehrs-/Kapazitaetsbelege aus Benutzerhistorie erhalten,keine Aenderung. Tatsächlich angeforderte und zurueckgegebene Modellnamen
wurden fuer beide Aufrufe separat geprueft.
in diesen drei Einzelproben, kein Last-/Verfuegbarkeitsnachweis.
Der zuvor dokumentierte Qwen-only-Intent-Blocker ist durch diesen Gegencheck
lokal umgangen, nicht als Qwen-only geloest. Die Antwortqualitaet bleibt offen:
Qwen beschreibt einen blossen SNA-Entwurf irrefuehrend als bereits konfiguriert,
ordnet eine Adresspool-Frage dem Prefix-Feld zu und laesst nach beantworteter
Firewall-Kapazitaet die noch offene Betriebsentscheidung aus. Deshalb keine
vollstaendige Dialogabnahme oder Aktivierung allein aus korrekter Intent-Wahl.
Naechster technischer Nachweis: korrekte Entwurfs-/Ausfuehrungsaussagen und
zuverlaessige naechste offene Geschaeftsentscheidung mit demselben Split pruefen.
Finales App-Gate: Wissensfrische, Lint, Typen, Build, 463 Unit-Tests bestanden;
53 umgebungsgebundene Tests uebersprungen. 22 fokussierte Assistant-Tests
einschliesslich separater Modellwahl und Model-Mismatch-Ablehnung bestehen.
Kein neuer PostgreSQL-/Browser-/Cloud-Lauf fuer die reine Modelltrennung.
Vorherige 36 PostgreSQL-Nachweise bleiben historischer Nachweis des
unveraenderten Service-/Akzeptanzvertrags. #94 und A01-A24 bleiben offen bzw.
not-qualified. Laufzeit, Kundenchats, Migrationen, Token und Schluessel bleibenunveraendert; kein Commit, Push oder Release.
lweberru commentedon Oct 11, 2026
Assistant: Auto-Scroll und Streaming lokal aktiviert
Stand 2026-10-11. Benutzer hat nach Hinweis auf die offenen Planer-Grenzen
ausdruecklich die lokale Testaktivierung samt Planer-Pilot freigegeben.
Dieser Abschnitt ersetzt die frueheren Nicht-Aktivierungsnotizen fuer den
aktuellen lokalen Laufzeitstand, nicht die fehlende produktive/fachliche Abnahme.
beim Laden, Oeffnen, nach Antworten und bei Teiltext zum Ende. Kein globales
Scrollen der Editor-Seite. Die Anfrage erscheint waehrend des Wartens im Chat.
explanationwerden ueber einenoptionalen NDJSON-POST-Stream weitergegeben. UI kennzeichnet sie als
vorlaeufig; nur der vollstaendig validierte und gespeicherte Abschluss liefert
Empfehlung/Diff. Keine partielle Akzeptanz, Speicherung oder Ausfuehrung.
Bisherige JSON-Clients bleiben kompatibel. Keine neuen Patch-Rechte durch
Streaming, keine Modell-Token-Rotation und keine neue Migration.
und Abbruch werden geprueft. Textaktualisierungen sind begrenzt. Auth/CSRF
bleiben vor dem Stream; Service prueft Rechte, Revision und Ablauf vor dem
Speichern erneut. Fehler verwerfen Teiltext und erhalten die Eingabe.
Echter PostgreSQL-Abbruchtest: vorlaeufiger Text, anschliessender Abbruch,
keinerlei Aenderung an Nachrichten, Vorschlag, Revision oder Konfiguration.
LZC_MODEL_SERVING_INTENT_MODEL=openai/gpt-oss-120bgestartet;Qwen bleibt das Antwortmodell. Execution/Recovery bleiben deaktiviert.
Gesundheitspruefung und Preview HTTP 200; anonymer Stream HTTP 401.
Eine Konfiguration und ein Gespraech mit exakt unveraenderten Pruefsummen
vor/nach dem Neustart. Keine Kundenanfrage fuer die Verifikation gesendet.
Nachweise: Wissensfrische, Lint, Typen, Build und 465 Unit-Tests bestanden,
53 umgebungsgebundene Tests uebersprungen. 24 fokussierte Assistant-Tests,
36 echte isolierte PostgreSQL-Faelle, vier Desktop-/Mobil-Chatfaelle bestanden.
Browser prueft Teiltext vor Abschluss, verborgenen neuen Diff, lange Historie,
Auto-Scroll, explizite gesamte Akzeptanz, Wiederaufnahme und Fehler/Retries.
Desktop-/Mobil-Screenshots angesehen. Kein voller E2E-/Cloud-Qualifikationslauf.
Reale synthetische Qwen-Streaming-Proben: Template-Beratung erster Text
6914 ms, Abschluss 9939 ms, 28 Textstaende; Konfigurations-Chat erster Text
1529 ms, Abschluss 4312 ms, 20 Textstaende. Einzelproben, kein Lastnachweis.
Intent-Abfrage und Katalogabruf bleiben vor den ersten Antworttokens; Streaming
garantiert keine sofortige Ausgabe und keine bessere Modellqualitaet.
Benutzerabnahme: ungespeicherte Eingaben zuerst sichern, vorhandenen Tab neu
laden, bestehenden Chat weiterverwenden und Teilantwort/Scrollverhalten pruefen.
Der Agent hat den offenen Editor-Tab nicht neu geladen. Modellantworten koennen
Entwuerfe weiterhin sprachlich als bereits umgesetzt beschreiben und offene
Geschaeftsfragen auslassen; lokale Testfreigabe behebt diese Qualitaetsgrenzen
nicht. #94 bleibt offen; A01-A24 bleiben
not-qualified. Keine Cloud-Aktion,Veroeffentlichung, Commit, Push oder Release.
lweberru commentedon Oct 11, 2026
Lokaler Fix: explizite Grundlagen-/Ordnernamen (2026-10-11)
Der Grundlagen-/Namensauftrag scheiterte am zu engen Patch-Vertrag (keine Ordnernamen; gewaehlte Firmenkuerzel ohne woertlichen Benutzerbeleg). Lokal sind nun explizit delegierte company_name/company_code und name-only-Patches bestehender rm_folders unterstuetzt.
Benutzerabnahme bleibt: denselben Auftrag im bestehenden Chat wiederholen, Kuerzel/Ordner-Diff pruefen und erst bei Zustimmung uebernehmen. Wissensaenderung verlangt keinen neuen Chat. Qwen formuliert den Vorschlag noch irrefuehrend als eingerichtet und das Kuerzel als ID; die bekannte Antwortqualitaet und vollstaendige Grundlagenberatung bleiben offen. A01-A24 bleiben not-qualified, #94 bleibt offen und Labels unveraendert. Lokale Abnahmedatei aktualisiert; keine Cloud-Aktion, Veroeffentlichung, Commit, Push, Merge oder Release.
lweberru commentedon Oct 11, 2026
Lokale Auswahlfragen und eingegrenzte Vorschlaege (2026-10-11)
Konfigurations-Chat und Template-Beratung zeigen Rueckfragen jetzt getrennt mit auswählbaren Optionen und Freitext. Native Radiofelder fuer Einzelantworten, Checkboxen fuer kompatible Mehrfachantworten; maximal sechs eindeutige kurze Optionen (160 Zeichen). Neue Inferenz transportiert strukturierte Fragen mit options/multiple, gespeicherte Altfragen ohne Optionen bleiben lesbar. Geschuetzte Fragebegriffe werden auch in Optionen geprueft. Kein neuer Patch-Vertrag oder Migration.
Benutzerabnahme: ungespeicherte Eingaben sichern, Tab selbst neu laden, bestehenden Chat weiterverwenden und neue Rueckfragen/Teilauswahl pruefen. Fuer alte Freitextfragen werden keine Optionen erfunden. Abnahmeliste aktualisiert; A01-A24 weiterhin not-qualified. #94 bleibt offen, Labels unveraendert; keine Cloud-Aktion, Veroeffentlichung, Commit, Push, Merge oder Release.
lweberru commentedon Oct 11, 2026
DNS-Beratung: belegte freie STACKIT-Endungen (2026-10-11)
Die gemeldete DNS-Antwort enthielt eine erfundene freie Endung und fragte den bereits delegierten Namensvorschlag wieder zurueck. Die verlinkte offizielle Anleitung wurde geprueft: https://docs.stackit.cloud/products/network/core-networking/dns/how-tos/manage-dns-zones/
Benutzerabnahme: dieselbe DNS-Bitte im bestehenden Chat erneut senden und Domain fachlich pruefen. Verfuegbarkeit, Zone/Records, Kosten und Propagation bleiben separat offen. Abnahmeliste aktualisiert; A01-A24 weiter not-qualified, #94 offen und Labels unveraendert. Kein Commit, Push, Merge, Release oder Cloud-Ausfuehrung.
lweberru commentedon Oct 11, 2026
DNS: bestaetigten Namen als Konfigurations-Diff uebernehmen (2026-10-11)
Erweitert den vorherigen DNS-Faktenfix: Die pauschale Nurtext-Grenze war fuer die angefragte Konfigurationsaenderung zu eng. Bestehende zentrale connectivity.dns_zones unterstuetzen jetzt reine Namenspatches.
Benutzerabnahme in docs/mvp-acceptance.md: bestehendes Gespraech weiterverwenden, bestaetigten Namen erneut als uebernehmbaren Vorschlag anfragen, Diff pruefen und explizit ganz annehmen. Fuer mobile Darstellung offene Eingaben sichern und Tab selbst neu laden. Domainverfuegbarkeit, DNS-Dienstkosten, echte Zone/Records/Propagation bleiben separat offen. A01-A24 weiter not-qualified, #94 offen/Labels unveraendert; kein Cloud-Plan/Apply/Destroy, Commit/Push/Merge/Release.
lweberru commentedon Oct 13, 2026
Scope decision approved by the user on 2026-10-13: guided firewall policy editing and Assistant rule/NAT/alias/route proposals are explicitly outside the MVP and tracked in #101. The bounded Assistant remains required in this issue. It must clearly disclose that it cannot currently define/accept firewall policy, without a questionnaire promising future rule proposals. For the MVP, policy is maintained manually in OPNsense by a firewall administrator after infrastructure provisioning. Existing generic common-editor fields are retained; native capability is not proof of execution or isolation. Native multi-appliance policy distribution remains separate in #65.
lweberru commentedon Oct 14, 2026
Hosted Dev qualification follow-up (2026-10-14, source 1b04566): a valid synthetic schema-v3 Common configuration with platform draft metadata and four existing rm_folders entries (name plus empty owner_emails/reader_emails) received a combined explicit company/folder naming request. The real Qwen model returned only company_name/company_code, no rm_folders change and no clarification questions. Explicit acceptance therefore correctly changed only the proposed scalars, leaving folder names unchanged. This combined case is NOT qualified as passed. A separate two-turn company-name/company-code journey passed on hosted Dev, including no implicit save, explicit acceptance, exact persisted values, preserved unrelated fields, stale revision rejection and conversation history. All synthetic configurations were removed; no existing configuration or customer cloud resources were modified. Please extend the bounded naming contract/catalogue with this mixed explicit-name case; preserve role/metadata privacy and explicit field acceptance. The OIDC/public-client rollout and independent eight-hour app-session fix are separate and successfully deployed (release 38637449791).
lweberru commentedon Oct 16, 2026
Implemented and qualified for source integration in #102. The authenticated backend-only Assistant uses reviewed topic knowledge and native editor/compiler contracts, returns field-level revision-bound proposals, requires explicit acceptance, preserves tenant/permission boundaries and cannot execute or read execution secrets. Knowledge delivery tests cover every advice topic and every native Editor-proposal topic. DNS role/contact preservation, optional native Git defaults and foundation no-op preservation have explicit regressions.
The final complete real-model qualification passed 114/114 cases (57 cases, two independent iterations) and the continuous 13-step journey passed 13/13. Both model roles used the application default Qwen/Qwen3-VL-235B-A22B-Instruct-FP8. Knowledge fingerprint: ee51045fa0d249b535d9c449df1311af336ffd4daf44a1b67b1fc0852ee5c01b. Suite: bba638db669752c98b826684f0456cead383c02d249aad1899e56b565d3632a4. Journey: 9d9f48af245983fd6ab09f421606337d8f860315877763c1be323d260790db6e.
The prior same-source 112/114 run remains retained as failed (one upstream HTTP 503, one truncated completion); diagnostic runs and the fresh complete qualification do not erase it. Errors remain explicit and fail closed; no automatic retries or weaker oracles were added. This is bounded synthetic factual/contract qualification, not universal correctness or cloud-execution acceptance.
Closure will be linked to the source merge. Deployment stays manual, and the release workflow must repeat its own source-bound qualification before promotion; local receipts do not authorize deployment.