# Anlage: Azubi42 README, Bauteileliste und Inventarverzeichnis

Stand: 03.07.2026

Diese Lesefassung führt die drei bestehenden Projektdateien in einer Datei zusammen. Der Aufbau der Quelldateien bleibt inhaltlich erhalten; lange technische Protokollzeilen wurden für die Lesbarkeit in Überschriften und Stichpunkte gegliedert.

Hinweis: Diese Anlage ist eine technische Struktur- und Inventarübersicht. Sie ersetzt keine rechtliche Bewertung und enthält keine privaten Zugangsdaten.

## Kurzeinordnung

- `README.md` beschreibt den führenden Repository-Stand, die Grundstruktur und die vorgesehenen Arbeitswege.
- Die `Bauteileliste` führt die technischen Bausteine, Schnittstellen, Tests, Smokes und Betriebsnotizen fort.
- Das `Inventarverzeichnis` ergänzt die Datei-, Modul-, Integrations- und Nachweisstruktur.
- Die Lesefassung ist für externe Nachvollziehbarkeit gedacht: Was existiert, wo es im System eingeordnet ist und welche Prüf- oder Betriebsfunktion es hat.
- Private Zugangsdaten, lokale Meister-/Arbeitsablagen und nicht für Dritte bestimmte Pfade wurden in dieser Anlage neutralisiert.

## Leseführung

- Zuerst steht die kompakte Repository-Übersicht.
- Danach folgt die ausführliche Bauteileliste.
- Danach folgt das Inventarverzeichnis.
- Die langen Eintraege aus Bauteileliste und Inventar sind als einzelne Abschnitte mit Stichpunkten lesbar gesetzt.

## Quellen

- `README.md`
- `00_META\azubi42_v27_bauteileliste.md`
- `00_META\azubi42_v27_inventarverzeichnis.md`

---

# README

# AZUBI42 Repository

Zielablage für Azubi42 mit sauber getrennter Struktur für:

- gemeinsamen Kern
- Editionsvarianten
- Installer und Deployment
- Integrationen
- offizielle Rechtsquellen
- Codex/OpenAI
- Laufzeitvorlagen und Smokes

Die Struktur ist für den Umzug von Windows-Entwicklung auf Linux-Serverbetrieb vorbereitet.

Führender Arbeitsstand:

- `[lokaler Arbeitsstand]`
- `main` ist der Forgejo-Main gegen `origin/main`
- lokale Spiegel werden mit `00_META\azubi42_workday.ps1 finish` nachgezogen und geprüft

Aktueller Zusatzbaustein:

- `toolbox/legal/`
  Laufzeitnahe Legal-Toolbox mit Jurabibliothek-CLI, serverseitigem amtlichen Web-Sync, Quellen-/Aenderungswatch für recht.bund.de, Bundesanzeiger und Buzer, Paperless-Atom-Indexer, privater `[private Vorgangswurzel]`-Vorgang-2020-2026-Atom-Pipeline, Disk-Guard gegen volle Platten und 42-Minuten-Cycle-Vorlagen für Linux-Serveredition und Spiegelordner.
- `40_INTEGRATIONS/legal-jura/`
  Jurabibliothek für amtliche Gesetze, Verwaltungsvorschriften und Rechtsprechung mit SQLite-, Volltext- und Jobstruktur.

---

# Bauteileliste

# Azubi42 v27 Bauteileliste

## Jurabibliothek-Public-Normanker-Alias 2026-07-03

- `toolbox/legal/jurabibliothek_public_api.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek_public_api.py` und `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_public_api.py` bilden den Bauteil für stabile Public-API-Normanker `law::bgb::839` und `law::sgg::65a`.
- Der Bauteil loest direkte Dokumente weiter normal auf und fällt sonst nur innerhalb der öffentlichen Jurabibliothek auf vorhandene `law::bgb`-/`law::sgg`- oder `law_anchor_<gesetz>_<norm>`-Fragmente zurück.
- Suchanfragen mit Gesetz+Norm werden vor normaler Titel-/FTS-Suche geboostet und geben bei Fallback `resolved_doc_key` aus; `document` und `fragments` filtern breite Gesetzesfallbacks auf die passende Norm, damit nicht der Gesetzesanfang als Aliasinhalt erscheint.
- `PUBLIC_WHERE` bleibt auch im Boostpfad aktiv; Paperless, lokale Pfade, private Texte und Secrets werden nicht geöffnet.

## Matrix-Provider-Seed-Partition-Gate 2026-07-03

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und der Installer-Testspiegel bilden den Bauteil gegen Matrix-Session-Falschablage in einer anderen Electron-Partition.
- Der Bauteil leitet die Default-Seedpartition aus dem Matrix-User bzw. Smoke-User mit dem Communication-Slug-Vertrag ab, nutzt für die Provider-Smoke-Shell eine QA-HTML-Datei statt `data:`-URL, blockt `window-all-closed` bis zum expliziten Smoke-Finish und wertet Matrix-URLs ohne sichtbare Element-App-Shell nicht mehr als Auth-Session.
- Server-Evidence: Matrix Provider-only `[Serverpfad]` ist mit Seed und `--require-authenticated-session` `ok=true`/`providerSessionCoverage=true`; Azubi-UI-Vierer `[Serverpfad]` bleibt für Webknoten/Multi-Node `ok=true`, aber `providerSessionCoverage=false`.
- Der Bauteil öffnet kein Provider-`Sende-Freigabe` und macht den Azubi-UI-BrowserView-Auth-Gate nicht grün.

## Provider/Communication-Native-Host-Evidence-Refresh 2026-07-03

- `toolbox/communication/provider_test_account_workbench.py`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs`, `70_TESTS_AND_SMOKE/integrations/test_communication_service_node_ui_contract.py`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py`, `70_TESTS_AND_SMOKE/integrations/test_provider_native_session_sync.py`, `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py` und die Serverreports unter `[Serverpfad]` bilden den aktuellen Bauteilstand für echte browserdirekte Communication-Knoten.
- Der Bauteil bleibt Code-seitig unveraendert: pro Klick/Gespraech entstehen mehrere Original-Browserknoten mit node-spezifischer BrowserView-ID und user+service-Sessionpartition, ohne Providerdatenverkehr über den Azubi42-Server zu relayn.
- Nachlauf 2026-07-03 belegt Provider-only `[Serverpfad]` `ok=true`, `webviewCount=4`, `multiNodeProbeCoverage=true`, Azubi-UI `[Serverpfad]` `ok=true`, `providerSurfaceCount=8`, `browserViewAnchorCount=8`, `multiNodeProbeCoverage=true`, sowie Matrix-Seed-only `[Serverpfad]` `ok=true`.
- Nicht grün: `providerSessionCoverage` bleibt für den Vierer und den harten Matrix-Auth-Smoke `[Serverpfad]` false; Telegram/WhatsApp brauchen QR/Phone, Slack Workspace-Login, Matrix braucht eine korrigierte Seed-Übernahme in den Provider/Azubi-View.
- `Sende-Freigabe` bleibt für externe Provider gesperrt bis zum Nachweis.

## EGMR-HUDOC-Entscheidungs-API 2026-07-03

- `toolbox/legal/jurabibliothek/egmr_hudoc_decisions.py`, `toolbox/legal/jurabibliothek/config/egmr_hudoc_decision_sources.json`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/egmr_hudoc_decisions.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/config/egmr_hudoc_decision_sources.json`, `toolbox/legal/jurabibliothek/config/focus_topics_richterschutz.json`, der Installer-Spiegel, `toolbox/legal/README.md`, `toolbox/legal/jurabibliothek/README.md`, `toolbox/legal/jurabibliothek_public_api.py` und `70_TESTS_AND_SMOKE/legal/test_egmr_hudoc_decisions.py` bilden den separaten Bauteil für echte EGMR-Urteile/Entscheidungen aus HUDOC.
- Der Bauteil nutzt HUDOC-JSON-Metadaten und den offiziellen Conversion-Body, schreibt `doc_type=egmr_decision` sowie `source_kind=egmr_hudoc_decision_api` und hält ECHR-KS-Guides weiter im getrennten `egmr_guidance`-/`egmr_case_law_guide_pdf`-Pfad.
- Die Quellen sind getrennt für aktuelle Urteile, Deutschland, Art. 6, Art. 13, Art. 35/Zulaessigkeit-Rechtswegerschoepfung, Deutschland/Verfahrensdauer und P1-1/Social-Security.
- `pinned_itemids` laden kuratierte Leitfaelle vor der normalen Query und markieren sie in `hudoc_pinned_lead_case`; umfasst u.a. `KUDLA`, `M.S.S.`, `DE SOUZA RIBEIRO`, `VUČKOVIĆ`, `AKDİVAR`, `SELMOUNI`, `SÜRMELI`, `RUMPF`, `STEC`, `CARSON`, `BÉLÁNÉ NAGY`, `KJARTAN ÁSMUNDSSON` und `MOSKAL`.
- Bodylose `003-...`-/Pressetreffer und leere Conversion-Bodies werden als Skips dokumentiert, nicht als Entscheidungen oder Grün.
- Server-Evidence: Dev/Jura je 30 Entscheidungen, 532 Fragmente, 532 Vektoren, 0 offene Vektoren; Pin-Meta ist serverseitig vorhanden.
- Public-API findet die Leitfaelle u.a. über `egmr_hudoc::001-58920`, `egmr_hudoc::001-142199`, `egmr_hudoc::001-75689` und `egmr_hudoc::001-73198`.

## Jurabibliothek-Public-Read-only-API v1 2026-07-03

- `toolbox/legal/jurabibliothek_public_api.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek_public_api.py`, `toolbox/legal/jurabibliothek_public_export.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek_public_export.py`, `toolbox/legal/systemd/azubi42-jurabibliothek-public-api.service`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/systemd/azubi42-jurabibliothek-public-api.service`, `toolbox/legal/nginx/azubi42-jurabibliothek-public-api-rate.conf`, `toolbox/legal/nginx/azubi42.de-bibliothek-api.location.conf`, die Installer-Spiegel, `20_EDITIONS/azubi42-de/website/robots.txt`, der Installer-Robots-Spiegel, `toolbox/legal/README.md`, `toolbox/legal/jurabibliothek/README.md`, `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_public_api.py` und `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_public_export.py` und `/bibliothek/ping.txt`, `/bibliothek/api/v1/search`, `/bibliothek/api/v1/document` und `/bibliothek/api/v1/fragments` als GET/HEAD-only sowie Katalog, JSONL-gzip und GPT-Briefing als statischen Export; unversionierte `/bibliothek/api/search|document|fragments` bleiben als Alias aktiv.
- Der Dienst laeuft nur auf `127.0.0.1:18046`, Nginx setzt Rate-Limit `30r/m`; Rückgaben enthalten `source_id`, `source_kind`, `topic_tags` und ein sanitiztes `pinned_lead_case`, damit GPT/UI echte HUDOC-Leitfaelle direkt erkennt.
- Die Bibliothek ist Navigator, Atomizer und Gegenprüfer, nicht Ersatz für die amtliche Zitierquelle.

## EGMR-KS-Guide-Direktabruf 2026-07-03

- `toolbox/legal/jurabibliothek/config/egmr_bverfg_sources.json`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/config/egmr_bverfg_sources.json`, `toolbox/legal/jurabibliothek/egmr_bverfg_materials.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/egmr_bverfg_materials.py`, `toolbox/legal/jurabibliothek/README.md`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/README.md`, `toolbox/legal/README.md`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/README.md` und `70_TESTS_AND_SMOKE/legal/test_egmr_bverfg_materials.py` bilden den Bauteil für EGMR-Case-Law-Guides ohne 403-Webseiten-Scheingrün.
- Das Manifest führt 41 offizielle ECHR-KS-Guides als direkte Dokumentendpunkte unter `https://ks.echr.coe.int/documents/d/echr-ks/<guide_slug>`; `source_listing_url` bleibt die offizielle All-Case-Law-Guides-Seite, aber der Abrufbeweis ist nur ein echtes PDF.
- Der Loader speichert Rohbytes, final_url und SHA256 im Jurabibliothek-Mirror und bricht bei `expected_format=pdf` auf HTML-/Sperrseiten ab.
- Server-Evidence: `[Serverpfad]` importiert 41/41 Guides mit 0 Fehlern, `egmr_guidance` steigt auf 46 Dokumente, KS-Guide-Fragmente 5875, `egmr_guidance`-Vektoren 6123/6123; `[Serverpfad]` importiert 41/41 mit 0 Fehlern und vektorisiert 5875/5875.
- Der Public-Export meldet 92293 öffentliche Dokument-Metadaten und 1106978 öffentliche Fragmentreferenzen bei 1463 ausgeschlossenen privaten Paperless-Dokumenten.

## Jurabibliothek-Quellen-Ausbau duenne Regale 2026-07-03

- `toolbox/legal/jurabibliothek/config/sources.json`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/config/sources.json`, `toolbox/legal/jurabibliothek/jurabibliothek.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/jurabibliothek.py`, `toolbox/legal/README.md`, `toolbox/legal/jurabibliothek/README.md`, die Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_coverage_and_case_toc.py` bilden den Bauteil für timer-sichtbare Zusatzquellen in den bisher duennen Regalen.
- Der Bauteil ergänzt offizielle EU-AI-/EUDI-Quellen, recht.bund-/Bundesnetzagentur-/BVL-Bekanntmachungsseiten, BVerfG-Verfahrensarten sowie NRW-LJPA-/KMK-/BIBB-Ausbildungsquellen.
- `seed_jobs` loescht stale Pending-Watchjobs derselben Quelle bei URL-Wechsel, damit alte 404-Ziele nicht weiterlaufen.
- Server-Evidence: 118 Quellen, 93715 Dokumente, 1141736 Fragmente, aktivierte Quellen ohne Dokumente 0; `eu_ai_regulation` 11, `eu_digital_identity` 7, `bverfg_guidance` 12, `official_notice` 6, `legal_education_juristenausbildung` 3, `legal_education_richteramt` 3, `legal_education_training_curriculum` 3.
- EGMR bleibt in diesem Bauteil gesperrt bis zum Nachweis auf dem vorhandenen Bestand, weil neue offizielle ECHR-/KS-Guide-Pfade automatisiert 403 lieferten.

## Jurabibliothek-Leerregal-Scheduler 2026-07-03

- `toolbox/legal/jurabibliothek/jurabibliothek.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/jurabibliothek.py`, `toolbox/legal/jurabibliothek/config/sources.json`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/config/sources.json`, `toolbox/legal/README.md`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/README.md` und `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_coverage_and_case_toc.py` bilden den Bauteil gegen blockierte Watch-/EU-/Ausbildungs-/Regelwerksquellen hinter dem RII-Massenbacklog.
- Der RII-`fetch_case_zip`-Schnellbatch nutzt im `run-once`-Lauf nur noch die konfigurierte Quote `case_zip_batch_run_percent` mit Default 50 Prozent und lässt priorisierte normale Jobs danach durch die bestehende Queue-Prioritaet laufen.
- `law_page`-Quellen werden als Watch-Jobs geseedet; der EU-AI-Act-Service-Desk-Watch nutzt eine erreichbare Artikelseite.
- Server-Evidence nach Deploy und kurzem Lauf: 87 Quellen, 93684 Dokumente, 1141616 Fragmente, aktivierte Quellen ohne Dokumente 0; der Public-Export enthält 92221 öffentliche Dokument-Metadaten und 1100983 öffentliche Fragmentreferenzen.
- Der Bauteil fuellt keine fachlich duennen Regale automatisch auf: `eu_ai_regulation`, Legal-Education, EGMR/BVerfG-Hinweise, `official_notice` und weitere kleine Doc-Types brauchen einen separaten Quellen-Ausbauslice.

## Jurabibliothek-Bibliothekswachstum und GPT-Public-Export 2026-07-03

- `toolbox/legal/disk_guard.sh`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/disk_guard.sh`, `toolbox/legal/systemd/azubi42-jurabibliothek-sync.timer`, `toolbox/legal/systemd/azubi42-jurabibliothek-vector.timer`, `toolbox/legal/systemd/azubi42-paperless-atom-index.timer`, die drei Ubuntu-Installer-Timerspiegel, `toolbox/legal/jurabibliothek_public_export.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek_public_export.py`, `70_TESTS_AND_SMOKE/legal/test_disk_guard_timer_liveness.py` und `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_public_export.py` mit explizitem `AZUBI42_DISK_GUARD_STOP_TIMERS=1`; die Kalender-Timer sind `Persistent=true`.
- Der Public-Export schreibt nur öffentliche Jurabibliothek-Metadaten nach `https://azubi42.de/bibliothek/` und schließt Paperless-/Vorgangsdokumente, Rohtexte, Fragmente, Pfade, Tokens und Passwörter aus.
- Server-Evidence: Timer wieder aktiv, Catch-up gelaufen, 87 Quellen, 93679 Dokumente, 1141498 Fragmente, Vektoren 1005284, offene Vektoren 136214; GPT-Export 92216 öffentliche Dokument-Metadaten, 1100865 öffentliche Fragmentreferenzen, 1463 private Paperless-Dokumente ausgeschlossen.

## SnappyMail-Userlogin-Session-Gate 2026-07-02

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `70_TESTS_AND_SMOKE/ui/audit_snappymail_user_login_server_playwright.py`, `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`, `30_INSTALLERS/ubuntu24/azubi42-server/70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`, `toolbox/deploy/azubi42_release_integrity_gate.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/deploy/azubi42_release_integrity_gate.py` und `00_META/AZUBI42_CURRENT_RELEASE_GATES_2026-07-01.json` bilden den Bauteil für usergebundenen SnappyMail-Zugang im linken Mailbereich.
- Der Server gibt für `mailclient`[private Angabe entfernt]`local/local`-Session nicht als echtes Postfach und bindet echte User-Sessions weiter vor jeder gewaehlten Account-ID.
- Die UI nimmt die Connector-Accountliste als Default für den linken Mailkonto-Selector, sendet `mail_account_id` an Status/Provisioning, führt `Mailkonto` und `Nachweis sichern` als linke Mailclient-Aktionen und verhindert SnappyMail-Werkzeuge im Knotenheader.
- Der neue Server-Userflow prüft Azubi-Login, linken Mailfluss, Original-SnappyMail-Knoten, strikten Loginbereit-Status, gesetzte Account-ID und direkten SnappyMail-Mailboxlogin im selben Browserkontext.
- Live-Belege: Jura `[Serverpfad]`, Dev `[Serverpfad]`, beide `ok=true`; Sidebar-Open-All-/Kontext-/Communication-/Bibliothek-Smokes sind für Jura/Dev nachgezogen.
- Der Bauteil öffnet keine externen Provider-Sendegates; Telegram/WhatsApp/Slack bleiben ohne echte QR-/Phone-/Workspace-Session gesperrt bis zum Nachweis.

## Provider-Smoke-Produktalias-Gate 2026-07-02

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und der Installer-Testspiegel bilden den Bauteil gegen ignorierte Native-Host-CLI-Aliase.
- Der Smoke nimmt Produktaufrufe mit `--open-provider(s)` und `--azubi-*`-Credentials direkt an, statt unbemerkt auf alle Provider oder leere Credentials zurückzufallen.
- Server-Evidence nach Deploy: Matrix-only Alias-Smoke `[Serverpfad]` `ok=true`, `activeProviderCount=1`; Vierer-Alias-Smoke `[Serverpfad]` `ok=true`, `activeProviderCount=4`, `providerSurfaceCount=8`, `browserViewAnchorCount=8`, `providerCoverage=true`, `providerLoginCoverage=true`, `providerScreenshotCoverage=true`, `azubiShotCoverage=true`, `multiNodeProbeCoverage=true`.
- Der Auth-Gate `[Serverpfad]` bleibt für den Vierer korrekt rot bei `providerSessionCoverage=false`, weil Telegram/WhatsApp/Slack echte Kopplung brauchen.

## Communication-Browserknoten-Readiness 2026-07-02

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs` und die serverseitige private Provider-Contract-Config bilden den Bauteil für die Trennung zwischen lauffähigem Original-Browserknoten und geschlossenem Send-/Auth-Gate.
- Dienstklicks bleiben Webapp-Knoten; der Warteknoten dokumentiert eigenen Dienstknoten, No-iframe, No-Screenshottransport und keinen nachgebauten Anbieterclient.
- Der sichtbare Bridge-Kontext führt `Azubi/System-Bridge; Profil:`.
- Live-Contract-Smokes für Telegram/WhatsApp/Slack melden `browser_entrypoint_ready=true`, aber ohne echte QR-/Phone-/Workspace-Session weiter `native_webview_session_ready=false`, `authenticated_userflow_ready=false`, `Sende-Freigabe=false`.

## Provider-Session-Evidence-Aktualisierung 2026-07-02

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` bilden weiterhin den Bauteil für harte Native-Session-Evidence.
- Aktueller Serverbefund: Matrix ist im gemeinsamen `ProviderWebappBrowser`-Profil unter `[Serverpfad]` mit `--require-authenticated-session` grün; der Vierer-Gate `[Serverpfad]` bleibt wegen Telegram/WhatsApp/Slack korrekt rot bei `providerSessionCoverage=false`.
- Sichtbarer `DISPLAY=:0`-Native-Host öffnet alle vier Dienste; parallele Smokes mit demselben Shared-Profil sind wegen Chromium-IndexedDB-/Profil-Locks verboten.

## Provider-Session-Evidence-Merge 2026-07-01

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` bilden den Bauteil gegen gelöschte private Session-Evidence durch Einzelprovider-Smokes.
- Der Native-Smoke liest vorhandene Evidence, merged neue Provider-Audits dienstweise, erhält vorhandene Zielkontakte ohne neues Target und weist `updatedProviderCount` aus.
- Das öffnet kein Provider-Grün: Telegram/WhatsApp/Slack bleiben ohne echte QR-/Phone-/Workspace-Session und Zielkontakt gesperrt bis zum Nachweis.

## Matrix-Native-Session-Persistenz 2026-07-01

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und der Installer-Testspiegel bilden den Bauteil für echte Matrix-Sessionübernahme in die produktive Native-Host-Partition.
- Der neue `seed-matrix-session`[private Angabe entfernt]`persist:azubi42-local-matrix`; der normale `--require-authenticated-session`-Smoke prüft danach dieselbe BrowserView-Session ohne Seed-Datei.
- Serverbefund: Seed-only `[Serverpfad]` `ok=true`; Matrix-only Auth-Smoke `[Serverpfad]` `ok=true`, `providerSessionCoverage=true`, private Zielraum-Evidence vorhanden.
- Gesamt-Slice `[Serverpfad]` bleibt für Matrix/Telegram/WhatsApp/Slack `ok=false`, weil nur Matrix authentifiziert ist; Telegram/WhatsApp zeigen QR-/Phone-Pairing, Slack zeigt Login.
- Keine Provider-Sendefreigabe wird daraus abgeleitet.

## Provider-Session-Persistenz/Auth-Evidence-Gate 2026-07-01

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und der Installer-Spiegel bilden den Bauteil für harte Native-BrowserView-Auth-Evidence.
- Der Bauteil klassifiziert Sessionstatus aus der echten BrowserView-Inspektion und schreibt private Session-Evidence nur auf expliziten Evidence-Pfad; ein sichtbarer Login-/QR-Screen bleibt rot.
- Serverbefund 2026-07-01: `[Serverpfad]` meldet mit `--require-authenticated-session` `ok=false`, `providerSessionCoverage=false`: Matrix `login_prompt`, Telegram `qr_or_phone_required`, WhatsApp `qr_or_phone_required`, Slack `login_prompt`, ohne Zielkontakt/Zielraum.
- Telegram/WhatsApp/Slack-Contract-Smokes bleiben mit `native_webview_session_ready=false` und `Sende-Freigabe=false` gesperrt bis zum Nachweis.

## Native-Provider-Meebo-Mehrfachknoten-Smoke 2026-07-01

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/integrations/test_communication_service_node_ui_contract.py`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und die Ubuntu-Installer-Spiegel bilden den Bauteil für echte Native-Host-BrowserView-Evidence zu parallelen Communication-Webknoten.
- Der Azubi-UI-Smoke klickt Matrix, Telegram, WhatsApp und Slack je ein zweites Mal, belegt pro Dienst zusätzliche native Knoten, eindeutige node-spezifische View-IDs, richtige Anbieter-Hosts, erfolgreiche View-Synchronisation und Inspektion sowie fehlende serverseitige Header-Service-Tools.
- `01_7_Communication.js` behandelt jeden `provider-webapp`-BrowserView-Knoten als Original-Webapp-Knoten ohne Azubi-Server-Headeraktionen; Matrix-API-/Raumknoten bleiben davon getrennt.
- Der fokussierte Server-Smoke für Matrix/Telegram/WhatsApp/Slack liegt unter `[Serverpfad]` mit `ok=true`, `providerSurfaceCount=8` und `multiNodeProbeCoverage=true`.
- Authentifizierte Provider-Session, Zielkontakt und Provider-Sendegates bleiben separat gesperrt bis zum Nachweis.

## Communication-Meebo-Mehrfachknoten 2026-07-01

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `70_TESTS_AND_SMOKE/integrations/test_communication_service_node_ui_contract.py`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py` bilden den Bauteil für browserdirekte Messenger-Knoten auf der Communication-Leinwand.
- Der Bauteil entfernt die serviceweite Webapp-Singleton-Wiederverwendung für Telegram/WhatsApp/Slack und weitere browserdirekte Provider, bindet Kontakt-/Raum-Untermenüs an eigene Original-Browserknoten je Gespraech und trennt node-spezifische BrowserView-IDs von der user+service-Session-Partition.
- Browserdirekte Provider-Webapp-Knoten zeigen keine serverseitigen Status-/Sync-/Send-Headeraktionen; die Gespraechsfunktionen bleiben in der echten Anbieter-Weboberfläche.
- Keine Provider-Sendefreigabe und kein Serverrelay werden daraus abgeleitet.

## Native-Provider-Sessionprofil-Gate 2026-07-01

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` bilden den Bauteil gegen getrennte produktive Native-Host- und Smoke-Sessionstores.
- Der Bauteil führt `--share-browser-profile` bzw. `AZUBI42_NATIVE_SMOKE_SHARE_BROWSER_PROFILE=1` ein, damit ein Session-Smoke denselben persistenten Electron-Store `ProviderWebappBrowser` wie der produktive Native-Provider-Host nutzen kann; der Default-Smoke bleibt isoliert in `ProviderWebappSmoke`.
- Das öffnet keine Provider-Sendegates: `--require-authenticated-session` bleibt rot, wenn Matrix/Telegram/WhatsApp/Slack nur Login-/QR-Oberflächen zeigen oder private Testaccountnotizen weiter `Status: offen` führen.

## Provider-Mail-KartOO-Sidebar-Stack 2026-07-01

- `00_META/NEXT_SLICE_STACK_2026-07-01.md`, `00_META/STACK_EXECUTION_PROVIDER_MAIL_KARTOO_SIDEBAR_2026-07-01.md`, `[private Angabe entfernt]`, `toolbox/communication/provider_contracts_smoke.py`, `[private Angabe entfernt]`, `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py`[private Angabe entfernt]`Sende-Freigabe` wird erst nach grünem Webmail-, IMAP-, SMTP-Login- und Content-Encryption-Smoke gesetzt.
- Provider-Sendegates, DTC-Trust und OSCI/EGVP/eBO/XJustiz bleiben ohne Betreiber-/Trust-/Session-/Send-Smoke-Evidence gesperrt bis zum Nachweis.

## Codex-Skill-/Handoff-/Trust-Gate 2026-07-01

- `00_META/CODEX_PROMPT_EVALUATION_BLOCK_2026-06-30.md`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `40_INTEGRATIONS/paperless/dictionaries/legal_de_language_profile.json`, `toolbox/legal/config/hw3d_knowledge_layers.json`, `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_7_ModelInstructionProfiles.js`, `70_TESTS_AND_SMOKE/integrations/test_codex_guardrail_profiles.py` und die Ubuntu-Installer-Spiegel bilden den Bauteil gegen erneute Skill-/Handoff-/nicht belegter Zustand-Grün-Drift.
- Der Bauteil schreibt vor: passende Codex-Skills lesen, echten Repo-Root prüfen, aktuellen Handoff laden, bei fehlendem Thread-/Fork-Tool ein `00_META/HANDOFF_...md` als neue-Raum-Bruecke anlegen und DTC/walt.id immer getrennt nach Existenzstand, Testmaterial und realem User-Beschaffungsweg führen.
- Er öffnet keine Provider-, Mail-, DTC-, XJustiz- oder OSCI/EGVP-Sendegates.

## DTC-walt.id-Upstream-Contribution-Plan 2026-07-01

- `40_INTEGRATIONS/legal-jura/zugangsbau/WALTID_DTC_UPSTREAM_CONTRIBUTION_PLAN_2026-07-01.md` und der Ubuntu-Installer-Spiegel bilden den Bauteil für den geplanten walt.id-Beitrag.
- Der Bauteil hält den Abgleich zwischen gepinntem walt.id `v0.21.2` und Upstream-HEAD fest, trennt vorhandene mdoc/OID4VP-/ISO-Photo-ID-Arbeit von fehlender nativer ICAO-DTC-Unterstuetzung und beschreibt den Maintainer-Issue-/PR-Zuschnitt für einen secretfreien DTC-Core mit Trust-Gate-Bridge.
- Keine eRV-, eBO-, OSCI/EGVP- oder XJustiz-Sendefreigabe wird daraus abgeleitet.

## Third-Party-Source-Watchdog 2026-07-01

- `toolbox/legal/third_party_source_watchdog.py`, `40_INTEGRATIONS/legal-jura/zugangsbau/third_party_source_watchdog_targets.json`, `toolbox/legal/systemd/azubi42-third-party-source-watchdog.service`, `toolbox/legal/systemd/azubi42-third-party-source-watchdog.timer`, `70_TESTS_AND_SMOKE/legal/test_third_party_source_watchdog.py`[private Angabe entfernt]`operator_source_lock.json`, prüft lokale XJustiz-Hashes, Git-Pins, Maven-Metadaten, GitHub-Releases/Security-Advisories für GitHub-Quellen sowie zusätzlich Paperless-ngx, Discourse und Ubuntu-APT-Updatepressure.
- Ergebnis sind JSON/Markdown-Reports; Provider-, DTC-, XJustiz- und OSCI/EGVP-Sendegates bleiben unveraendert gesperrt bis zum Nachweis.

## Current-Release-Integrity-Gate 2026-07-01

- `00_META/AZUBI42_CURRENT_RELEASE_GATES_2026-07-01.json`, `toolbox/deploy/azubi42_release_integrity_gate.py`, `70_TESTS_AND_SMOKE/integrations/test_azubi42_release_integrity_gate.py` und der Ubuntu-Installer-Spiegel bilden den übergreifenden Bauteil gegen falsches Grün aus alten Arbeitslisten, historischen Runtime-QA-Reports, statischen Contract-Tests und Teil-Smokes.
- Das Gate führt SnappyMail-Standalone/Proxy, normalen IMAP-/SMTP-Usermailpfad, Mail-Sidebar, Provider-WebViews, Matrix, Forgejo/Paperless, BrowserGateway, Paperless, XJustiz/Zugangsbau, Legal/RAG/WH3D und Public-Site als explizite Modul-Gates.
- `green_current` verlangt Evidence zur aktuellen Version; user-facing Grün darf nicht aus statischem Codevertrag entstehen.
- Ab `v27.2.300` ist normale lokale Azubi42-Mail für alle lokalen PBKDF2-Passwortuser ein All-Users-Gate: `[private Angabe entfernt]` muss alle lokalen Passwortuser auf Maildir/Linux-User/Auth-Shadow bringen, der lokale Dovecot darf keine `pam`-/`passwd`-Fallbacks enthalten, und Grün für den normalen SnappyMail-Login verlangt IMAP/SMTP plus echten SnappyMail-Browserlogin.

## SnappyMail-/Account-Login-Hardening 2026-06-30

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `toolbox/communication/mailclient_provision_local_user.py`, `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`, `70_TESTS_AND_SMOKE/legal/test_user_account_lifecycle_contract.py`[private Angabe entfernt]`verified_users`/`provisioned_users` nur `link_only_unverified` oder `listed_unverified`, nicht `ready`.

## DTC-walt.id-QR-/International-/Vergabe-Matrix 2026-06-30

- `40_INTEGRATIONS/legal-jura/zugangsbau/DTC_WALTID_TESTMATERIAL_MATRIX_2026-06-30.md`, `40_INTEGRATIONS/legal-jura/zugangsbau/README.md`, `40_INTEGRATIONS/legal-jura/zugangsbau/TODO_SOURCE_INTAKE_XJUSTIZ_SNAPPY_WALLET_2026-06-30.md` und die Ubuntu-Installer-Spiegel bilden den Bauteil, der Wallet-ODT-Hinweise zu QR-Code, internationalem DTC-Anschluss und Vergabestelle in harte Gates übersetzt.
- Der Bauteil trennt QR/OID4VP als Praesentations-/Webflow-Kanal, ICAO PKD/EUDI Travel Credentials als internationale Vertrauens-/Relying-Party-Pfade, BVA-/Personalausweisportal-Berechtigungszertifikate als separate eID-Schiene und walt.id als mdoc/OID4VP-Ziel hinter dem eigenen DTC-Trust-Gate.
- Keine DTC-Ausgabe, keine hoheitliche Wallet-Behauptung und keine OSCI/EGVP-Sendefreigabe werden daraus abgeleitet.

## DTC-Trust-Material-Gate 2026-06-30

- `toolbox/legal/dtc_trust_material.py`, `70_TESTS_AND_SMOKE/legal/test_dtc_trust_material.py`, `toolbox/legal/requirements-xjustiz.txt`, `40_INTEGRATIONS/legal-jura/zugangsbau/README.md`, `40_INTEGRATIONS/legal-jura/zugangsbau/TODO_SOURCE_INTAKE_XJUSTIZ_SNAPPY_WALLET_2026-06-30.md` und die Ubuntu-Installer-Spiegel bilden den Bauteil für echte Betreiber-/ICAO-DTC-Testvektoren.
- Der Bauteil prüft Bundlemanifest, Pfadsicherheit, SHA256, Virtual Component, CSCA -> Document-Signer, Document-Signer-EKU, CRL-/Revocation-Evidence und MRZ-Checkdigits und schreibt nur eine secretfreie walt.id/mdoc-OID4VP-Handoff-Datei.
- Echte Testkitdaten bleiben ausserhalb des Git; ohne Testkit bleibt das Template rot und öffnet kein OSCI/EGVP-Sendegate.

## DTC-walt.id-Bridge 2026-06-30

- `toolbox/legal/dtc_waltid_bridge.py`, `70_TESTS_AND_SMOKE/legal/test_dtc_waltid_bridge.py`, `40_INTEGRATIONS/legal-jura/zugangsbau/README.md`, `40_INTEGRATIONS/legal-jura/zugangsbau/TODO_SOURCE_INTAKE_XJUSTIZ_SNAPPY_WALLET_2026-06-30.md` und die Ubuntu-Installer-Spiegel bilden den Bauteil für den fehlenden DTC-Anschluss rund um walt.id.
- Der Bauteil nutzt den gepinnten walt.id-Originalcode nur als nachgewiesene mdoc/OID4VP-/Wallet-Basis, sucht streng nach nativer ICAO-DTC-Unterstuetzung und führt fehlende DTC-Funktion als Adapterbedarf statt als fertige Funktion.
- Die interne Fixture bleibt synthetisch, adresslos, secretfrei und ohne OSCI/EGVP-Sendegate-Wirkung.

## Zugangsbau-Operator-Source-Materializer 2026-06-30

- `40_INTEGRATIONS/legal-jura/zugangsbau/operator_source_lock.json`, `toolbox/legal/operator_source_materializer.py`, `70_TESTS_AND_SMOKE/legal/test_operator_source_materializer.py`, `40_INTEGRATIONS/legal-jura/zugangsbau/README.md`, `40_INTEGRATIONS/legal-jura/zugangsbau/TODO_SOURCE_INTAKE_XJUSTIZ_SNAPPY_WALLET_2026-06-30.md` und die Ubuntu-Installer-Spiegel unter `30_INSTALLERS/ubuntu24/azubi42-server/...` bilden den Bauteil, der Betreiber-/Standardquellen nicht nur beschreibt, sondern nach Lockfile materialisiert und prüft.
- Gepinnt sind XJustiz-3.6.2-XSD/SCH per SHA256, Governikus-OSCI-Source, OSCI-Maven-Artefakte, Governikus-AusweisApp, EUDI-ARF und `walt.id` `v0.21.2` / `ac78640a21571d453355d19535ab49099b838268`.
- `walt.id` bleibt Wallet-/DTC-Kandidat ohne normative OSCI/EGVP-Sendegate-Wirkung.
- Materialisierung liegt unter `runtime/operator-sources` und bleibt vom Git ausgeschlossen.

## XJustiz-Snappy-Wallet-Source-Intake 2026-06-30

- `40_INTEGRATIONS/legal-jura/zugangsbau/TODO_SOURCE_INTAKE_XJUSTIZ_SNAPPY_WALLET_2026-06-30.md`, `toolbox/legal/xjustiz_baukasten.py`, `toolbox/legal/zugangsbau_operator_reply_intake.py`, `70_TESTS_AND_SMOKE/legal/test_xjustiz_baukasten_contract.py` und `70_TESTS_AND_SMOKE/legal/test_zugangsbau_operator_reply_intake.py` bilden den Bauteil für den aktuellen Betreiberantwort-/Sandbox-Testvorbereitungsstand.
- Die ODT-Todolisten werden gehasht und nur über amtliche Quellen in Gates übersetzt.
- SnappyMail bleibt normale Hilfskommunikation, Wallet/EUDI bleibt Identitaets-/Service-Provider-Spur, und das OSCI/EGVP-Transportgate akzeptiert Betreiber-Smoke-Aliase nur dann, wenn Zeitpunkt, Endpoint/Intermediaer, Message-ID, Request-Hash, Response-/Receipt-Hash, Sendestatus und Empfangs-/Quittungsstatus vollständig vorhanden sind.
- Schwache Operator-JSONs bleiben gesperrt bis zum Nachweis.

## XJustiz-Snappy-Wallet-ODT-Reaudit 2026-06-30

- Derselbe Bauteil hält nach Volltext-Reaudit der ODTs zusätzlich Test-/Produktivnetz- und Root-CA-Trennung, Enterprise-beA/beBPo-Unterkomponentenpfad, keine Code-ausgelöste Doppel-Betreiberanfrage, ICAO/DTC-Typ-1-Prüfschiene, EUDI-Relying-Party-/Service-Provider-Registrierung, Device-Trust/HSM-/Threshold-/Out-of-Band-Fallback, Replay-/Signature-Spoofing-/Broken-Chain-Testpflicht, Forgejo-Zugriffsschutz und Prototype-/Drittlink-Quarantaene fest.
- Diese Punkte sind Architektur- und Testgates, keine Sendefreigabe.


## Provider-/Communication-Evidence-Slice 2026-06-30

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `70_TESTS_AND_SMOKE/ui/audit_toolbox_special_views.mjs` bilden den historischen Provider-/Communication-/Snappy-/KartOO-/Sidebar-Abschluss.
- Der Provider-WebView-Pfad verbietet Electron-`minheight`/`maxheight`, lässt ein visuelles 150px-Wiederholungsmuster nur noch bei vollständigem DOM-/Höhen-/Ink-/Provider-Loginflächenbeleg als WebContents-DOM-Override gelten und dokumentiert den Override im Report.
- Der Login-Audit behalt gute WebContents-Belege, wenn keine Native-BrowserView-Anker existieren.
- Der Toolbox-Spezialaudit prüft den echten `nav-tools`-Section-Block und nicht mehr versehentlich alle folgenden Sidebarbereiche bis `nav-vault`.
- Historischer Serverbeleg: `[Serverpfad]`; Matrix, Telegram, WhatsApp und Slack waren echte Anbieter-Loginflächen, Auth-/QR-/MFA-Session blieb getrennt gesperrt bis zum Nachweis.
- Seit v27.2.299 darf dieser Beleg nicht mehr als aktuelles Release-Grün gelten; der Current-Release-Gate entscheidet den aktuellen Zustand.


## Codex-Arbeitsdisziplin-Skillset 2026-06-29

- `00_META/CODEX_WIEDERHOLUNGSANALYSE_2026-06-29.md` und die persoenlichen Codex-Skills unter `C:\Users\User\.codex\skills\azubi42-server-ssh`, `C:\Users\User\.codex\skills\azubi42-userflow-smoke` und `C:\Users\User\.codex\skills\azubi42-clean-slice` bilden den Bauteil gegen wiederholte Arbeitsfehler im Azubi42-Projekt.
- Der Bauteil trennt server-first/SSH-only, echten eingeloggten Userflow mit DevTools/Azubi-SHOT, nicht belegter Zustand-Grün-Verbot, Dirty-Tree-Slicing, Meta-Update-Pflicht und Handoff-Regel.
- Das Analysewerkzeug `C:\Users\User\.codex\skills\azubi42-clean-slice\scripts\normalize_failure_patterns.py` ist als Triage-Hilfe für wiederkehrende Muster angelegt, aber noch nicht als vollständiger Logbeweis für große Codex-Sessiondateien freigegeben.


## Native-Provider-Azubi-Smoke-Timeout-Gate 2026-06-29

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` bilden den Bauteil gegen haengende Electron-/WebView-/GPU-Capture-Laeufe.
- Der Azubi-UI-Smoke begrenzt den gesamten Provider-Screenshot-Batch über `AZUBI42_PROVIDER_SCREENSHOT_TOTAL_TIMEOUT_MS` und den Azubi-SHOT-Beleg über `AZUBI42_AZUBI_SHOT_TIMEOUT_MS`.
- Bei Timeout entsteht ein roter strukturierter Beleg je Provider bzw. für SHOT; ein fehlender oder haengender Capture darf keinen grünen Providerstatus liefern und den Testlauf nicht reportlos blockieren.


## Paperless-User-TOC-Reconcile-Execute-Gate 2026-06-29

- `toolbox/legal/run_paperless_user_toc_reconcile.sh` und `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/run_paperless_user_toc_reconcile.sh` bilden den Bauteil für den timerfähigen per-User Paperless-TOC-/Originaltext-Reconcile.
- Beide Skripte tragen jetzt das Execute-Bit, damit `azubi42-paperless-user-toc.service` nicht mehr mit Exit 126 an Dateirechten scheitert.
- Serverbeleg nach Korrektur: manueller `systemctl start azubi42-paperless-user-toc.service` auf `azubi42-jura`, Exitcode 0, `files_seen=2960`, `documents_indexed=2`, `chunks_indexed=29`, `failures=[]`.


## Communication-Server-Smoke-Accordion-Gate 2026-06-29

- `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py` bildet den Bauteil gegen falsch rote oder falsch grüne Communication-Smokes bei eingeklappter Sidebar.
- Die eingeloggte App wird über stabile Shell-Marker (`#app-sidebar`, `#nav-views`) erkannt; vor dem eigentlichen Communication-Klick öffnet der Smoke `nav-communication` im echten Sidebar-Userflow.
- Live-Belege: Jura `[Serverpfad]`, Dev `[Serverpfad]`; beide `ok=true`, `serviceCount=12`, keine nicht belegter Zustand-Visuals, keine SnappyMail-/Communication-Vermischung und genau ein Sidebar-Scrolltraeger.
- Das Gate bestaetigt Ehrlichkeit, Trennung und Bedienfluss; echte Provider-Sessions bleiben bis QR/MFA/Consent bewusst gesperrt bis zum Nachweis (`native-webview-required`, `openedCount=0`).


## Sidebar-Open-All-Hardgate 2026-06-29

- `70_TESTS_AND_SMOKE/ui/audit_sidebar_open_all_server_playwright.py` bildet den Bauteil gegen offene Mischmuelldecks im linken Menü.
- Der Smoke öffnet in einem echten eingeloggten Server-Userflow alle Sidebar-Hauptsektionen gleichzeitig, blendet Startscreens aus und prüft Abschnitt für Abschnitt Pflichtmarker, fachfremde Verbotsmarker, genau einen vertikalen Sidebar-Scrolltraeger, keine verschachtelten Sidebar-Scroller sowie Console-/Pagefehler.
- Der Vertrag ist an die echten stabilen App-Marker gebunden: `#communication-service-menu`, `#communication-sidebar-services`, `#flag-color`, `#flag-label`, `.vault-action-grid`, `#vault-service` und die jeweiligen View-/Tools-Roots.
- Live-Belege: Jura `[Serverpfad]`, Dev `[Serverpfad]`; beide `ok=true`, `failure_count=0`.


## Native-Provider-Login-Audit-Waitgate 2026-06-29

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` bilden den Bauteil gegen zu fruehe Provider-Login-Falschrote im Native-/BrowserView-Pfad.
- Der Login-Audit wartet pro Anbieter auf echte sichtbare Provider-Loginoberfläche, bevor er `providerLoginCoverage`[private Angabe entfernt]`[Serverpfad]`, `ok=true`; Matrix, Telegram, WhatsApp und Slack sind echte Loginflächen ohne iframe/Bild-nicht belegter Zustand, `providerSessionCoverage=false` bleibt bis QR/MFA/Consent erhalten.


## Sidebar-Kontext-Allviews-Hardgate 2026-06-29

- `70_TESTS_AND_SMOKE/ui/audit_sidebar_contexts_server_playwright.py` bildet den Bauteil gegen verdeckte Mischseiten im linken Hauptmenü über alle Hauptbereiche hinweg.
- Der Smoke legt einen temporaeren Server-User an, klickt die echten Sidebar-Hauptaktionen und prüft pro View die erwartete `data-current-view`, den sichtbaren View-Root, exakt passende offene Sidebar-Hauptsektionen, keine fachfremd offenen Sektionen, genau einen vertikalen Sidebar-Scrolltraeger, keine sichtbaren Control-Overflows sowie Console-/Pagefehler.
- Live jura/dev sind grün: `[Serverpfad]` und `[Serverpfad]`.


## Sidebar-Kontextsicht-Hardgate 2026-06-29

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js` und `70_TESTS_AND_SMOKE/ui/audit_sidebar_bibliothek_server_playwright.py` bilden den Bauteil gegen fachfremd offen stehenbleibende Sidebar-Bodies.
- Der Abschnittsvertrag `single-scroll-v4` loescht alte gespeicherte Offen-/Breiten-/Höhenstaende, Viewwechsel klappen nicht passende Hauptsektionen DOM-seitig ein, und der Bibliothek-Audit wertet `openSidebarSections`/`noisyOpenSections` aus.
- Damit kann eine Bibliothek-Seite mit offenem Sound-, Aktenhaltung-, Mail-, Communication- oder Toolbox-Koerper nicht mehr grün werden.


## Telegram-Provider-Web-K-Pfad 2026-06-29

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `40_INTEGRATIONS/provider-webapp-browser/main.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/main.js`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` bilden den Bauteil, der Telegram im Native-/Server-GUI-Providerfluss auf `https://web.telegram.org/k/` führt.
- Direkter Electron-BrowserWindow-Probelauf auf dem Server zeigt dort QR-/Phone-/Passkey-Login mit echten Script-/Canvas-Signalen; NoJS-Seiten bleiben im Smoke weiterhin rot und werden nicht als Loginfläche gewertet.
- BrowserView-Zerstörung nach Retry wird als strukturierter Status statt als IPC-Exception geführt.
- Server-GUI-Beleg: `/tmp/azubi42_provider_shot_userflow_20260629_182303_telegram_webk_clean/provider_webview_smoke_azubi_20260629T162304Z.json`, `ok=true`; Telegram, WhatsApp und Slack zeigen echte Loginflächen, `providerSessionCoverage=false` bleibt bis QR/MFA/Consent erhalten.


## Aktenhaltung-Paperless-Sidecar 2026-06-29

- `10_SHARED_CORE/app_v27_multimedia/js/10_PAPERLESS_RAG/10_1_PaperlessBridge.js`, `10_SHARED_CORE/app_v27_multimedia/js/main.js`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_2_Navigation.js` und die Ubuntu-Installer-Spiegel bilden den Bauteil, der Aktenhaltung an den vorhandenen Paperless-/Sidecar-Datenfluss anschließt.
- Die Bridge registriert den Host `#paperless-aktenhaltung-sidecar-host`, der Server nimmt `/api/paperless/...` vor dem Static-Fallback an, und Human-Review/FixIt-Aktionen werden im Aktenhaltung-View gesucht statt quer über das ganze Dokument.


## Sidebar-Mischseiten-Gate 2026-06-29

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_9_ErrorFixList.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_9_ErrorFixList.js` und `70_TESTS_AND_SMOKE/ui/audit_sidebar_bibliothek_server_playwright.py` bilden den Bauteil gegen erneut vermischte linke Start-/Sidebarflächen.
- Toolbox/KartOO liegt direkt unter `Ansichten` und damit vor Aktenhaltung, Mail und Communication; FixIt wird in Human-Kontrolle/Aktenhaltung eingehaengt und startet geschlossen; Mail- und Communication-Untermenüs starten geschlossen; der globale Eingabe-Dock ist in Bibliothek, Aktenhaltung, Mail, BuschCode, Timeline und Therapiekatzen ausgeblendet.
- Der Serveraudit prüft Toolbox-above-fold, kein FixIt in der Toolbox, genau einen `paperless-aktenhaltung-sidecar-host`, geschlossene Mail-/Communication-Details und fehlenden Bibliothek-Dock.


## Provider-BrowserView-SHOT-Hardgate 2026-06-29

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js`, `40_INTEGRATIONS/provider-webapp-browser/main.js`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und die Ubuntu-Installer-Spiegel bilden den Bauteil gegen die letzte Provider-SHOT-Falschbewertung.
- Der Azubi-SHOT erkennt aktive `azubi42.provider_webapp_browser.v2`-BrowserView-Anker und erzeugt den Beleg über Native-Host-CDP-Fullpage-Capture statt per abgeschnittenem Display-Capture.
- Native-Host und Smoke schreiben BrowserView-Console-/Load-/Fail-/Renderdiagnostik; Hardwarebeschleunigung wird nur noch per Env-Gate deaktiviert.
- Live-Beleg auf `azubi42-jura`: `/tmp/azubi42_provider_shot_userflow_20260629_172953_strict/provider_webview_smoke_azubi_20260629T152953Z.json` liefert `providerScreenshotCoverage=true` und `azubiShotCoverage=true`, aber `providerLoginCoverage=false`, weil Telegram im echten BrowserView `provider_reports_javascript_disabled` meldet.
- Damit zaehlt Screenshot-Sichtbarkeit nicht mehr als Login-Grün; Auth-/QR-/MFA-Abschluss und Sendebereitschaft bleiben getrennte gesperrt bis zum Nachweis Gates.


## Provider-WebView-Guest-Resize-Hardgate 2026-06-29

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_12_NativeWebViewNode.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, die Ubuntu-Installer-Spiegel sowie `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs` bilden den Bauteil gegen den 300x150-/150px-Electron-Guest-Rueckfall.
- Provider- und Workspace-WebViews duerfen nicht mehr mit `disableguestresize` oder Electron-`minheight`/`maxheight` gerendert oder im Smoke gesetzt werden; SHOT-Resize entfernt diese Attribute auch von alten Live-Knoten.
- Wenn Electron den Guest-Viewport trotz Host-Resize intern bei 150px hält, nutzt der Capturepfad kontrolliert CDP-DeviceMetrics und dokumentiert `usedDeviceMetricsOverride`, statt eine abgeschnittene Aufnahme grün zu werten.
- Google Chat nutzt als Dienstziel `https://chat.google.com/`[private Angabe entfernt]`v27.2.296 / 27321`.


## Sidebar-Single-Scroll-Hardgate 2026-06-29

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, die Ubuntu-Installer-Spiegel und die Audits `70_TESTS_AND_SMOKE/ui/audit_sidebar_sections.mjs`, `70_TESTS_AND_SMOKE/ui/audit_sidebar_accordion_browser.mjs`, `70_TESTS_AND_SMOKE/ui/audit_light_theme_resize.mjs` bilden den Bauteil gegen mehrere vertikale Scrollbars in der linken Seitenleiste.
- Abschnittshöhen-Resize ist deaktiviert, alte gespeicherte Abschnittshöhen werden migriert, `.is-section-height-limited` darf keinen eigenen Innen-Scroller mehr erzeugen und der einzige vertikale Scrolltraeger bleibt `#sidebar-nav`.
- Testvertrag: `single-scroll-v3`, kein `.sidebar-section-height-resizer`[private Angabe entfernt]`v27.2.295 / 27320`.


## Workspace-Startscreen-Entdopplung 2026-06-29

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_10_ViewStartScreens.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css` und die Ubuntu-Installer-Spiegel bilden den Bauteil gegen doppelte Navigation im Workspace.
- Der Workspace-Startscreen rendert keine eigene Space-Menüspalte, kein rechtes `Startsetup` und keinen zusätzlichen Ansichten-Wechselblock mehr; die Bedienung bleibt über Sidebar/Header führend und über eine kompakte Inline-Aktionsleiste erreichbar.
- Live-Smoke: `azubi42-jura`, `libraryCount=0`, `setupCount=0`, `viewSwitchCount=0`, `inlineActions=1`, Screenshot `runtime/qa/workspace_startscreen_live_20260629/workspace_startscreen_rect.png`[private Angabe entfernt]`v27.2.294 / 27319`.


## Native-Provider-WebView-Compare-Hardgate 2026-06-29

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_12_NativeWebViewNode.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_12_NativeWebViewNode.js`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` bilden den Bauteil gegen grün bewertete Blank-/Kurz-Crops in Provider-WebViews.
- Workspace-URL-Knoten zeigen bei vorhandenem Native-Host `WebView`[private Angabe entfernt]`v27.2.293 / 27318`.


## Sidebar-/Communication-Nutzertext-Entstörung 2026-06-29

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_9_ErrorFixList.js`, `10_SHARED_CORE/app_v27_multimedia/js/11_AUTH_MANAGER/11_3_MatrixBridge.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und die Ubuntu-Installer-Spiegel bilden den Bauteil gegen sichtbaren Technik- und Planungslaerm in Sidebar, Tresor, Matrix-Verbindung und Communication-Dienstknoten.
- Nutzertexte verwenden fachliche Bedienbegriffe wie Verbindung, Verbinden, Dienstzugang, Postfach und Fehlerliste.
- Interne gesperrt bis zum Nachweis-Vertraege und Funktionsnamen bleiben unangetastet.


## Echte-Login-Browser-Smoke-Hardgate 2026-06-29

- `70_TESTS_AND_SMOKE/ui/audit_sidebar_accordion_browser.mjs`, `70_TESTS_AND_SMOKE/ui/audit_view_start_screens_browser.mjs`, `70_TESTS_AND_SMOKE/ui/clicktest_toolbox_links_and_connectors.mjs` und `70_TESTS_AND_SMOKE/ui/clicktest_zugangsbau_blickwinkel_userflow.mjs` sind als Testbauteil nachgezogen.
- ViewStart- und Toolbox-Smokes melden Live-Instanzen nur noch nach echter Loginbehandlung grün.
- Sidebar-Smoke kann Reports in isolierte Runtime-/QA-Ordner schreiben.
- Zugangsbau-Quellen prüfen App-internes BrowserGateway-Routing und verbieten neue `_blank`-Fluchtstellen.


## Logo-Lightbox-/MediaParser-App-Tab-Gate ist bauteilseitig nachgezogen

- `10_SHARED_CORE/app_v27_multimedia/index.html`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_4_MediaParser.js`, die Ubuntu-Installer-Spiegeldateien und `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs` verhindern neue `_blank`[private Angabe entfernt]`v27.2.291 / 27316`.


## JuraBibliothek-AppBrowser-Linkgate 2026-06-28

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` und `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs` bilden den Bauteil gegen Tab-Flucht aus Bibliothek, Zugangsbau, Aktenzeitstrahl und Bundesanker.
- Paperless-Dokumente, Quellen, offizielle Betreiberlinks, XJustiz-Handoff und Bundesanker laufen über `data-browser-gateway-url`; die Manifest-API laeuft über `data-tool-link`.
- Neue `_blank`[private Angabe entfernt]`v27.2.290 / 27315`.


## ChatLayoutAccount-AppBrowser-Linkgate 2026-06-28

- `10_SHARED_CORE/app_v27_multimedia/js/02_CHAT/02_1_ChatWindow.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css` sowie die Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs` bilden den Bauteil gegen Tab-Flucht aus Chat-Trefferquellen, Account-Direktlinks und Layout-Toollinks.
- Externe Ziele laufen über `data-browser-gateway-url`, interne Toolziele über `data-tool-link`; neue `_blank`[private Angabe entfernt]`v27.2.289 / 27314`.


## WebSearch-AppBrowser-Linkgate 2026-06-28

- `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_6_WebSearch.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/06_API_ROUTER/06_6_WebSearch.js` und `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs` bilden den Bauteil gegen Tab-Flucht aus Toolbox-/KartOO-Websuchtreffern.
- Web-, Bild- und Videotreffer laufen über `data-browser-gateway-url` in den App-internen BrowserGateway-Knotenpfad statt über `<a target="_blank">`[private Angabe entfernt]`v27.2.288 / 27313`.


## PaperlessBridge-AppBrowser-Linkgate 2026-06-28

- `10_SHARED_CORE/app_v27_multimedia/js/10_PAPERLESS_RAG/10_1_PaperlessBridge.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/10_PAPERLESS_RAG/10_1_PaperlessBridge.js` und `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs` bilden den Bauteil gegen Tab-Flucht aus Aktenhaltung-/Paperless-Ausgaengen.
- Paperless-Dokumente, Paperless-Suche und Inlinebild-Review-Dokumentlinks laufen über `data-browser-gateway-url` in den App-internen BrowserGateway-Knotenpfad statt über `<a target="_blank">`[private Angabe entfernt]`v27.2.287 / 27312`.


## WebScraper-AppBrowser-Linkgate 2026-06-28

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_3_WebScraper.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_3_WebScraper.js` und `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs` bilden den Bauteil gegen zweite Open-/Tab-Flucht aus importierten Webseiten-Snapshots.
- Der Snapshot enthält nur den bereinigten Lesekontext und den vorhandenen internen `Browser`-Knotenweg; ein zusätzlicher `target="_blank"`-Anker wird nicht mehr gerendert.
- Der BrowserGateway-Audit liest den WebScraper mit und meldet `_blank`[private Angabe entfernt]`v27.2.286 / 27311`.


## Communication-Fachazubi-AppBrowser-Linkgate 2026-06-28

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css` und `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs` bilden den Bauteil gegen Tab-Flucht aus Fachazubi-/Forgejo-Modulpfaden.
- Sichtbare Modulpfadziele sind jetzt Buttons auf dem vorhandenen Forgejo-/FachConnect-Pfad und keine `target="_blank"`-Links mehr.
- Der Audit sperrt neue `_blank`-Rueckfaelle in Communication; Live-Smokes gegen `azubi42-jura` und `azubi42-dev`[private Angabe entfernt]`v27.2.285 / 27310`.


## Sidebar-Viewwechsel-Restore-Hardgate 2026-06-28

- `10_SHARED_CORE/app_v27_multimedia/js/04_NODE/04_1_Builder.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/04_NODE/04_1_Builder.js` und `70_TESTS_AND_SMOKE/ui/audit_sidebar_bibliothek_server_playwright.py` bilden den Bauteil gegen falsche Viewwechsel beim Wiederherstellen alter Workspace-Knoten.
- `addOrgNode()` klickt beim `restoreNode`-Pfad keinen Org-/Zielbutton mehr automatisch, damit ein Wechsel aus Perspective/Communication zu Therapiekatzen, Mail, Aktenhaltung oder Bibliothek nicht durch restaurierte Knoten wieder auf `org` zurückspringt.
- Der Server-Smoke klickt sichtbare Sidebar-Ziele mit erwarteter Zielansicht und meldet falsche `data-current-view`-Treffer als Failure statt nur Klickbarkeit zu zaehlen.
- Live-Belege nach Deploy: Jura `[Serverpfad]`, Dev `[Serverpfad]`.


## BuschCode-Fachentmischung 2026-06-28

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_5_BuschCode.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_10_ViewStartScreens.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/view_start_menus/buschcode_menu.js`, `10_SHARED_CORE/app_v27_multimedia/js/10_PAPERLESS_RAG/10_1_PaperlessBridge.js`, die Ubuntu-Installer-Spiegel sowie `70_TESTS_AND_SMOKE/ui/audit_view_start_screens.mjs` und `70_TESTS_AND_SMOKE/ui/audit_buschcode_project_world.mjs` bilden den Bauteil gegen den alten BuschCode-Mix.
- BuschCode enthält nur noch Modelle, Projektwelt und Fach-Azubis.
- Blickwinkel, Bibliothek/Jurabibliothek, Paperless/Sidecar, Tresor/Vault, Weblogin und Workspace-Handoff sind aus dem BuschCode-Startscreen, Layout und Runtime-Bindern entfernt.
- PaperlessBridge injiziert keinen `paperless-sidecar-panel-buschcode` mehr; die Audits sperren die alten DOM-Marker und Button-IDs als Regression.


## BuschCode-Live-Mixfilter 2026-06-28

- `01_5_BuschCode.js` blendet Akten-/Paperless-/Jurabibliothek-/OCR-/Sidecar-Früchte in der BuschCode-Projektwelt aus, damit Code-/Server-/FixIt-Arbeit nicht wieder Bibliotheks- oder Aktenhaltungsmaterial anzeigt.
- `01_7_Communication.js`[private Angabe entfernt]`v27.2.283 / 27308`.


## Server-View-Smoke-Hardgate 2026-06-28

- `70_TESTS_AND_SMOKE/ui/audit_sidebar_accordion_browser.mjs`, `70_TESTS_AND_SMOKE/ui/clicktest_toolbox_links_and_connectors.mjs`, `70_TESTS_AND_SMOKE/ui/clicktest_zugangsbau_blickwinkel_userflow.mjs`, `10_SHARED_CORE/app_v27_multimedia/js/07_DATA_VAULT/07_5_PerspectiveSpaces.js`, `10_SHARED_CORE/app_v27_multimedia/js/07_DATA_VAULT/07_6_CommunicationSpaces.js` und die Ubuntu-Installer-Spiegel bilden den Bauteil gegen lokale Smoke-Falschpositive und falsche Header-Zuruecksetzungen.
- Die UI-Smokes nutzen standardmaessig die echte Serverinstanz `azubi42-jura`; Zugangsbau/Blickwinkel prüft nur sichtbare Views, sichtbare Panelaktionen und die Live-Operatorenzahl.
- Die Data-Vault-Viewtitel kennen `Aktenhaltung`, `Mail` und `Therapiekatzen`.
- Der Installer-Spiegel führt Mail/SnappyMail wieder als eigene Sidebar-/Canvas-View und route't Maildienstknoten in den Mail-Space statt in Communication.


## Sidebar-Mail-Human-Hardgate 2026-06-28

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_2_Navigation.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_2_Navigation.js` und `70_TESTS_AND_SMOKE/ui/audit_sidebar_bibliothek_server_playwright.py` bilden den Bauteil für belastbare linke Menü-Unteraktionsprüfung.
- `switchView()` setzt `data-current-view` auf `body` und `html`; der Server-Smoke klickt Mail- und Human-Kontrolle-Unteraktionen und verlangt echte Ziel-DOM-Signale statt Button-Sichtbarkeit.
- Geprüft werden Mail `open/account/followup/evidence`, Human-Kontrolle `vision-review/fixit-review`, Bibliothek-Fachtrennung, ein einzelner Sidebar-Scrolltraeger und fehlende Control-Overflows im echten Server-Userflow.


## Sidebar-Mail-Human-Split 2026-06-28

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_2_Navigation.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_10_ViewStartScreens.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `70_TESTS_AND_SMOKE/ui/audit_sidebar_sections.mjs`, `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs`, `70_TESTS_AND_SMOKE/ui/audit_light_theme_resize.mjs`, `70_TESTS_AND_SMOKE/ui/audit_sidebar_bibliothek_server_playwright.py` und `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py` bilden den Bauteil gegen Mail-/Messenger-/Aktenhaltungs-Mix.
- SnappyMail/Mail ist ein eigener Sidebar- und Canvas-Bereich, Communication bleibt Messenger-/Providerfläche.
- Human-Kontrolle liegt sichtbar unter Aktenhaltung und führt Vision-Review, FixIt, Antwortdeckung und Rechtsmittel.
- Der Bauteil sperrt SnappyMail im Communication-Bereich, prüft `mail` als eigene Canvas-View im lokalen und echten Server-Userflow, lässt Mailclient-`account-status` bei privaten Secret-Pfad-/Berechtigungsfehlern gesperrt bis zum Nachweis statt mit 502 abbrechen und haertet helle Theme-Popups gegen unlesbaren Text.


## Sidebar-Modellregeln-Autosize und Server-Bibliothek-Smoke 2026-06-25

- `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_7_ModelInstructionProfiles.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/06_API_ROUTER/06_7_ModelInstructionProfiles.js` und `70_TESTS_AND_SMOKE/ui/audit_sidebar_bibliothek_server_playwright.py` bilden den Bauteil gegen verdeckte Zusatzscrollbars im linken Menü.
- Globale und modellspezifische Regel-Textareas wachsen mit ihrem Inhalt, nutzen keine eigene vertikale Scrollbar und stoeren den Sidebar-Single-Scroll-Vertrag nicht mehr.
- Der Server-Browser-Smoke wartet auf App-Shell oder Loginmaske, entfernt Startscreens, öffnet Bibliothek/Abschnitte und prüft verbotene Aktenhaltungsinhalte sowie sichtbare Zusatzscrollbars im echten Userflow.


## Bibliothek-Aktenhaltung-Startscreen-Split 2026-06-25

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/view_start_menus/bibliothek_menu.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/view_start_menus/aktenhaltung_menu.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_10_ViewStartScreens.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js` und die Ubuntu-Installer-Spiegel bilden den Bauteil gegen den alten gemischten Bibliothek-/Aktenhaltungs-Startscreen.
- Bibliothek ist nur Nachschlagebereich für Rechtsquellen, Formulare/Vordrucke, Dienstanweisungen und Quellenqualitaet.
- Aktenhaltung führt konkrete Bestandshandhabung: Paperless, Upload/OCR, Human-Kontrolle, Vorgang3D, AMT-VI/Rechtsmittel, Mahnwesen, Fallauswertung, WH3D/RAG-Regeln und HW3D Observatorium.
- Das linke Aktenhaltungs-Dropdown ist nicht mehr standardmaessig offen.
- Die Audits `audit_view_start_screens.mjs`, `audit_toolbox_special_views.mjs`, `audit_mahnwesen_ui.mjs`, `audit_observatorium_ui.mjs` und `audit_aktenzeichen_timeline.mjs` sperren Rueckfall in den Bibliothek-Mix.


## Provider-WebView-SHOT-Hardgate 2026-06-24

- `40_INTEGRATIONS/provider-webapp-browser/native-capture-ipc.js`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js` und die Ubuntu-Installer-Spiegel bilden den Bauteil gegen alte grüne, aber abgeschnittene Provider-Screenshotbelege.
- Der Bauteil erzwingt echte WebView-Viewport-Höhe, lässt synthetische DeviceMetrics standardmaessig aus, hält Provider-WebViews als `inline-flex` statt `display:block` und blockiert 300x150/150px-Gastviewport-Rueckfaelle.
- Azubi-SHOT akzeptiert nicht scrollende Provider-Loginseiten nur dann als vollständige Fläche, wenn Native-CDP, 820px-Viewport, DOM-Signale und Pixeloberfläche zusammenpassen.
- Der Resize-IPC liefert bei während Smoke/Reload zerstoerten WebContents strukturierten Status statt Console-Exception.
- Alte grüne Providerbelege müssen unter diesem Gate neu geschossen werden; sichtbare Loginseite ist weiter kein authentifizierter Dienstvertrag.


## Native-Provider-SHOT-Evidence-Smoke 2026-06-23

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `40_INTEGRATIONS/provider-webapp-browser/main.js`, `40_INTEGRATIONS/provider-webapp-browser/native-capture-ipc.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_12_NativeWebViewNode.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und die Ubuntu-Installer-Spiegel bilden den Bauteil für echte Anbieter-WebViews mit Azubi42-interner Screenshot-Evidenz.
- Der Smoke benutzt die interne SHOT-Funktion im eingeloggten Azubi42-UI und speichert den SHOT-Beleg; Native-/Provider-WebViews werden im Native-Host über denselben Electron/CDP-`Page.captureScreenshot`-Fullpage-Pfad aufgenommen.
- Der alte 150px-`webview.capturePage`-Rueckfall ist aus dem Provider-Smoke entfernt.
- Provider-WebViews werden nicht mehr vor der Messung kuenstlich auf 1800px aufgeblasen, sondern erst natuerlich gemessen und dann auf echte Sicht-/Fullpage-Höhe gesetzt; dadurch können wiederholte Loginseiten nicht nur wegen Pixelhöhe als Erfolg zaehlen.
- Nicht authentifizierte geplante Dienste starten über den echten Anbieter-Loginpfad; Slack wird nicht mehr direkt in den App-Client geschoben.
- Der Bauteil verhindert, dass abgeschnittene Bilder, externe Screenshots oder Anbieter-Startseiten als fertige Providerfunktion gezaehlt werden.


## Native-Provider-Electron-Runtime 2026-06-23

- `40_INTEGRATIONS/provider-webapp-browser/package.json`, `40_INTEGRATIONS/provider-webapp-browser/package-lock.json` und die Ubuntu-Installer-Spiegel fixieren den Native-WebView-Host auf Electron `39.8.10`.
- Der Bauteil nutzt bewusst nicht Electron 42, solange der Server-Node auf 18 steht; damit bleibt `npm ci` auf dev, jura und `[Serverpfad]` reproduzierbar und bringt dennoch einen deutlich neueren Chromium-Stand als Electron 35 für Anbieter-Loginseiten.


## Native-Provider-WebView-Paritaetsvergleich 2026-06-23

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `package.json`, `README.md` und `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` bilden den Bauteil für den direkten Abgleich von Communication-Dienstknoten gegen normale Workspace-URL-Knoten.
- Der neue `smoke:compare`-Modus öffnet als echter Azubi42-User pro Dienst den Communication-Provider-WebView, legt anschließend einen Workspace-Knoten mit derselben URL an und prüft `src`, Host, `webview`-Tag, Fallbackfreiheit und Screenshot-Belege für beide Seiten.
- Unterschiedliche WebView-Partitions sind erlaubt und werden als Scope-Trennung dokumentiert, damit User-/Dienst-Session und allgemeiner Workspace-Browser nicht versehentlich vermischt werden.

## Native-Provider-Smoke-CLI-gesperrt bis zum Nachweis 2026-06-23

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, der Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` sichern die CLI-Eingabeform des Server-GUI-Smokes.
- Argumentwerte werden als `--name=value` und `--name value` gelesen, damit private Evidence-Pfade und Zielraum-JSON aus realen Userflow-Kommandos nicht still verloren gehen.
- Generische Provider-Startseiten werden nicht als Zielraum/Zielkontakt geraten: WhatsApp-Webroot bleibt leer, Slack braucht echte Channel-/Archive-URL und Telegram braucht konkreten Hash-/Zielkontext.
- Der Bauteil verhindert alte nicht belegter Zustand-Grün-Zustaende, bei denen WebViews sichtbar waren, der private Contract-Sync aber nur eine veraltete Evidence-Datei oder einen Startseiten-Zieltreffer sah.


## Native-Provider-Session-Sync 2026-06-23

- `toolbox/communication/provider_native_session_sync.py`, der Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/integrations/test_provider_native_session_sync.py` bilden den privaten Adminbaustein zwischen echter Server-GUI-WebView-Provideranmeldung und Communication-Provider-Contract.
- Der Bauteil liest nur die private Native-Session-Evidence, schreibt Zielraum/Zielkontakt nur bei authentifizierter Session mit sichtbarer Nachrichten-/Sessionansicht in `auth_providers.<dienst>.native_webview_session_evidence_file`, `default_target` und `provider_rooms` und gibt im Summary nur Zielpraesenz plus Hash aus.
- Provider-Startseiten und Webapp-Einstiege wie Slack `/client`, Telegram-/WhatsApp-Webroot oder andere Anbieter-URLs gelten nicht als Zielraum/Zielkontakt.
- Sendegates bleiben standardmaessig geschlossen; `provider_send_enabled` und `bridge_send_enabled` werden beim Sync auf false gehalten, bis ein separater echter Provider-/Bridge-/Systemdienstvertrag mit expliziter Freigabe vorliegt.


## Provider-Webapp-Browser-Deployruntime 2026-06-23

- `toolbox/deploy/deploy_live_winscp.ps1`, `40_INTEGRATIONS/provider-webapp-browser/package-lock.json`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` bilden den Bauteil für die echte Auslieferung des Native-/Server-GUI-WebView-Hosts.
- Der Deploy staged den Provider-Webapp-Browser ohne lokale `node_modules`/`runtime`, installiert Electron bei `-EnsureProviderWebappRuntime` per `npm ci --no-audit --no-fund` in dev, jura und `[Serverpfad]` und prüft `PROVIDER_WEBAPP_NATIVE_READY` hart. Der Server-Smoke für Matrix, Telegram, WhatsApp und Slack laedt echte Anbieter-WebViews mit 0 iframes und 0 Bild-/Screenshot-Ersatz; authentifizierte Session bleibt bis User-QR/Login/MFA bewusst offen.


## Provider-Return-NativeWebView-Vertrag 2026-06-23

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_8_ProviderReturnBridge.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_13_AppBrowserRoute.js`, die Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/ui/audit_input_routine_modes.mjs` bilden den Bauteil für Provider-Weblogin-Starts aus Modellblock, Tresor und Logo-Aktionen.
- Der gültige Pfad erzeugt einen Communication-Workspace-Knoten mit Native-WebView-Vertrag; er nutzt keinen iframe, keinen Screenshot-/BrowserGateway-Transport, kein Popup und keinen neuen Provider-Tab.
- Ohne Native-/Server-GUI-Host zeigt der Knoten nur den ehrlichen Host-fehlt-Zustand.
- Der Audit sperrt den alten Rueckkehrbruecken-/Popupvertrag und prüft den Native-WebView-Modus, Provider-Event und Communication-Space-Bindung.
- `index.html` ist im Shared-Core und Installer wieder auf `v27.2.270` / `27295` synchron.


## Blickwinkelkanone-Startartenvertrag 2026-06-23

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_9_LegalPerspectives.js`, der Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/ui/audit_perspective_bundle.mjs` bilden den Bauteil für unterschiedliche Startlagen.
- Bei vorhandener Ausgangslage bleibt der markierte Knoten Quelle der Blickwinkelverbindungen.
- Bei neuer Situation ohne Ausgangsknoten erzeugt die Kanone einen echten `Laufende Ausgangslage`-Knoten, schreibt die freie Eingabe sichtbar hinein und baut daraus die farbigen/gelabelten Reaktionslinien.
- Die Signalklasse `unzul_sanktion` führt Todesstrafe/Hinrichtung/Gefahr als eigenen Rot-/Grenzbereich.
- BWB-Signalbuendel nutzen feste entzerrte Anker, damit mehrere Liniengruppen nicht übereinanderliegen und ihre Griffe klick-/ziehbar bleiben.
- Der Audit prüft beide Pfade, einschließlich Neustart ohne `sourceNodeId`, Signallinien und Drag desselben Buendels; reine Erklaertexte ohne Verbindung sind Regression.


## Native-Provider-Webapp-Browser-Autostart 2026-06-22

- `40_INTEGRATIONS/provider-webapp-browser/main.js`, `40_INTEGRATIONS/provider-webapp-browser/README.md` und der Ubuntu-Installer-Spiegel bilden den Bauteil für den sichtbaren Server-GUI-Userflow.
- Der Native-Host kann mit `--azubi-username`, `[private Angabe entfernt]`, `--open-communication`, `--open-provider` und `--open-providers` direkt in Azubi42 einloggen, den Communication-Space öffnen und die gewaehlten Providerknoten sichtbar ansteuern.
- Passwortwerte werden nur aus privater Datei gelesen und nicht als Rohwert geloggt.
- Der Bauteil öffnet keine Sendegates: QR/MFA/Consent, Zielraum/Zielkontakt und Provider-Send-Smoke bleiben erst nach echter Useraktion belegbar.


## Native-Provider-Session-Evidence-Export 2026-06-22

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, der Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` bilden den Bauteil, der echte Electron-WebView-Login-Audits in eine private Contract-Smoke-Evidence-Datei überführt.
- Der Export ist opt-in über `--session-evidence-path` oder `AZUBI42_NATIVE_SMOKE_SESSION_EVIDENCE_PATH`; Zielräume/Zielkontakte werden nur aus `--session-targets-json`/`AZUBI42_NATIVE_SMOKE_SESSION_TARGETS_JSON` oder konkreter Provider-URL übernommen.
- Ohne Ziel bleibt der Contract bewusst offen.
- Der normale Smoke-Report enthält nur Schreibstatus und Pfad, keine Zielwerte oder Secrets.


## Communication-Provider-Native-Session-Evidence-Gate 2026-06-22

- `toolbox/communication/provider_contracts_bootstrap.py`, `toolbox/communication/provider_contracts_apply.py`, `toolbox/communication/provider_contracts_smoke.py`, die Ubuntu-Installer-Spiegel und die Integrationstests bilden den Bauteil für den Abschluss echter browserdirekter Provider-Userflows.
- Private Runtime-Vertraege duerfen `native_webview_session_evidence_file`, `provider_session_evidence_file` oder `user_session_evidence_file`[private Angabe entfernt]`ok=true` für den belegten Userflow melden, während `Sende-Freigabe=false` bleibt, bis ein echter Provider-/Bridge-/Systemdienstvertrag mit expliziter Sendefreigabe vorliegt.


## Native-Provider-Session-Gate 2026-06-22

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und der Ubuntu-Installer-Testspiegel bilden den Bauteil gegen Loginseiten-nicht belegter Zustand-Positive.
- Der Smoke unterscheidet jetzt `providerLoginCoverage` (echte Anbieter-Webapp/Loginsicht im Electron-`webview`) von `providerSessionCoverage` (wirklich eingeloggte User-Session).
- Pro Anbieter werden `sessionState`, `sessionStateReason`, `sessionAuthenticated`, `userActionRequired`, QR-/Phone-/MFA-Signale und Login-Feldsummen ausgewiesen.
- Das harte Gate wird nur mit `--require-authenticated-session` oder `AZUBI42_NATIVE_SMOKE_REQUIRE_AUTHENTICATED_SESSION=1` aktiviert; ohne echte User-Session bleibt der Dienst dann rot, auch wenn die Loginseite korrekt geladen wurde.


## Native-Provider-Smoke-Mailtrennung 2026-06-22

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs` bilden den Bauteil für echte Provider-WebView-Prüfung mit sauberer Mail-/Communication-Grenze.
- Der Azubi-UI-Smoke darf `mailclient` als Eingabe erhalten, testet ihn aber nicht als Messenger-Provider, sondern weist ihn als eigenen Mailbereich aus.
- Der direkte Provider-Smoke prüft SnappyMail separat über `AZUBI42_NATIVE_SMOKE_MAILCLIENT_URL`; Screenshots müssen aus echtem WebView-WebContents stammen und >0 Byte haben.


## Communication-Provider-No-Handoff-Gate 2026-06-22

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und der Ubuntu-Installer-Testspiegel bilden den Bauteil für echte Provider-Loginpfade ohne lokale Ersatzbeweise.
- Externe Dienste rendern im normalen Browser keinen Providerinhalt, keinen iframe, keinen Screenshottransport und keinen klickbaren `_self`-/Launch-Ausbruch; ohne Native-/Server-GUI-WebView steht nur der ehrliche Native-Host-Hinweis.
- SnappyMail/Mailclient bleibt als eigener Dienstknoten im Userflow erhalten und wird nur geheilt, wenn kein echter SnappyMail-Object- oder Provider-WebView-Inhalt vorhanden ist.


## AZUBI42.de Public-Schutztexte 2026-06-22

- `20_EDITIONS/azubi42-de/website/index.html`, `20_EDITIONS/azubi42-de/website/css/site.css`, `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/website/index.html`, `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/website/css/site.css` und `70_TESTS_AND_SMOKE/ui/audit_azubi42_domain_site.mjs` bilden den Bauteil für entschärfte Public-Site-Rechts-/Enterprise-Kommunikation.
- Die Website verspricht keine Rechtsberatung, keine Entscheidung und keine Fristgarantie, sondern Strukturierung, Entwurf, Prüfung und Review.
- Rollenrechte, 2FA/Passkeys, Audit-Logs, lokale Instanz, Mandantentrennung, Löschkonzept, CBTC-Legal/GovTech-Pipe und AI-Act-/DSGVO-Matrix sind als prüfbare Public-Onepager-Anker sichtbar.
- Der Audit sperrt die alte pauschale Rechtssicherheitsformulierung und prüft die neuen Schutztexte.


## Communication-Provider-WebView-Userpartition 2026-06-22

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs` bilden den Bauteil für getrennte Provider-WebView-Sitzungen pro Azubi42-User und Dienst.
- Native Electron-`webview`-Partitionen nutzen jetzt `persist:azubi42-<user-scope>-<service-id>` statt service-only Keys.
- Damit bleibt Matrix/Telegram/WhatsApp/Slack/weitere Provider als echte Anbieter-Webapp im Native-Host möglich, ohne Login-/Cookie-Zustand zwischen Azubi42-Usern zu teilen. iframe, Screenshottransport, Bildersatz und externe Tabs bleiben Regressionen; der Audit prüft die Userbindung statisch.


## Native-Provider-WebView-Einzelsmoke 2026-06-22

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `40_INTEGRATIONS/provider-webapp-browser/README.md` bilden den Bauteil für dienstweise echte Provider-WebView-Prüfung.
- Der Smoke kann mit `--provider=<id>` oder `--providers=<id,id>` auf einzelne Dienste begrenzt werden, beendet unbekannte IDs hart mit Exitcode `2` und lässt Reports nur grün werden, wenn mindestens ein echter Provider aktiv ist und kein ausgewählter Provider wegen fehlendem Webapp-/Host-Vertrag ausfällt.
- Belegte lokale und Server-GUI-Einzelsmokes: `telegram`, `matrix`, `whatsapp`, `slack` mit je 1 Electron-`webview`, 0 iframes, 0 Bild-/Screenshot-Ersatz und eigenem Provider-Screenshot.


## Communication-Provider-Userflow-Gate 2026-06-22

- `toolbox/communication/provider_contracts_smoke.py`, `toolbox/communication/provider_test_account_workbench.py`, `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py` und `70_TESTS_AND_SMOKE/integrations/test_communication_provider_test_account_workbench.py` bilden den Bauteil gegen Provider-nicht belegter Zustand-Positive.
- Browser-direkte Anbieter-URLs können nur `browser_entrypoint_ready` belegen; echte Dienstbereitschaft braucht eingeloggten Userflow, Zielraum/Zielkontakt, private Secret-/Tokenquelle und explizites Sendegate.
- Die Workbench erzeugt pro Dienst die nächsten echten Userflow-Schritte sowie Live-/Send-Smoke-Befehle, schreibt keine Secrets und markiert keine externen Social-/OAuth-Dienste automatisch grün.


## Communication-Provider-Live-Auth-Resolver 2026-06-22

- `toolbox/communication/provider_contracts_smoke.py` und `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py` bilden den Bauteil für die Auth-Vertragsauflösung der Provider-Workbench auf echten Serverlayouts.
- Der Resolver prüft `AZUBI42_AUTH_CONFIG`, Shared-Core, lokales `[private Angabe entfernt]` und die Live-Instanzen `[Serverpfad]`/`[Serverpfad]`, bevor er auf den alten Shared-Core-Default fällt.
- Ziel: Workbench und Provider-Smoke duerfen keinen `missing_contract` melden, nur weil sie aus einem Instanzroot statt dem Repo-Root laufen.
- Live-Beleg nach Deploy: Dev/Jura lesen `[private Angabe entfernt]`, `configured=12`, `missing=0`, `Sende-Freigabe=0`.


## Frontend-Shell-Assetloader 2026-06-22

- `10_SHARED_CORE/app_v27_multimedia/index.html`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/index.html`, `10_SHARED_CORE/app_v27_multimedia/css/tailwind-runtime.css`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, `10_SHARED_CORE/app_v27_multimedia/css/mobile-smart.css`[private Angabe entfernt]`window.__AZUBI42_withAssetToken()` erzeugt und nicht nachträglich umgehaengt.
- Damit entstehen im echten Browser-Clicktest keine abgebrochenen Erstrequests für `mobile-smart.css` mehr; CDN-/Tailwind-Rueckfall bleibt durch den bestehenden Shell-Audit gesperrt.


## App-Browserroute für Tool-/Connect-/Quellenlinks 2026-06-22

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_13_AppBrowserRoute.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_1_ToolManager.js`, `10_SHARED_CORE/app_v27_multimedia/js/11_AUTH_MANAGER/11_5_FachConnectBridge.js`, `10_SHARED_CORE/app_v27_multimedia/js/11_AUTH_MANAGER/11_4_ForgejoBridge.js`, die Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/ui/clicktest_toolbox_links_and_connectors.mjs` bilden den Bauteil gegen Tool-/Connect-/Forgejo-/Quellen-Tabflucht.
- Links werden nicht extern geöffnet und verlassen den App-Tab nicht; sie erzeugen einen Workspace-Knoten mit NativeWebView-Vertrag.
- Die globale Link-Wache faengt alte `_blank`-Anker per Capture-Handler ab, lässt Downloads ausgenommen und ist über `audit_tool_navigation_routing.mjs` im Bootpfad abgesichert.
- Im normalen Webbrowser bleibt der Inhalt ehrlich gesperrt bis zum Nachweis, bis der Native-/Server-GUI-Host verfügbar ist.
- Provider- und Tool-Inhalte werden nicht als iframe, Screenshot oder nachgemalter Anbieterclient ersetzt.


## App-Fluchtstellen-Hardening 2026-06-21

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_8_ProviderReturnBridge.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_12_NativeWebViewNode.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_2_Navigation.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_10_ViewStartScreens.js`, `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_1_ModelSelector.js`, `10_SHARED_CORE/app_v27_multimedia/js/11_AUTH_MANAGER/11_1_VaultDB.js` und die Ubuntu-Installer-Spiegel bilden den Bauteil gegen externe Tab-/Fensterflucht.
- Provider-Weblogin, Startscreen-Webziele und Spatial-Jura/KartOO-3D-Start laufen über Azubi42-BrowserGateway-Knoten im App-Workspace.
- NativeWebView bleibt im eigenen Native-Bauteil; wenn der Host fehlt, wird das ehrlich im Knoten angezeigt, ohne externen Link und ohne Ersatz-Webrendering.
- Direkte `_blank`-/`window.open`-Handoffs sind in diesen Pfaden Regression; der Knoteninhalt bleibt für den echten Browserinhalt reserviert.


## View-Startscreen-Scrollbar-Hardening 2026-06-21

- `10_SHARED_CORE/app_v27_multimedia/css/style.css` und der Ubuntu-Installer-Spiegel halten den Startscreen-Footer aus dem sichtbaren Stage-Layout heraus.
- Dadurch erzeugen Workspace/Communication-Startkarten keine zusätzliche vertikale Stage-Scrollbar mehr; die Steuerung bleibt über Cards, Menü, Primary-Action und Setup-Spalte erreichbar.


## Communication-Provider-Launch-Gate 2026-06-22

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, die Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py` bilden den Bauteil für erhaltene externe Provider-Dienstknoten im normalen Webfrontend.
- Ohne Native-/Server-GUI-WebView ist nur `native-webview-required` ein ehrlicher Wartezustand mit explizitem Originaldienst-Startlink; `provider-direct-browser-ready` ist kein gültiger Echtheitsanker mehr.
- Cleanup/Heal darf solche Knoten nicht loeschen, aber Strict-Smokes duerfen sie nicht als echte Provideroberfläche werten.
- Mail/SnappyMail bleibt ausserhalb des Communication-Smokes; `mailclient` ist dort ein verbotener Rueckfall, kein Chat-/Messenger-Dienst.


## Communication-Dienstknotenkopf 2026-06-21

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, die Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/integrations/test_communication_service_node_ui_contract.py` bilden den Bauteil für dienstspezifische Knotenheader.
- Jeder Dienst liest seine Funktionen aus `COMMUNICATION_SERVICE_FUNCTIONS` und rendert Steuerung im eigenen Knotenheader; Matrix nutzt Matrix-Aktionen, Provider nutzen Provider-/Webapp-Aktionen, Mailclient nutzt denselben Serviceheader plus getrennte SnappyMail-/Nachfrageleiste.
- Knotenbodies enthalten keine generischen Aktionsleisten mehr und bleiben für echten Dienstinhalt, SnappyMail-Include, Chatverlauf oder den neutralen Provider-Dienstzielbereich frei; WebView-/iframe-/Screenshot-Erklaertexte im Provider-Webapp-Body sind Regression.


## Communication-Provider-Trafficgrenze 2026-06-21

- `toolbox/communication/provider_contracts_bootstrap.py`, `toolbox/communication/provider_contracts_apply.py`, `toolbox/communication/provider_contracts_smoke.py`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`, die Ubuntu-Installer-Spiegel und die Integrationstests bilden den Bauteil für browserdirekte Provider-Verbindungen.
- Externe Provider bekommen explizite `provider_webapp_url`-/`webapp_url`-/`login_url`-Vertraege und `connection_policy=browser_direct_user_session`; Azubi42 darf damit nur den User zur Anbieter-Webapp führen.
- Server-Traffic-Relay, Bridge-Sync und Bridge-Send bleiben aus, bis `server_bridge_allowed=true`, `traffic_relay_allowed=true` oder `provider_server_relay_allowed=true` mit echtem Providervertrag gesetzt ist.
- Der Smoke trennt `browser_direct_ready` von `bridge_ready` und macht Bridge-URLs ohne Relay-Freigabe rot.
- `test_communication_provider_contracts_apply.py` sichert zusätzlich, dass Browser-Direktdienste ohne Relayvertrag nicht fälschlich `Sende-Freigabe` werden.


## Communication-Provider-Webapp-Heal 2026-06-21

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, der Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` bilden den Bauteil für externe Provider-Knoten im normalen Browser.
- Ohne Native-WebView-Host werden stale BrowserGateway-/Bildtransport-/nicht belegter Zustand-Knoten dienstspezifisch in den belegten Wartezustand `native-webview-required` zurückgeführt, statt einfach zu verschwinden.
- Echte Anbieter-Loginseiten bleiben dem Native-/Server-GUI-WebView vorbehalten; SnappyMail bleibt der einzige same-origin Include.


## Communication-Provider-Onboarding-Workbench 2026-06-21

- `toolbox/communication/provider_contracts_bootstrap.py`, `toolbox/communication/provider_test_account_workbench.py`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, die Ubuntu-Installer-Spiegel und die Integrationstests bilden den Bauteil für echte Provider-Testaccount-/OAuth-/Bridge-Vorbereitung.
- Alle Runtime-Provider liefern jetzt offizielle Setup-URLs, private Pflichtfelder, operatorische Checklisten und Smoke-Befehle.
- Die Workbench nutzt `azubi42tester@azubi42.de` als Testmail-Anker, schreibt optionale Arbeitsplaene nur in `runtime/private/...`, setzt `can_auto_create_account=false` für externe Social-/OAuth-Dienste und stoppt bei Captcha/MFA/Provider-Consent als manueller Grenze.
- `Sende-Freigabe=true` bleibt an echte Secretdateien, Zielmapping und explizite Sendefreigabe gebunden.


## Sidebar-Live-Userflow-Audit 2026-06-20

- `70_TESTS_AND_SMOKE/ui/audit_sidebar_accordion_browser.mjs` bildet den Bauteil für den authentifizierten linken Seitenleisten-Clicktest.
- Der Audit klappt alle 13 Hauptsektionen im echten Browserfluss zu und wieder auf, prüft den bestehenden Single-Scroll-/Resize-Vertrag, sperrt alte section-spezifische Breitenkeys und meldet verschachtelte Zusatzscrollbars ausserhalb des primaeren Sidebar-Scrolltraegers.


## Communication-Provider-Smoke-Abdeckung 2026-06-20

- `toolbox/communication/provider_contracts_smoke.py` und `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py` bilden den Bauteil für den vollständigen Runtime-Providerkatalog.
- Telegram, Slack und WhatsApp nutzen weiter ihre direkten Smoke-Treiber; alle weiteren Messenger-/Providerdienste ausser `mailclient` nutzen jetzt den generischen Azubi42-Bridge-Vertrag `status`/`sync`/optional `send`, sobald serverseitig `bridge_url`/`provider_url`[private Angabe entfernt]`mailclient` prüft als eigener Mailbauteil Webmail-URL, IMAP-Login, SMTP-Login, Content-Encryption-Gate und optionalen SMTP-Sendepfad; kein Login ohne Passwortquelle und kein Senden ohne `--allow-send` plus explizite Sendefreigabe.


## Mailclient-Userkontext-Smoke 2026-06-21

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `toolbox/communication/provider_contracts_smoke.py`, die Ubuntu-Installer-Spiegel und die Integrationstests bilden den Bauteil für normale Azubi42-Mailuser.
- `mailclient_effective_config()`[private Angabe entfernt]`@b:42.chat` korrekt als `b@azubi42.de` gegen IMAP/SMTP geprüft werden, ohne einen globalen Testaccount oder fehlenden Defaultpfad als Rot-Ausloeser zu verwenden.
- Telegram, Slack, WhatsApp und weitere Provider bleiben davon getrennt und nur mit eigenen echten Betreiberwerten grün.


## Sidebar-Fachgrenzenvertrag 2026-06-20

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, der Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/ui/audit_sidebar_sections.mjs` bilden den Bauteil für die weiter gehärtete linke Seitenleiste.
- `nav-history` und `nav-workspace-tools` haben eigene Tooltip-/Hilfetexte.
- Der Audit prüft die Hauptsektionen Communication, Blickwinkel, Legende, KI/API, Tresor, Chatverlaeufe, Workspace-Staende und Therapiekatzen blockweise auf erwartete Inhalte und fachfremde Rueckfaelle wie Mailclient, Aktenhaltung, Modellfelder, Tresor, Chatverlauf oder Workspace-Aktionen am falschen Ort.
- Version `v27.2.265` / Build `27290`.


## Sidebar-Arbeitsstand-Split 2026-06-20

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, die Ubuntu-Installer-Spiegel und die Audits `70_TESTS_AND_SMOKE/ui/audit_sidebar_sections.mjs`, `audit_sidebar_accordion_browser.mjs`, `audit_light_theme_resize.mjs` bilden den Bauteil für getrennte Chat- und Workspace-Verlaeufe.
- `nav-history` führt nur Chatverlaeufe; `nav-workspace-tools` führt Workspace-Sessions, Workspace-Antworten, Panelzugang und Verlauf-leeren.
- Der Bauteil nutzt den bestehenden Sidebar-Accordion-/Resize-Vertrag und fuegt keine neuen Handler-IDs für bestehende Funktionen hinzu.


## Sidebar-Formularlesbarkeit 2026-06-20

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_1_ModelSelector.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css` und die Ubuntu-Installer-Spiegel bilden den Bauteil gegen schmale Modell-/Tresor-Feldüberlaeufe.
- Der Bauteil setzt linke Sidebar-Raster für Modelle/Tresor einspaltig, kuerzt sichtbare Platzhalter/Selecttexte, erhoeht Textarea-Mindesthöhen für Admin-/Projektlisten und hält lange Fachbedeutungen in Tooltips statt in abgeschnittenen Feldinhalten.


## Login-Statusvertrag 2026-06-20

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` und der Ubuntu-Installer-Spiegel bilden den Bauteil für Browser-Login-vs-API-Auth.
- Normale HTML-Seitenaufrufe ohne Sitzung erhalten die Login-Seite mit `200 OK`; API-Aufrufe ohne Sitzung bleiben `401 Unauthorized`.
- Damit bleibt der Sicherheitsvertrag gesperrt bis zum Nachweis, während echte Browser-Smokes keine falschen Konsolenfehler für die erwartete Login-Maske erzeugen.


## Soundscape-/Bidirectional-QA 2026-06-20

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_10_Soundscape.js`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, die Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/ui/audit_azubi42_de_server_bidirectional.py` bilden den Bauteil gegen nicht belegter Zustand-positive Live-Smokes.
- Soundscape und Login-/Intro-Sound erzeugen vor der ersten echten Pointer-/Tastatur-Geste keinen WebAudio-Kontext mehr; automatische Knoten-/FixIt-/Intro-Erscheinungen bleiben dadurch browserkonform stumm, bis der User interagiert.
- Der bidirektionale Website-/Server-Audit nutzt Live-Credentials nur über private Umgebungswerte (`[private Angabe entfernt]`, Fallback Sidebar/Mobile) und schreibt lokale Wegwerf-User ausschließlich für localhost.
- Der Bauteil prüft Website-vs-Server-Gaps, neue Tab-Flucht, UI-Overflow und Login-Zustand ohne Secrets in Reports.


## User-Darstellungsprefs 2026-06-20

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, `mobile-smart.css`, `css/themes/theme-legal-light.css`, `theme-legal-paper.css`, `theme-white-runtz.css`, die Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/ui/audit_user_theme_preferences.mjs` bilden den Bauteil für User-Farben, Schriftgrößen und Dichte.
- Der Bauteil führt neue Farbziele für starken/leisen Text, Auswahl, Erfolg, Fehler, Canvas-Linien, Flächen und Frage-/Antwort-/Systemdialoge; `Leiser Text` schreibt auch `--azubi-muted`.
- Font-Presets reichen von `Mini` bis `XXL` bei Clamp `82..132`; Dichteanker bleiben `compact`, `normal`, `air`[private Angabe entfernt]`Gelato41` und `WeddingCake` sind kontraststärker neu gesetzt und werden gegen Shared-Core/Installer-Sync geprüft.
- `audit_sidebar_accordion_browser.mjs` gehört zum Bauteil und kann Live-Instanzen mit `[private Angabe entfernt]` authentifiziert prüfen.


## Frontend-Shell-Tailwind-Runtime 2026-06-20

- `10_SHARED_CORE/app_v27_multimedia/index.html`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/index.html`, `10_SHARED_CORE/app_v27_multimedia/css/tailwind-runtime.css`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/tailwind-runtime.css` und `70_TESTS_AND_SMOKE/ui/audit_frontend_shell_assets.mjs`[private Angabe entfernt]`azubi42_version.json` und verbietet alte nicht referenzierte `css/tailwind.config.js`-Stubs im Runtimepfad.


## Sidebar-Aktenhaltung-Hauptsektion 2026-06-20

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `01_4_InterfaceChrome.js`, `01_7_Communication.js`, `07_6_CommunicationSpaces.js`, `style.css` und die Ubuntu-Installer-Spiegel führen `Aktenhaltung` als eigene linke Hauptsektion.
- Der Bauteil enthält den sichtbaren `Aktenfunktionen`-View-Knopf und `Vorgang3D`; allgemeine `Ansichten` bleiben bei Chatfluss, Timeline, BuschCode, Bibliothek und Workspace.
- Communication rendert nur noch Messenger-/Chatdienste aus `getCommunicationServiceChannels()`.
- SnappyMail/mailclient bleibt Mailbauteil und wird nicht mehr in der Communication-Dienstliste, in Communication-Templates oder in restaurierten Communication-Sessions als Chatdienst angezeigt.


## Jurabibliothek-Rohcache-Retention 2026-06-20

- `toolbox/legal/jurabibliothek/jurabibliothek.py` und `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/jurabibliothek.py` führen den Bauteil `prune-raw-cache`.
- Der Bauteil loescht nur versionierte Rohcache-Dateien im konfigurierten Bucket `raw/cases/toc` mit Stem `rii_toc` oder `rii-toc` und Suffix `.xml`, hält standardmaessig die letzten 3 Versionen je Namensvariante und verweigert Pfade ausserhalb von `root/raw`.
- `fetch_case_toc()` ruft dieselbe Retention nach neuen TOC-Abrufen auf.
- Keine State-, Normalized-, XMLZIP-, Original- oder Private-Dateien werden angefasst.


## Deploy-Toolbox-Sync 2026-06-20

- `toolbox/deploy/deploy_live_winscp.ps1` synchronisiert neben dem App-Root jetzt auch `toolbox/` nicht-destruktiv in den Instanzroot (`[Serverpfad]`, `[Serverpfad]`).
- Der Ubuntu-Installer-Spiegel ist synchron.
- Ziel: Server-Tools wie Disk-Guard, Zugangsbau, XJustiz, Communication-Provider und Smokes duerfen nach einem Deploy nicht mehr lokal gepusht, aber live veraltet bleiben.
- Der Sync nutzt bewusst kein `--delete`, damit große Runtime-/Jurabibliothek-Bestände und private Serverdaten nicht gelöscht werden.
- Die Runtime-Whitelist enthält jetzt auch `disk_guard.sh` und die drei Guard-Env-Dateien für Jurabibliothek-Sync, Jurabibliothek-Vector und Paperless-Atom-Index.


## Disk-Guard-Fuellstopp 2026-06-20

- `toolbox/legal/disk_guard.sh` schützt schwere Legal-Fuelllaeufe gegen vollen Server.
- Der Bauteil kennt jetzt `AZUBI42_DISK_PAUSE_PCT` mit Default `92` und pausiert die konfigurierten Timer (`AZUBI42_DISK_GUARD_PAUSE_UNITS`) bereits bei Erreichen dieser Schwelle.
- Default-Pause umfasst Paperless-Atom-Index, Jurabibliothek-Sync, Jurabibliothek-Vector und Paperless-Sidecar-Sync; Ubuntu-Installer-Spiegel und Beispiel-Env-Dateien sind synchron.
- Ziel: keine weiteren Rohdaten-/Indexwellen, wenn der Root-Mount schon kritisch eng ist.


## Zugangsbau-Betreiberantwort-Intake 2026-06-20

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` führt den UI-Bauteil `Antworten einlesen` für `./api/legal/zugangsbau/operator-reply-intake`.
- Der Bauteil liest Betreiberantwort-Artefakte nur aus dem privaten Serverpfad, zeigt geaenderte Contract-Felder, weiter erwartete Gruppen, JSON-/Zertifikatskandidaten und Smoke-Status an und lässt OSCI/EGVP `Sende-Freigabe` weiter vom Transport-Smoke abhaengen.
- Ubuntu-Installer-Spiegel ist synchron.


## Communication-Dienstknotenvertrag 2026-06-20

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` trennt Mailclient und Messenger/Webprovider wieder hart. SnappyMail nutzt als Maildienst den gleiche-Origin-Webmail-Include.
- Alle anderen Dienste erzeugen eigene dienstspezifische Knoten und zeigen ohne Native-WebView-Host nur den ehrlichen Wartezustand mit Ziel-URL und No-nicht belegter Zustand-Regel; echte Anbieter-Webapps laufen erst im Azubi42-Desktop/Server-GUI-Native-Host.
- `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py` prüft diesen Vertrag im echten Server-Userflow gegen Sidebar-Klicks, No-External-Tab, No-nicht belegter Zustand-Visuals, SnappyMail-Account-Ready und genau einen Sidebar-Scrollbereich.


## KartOO-Toolbox-Suchknoten 2026-06-20

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_1_ToolManager.js` enthält jetzt den Bauteil `openKartooWebSearchNode()`.
- Der Toolbox-Knopf erzeugt einen eigenen Workspace-Knoten mit Suchfeld und Ergebnisbereich, ruft `fetchWebSearch('duckduckgo-search', query)` auf und rendert ausschließlich die Antwort aus dem vorhandenen KartOO-Websearch-Vertrag.
- Es werden keine Demo-Ergebnisse und keine nachgebauten Provider-Inhalte erzeugt.


## Stand

- 2026-06-20

## Version

- Gelonade v27.2.260

## Quellpfad im Repo

- `10_SHARED_CORE/app_v27_multimedia`; Zielbetrieb: Azubi42-Server/Web/Paperless pro User.


## Workspace-NativeWebView-Knoten 2026-06-20

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_12_NativeWebViewNode.js` ist der Bauteil für Workspace-Knoten, deren Inhalt exakt eine `http://`- oder `https://`-URL ist.
- `04_NODE/04_1_Builder.js` erkennt solche URL-only-Knoten und rendert statt des alten BrowserGateway-/Bildpfads eine Native-WebView-Schiene.
- Im Native-/Server-GUI-Host wird ein Chromium-`webview` mit Knotenheader-Funktionen für Zurueck, Vor, Neu laden, Drucken und externes Öffnen verwendet.
- Im normalen Webbrowser bleibt der Knoten gesperrt bis zum Nachweis und zeigt nur Ziel-URL und Native-WebView-Hinweis.
- Verboten bleiben iframe, Screenshottransport und nachgemalte Webseiteninhalte.


## AusweisApp-SDK-Preflight 2026-06-20

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt `azubi42.ausweisapp_sdk_contract.v1` als offiziellen lokalen eID-Clientvertrag.
- Belegt sind Governikus-Quelle `https://github.com/Governikus/AusweisApp`, Status-Endpoint `http://127.0.0.1:24727/eID-Client?Status=json`, SDK-WebSocket `ws://localhost:24727/eID-Kernel`, Origin-Gate `AUSWEISAPP_WEBSOCKET_ORIGIN`, User-Agent-Pflicht und die Trennung zwischen Desktop-/Container-SDK und Betreiberfreigabe.
- Der Bauteil liest keine Ausweis-/PIN-/Personendaten und startet keine eID-Transaktion; er ergänzt nur Readiness und Login-Hinweis.
- Doku: `EID_TESTGATE_RUNBOOK_2026-06-19.md`, `EBO_PERSONALAUSWEIS_WOHNSITZLOSEN_ZUGANG_FEASIBILITY_2026-06-19.md`.
- Testanker: `70_TESTS_AND_SMOKE/legal/test_bundid_oidc_connector.py`.


## EUDI-Wallet-/EAA-/QEAA-Rollengrenze 2026-06-19

- `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json` führt `wallet_attribute_policy` als eigenes Zugangsbau-Bauteil.
- Azubi42 darf perspektivisch eigene, belegbare Attribute als nicht qualifizierte Attributquelle/Relying-Party-Schiene vorbereiten, zum Beispiel Fallpaket-Hash, Paperless-Indexstand, Anlagenmanifest, Barrierefreiheitsbericht oder Softwarelaufzeitnachweis.
- Verboten bleiben ohne offizielle Zulassung: QEAA, qTSP-Rolle, staatlich autorisierte Primaerquelle, SAFE-ID-Aussteller, eBO/OSCI/EGVP-Transportoperator und gerichtlicher Zustellnachweis.
- `OFFIZIELLE_QUELLEN_2026-06-06.md` und `EBO_PERSONALAUSWEIS_WOHNSITZLOSEN_ZUGANG_FEASIBILITY_2026-06-19.md` führen die Bundesdruckerei-/EUDI-Wallet-Begriffe.
- Testanker: `test_zugangsbau_registry_contract.py`.


## Zugangsbau-Contract-Placeholder-Gate 2026-06-19

- `toolbox/legal/xjustiz_baukasten.py`, `toolbox/legal/zugangsbau_readiness.py` und die Ubuntu-Installer-Spiegel sperren Template-/Dummywerte in privaten Betreibervertraegen.
- Werte wie `BETREIBERWERT`, `TODO`, `DUMMY`, `${...}` oder `<...>` zaehlen nicht als Postfach, Intermediaer, Zertifikat-/Key-Pfad oder Smoke-Beleg.
- Ziel: Betreiber-Templates duerfen in Readiness, Transportstatus und UI nie halb-grün werden.
- Testanker: `70_TESTS_AND_SMOKE/legal/test_xjustiz_baukasten_contract.py` und `70_TESTS_AND_SMOKE/legal/test_zugangsbau_readiness_contract.py`.


## Zugangsbau-eID-Subject-Testgate 2026-06-19

- `toolbox/legal/eid_subject_gate.py` führt den adresslosen eID-Testanker für AusweisApp/PersoSim/Testkarten.
- Der Bauteil nimmt private eID-Testpayloads nur lokal/serverseitig entgegen, bildet daraus `eid-subject-v1:<HMAC-SHA256>`[private Angabe entfernt]`10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` liest für `bundid_eid` nur Gate-Datei-/Pepper-Praesenz und Privacy-Flags; ohne Gate-Datei, Pepper und Privacy-OK bleibt `eid_subject_gate_status.ready=false`.
- `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json`, `EID_TESTGATE_RUNBOOK_2026-06-19.md`, `PRIVATE_CONTRACT_TEMPLATE_EID_OSCI_EGVP.local.example.json` und die Betreiberanfrage halten den Anschlussvertrag fest.
- Testanker: `70_TESTS_AND_SMOKE/legal/test_eid_subject_gate.py`, `test_zugangsbau_registry_contract.py`, `test_zugangsbau_readiness_contract.py`.


## BundID/eID-Loginstatus 2026-06-19

- `build_login_page()` rendert den lokalen eID-/AusweisApp-Teststatus aus `local_readiness` direkt in der BundID/eID-Karte.
- SSP/OIDC-Status und lokaler Clientstatus bleiben getrennt sichtbar; ohne lokalen Beleg entsteht kein blindes Grün.
- Shared-Core und Ubuntu-Installer-Spiegel sind synchron.
- Testanker: `70_TESTS_AND_SMOKE/legal/test_bundid_oidc_connector.py`.


## Zugangsbau-wohnungs-/adressloser eBO-/SAFE-Betreiberpfad 2026-06-19

- `BETREIBER_ANTRAG_OSCI_EGVP_TESTZUGANG_2026-06-12.md`, `BETREIBER_CERT_VERTRAGSPLAN_2026-06-17.md` und `zugangsbau_operator_application_steps_2026-06-17.json` fragen jetzt explizit Testpostfach, Zertifikat/Key, OSCI-/EGVP-Intermediaer, c/o-/Zustelladresspfad, wohnsitzlosen SAFE-/eBO-Pfad und ein Vertretungs-/Drittsendermodell ab.
- Bauteilgrenze: Diese Klaerung öffnet kein `Sende-Freigabe`; OSCI/EGVP wird erst nach echter Betreiberantwort, Contract-Eintrag und Send-/Empfangs-Smoke grün.


## SnappyMail-Mailkonto-Ready-Flow 2026-06-18

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und der Ubuntu-Installer-Spiegel prüfen beim Erzeugen eines `mailclient`-Knotens automatisch den serverseitigen Accountstatus und führen bei erlaubtem Vertrag das Provisioning aus, bevor der User im SnappyMail-Inhalt weiterarbeitet.
- Danach wird nur die SnappyMail-Leinwand neu geladen; Knotenbody bleibt Webmail-Inhalt, Knotenheader bleibt Steuerung.
- Button `Mailkonto` und Postfachauswahl nutzen denselben Vertrag.
- Testanker: `test_snappymail_frontend_auto_provisions_before_user_hits_mailclient`.


## SnappyMail-X-SM-Token-Proxyheader 2026-06-18

- Der SnappyMail-same-origin-Proxy in `azubi42_server.py` führt `[private Angabe entfernt]` als erlaubten Forward-Request-Header.
- Das ist ein Pflichtbauteil für den echten SnappyMail-Weblogin, weil SnappyMail den Login-CSRF-Token als Formularfeld `[private Angabe entfernt]` und als Header `[private Angabe entfernt]` übermittelt.
- Ohne diesen Header ist der Userflow `Mailkonto pruefen/anlegen -> SnappyMail oeffnen -> Login` nicht produktionsfähig und endet mit `[private Angabe entfernt]`.
- Shared-Core, Ubuntu-Installer-Spiegel und `test_snappymail_proxy_contract.py` sind synchron.


## SnappyMail-Maildir-Standardordner 2026-06-18

- `toolbox/communication/mailclient_provision_local_user.py` und der Ubuntu-Installer-Spiegel erzeugen für jede lokale Mailbox die Maildir-Standardordner `.Sent`, `.Drafts`, `.Spam`, `.Trash` und `.Archive` jeweils mit `cur`, `new` und `tmp`.
- Die Datei `Maildir/subscriptions` wird idempotent um `INBOX`, `Sent`, `Drafts`, `Spam`, `Trash` und `Archive` ergänzt, ohne bestehende Userordner zu verlieren.
- Bauteilziel: SnappyMail darf beim ersten echten User-Senden nicht in einer Spezialordner-Maske haengen bleiben.
- Testanker: `test_mailclient_provisioner_creates_snappymail_standard_folders` und `test_mailclient_provisioner_keeps_existing_subscriptions`.


## System-Audit 2026-06-17

- `00_META/SYSTEM_AUDIT_2026-06-17.md` ist der aktuelle Auditanker für Zugangsbau/XJustiz/OSCI/EGVP, Communication-Provider, SnappyMail-/Proxy-Vertraege, Security-Smokes, TLS-/Header-Sicht, Serverdienste, Disk und Paperless-TOC.
- Bauteilstatus: XJustiz/PDF-A/Schematron/Codelists sind prüfbereit; rechtswirksamer eRV-Versand bleibt bis OSCI/EGVP-Contract, Postfach, Zertifikat/Key, Intermediaer und Send-/Receive-Smoke gesperrt.
- `azubi42-paperless-user-toc.service` wurde im Audit wieder lauffähig gemacht.
- Offene Bauteilaufgaben: Forgejo-Embedding-Header begrenzen, Server-Smoke-Harness voll deployen, Diskdruck behandeln und Provider-Vertraege dienstweise echt schließen.


## Sidebar-Single-Scroll und KartOO-3D-Vorgangskarte 2026-06-17

- `01_4_InterfaceChrome.js` führt die Sidebar-Höhenmigration `single-scroll-v2`; `style.css` hält `#app-sidebar` als festen Container und `#sidebar-nav` als einzigen vertikalen Scrolltraeger.
- Innere Sidebar-Listen wie Chat-, Workspace- und Communication-Räume erzeugen keine eigene Scrollbar mehr.
- `01_8_JuraBibliothek.js` rendert die frühere sichtbare Helix als KartOO-3D-Vorgangskarte mit belegtem v2-Edge-Vertrag: Schema, belegte Linien, Review-Linien, ungesicherte Linien und Fruechtchenzähler werden aus echten Payloadfeldern gelesen.
- Ubuntu-Installer-Spiegel ist synchron; Testanker: `audit_sidebar_sections.mjs`, `audit_kartoo_websearch_contract.mjs`, `test_spatial_jura_world.py`.


## KartOO-3D-Helix-Vertrag 2026-06-16

- `00_META/AZUBI42_KARTOO_3D_HELIX_VERTRAG_2026-06-16.md` führt den Zielvertrag für die nächste Vorgang3D-/Helix-Welle.
- Der Vertrag übernimmt nicht die alte Flash-Technik, sondern die Arbeitsweise von KartOO: sichtbare Ergebnis-/Aktenkarte, belegte Knoten, beschriftete Beziehungslinien, Hover-/Preview-Fokus, Facetten und nächste Karten.
- Für Azubi42 gilt: keine Kante ohne Paperless-/Sidecar-/RAG-/WH3D-/Bibliothek-Anker, kein Linienlabel aus Layout, keine Frucht ohne klickbaren Original-/Review-Payload.
- Anschlussbauteile sind `toolbox/legal/spatial_jura_world.py`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js`, `70_TESTS_AND_SMOKE/legal/test_spatial_jura_world.py` und `70_TESTS_AND_SMOKE/ui/audit_aktenzeichen_timeline.mjs`.


## Spatial-Jura-Welt v2 2026-06-16

- `toolbox/legal/spatial_jura_world.py` und der Ubuntu-Installer-Spiegel normalisieren jetzt alle Kanten vor der Ausgabe auf den KartOO-3D-Vertrag: `id`, `label`, `label_source`, `source_anchors`, `state`, `confidence`, `flags`, `day_counter`, `semantic`, `opens` und Reviewgrund.
- Sichere/probable Beziehungen ohne belegten Anker werden auf `review` gesetzt; reine Strukturkanten sind als `layout_contract` markiert.
- Knoten/Früchte erhalten `source_anchors`, `opens`, `flags` und `review_state`.
- `70_TESTS_AND_SMOKE/legal/test_spatial_jura_world.py` prüft `azubi42.spatial_jura_world.v2` und sperrt unguarded edges.


## KartOO-Websuche 2026-06-16

- `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_6_WebSearch.js` und der Ubuntu-Installer-Spiegel führen `azubi42.websearch.kartoo3d.v1` als WebSearch-Verbraucher des Spatial-Jura-v2-Vertrags.
- DuckDuckGo-/Provider-Treffer werden als Query-, Treffer- und Domainknoten mit `source_anchors`, `label_source`, `state`, Review-Flags, `opens` und `unguarded_edges` gerendert; Snippet-Beziehungen bleiben `review`, Treffer-Rank und Domainzuordnung sind durch Provider-/URL-Anker belegt.
- `01_1_Layout.js` führt den Toolbox-Schalter `KartOO Websuche (DuckDuckGo)`, `style.css` führt die KartOO-Karte.
- Test: `70_TESTS_AND_SMOKE/ui/audit_kartoo_websearch_contract.mjs`.


## Bibliothek-/Aktenhaltung-Trennung 2026-06-15

- `01_1_Layout.js`, `01_2_Navigation.js`, `01_4_InterfaceChrome.js`, `01_10_ViewStartScreens.js`, `01_8_JuraBibliothek.js`, `azubi42_server.py`, `view_start_menus/bibliothek_menu.js` und `style.css` führen `Aktenhaltung` als eigenen linken Menüpunkt neben `Bibliothek`.
- Bibliothek besitzt eine eigene DOM-View und bleibt Quellenraum für Gesetze, Rechtsprechung, Nachschlagewerke, Formulare, Vordrucke, Dienstanweisungen und geprüfte RAG-Quellen.
- Aktenhaltung besitzt eine eigene DOM-View und übernimmt Paperless, Originaldateien, Upload/OCR, Metadaten, Human-Kontrolle, Zugangsbau, Vorgang3D, Fristen, Mahnwesen und Fallauswertung.
- Der serverseitige Jurabibliothek-Topic `Paperless-Akte` ist entfernt.
- Tests: `audit_view_start_screens.mjs`, `audit_sidebar_sections.mjs`, `audit_aktenzeichen_timeline.mjs`, `audit_new_user_busch_guide.mjs`.


## Aktenhaltung-FixIt-Umzug 2026-06-16

- `01_1_Layout.js` und der Ubuntu-Installer-Spiegel führen das FixIt-/Human-Kontrollpanel nicht mehr im Bibliotheks-DOM, sondern in `view-aktenhaltung`.
- Sichtbar heisst der Block `Human-Kontrolle / FixIt` und sammelt Aktenfehler, Review-Jobs, Team-Signal und konkrete Import-/Kontrolljobs; Antwortdeckung/Bestandsdelta ist ebenfalls aus dem Bibliothek-Startmenü entfernt und bleibt Aktenhaltung-/Fallauswertungsfunktion.
- Bestehende `data-bibliothek-fixit-*` Handler bleiben aus Kompatibilitaetsgründen erhalten.
- Die Bibliothek bleibt Quellenraum ohne Alltags-Aktenjobs.
- Tests: `audit_view_start_screens.mjs`, `audit_mahnwesen_ui.mjs`, `audit_aktenzeichen_timeline.mjs`, `clicktest_bibliothek_fixit_panel.mjs`, `clicktest_zugangsbau_blickwinkel_userflow.mjs`.


## Toolbox-/Aktenhaltung-Seitentrennung 2026-06-16

- `01_1_Layout.js` und der Ubuntu-Installer-Spiegel führen die generische `Azubi42 Toolbox` wieder nur als allgemeinen Werkzeugkasten.
- Erlaubt sind dort allgemeine Werkzeuge wie Websuche und Calculator.
- Akten-/Gerichtsworkflows wie AMT-VI-Kontrollspace, Antwortdeckung, Rechtsmittel-Ansichten, Alt-Hin-Her, Human-OCR/Confused-Loop und Template-Baum bleiben in Aktenhaltung beziehungsweise Vorgang3D.
- Tests: `audit_sidebar_sections.mjs`, `audit_toolbox_special_views.mjs`, `clicktest_toolbox_links_and_connectors.mjs`.


## Aktenhaltung-Menü-Entdoppelung 2026-06-16

- `view_start_menus/bibliothek_menu.js` und der Ubuntu-Installer-Spiegel trennen Aktionsbloecke und Vollseitenbloecke innerhalb der Aktenhaltung.
- `Vorgang3D / Aktenansichten` führt nur AZ-Auswahl, Ordnerauswahl, letzten Lauf und Neuanalyse; `Spezialansichten / Vollseite` führt HTML/JSON/CSV-Review- und Mehrspuransichten.
- Interne Human-/Confused-/Template-Spruenge bleiben in `Human-Kontrolle` und `Mahnwesen / Fristen`; `Server verbinden` ist nur noch im Aktenhaltung-/Paperless-Block.
- Test: `audit_toolbox_special_views.mjs`.


## Communication-/Mail-Begriffstrennung 2026-06-16

- `view_start_menus/communication_menu.js`, `01_10_ViewStartScreens.js` und die Ubuntu-Installer-Spiegel halten Communication bei Messenger-/Provider-Diensten.
- Mail/eRV/SnappyMail bleibt eigener Mail-/Zugangsbaupfad und darf nicht als Communication-Diensttext in Menü oder Startkarte erscheinen.
- Test: `audit_view_start_screens.mjs`.


## SnappyMail-Mailkonto-Gate 2026-06-18

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` stellt für `mailclient` die Aktionen `account-status` und `provision-account` bereit.
- `account-status`[private Angabe entfernt]`provision-account` bleibt gesperrt bis zum Nachweis und laeuft nur mit serverseitig gesetztem `account_provision_enabled=true` plus privatem `account_provision_command`.
- `toolbox/communication/mailclient_provision_local_user.py`[private Angabe entfernt]`10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` führt im same-origin-SnappyMail-Knoten den Button `Mailkonto pruefen/anlegen` und zeigt fehlende Vertragsfelder an, statt den User blind in einen SnappyMail-Login laufen zu lassen.
- Runtime-Template und Ubuntu-Installer-Spiegel kennen `mailbox_domain`, `account_provision_enabled`, `account_provision_command`, `account_provision_timeout_seconds`, `[private Angabe entfernt]`, `account_mail_home_root`, `account_system_group`, `account_create_linux_user` und `account_create_maildir`.
- Testvertrag: `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`.


## SnappyMail-Sessionvertrag 2026-06-18

- `mailclient_effective_config()`[private Angabe entfernt]`account-status`, `open_mailclient_imap()` und `send_mailclient_provider_message()`.
- Ein Postfach darf nicht mehr als loginbereit erscheinen, wenn der spätere echte IMAP-/SMTP-Zugriff einen anderen oder leeren Vertrag nutzt.
- Testanker: `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`.


## SnappyMail-Multiaccount-Grenze 2026-06-18

- Konfigurierte `mail_accounts` sind auswaehlbare Postfach-/Identitaetsanker, aber kein globaler Ersatz für die eingeloggte Session.
- `mailclient_effective_config()` schaltet nur bei expliziter `mail_account_id` auf ein hinterlegtes Konto; ohne Auswahl bleiben Session-Mailbox und zugehoeriger Secret-Pfad massgeblich.
- Damit können Test-/Admin-/Rollenpostfaecher nicht versehentlich jeden normalen Userflow übernehmen.


## SnappyMail-Send-Gate 2026-06-18

- `run_communication_provider_action(..., send)` nutzt für den Mailclient vor dem SMTP-Versand denselben sessionbezogenen effektiven Vertrag wie `send_mailclient_provider_message()`.
- Sendefreigabe, TLS-Status, Inhaltsverschlüsselung und Secret-Anker werden dadurch nicht mehr gegen einen leeren/globalen Providervertrag geprüft, sondern gegen die konkret eingeloggte User-Mailbox.


## SnappyMail-Status-/Sync-Gate 2026-06-18

- `run_communication_provider_action(..., status|rooms|sync)`, `sync_communication_provider_connector()` und `build_provider_rooms_and_events()` führen beim Mailclient denselben sessionbezogenen effektiven Vertrag wie der Sendepfad.
- Ordnerlisten, Readiness und Status duerfen dadurch nicht gegen globale Testaccounts oder leere Providerdaten laufen.
- Testanker: `test_mailclient_status_uses_session_effective_config` und `test_mailclient_rooms_sync_uses_session_effective_config`.


## SnappyMail-Matrix-ID-Normalisierung 2026-06-18

- `mailclient_account_identity()` leitet userbezogene Mailboxen aus echten Account-Ankern ab.
- Matrix-IDs im Format `@user:server` werden mit der privaten `mailbox_domain` zu `user@azubi42.de`; Anzeigenamen und frei gemischte `user:server`-Texte werden nicht als Mailadresse genutzt.
- Damit bleibt `@b:42.chat` Matrix-Identitaet, während SnappyMail das getrennte Postfach `b@azubi42.de` provisioniert.
- Shared-Core, Ubuntu-Installer-Spiegel und `test_mailclient_account_provision.py` sind synchron.


## SnappyMail-Provisioner-Auth-Grenze 2026-06-18

- `toolbox/communication/mailclient_provision_local_user.py`[private Angabe entfernt]`invalid_linux_username` gesperrt bis zum Nachweis blockiert, damit keine halben Postfächer mit nicht funktionierender Dovecot-Authentifizierung entstehen.
- Live-Gegenprobe: `b@azubi42.de`, `azubi42tester@azubi42.de` und ein frischer kurzer Smoke-User sind IMAP-/SMTP-loginfähig; synthetische überlange Smoke-Namen sind bewusst kein gültiger Produktionsanker.


## SnappyMail-Secret-Rechtevertrag 2026-06-18

- `toolbox/communication/mailclient_provision_local_user.py`[private Angabe entfernt]`0750`[private Angabe entfernt]`0640` gesetzt, sonst auf `0600`[private Angabe entfernt]`test_mailclient_provisioner_secret_file_is_service_group_readable`; Live-Regel: `[private Angabe entfernt]` gehört `root:azubi42` und hat Mode `0640`.


## SnappyMail-Multiaccount-Vertrag 2026-06-17

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json` und die Ubuntu-Installer-Spiegel führen `mail_accounts`[private Angabe entfernt]`Postfach`-Auswahl im `mailclient`-Knotenkopf; der Server gibt nur `id`, `label`, `kind`, `account`, `email_address`, `username` und `default`[private Angabe entfernt]`70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`.


## SnappyMail-Nachfrageentwurf 2026-06-18

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` stellt für `mailclient` die Provider-Aktion `followup` bereit.
- Der Bauteil erzeugt einen editierbaren Entwurf für eine hoefliche Nachfrage mit Ursprungsdatum, Empfänger, Betreff, Message-ID/Versandbeleg und Screenshot-/Belegreferenz, setzt aber `auto_send_allowed=false` und `requires_user_send=true`.
- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` führt im sichtbaren same-origin-SnappyMail-Knoten einen Nachfrage-Hilfsstreifen mit Bezugsfeldern, Tonwahl und Button `Nachfrage vorbereiten`; `dringend` und `aergerlich` bleiben Usertext-Modi ohne vorgefertigten Inhalt.
- Kein automatisches erneutes Senden und keine Messenger-/Mail-Vermischung.
- Ubuntu-Installer-Spiegel ist synchron; Testvertrag: `70_TESTS_AND_SMOKE/integrations/test_mailclient_followup_draft.py`.


## SnappyMail-Userflow-Versandnachweis 2026-06-18

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` stellt für `mailclient` die Provider-Aktion `dispatch-evidence` bereit und speichert Belege unter `runtime/communication/mailclient_dispatch_evidence/<user>/`.
- Erforderlich sind sichtbarer Frontend-Userflow, Empfänger, Betreff, Sendedatum, Message-ID/Versandbeleg, Screenshot-/Belegreferenz, Inhalt-geprüft, Wichtig-Markierung, angeforderter Übermittlungsstatus, angeforderter Lesestatus und Gesendet-Kopie.
- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und `style.css` führen dafür einen kompakten `Versandnachweis`-Dialog im `mailclient`-Knotenkopf; der SnappyMail-Body bleibt ausschließlich originale Webmail-Leinwand.
- Der Bauteil sendet nie, setzt `auto_send_allowed=false` und `resend_allowed=false`; Delivery/Read bleiben ohne echte Rueckmeldung rot.
- Ubuntu-Installer-Spiegel ist synchron; Testvertrag: `70_TESTS_AND_SMOKE/integrations/test_mailclient_dispatch_evidence.py`.


## SnappyMail-Sidebarvertrag 2026-07-01

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css` und die Ubuntu-Installer-Spiegel führen Mailkonto-, Nachfrage- und Versandnachweis-Aktionen ausschließlich als Untermenüs im linken Mail-/SnappyMail-Bereich.
- Der `mailclient`-Knotenheader enthält keine Azubi42-SnappyMail-Hilfsbuttons mehr; der Inhaltsbereich des SnappyMail-Knotens ist ausschließlich für die echte same-origin Webmail-Leinwand reserviert.
- `syncCommunicationNodeHeaderTools` entfernt alte SnappyMail-Header-Toolbars und überspringt Headerfunktionen für `mailclient`.


## Dovecot-Azubi-Hash-Auth 2026-07-01

- `[private Angabe entfernt]`, `60_RUNTIME_TEMPLATES/dovecot/azubi42-dovecot-local.conf` und eine private Auth-Quelle dienen als IMAP-/SMTP-Auth-Quelle, während Dovecot per Prefetch `userdb_uid`, `userdb_gid`, `userdb_home` und `userdb_mail` für die Azubi42-Maildir-Nutzung erhält.
- `pam`-/`passwd`-Fallbacks sind für diesen lokalen SnappyMail-Dovecot verboten, damit keine alten Linux-Homepfade als Mailkonto verwendet werden.
- Matrix-only ohne lokales Passwort wird nicht als IMAP-Login behauptet.


## Zugangsbau-Betreiber-Readiness-Matrix 2026-06-16

- `toolbox/legal/zugangsbau_readiness.py` und der Ubuntu-Installer-Spiegel lesen die vorhandene `zugangsbau_operator_registry.json`[private Angabe entfernt]`40_INTEGRATIONS/legal-jura/zugangsbau/BETREIBER_READINESS_MATRIX_2026-06-16.md`[private Angabe entfernt]`70_TESTS_AND_SMOKE/legal/test_zugangsbau_readiness_contract.py`.

## Zugangsbau-OSCI/EGVP-Ein-Contract-Schiene 2026-06-16

- `toolbox/legal/zugangsbau_readiness.py` reicht `operators.mjp_ebo_egvp_osci` an `toolbox/legal/xjustiz_baukasten.py transport-status` durch.
- Der XJustiz-Baukasten liest denselben privaten Serververtrag aus `[private Angabe entfernt]`, `[private Angabe entfernt]` oder `[private Angabe entfernt]`; separate OSCI-Sonderdateien sind nicht erforderlich.
- Serverseitig wurden Zielverzeichnisse und ein nicht aktives Template unter `[private Angabe entfernt]` vorbereitet; ohne echte Betreiberwerte bleibt `Sende-Freigabe=false`.
- Tests: `test_zugangsbau_readiness_contract.py`, `test_xjustiz_baukasten_contract.py`.


## Zugangsbau-Betreiber-/Zertifikatsplan 2026-06-17

- `40_INTEGRATIONS/legal-jura/zugangsbau/BETREIBER_CERT_VERTRAGSPLAN_2026-06-17.md` und `zugangsbau_operator_application_steps_2026-06-17.json`[private Angabe entfernt]`Sende-Freigabe`.


## Zugangsbau-Morgen-Runbook 2026-06-18

- `40_INTEGRATIONS/legal-jura/zugangsbau/MORGEN_RUNBOOK_OSCI_EGVP_XJUSTIZ_2026-06-18.md` trennt EGVP/OSCI, XJustiz/PDF-A, FIT-Connect/ZBP, BundID/eID und beA in eine konkrete Ausführungsfolge mit Stop-Regeln, privaten Contract-Feldern und Smoke-Gates.
- Der Bauteil ist nur Ablauf-/Kontrollschiene; er setzt keine Betreiberwerte und aktiviert keine Sendefreigabe.


## Zugangsbau-OSCI/EGVP-Private-Prework 2026-06-18

- `40_INTEGRATIONS/legal-jura/zugangsbau/OSCI_EGVP_PRIVATE_PREWORK_STATUS_2026-06-18.md`, `toolbox/legal/zugangsbau_readiness.py` und der Ubuntu-Installer-Spiegel führen den vorbereiteten Serverpfad für echten OSCI/EGVP-Anschluss.
- Serverseitig liegen privater Key, CSR, CSR-Metadaten, Betreiberanfrage und ein aktiver Teilvertrag unter `/etc/azubi42/...` beziehungsweise `/var/lib/azubi42/...`[private Angabe entfernt]`*_file`-Felder im Readiness-Gate zaehlen nur noch, wenn die Datei wirklich existiert.
- Ohne Betreiberzertifikat, Testpostfach/Postfach, Intermediaer, adresslosen Pfad und Send-/Empfangs-Smoke bleibt `Sende-Freigabe=false`.
- Testvertrag: `70_TESTS_AND_SMOKE/legal/test_zugangsbau_readiness_contract.py`.


## Zugangsbau-OSCI/EGVP-Betreiberanfrage-Dispatch 2026-06-17

- Die Betreiberanfrage mit CSR wurde serverseitig als `.eml` unter `/var/lib/azubi42/requests/osci-egvp/` abgelegt und an den lokalen Mailtransport übergeben (`sendmail_exit=0`).
- Dieser Bauteil ist nur Dispatch-/Nachweisstatus; Betreiberannahme, Zertifikat, Postfach, Intermediaer und Send-/Empfangs-Smoke bleiben eigene harte Gates und halten `Sende-Freigabe=false`.


## Zugangsbau-OSCI/EGVP-Dispatch-Evidence-Gate 2026-06-18

- `toolbox/legal/zugangsbau_operator_dispatch_evidence.py`[private Angabe entfernt]`sendmail_exit=0` oder lokaler MTA-Handoff reicht nicht mehr als Zustell- oder Lesebeweis.
- Der Bauteil verlangt für Dispatch einen user-sichtbaren Kanal mit Message-ID, Empfänger, Betreff, Zeitstempel und gesicherter gesendeter Kopie; für Delivery einen Zustellnachweis, Betreiberantwort oder Providerbeleg; für Strict-Mode zusätzlich eine Lesebestätigung.
- Jura-One-Shot-Regel: schwache Nachweislage darf keinen automatischen oder Standard-Resend auslösen; der Bauteil gibt `resend_allowed=false` aus und erlaubt nur Nachweis-Sicherung, Belegimport und Warten auf Betreiberantwort.
- `toolbox/deploy/run_server_smoke_harness.sh` kann diesen Gate mit `AZUBI42_EXPECT_OPERATOR_DISPATCH_RECEIPT=1` hart schalten.
- Testvertrag: `70_TESTS_AND_SMOKE/legal/test_zugangsbau_operator_dispatch_evidence.py`.


## Codex-Matrix-FixIt-Bruecke 2026-06-15

- `toolbox/communication/codex_matrix_inbox_to_fixit.py` führt Matrix-Handoff-Ereignisse aus `/var/lib/azubi42/private/communication/codex-matrix-inbox.local.jsonl` in die bestehende FixIt-/Autofix-Inbox der App.
- Es akzeptiert nur den konfigurierten Absender `@b:42.chat`[private Angabe entfernt]`fixit_current.json`, `fixit_events.jsonl`, `fixit_autofix_current.json` und `fixit_autofix_requests.jsonl`.
- `60_RUNTIME_TEMPLATES/systemd/azubi42-codex-matrix-to-fixit.service/.path` triggert diesen Import bei neuer Inbox-Aenderung.
- Ausführungsgrenze: Das Tool startet Codex nicht selbst; Codex bleibt am vorhandenen FixIt-Codex-Worker mit Scope- und Content-Safety-Guard.


## Azubi42Tester-Testaccount-Bootstrap 2026-06-15

- `toolbox/communication/azubi42_tester_bootstrap.py`[private Angabe entfernt]`provider-test-accounts.azubi42tester.local.md` wird jetzt nach dem Schreiben auf `0600` gesetzt.
- Testvertrag: `70_TESTS_AND_SMOKE/integrations/test_azubi42_tester_bootstrap.py`.


## Codex-Matrix-Server-Fallback 2026-06-15

- Der Listener-Bauteil ist auf Serverbetrieb gehärtet.
- `toolbox/communication/codex_matrix_handoff.py` setzt neu geschriebene Inbox-/State-Dateien unter POSIX auf `0600`; `60_RUNTIME_TEMPLATES/systemd/azubi42-codex-matrix-listener.service` setzt `UMask=0077`.
- Live-Status: `azubi42-codex-matrix-listener.service` laeuft auf `forgejo.buschitut.eu` gegen die echte 1:1-DM `@azubi42tester:42.chat` zu `@b:42.chat`; manueller Server-Smoke `listen-once` schrieb eine neue Fremdnachricht in `/var/lib/azubi42/private/communication/`.
- Dieser Bauteil ist ein Handoff-/Inbox-Fallback für geschlossene Desktop-Sessions, keine direkte Einspeisung in den Codex-Desktop-Thread ohne Heartbeat-/Thread-Bruecke.


## Codex-Matrix-Listener 2026-06-15

- `toolbox/communication/codex_matrix_handoff.py` führt zusätzlich zu Status/Senden/Poll die Aktionen `listen-once` und `listen-loop`.
- Neue Matrix-DM-Ereignisse von `@b:42.chat`[private Angabe entfernt]`runtime/private/communication/codex-matrix-inbox.local.jsonl` geschrieben; eigene Listener-Nachrichten werden als gesehen markiert, aber nicht als Meister-Anweisung übernommen.
- `toolbox/communication/start_codex_matrix_listener_windows.ps1` startet den lokalen Windows-Listener im Vordergrund oder hidden als Hintergrundprozess.
- `60_RUNTIME_TEMPLATES/systemd/azubi42-codex-matrix-listener.service` ist die Server-Fallback-Schablone für geschlossene Desktop-Sessions.
- Testvertrag: `70_TESTS_AND_SMOKE/integrations/test_codex_matrix_handoff_listener.py`; Live-Smoke: `listen-once` gegen die echte DM `@azubi42tester:42.chat` zu `@b:42.chat`, eine neue Meister-Nachricht übernommen, eine Self-Message ignoriert.


## Communication-Provider-Betreiber-Smoke 2026-06-15

- `toolbox/communication/provider_contracts_smoke.py`[private Angabe entfernt]`getMe` und `getUpdates`; Slack nutzt `auth.test` und `conversations.list`; WhatsApp nutzt den Meta-Graph-Phone-Number-Status.
- `--allow-send` ist zusätzlich zum echten Zielmapping und `provider_send_enabled` erforderlich, bevor Telegram `sendMessage`, Slack `chat.postMessage` oder WhatsApp `/messages` überhaupt ausgeführt werden.
- Ohne Betreiberwerte meldet der Bauteil die fehlenden Gruppen und bleibt gesperrt bis zum Nachweis.
- Ubuntu-Installer-Spiegel: `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_contracts_smoke.py`; Testvertrag: `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py`.


## Communication-Provider-Operator-Guidance 2026-06-15

- `toolbox/communication/provider_contracts_bootstrap.py` und `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`[private Angabe entfernt]`configured` und `Sende-Freigabe`[private Angabe entfernt]`70_TESTS_AND_SMOKE/integrations/test_communication_connectors_contract.py`.

## 2026-06-15

- Der ausgegebene Smoke-Befehl nutzt jetzt den echten CLI-Schalter `[private Angabe entfernt]`; der Contract-Test sperrt den alten falschen `--auth`-Hinweis.


## Communication-Provider-Login-Fix 2026-06-15

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und der Ubuntu-Installer-Spiegel trennen sichtbaren Provider-Login wieder hart von API-/Vertragsknoten.
- SnappyMail bleibt gleiche-Origin-Webmail, Matrix bleibt eigener Matrix-API-Knoten, externe Provider wie Telegram, WhatsApp, Slack, Discord, LinkedIn, Facebook, Instagram, TikTok, Signal, Teams und Google Chat öffnen im normalen Browser keinen Ersatz-/API-Knoten.
- Ihre Original-Webapps laufen nur im Native-/Server-GUI-WebView.
- Kein iframe, kein Screenshottransport, kein nachgebauter Anbieterclient, kein Dienstvertrag als Login-Ersatz.


## SnappyMail-XToken-/Dienstklick-Fix 2026-06-14/15

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`[private Angabe entfernt]`01_CORE/01_7_Communication.js` waehlt beim Dienstklick den real möglichen Modus: SnappyMail bleibt gleiche-Origin-Webmail; Matrix öffnet den Matrix-API-Knoten; externe Provider ohne Native-WebView-Host erzeugen keinen Login-Ersatzknoten.
- Externe Anbieter-Webapps bleiben Native-WebView-only; kein iframe, kein Screenshottransport, kein nachgebauter Anbieterclient.


## Communication-Server-GUI-Audit 2026-06-15

- `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py` prüft den Dienstklickvertrag live auf `azubi42-jura` mit temporaer freigeschaltetem User.
- Der Audit akzeptiert im normalen Browser SnappyMail nur als same-origin Include, Matrix nur als Matrix-Knoten und externe Provider ohne Native-WebView nur als ehrlichen Nullknoten.
- API-/Dienstvertragsknoten duerfen externe Provider nicht mehr als Login-Ersatz vertreten.
- Bilder, Canvas, iframe, BrowserGateway, externe Tabs und Missing-WebView-Stubs bleiben rot.


## Communication-Dienstraum-/Providervertrag 2026-06-14

- Matrix ist nur der eigene Dienst `matrix`, nicht der Sammeltransport für Telegram, WhatsApp, Slack oder weitere externe Provider.
- Aktive Raum-/Chatlisten heissen dienstspezifisch (`telegram_rooms`, `whatsapp_rooms`, `slack_rooms`, `mailclient_rooms` beziehungsweise `<dienst>_rooms`) und sind Bedien-/Zielräume im Userfluss.
- `provider_send_enabled` ist der primaere Sendefreigabe-Schalter.
- `bridge_rooms`, `bridge_send_enabled` und `matrix_bridge_ready` bleiben nur Legacy-/Regression-Guard: dadurch kann kein gemappter Matrix-Raum mehr `configured`, `default_target_present` oder `Sende-Freigabe` für Telegram/WhatsApp/Slack öffnen.
- Externe Dienste müssen über Original-Webclient, offizielle API/OAuth/Bot-Pfade oder eine pro User autorisierte Provider-Session laufen.


## Azubi42Tester-Provider-Testpfad 2026-06-14

- `toolbox/communication/azubi42_tester_bootstrap.py` legt den lokalen technischen Testnutzer `azubi42tester` mit Matrix-Freigabe `@azubi42tester:42.chat`, privater Passwortdatei und dienstweisen Provider-Testnotizen im git-ignorierten Runtime-Bereich an.
- Der Baustein funktioniert im Hauptrepo-Layout, im Live-App-Root-Layout, im Ubuntu-Installer-Layout und per `--live-defaults` für `[Serverpfad]` plus `[Serverpfad]`; wiederholte `--auth-config`-Werte werden als Mehrziel-Lauf verarbeitet.
- `toolbox/deploy/deploy_live_winscp.ps1` packt ihn in den bestehenden Communication-Deployblock.
- Dienstabdeckung: Matrix, Telegram, WhatsApp, Slack, Mailclient/SnappyMail, Signal, Discord, LinkedIn, Facebook, Instagram, TikTok, Teams und Google Chat.
- Er schreibt keine externen Fakeaccounts, gibt keine Passwörter aus und schaltet keine Provider auf `Sende-Freigabe`, solange echte Betreiber-/Dashboard-/Bridge-/Mailwerte fehlen.
- Testvertrag: `70_TESTS_AND_SMOKE/integrations/test_azubi42_tester_bootstrap.py`.


## Provider-Vertragsabschluss-Gate 2026-06-14

- `toolbox/communication/provider_contracts_bootstrap.py`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` und die Ubuntu-Installer-Spiegel führen für jeden Communication-Provider eine maschinenlesbare Vertragsgruppenliste.
- Telegram, WhatsApp, Slack, Mailclient und weitere Provider melden `contract_groups`, `missing_contract_groups`, `next_missing_fields` und `contract_closure_level`; CamelCase-Spiegel sind für Frontend/Smokes identisch.
- Die Gruppen trennen Backend-Vertrag, Zielraum/Zielchat, Sendefreigabe, Mail-TLS, Paperless-Anlagenfluss und Inhaltsverschlüsselung.
- `Sende-Freigabe` darf nur grün werden, wenn die private serverseitige Secret-/Provider-/Zielkonfiguration diese Gruppen echt schließt.


## Provider-WebView-Einzelbild-Audit 2026-06-14

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` schreibt jetzt pro Dienst ein eigenes WebView-Bild und haengt URL, Titel, Hostprüfung, Capture-Quelle und Dateigröße an den JSON-Report.
- 0-Byte-Bilder bleiben rot; bei leeren Provider-WebContents wird der sichtbare WebView-Bereich aus dem Native-Host-Fenster gecroppt.
- Das ergänzt den bisherigen Gesamt-Screenshot, damit Matrix, Telegram, WhatsApp, Slack, Discord, LinkedIn, Facebook, Instagram, TikTok, Signal, Mailclient/SnappyMail, Teams und Google Chat einzeln gegen ihre Original-Weblogin-Oberflächen geprüft werden können.
- `PROVIDER_VISUAL_AND_TEST_CONTRACTS_2026-06-14.md`, README und Contract-Test halten fest: diese Bilder sind reine QA-Artefakte und duerfen nicht als Anbieterinhalt in Azubi42 zurückgerendert werden; Sendebereitschaft bleibt an echte Bridge-/API-/OAuth-/QR-/Device-/Mailvertraege gebunden.


## SnappyMail-Proxy/Asset-Gate 2026-06-13

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` und der Ubuntu-Installer-Spiegel führen den lokalen SnappyMail-Dienst `http://127.0.0.1:49080` unter `./snappymail/`.
- Der Proxy setzt für SnappyMail same-origin-Frame-Header, rewritet HTML/JS/CSS inklusive escaped `\/snappymail\/...`-Pfaden auf den Instanzpfad und verhindert damit Root-Asset-Lecks.
- `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py` wertet Snappy-HTTP-Fehler, Page-Errors und Request-Failures als harte Fehler.
- Live-Nachweis `azubi42-jura`: SnappyMail-Loginfläche im Knoten sichtbar; Snappy-Session `200`; keine Snappy-404, keine Page-Errors, keine Request-Failures.
- Öffentliche Pfade: `https://forgejo.buschitut.eu/azubi42-jura/snappymail/`, `https://forgejo.buschitut.eu/azubi42-dev/snappymail/`; Adminpfad: `.../snappymail/?admin`.


## SnappyMail-Webapp-Pfad 2026-06-13

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und der Ubuntu-Installer-Spiegel führen `mailclient`/SnappyMail jetzt mit `loginUrl: './snappymail/'` und `appUrl: './snappymail/'`.
- Linke SnappyMail-Dienstwahl landet damit bei der originalen SnappyMail-Webmail-Leinwand statt im generischen Mail-Vertragsknoten: als interne gleiche-Origin-App im normalen Azubi42-Browser per HTML-`object`, im Native-/Server-GUI-Host weiterhin kompatibel zur echten Webapp-Schiene.
- Externe Provider bleiben Native-WebView-only.
- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`, `[private Angabe entfernt]` und die Installer-Spiegel normalisieren zusätzlich `webmail_admin_url`/`snappymail_admin_url` für Admin-/Setup-Pfade. eRV-/OSCI-/SMTP-Sendefreigaben bleiben unveraendert an echte private Betreiber-/Mailwerte gebunden.


## Communication-Worktree-Guard 2026-06-13

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `01_7_Communication.js`, `01_10_ViewStartScreens.js`, `view_start_menus/communication_menu.js` und die Ubuntu-Installer-Spiegel sichern den aktuellen Communication-Einstieg auf der gemeinsamen Workspace-Canvas `#view-org`.
- Die alte statische Hauptfläche `#view-communication` ist kein aktiver Bauteil mehr; Tests schlagen an, wenn sie zurückkehrt.
- Startscreen und Menü loeschen über `#btn-communication-sidebar-clear`; der alte `#btn-communication-clear`-Listener ist entfernt.
- Auditvertrag: `00_META/COMMUNICATION_WORKTREE_AUDIT_2026-06-13.md`, `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs`, `70_TESTS_AND_SMOKE/ui/audit_communication_browser_layout.mjs`.


## Zugangsbau-72h-Bedienfluss 2026-06-13

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` und der Ubuntu-Installer-Spiegel führen jetzt den echten Bedienweg zum vorhandenen Paket-/Nachweis-Backend.
- Im Zugangsbau-Panel waehlt der User den Betreiberweg `mjp_ebo_egvp_osci` für Buerger/MJP oder `bea` für Anwalt/Kanzlei, traegt Empfänger, Aktenzeichen, Betreff und Paperless-Dokument-IDs ein, ruft `POST /api/legal/zugangsbau/preflight-package` auf und bekommt Run-ID, Blocker, Hashes und amtliche Handoff-URL.
- Nach der Aktion im amtlichen Betreiberweg speichert `POST /api/legal/zugangsbau/receipt-record` Quittung, eEB, Fehlermeldung oder Betreiberantwort gehasht.
- Testvertrag: `70_TESTS_AND_SMOKE/ui/audit_zugangsbau_frontend.mjs`; Backend-Vertrag: `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py` und `test_xjustiz_baukasten_contract.py`.


## Zugangsbau-beA-Anwalts-eRV-Handoff 2026-06-13

- `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json` und der Ubuntu-Installer-Spiegel führen `bea` jetzt als eigenständigen, rollen-gesperrten Anwalts-eRV-Pfad mit offiziellen Quellen `brak.de`, `bea-brak.de`, `egvp.justiz.de/Drittprodukte` und `portal.beasupport.de`.
- Erlaubt sind nur offizielle beA-Web/App-/Kanzleisoftware- oder registrierte Providerpfade; verboten sind Provider-UI-Klone, iframe, Screenshottransport, geteilte Berufstraeger-Zertifikate, PIN-Speicherung und Sendefreigabe ohne Rollen-/Providerbeleg.
- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` und der Installer-Spiegel haben dafür einen eigenen beA-Testpfad in `build_zugangsbau_operator_test_evidence`: offizielle Seiten werden read-only gepingt, `handoff_ready` darf bei erreichbaren Originalseiten sichtbar werden, `activation_ready` bleibt aber ohne `lawyer_role_verified`/Kanzleiautorisierung, offiziellen beA-Zugangspfad, userseitige Karte/Zertifikat und Send-/Receipt-Smoke aus.
- Tests: `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py` erwartet beA als sechsten Betreiber im Jura-Ping; Live-Nachweis auf `azubi42-jura`: beA 4/4 offizielle Pongs, Gesamtping 6 Tests/15 Pongs/0 activation_ready/6 fail_closed.
- Contract-Lauf mit XJustiz-Baukasten: 24/24 grün.


## Zugangsbau-eRV-72h-Betriebswege 2026-06-12

- `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json` führt für `mjp_ebo_egvp_osci` den Buerger-eRV-Pfad über amtliches MJP/BundID und für `bea` den rollen-gesperrten Anwalts-eRV-Pfad über beA-Webanwendung/App/Kanzleisoftware.
- `bea` ist im Jura-Scope sichtbar, bleibt aber ohne Rolle/Vertrag gesperrt bis zum Nachweis.
- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` reicht `operational_72h_lane`/`operational72hLane`[private Angabe entfernt]`10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` rendert den 72h-Betriebsweg pro Betreiber.
- Doku: `40_INTEGRATIONS/legal-jura/zugangsbau/BETRIEBSFAEHIGKEIT_ERV_72H_2026-06-12.md`.
- Testvertrag: `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py`.


## Zugangsbau-eRV-Paket-/Nachweis-API 2026-06-12

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt `POST /api/legal/zugangsbau/preflight-package` und `POST /api/legal/zugangsbau/receipt-record`.
- Der Paket-Preflight nutzt den bestehenden `toolbox/legal/xjustiz_baukasten.py` statt eines zweiten Builders, zieht Anlagen bevorzugt aus Paperless-Dokument-IDs in eine private Runtime-Stagingfläche, baut `xjustiz_nachricht.xml`, `strukturierte_daten.xml`, `manifest.json`, `validation_report.json` und `xjustiz_package.zip`, gibt aber nur Dateinamen/SHA256/Gates aus.
- `Sende-Freigabe` bleibt ohne echten OSCI/EGVP-Transportvertrag geschlossen; MJP/beA-Web-/App-Versand ist als offizieller Handoff getrennt.
- Die Nachweis-API speichert Sende-/Fehler-/Receipt-Texte gehasht unter privater Runtime.
- Testvertrag: `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py`.


## Notiz 2026-05-16 (Modellrouting/Antwortsystem)

- Transparenz-Repairplan liegt unter `../reports/azubi42_modellrouting_reparaturplan_2026-05-16.md`; Regelwerk unter `AZUBI42_MODELLROUTING_REGELWERK.md`.


## XJustiz-OSCI/EGVP-Smoke-Evidence-Gate 2026-06-12

- `toolbox/legal/xjustiz_baukasten.py` akzeptiert den Transport-Smoke nicht mehr als blosse vorhandene Datei.
- `send_receive_receipt_smoke` wird erst grün, wenn die JSON-Evidence Zeitpunkt, Endpoint/Intermediaer, Message-ID, Request-SHA256, Response-/Receipt-SHA256, Sendestatus und Empfangs-/Quittungsstatus enthält.
- `validator-status`, `transport-status` und `build --require-send-ready` nutzen dasselbe harte Gate; schwache Smoke-Dateien bleiben gesperrt bis zum Nachweis.
- Der Baukasten erkennt Repo-Layout und App-Root-Layout für den XJustiz-Cache, damit `[Serverpfad]` und `[Serverpfad]` denselben Code nutzen.
- Live-Serverstatus: XSD, Schematron, Codelists und PDF/A grün; OSCI/EGVP-Transport ohne privaten Vertrag korrekt rot.
- Doku, private Strukturvorlage, Contract-Test und Ubuntu-Installer-Spiegel sind synchron.


## SnappyMail-/Mail-Hardening-Profil 2026-06-12

- `40_INTEGRATIONS/legal-jura/zugangsbau/SNAPPYMAIL_HARDENING_PROFILE_2026-06-12.md` fixiert die harten Konfigurationswerte für SnappyMail/Mailclient: normale Mail, kein eRV-Transport, TLS-Pflicht, Inhaltsverschlüsselung default `ON`, keine Klartext-/Provider-Sendefreigabe ohne ausdruecklichen Testvertrag, ausgehende Anlagen aus `user_paperless_toc` und eingehender Anlagenimport in User-Paperless.
- `PRIVATE_CONTRACT_TEMPLATE_MAILCLIENT.local.example.json`[private Angabe entfernt]`70_TESTS_AND_SMOKE/integrations/test_communication_connectors_contract.py`[private Angabe entfernt]`v27.2.249` / `27269`.


## SnappyMail-/Mail-Paperless-Encryption-Gate 2026-06-12

- `azubi42_server.py`, `01_7_Communication.js`, `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`, `provider_contracts_apply.py`, `provider_contracts_bootstrap.py` und `provider_contracts_fixture.py` trennen Mail endgültig von Messenger-Communication und eRV/OSCI/EGVP.
- IMAP/SMTP-TLS ist Pflicht; `content_encryption_required=true`[private Angabe entfernt]`v27.2.248` / `27268`.


## Communication-Credential-/Provider-Contract 2026-06-12

- `01_7_Communication.js`, `azubi42_server.py`, `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`, `[private Angabe entfernt]` und der Ubuntu-Installer-Spiegel führen Provider-Setup jetzt sichtbar aktiv, aber secret- und sendegesichert.
- SnappyMail/Mailclient hat keinen harten Mailhost mehr; Webmail-/SnappyMail-URL kommt nur aus dem serverseitigen Vertrag (`provider_webapp_url`/`webmail_url`[private Angabe entfernt]`smoke-provider-webviews.js`[private Angabe entfernt]`v27.2.246` / `27266`.


## Communication-Userfluss/WebView-Strict 2026-06-12

- `01_7_Communication.js` führt normale Provider-Dienstwahl aus Sidebar, Dashboard, Template und Dienstkachel über `openCommunicationServiceFromUserClick` in den Native-WebView-Pfad.
- Ohne Native-/Server-GUI-Host wird kein Anbieterinhalt nachgebaut; API-/Bridge-Knoten bleiben expliziter Admin-/Connectorpfad.
- Raum-/Chatknoten tragen echte Nachrichten, Sendefeld und die Dienstaktionen Sync, Verlauf, Datei, Bild, Audio, Anruf und Video; nicht belegte Providerfunktionen bleiben gesperrt bis zum Nachweis.
- `style.css`, Shared-Core, Versionmanifest und Ubuntu-Installer-Spiegel sind synchron.
- QA: Server-Web-Smoke gegen `azubi42-jura` ohne Fakeknoten; Native-Azubi-Smoke `provider_webview_smoke_azubi_20260612T081557Z.json` mit 12/12 Provider-WebViews, `iframe=0`, Bildersatz `0`.


## Communication-Admintext-Gate 2026-06-12

- `01_7_Communication.js` rendert interne Connector-/Schutzdetails nur noch bei explizitem Adminschalter (`communicationAdmin=1`, `data-communication-admin="1"` oder LocalStorage).
- Normale SnappyMail-/Provider-Knoten zeigen Dienst, Ziel, Status, Räume/Chats und Aktionen, aber keine internen iframe-/Screenshot-/nicht belegter Zustand-Sperrtexte als Nutzerinhalt.
- Shared-Core und Ubuntu-Installer-Spiegel sind synchron.


## Communication-Sidebar-/Healing-Fix 2026-06-12

- `01_7_Communication.js` hat einen eigenen Capture-Clickpfad für `#communication-sidebar-services`, damit Dienst-, Raum- und Sidebar-Aktionsklicks nicht mehr von anderen UI-Layern geschluckt werden.
- Echte API-Knoten mit `data-communication-mode="web"` und `data-communication-native="matrix|provider-api|room"` sind vom nicht belegter Zustand-Webapp-Aufräumer ausgenommen; nur Browsergateway-, Screenshot-, Native-WebView-Fehlersurrogat- und Missing-Connector-Knoten werden entfernt.
- Shared-Core und Ubuntu-Installer-Spiegel sind synchron.


## Communication-Mailclient-Frontend 2026-06-12

- `01_7_Communication.js` führt `mailclient` jetzt auch in der sichtbaren Communication-Serviceleiste.
- Der Dienst heisst dort SnappyMail, nutzt denselben serverseitigen IMAP/SMTP/Webmail-Vertrag wie `/api/communication/mailclient/*`, bleibt Hilfskommunikation und setzt kein eRV-/EGVP-/OSCI-`Sende-Freigabe`.
- Shared-Core und Ubuntu-Installer-Spiegel sind synchron.


## Zugangsbau-Bank-ID-/Bank-KYC-Zusatzanker 2026-06-12

- `zugangsbau_operator_registry.json` führt `bank_kyc_provider` jetzt als Jura-Zusatzanker mit eigener `bank_identity_policy`.
- Bank-ID/KYC darf nur über offiziellen Provider-Redirect, offizielle App oder serverseitigen Betreibervertrag laufen; Azubi42 baut kein Bank-Login nach und speichert keine Bankpasswoerter, PIN/TAN, OTP, Umsaetze, Kontostaende oder Roh-IBAN.
- Aktivierung verlangt Providervertrag, eIDAS-/KYC-Assurance, Betreiberakzeptanz für den konkreten Jura-/Zugangspfad und einen adresslosen Nutzerpfad.
- `azubi42_server.py` reicht `bank_identity_policy`/`bankIdentityPolicy`[private Angabe entfernt]`Sende-Freigabe` weiter geschlossen.
- Doku: `README.md`, `OFFIZIELLE_QUELLEN_2026-06-06.md`, `ANSCHLUSSPLAN_OSCI_EGVP_XJUSTIZ_2026-06-12.md`, `ANSCHLUSS_CHECKLISTE_OSCI_EGVP_XJUSTIZ_2026-06-12.md`; Strukturvorlage: `PRIVATE_CONTRACT_TEMPLATE_BANK_ID.local.example.json`.


## Zugangsbau-SAFE-/Identitaetsanker-Regel 2026-06-12

- `zugangsbau_operator_registry.json` führt `safe_identity_anchor_required_fields_only` und `safe_identity_anchor_forbids_address_fields`.
- `bundid_eid.identity_anchor_policy` erlaubt nur `issuer`, `sub` und betreiberbestaetigte Pflichtclaims als Identitaetsanker; Adress-, Strassen-, Wohnstatus-, Zustell- und SAFE-Verzeichnisdaten sind verboten.
- `mjp_ebo_egvp_osci.address_dependency_policy` trennt Identitaet, Zustellung und SAFE-Adressbuch und verlangt die neue Vertragsgruppe `addressless_user_compatibility`; ohne bestaetigten adresslosen oder gleichwertigen barrierefreien Pfad bleibt der Dienst gesperrt bis zum Nachweis.
- `azubi42_server.py` reicht `identity_anchor_policy` und `address_dependency_policy`[private Angabe entfernt]`README.md`, `ANSCHLUSSPLAN_OSCI_EGVP_XJUSTIZ_2026-06-12.md`, `ANSCHLUSS_CHECKLISTE_OSCI_EGVP_XJUSTIZ_2026-06-12.md`; Testvertrag: `test_zugangsbau_registry_contract.py`.


## Zugangsbau-OSCI/EGVP-Testanschlussunterlagen 2026-06-12

- `40_INTEGRATIONS/legal-jura/zugangsbau/PRIVATE_CONTRACT_TEMPLATE_OSCI_EGVP.local.example.json`[private Angabe entfernt]`BETREIBER_ANTRAG_OSCI_EGVP_TESTZUGANG_2026-06-12.md` ist der kurze Anfragebaustein für Test-/Sandboxzugang, `ANSCHLUSS_CHECKLISTE_OSCI_EGVP_XJUSTIZ_2026-06-12.md` ist die Gate-Checkliste bis `Sende-Freigabe=true`, und `SNAPPYMAIL_HILFSKOMMUNIKATION_POLICY_2026-06-12.md` hält SnappyMail/SMTP/IMAP als Hilfskommunikation getrennt vom rechtswirksamen OSCI/EGVP-Transport.
- Der Ubuntu-Installer-Spiegel führt dieselben Dateien.


## Zugangsbau-OSCI/EGVP-Servertransportstatus 2026-06-12

- `azubi42_server.py` führt das Baukasten-Transportgate jetzt auch im Server-Login-/Live-Test-Pfad.
- Für `mjp_ebo_egvp_osci`[private Angabe entfernt]`transport_status` mit Schema `azubi42.zugangsbau.osci_egvp_transport_gate.v1` ausgegeben.
- Geprüft werden Test-/Userpostfach, Zertifikat, Schlüssel, EGVP/OSCI-Intermediaer und Send-/Receive-Smoke; Dateibelege werden nur mit Name, Größe und SHA256 inventarisiert.
- Der Login-Ping zeigt eine `[transport]`-Terminalzeile.
- SnappyMail/IMAP/SMTP bleiben Hilfskommunikation und öffnen keine eRV-Sendebereitschaft.


## Zugangsbau-Anschlussplan und ERVB-Dateinamengate 2026-06-12

- `ANSCHLUSSPLAN_OSCI_EGVP_XJUSTIZ_2026-06-12.md` führt die echte Anschlussreihenfolge für Postfach/Testpostfach, Zertifikat, Schlüssel, Intermediaer, Send-/Receive-Smoke, `transport-status`, Login-Ping und XJustiz-Paketbau.
- `xjustiz_baukasten.py` normalisiert technische Anlagen-Dateinamen für das ERV-Paket auf maximal 90 Zeichen mit Buchstaben/Ziffern/Unterstrich/Bindestrich und Punkt nur vor der Dateiendung; der Originalname bleibt im Manifest.
- Der Ubuntu-Installer-Spiegel ist synchron.


## Zugangsbau-ERV-OSCI-Vertrag 2026-06-11

- `zugangsbau2342a.txt` ist als harte ERV-Architektur in den Zugangsbau übernommen.
- Der Bauteil behandelt MJP/eBO/EGVP nicht als normalen SMTP-/IMAP-/SnappyMail-Client, sondern als Serverpipeline `Browser -> Server-Backend -> PDF/A/OCR -> XJustiz-Builder -> OSCI-Client -> EGVP-Intermediaer`.
- Die Registry führt für `mjp_ebo_egvp_osci` einen `component_contract` mit OSCI-Transport, Server-Backend-Schritten, Zertifikat-/Tresorpflicht und amtlicher OSCI-Hilfsmittelquelle; `xjustiz_validation` führt einen `builder_contract` für `xjustiz_nachricht.xml`, `strukturierte_daten.xml`, PDF/A-Anlagen und XSD/Schematron/Codelist-Gates.
- `azubi42_server.py` liefert `build_erv_osci_toolchain_smoke()` für Java, Ghostscript, ocrmypdf und Tesseract; der öffentliche Login-Ping zeigt diese Belege als `[tool]`-Terminalzeilen.
- Live auf `azubi42-dev` und `azubi42-jura` sind OpenJDK 21.0.11, Ghostscript 10.02.1, ocrmypdf 15.2.0 und Tesseract 5.3.4 sichtbar, aber Aktivierung bleibt gesperrt bis zum Nachweis, bis OSCI-Bibliothek, User-/Testpostfach, Zertifikat/Tresor, Zielkennung und Sende-/Empfangs-Smoke belegt sind.
- Admin-Guide: `40_INTEGRATIONS/legal-jura/zugangsbau/ADMIN_GUIDE_ERV_OSCI_XJUSTIZ_PDFA_2026-06-11.md`; Testvertrag: `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py`.


## Zugangsbau-OSCI-Maven-Smoke 2026-06-11

- Der MJP/eBO/EGVP-Bauteil prüft die amtliche OSCI-Java-Bibliothek jetzt als Maven-Artefakt `de.osci:osci-bibliothek`.
- `azubi42_server.py` liest `maven-metadata.xml`, bestimmt die Release-Version, laedt POM und JAR aus Maven Central, vergleicht beide gegen die jeweiligen `.sha256`-Sidecars und gibt den Beleg im Login-Preflight als `[artifact]` aus.
- Der neue Status `official_osci_library_hash_verified_contract_required` ist nur ein hashgeprüfter Bibliotheksbeleg; `activation_ready` bleibt 0, bis User-/Testpostfach, Zertifikat/Schlüssel, Zielkennung, Intermediaer und echter EGVP-/MJP-Sende-/Empfangs-Smoke vorhanden sind.


## Zugangsbau-XJustiz-Schemainventar 2026-06-11

- Der XJustiz-Bauteil prüft die amtlichen XJustiz-ZIP-Pakete jetzt tiefer als nur auf Download/Hash.
- `azubi42_server.py` liest die gecachten XSD-/Schematron-ZIPs, parst jede `.xsd`/`.sch` als XML, zaehlt Codelist-XSDs und verlangt die zentralen Dateien `xjustiz_0000_grunddatensatz`, `xjustiz_0005_nachrichten`, `xjustiz_2200_eeb` und `xjustiz.eeb`.
- Der Login-Preflight zeigt den Beleg als `[schema]`; Versand bleibt weiter blockiert, bis konkrete Versandobjekte dokumentweise gegen XSD/Schematron/Codelists validiert sind.


## XJustiz-Baukasten 2026-06-11

- `toolbox/legal/xjustiz_baukasten.py` führt den nächsten echten Schritt vom Schemainventar zum Prüfpaket aus.
- Der Baustein erzeugt aus serverseitigem JSON `xjustiz_nachricht.xml` mit amtlichem Basisnachricht-Root `nachricht.gds.basisnachricht.0005006` und `xjustizVersion="3.6.2"`, `strukturierte_daten.xml` als Anlagenmanifest, kopierte Anlagen, `manifest.json`, `validation_report.json` und `xjustiz_package.zip`.
- `validator-status` ist als fester Preflight ergänzt und meldet JSON für `xmlschema`, `lxml.etree`, `elementpath`, XSD-/Schematron-Cache, Codelist-XSDs und PDF/A-Validatorstatus.
- XSD, GDS-Schematron, Codelists und PDF/A-Anlagenvalidator laufen konkret; PDF/A-Marker werden nur diagnostiziert und nicht als `pdfa_ok` akzeptiert.
- Temp-Entpackung und Selftest laufen unter `runtime/tmp/xjustiz_baukasten/`, damit die Windows-Steuerumgebung keinen gesperrten System-Temp-Pfad voraussetzt.
- Ohne OSCI/EGVP-Transportgate bleibt `Sende-Freigabe=false` und `send_possible=false`; der Transport-Preflight liest private Vertragsdaten aus Payload-`transport_contract` oder `AZUBI42_OSCI_EGVP_CONTRACT_JSON`.
- Dependencies: `toolbox/legal/requirements-xjustiz.txt`.
- Spiegel: `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/xjustiz_baukasten.py`.
- Testvertrag: `70_TESTS_AND_SMOKE/legal/test_xjustiz_baukasten_contract.py`.


## XJustiz-Transportgate 2026-06-12

- Der Baukasten führt den OSCI/EGVP-Teil jetzt als eigenes Gate `azubi42.zugangsbau.osci_egvp_transport_gate.v1`.
- Geprüft werden Gruppen `mailbox_or_test_mailbox`, `certificate_and_key`, `egvp_intermediary_contract` und `send_receive_receipt_smoke`[private Angabe entfernt]`validator-status` enthält dasselbe Gate für den Login-/Zugangsbau-Preflight.


## XJustiz-Transportstatus 2026-06-12

- `toolbox/legal/xjustiz_baukasten.py transport-status --contract-json <private-osci-egvp-contract.local.json>`[private Angabe entfernt]`Sende-Freigabe` werden darf.


## XJustiz-PDF/A-Gate 2026-06-12

- Der Baukasten erkennt externe PDF/A-Validatoren jetzt über `AZUBI42_PDFA_VALIDATOR_CMD`, PATH oder den lokalen Toolcache `C:\Users\User\.azubi42\tools\verapdf-1.30.2\azubi42-verapdf.bat`.
- VeraPDF 1.30.2 ist mit portabler Temurin-JRE 21.0.11 installiert; `validator-status` meldet das PDF/A-Gate bei echtem Validator als ready, während PDF/A-Marker weiter nur Diagnose bleiben.
- Der echte Smoke nutzt offizielle veraPDF-Corpus-Dateien `pdfa-1b-pass.pdf` und `pdfa-1b-fail.pdf`: positive Anlagen bekommen `pdfa_ok=true`, negative Anlagen blockieren mit `attachment_manifest_or_pdfa_gate_not_passed`.
- Versand bleibt weiter geschlossen, solange das OSCI/EGVP-Transportgate fehlt.


## Zugangsbau-FIT-Connect-SDK-Smoke 2026-06-11

- Der FIT-Connect/ZBP-Bauteil prüft zusätzlich zum Test-JWKS jetzt das Maven-Artefakt `dev.fitko.fitconnect.sdk:client`.
- Der bestehende Maven-Smoke liest Metadata, POM, JAR und `.sha256`-Sidecars in einem eigenen FIT-Connect-Cache und zeigt den Beleg im Login-Preflight als `[sdk]`.
- Der Status `official_test_environment_and_sdk_verified_contract_required`[private Angabe entfernt]`activation_ready` 0.


## Zugangsbau-Provider-Smokes 2026-06-11

- Der Login-Preflight und `/api/legal/zugangsbau/test?module=jura` liefern für echte Test-/Infoziele jetzt nicht nur Erreichbarkeit, sondern belastbare Betreiberantworten.
- XJustiz laedt die amtlichen ZIP-Pakete `XJustiz_3_6_2_XSD.zip` und `XJustiz_3_6_2_SCH.zip`, hasht sie, prüft ZIP-Integritaet und zaehlt XSD-/Schematron-Dateien.
- FIT-Connect liest die Test-JWKS als JSON, hasht die Antwort und zaehlt Schlüssel/KIDs.
- Runtime-Cache: `app_v27_multimedia/runtime/legal-jura/zugangsbau/official_cache/` ohne Commit; wenn dieser Pfad serverseitig nicht beschreibbar ist, fällt der Download kontrolliert auf den System-Temp-Cache zurück und bleibt als Smoke-Beleg sichtbar.
- Der Bauteil bleibt gesperrt bis zum Nachweis: amtliche Paket-/JWKS-Belege ersetzen keinen Betreibervertrag, keine Zertifikate/Secrets, keine Destination, keine Sendefreigabe und keine konkrete XJustiz-Dokumentvalidierung.


## Zugangsbau-Login-Preflight 2026-06-11

- `azubi42_server.py` führt vor dem Login den öffentlichen, read-only Endpunkt `/api/public/zugangsbau/login-ping?module=jura`.
- Der Bauteil nutzt die bestehende Zugangsbau-Registry und die offiziellen Betreiber-Testprofile, gibt aber nur Terminalzeilen mit Ping/Pong, Gate-Status, Datenschutzgrenze und Summary aus.
- Die Loginseite zeigt diesen echten Pong im Block `Betreiber-Ping vor Login`[private Angabe entfernt]`test_zugangsbau_registry_contract.py`; Shared-Core und Ubuntu-Installer-Spiegel synchron.


## AZUBI42.de-Live-Sync 2026-06-11

- Die Public-Site unter `20_EDITIONS/azubi42-de/website/` und der Ubuntu-Installer-Spiegel unter `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/website/` folgen dem live gesicherten Serverstand aus `/var/www/azubi42.de/current`.
- Sicherung: `runtime/live_backups/azubi42_de_live_20260611_124057`; lokaler Vorher-Stand: `runtime/local_backups/azubi42_de_repo_before_live_sync_20260611_124217`.
- Der Abgleich ist datei- und hashgenau: 29 Live-Dateien, 0 Abweichungen in Repo und Installer.
- `audit_azubi42_domain_site.mjs` prüft die neuen Live-Schutzbegriffe statt alter Textanker; Mobile-Audit bleibt grün.


## Zugangsbau-Betreiber-Testprofile 2026-06-08

- `zugangsbau_operator_registry.json` führt offizielle Test-/SDK-/Paketanker für BundID/eID, MJP/eBO/EGVP/OSCI, XJustiz und FIT-Connect/ZBP.
- `azubi42_server.py` prüft diese Anker in `/api/legal/zugangsbau/test?module=jura`[private Angabe entfernt]`01_8_JuraBibliothek.js` zeigt Teststatus, Belege, Datenschutzflags und nächsten echten Schritt im Bibliothek-Panel.
- Testvertrag: `test_zugangsbau_registry_contract.py`, `audit_zugangsbau_frontend.mjs`[private Angabe entfernt]`v27.2.240` / `27260`.


## Neu-User-Busch-Guide-Durchrutscher 2026-06-06

- Die sichtbaren Haertegradwerte im Usermenü sind jetzt serverseitig vertragsfest.
- `azubi42_server.py` akzeptiert in Shared-Core und Ubuntu-Installer-Spiegel `konservativ`, `normal`, `scharf` und `review`, statt UI-Werte ausserhalb der alten Whitelist still auf `konservativ` zurückzusetzen.
- `test_user_account_lifecycle_contract.py` prüft diese Werte direkt gegen `normalize_user_guide_settings`; der mutierende Live-Smoke gegen `azubi42-jura` lief nach dem vorherigen roten Deploy-Gate direkt grün.


## Durchrutscher-Audit 2026-06-06

- Der Zugangsbau-/Communication-Abgleich ist als eigener Schutzbauteil nachgezogen.
- `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py` prüft alle sichtbaren Login-/Nachweiskarten gegen konkrete Operator-IDs der Zugangsbau-Registry, einschließlich `bea`, `mjp_ebo_egvp_osci`, `xjustiz_validation`, `bank_kyc_provider` und `bundid_eid`.
- Fachazubi-Katalogspiegel und Communication-Fachazubi-Seed führen Provider-WebView/API-Bridge als echten Messengervertrag und sperren BrowserGateway als Messenger-Ersatz, iframe, Screenshottransport und nachgebaute Anbieterclients.
- `70_TESTS_AND_SMOKE/ui/audit_azubi42_de_server_bidirectional.py` blendet Vendor-/Build-/Cacheordner aus, damit Fremdcode nicht als Azubi42-Durchrutscher gewertet wird.
- Frischer Nachlauf: 17 Website->Server-Gaps, 6 gesperrt bis zum Nachweis Login-/Nachweiskarten, 5 registry-backed Zugangskarten, 0 Registry-Gaps, 0 kritische Fehler.


## Zugangskarten-Registry-Gate 2026-06-06

- `70_TESTS_AND_SMOKE/ui/audit_azubi42_de_server_bidirectional.py` und `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`[private Angabe entfernt]`40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json`[private Angabe entfernt]`bank_kyc_provider` ist als BaFin-/GwG-basierter Zusatznachweisoperator inventarisiert, bleibt aber `contract_required` und verbietet Bank-Login-Nachbau, Frontend-Rohcredentials, iframe und Screenshottransport.


## Bidirektionaler Gap-Audit Detailmarker-/Jurabibliothek-Deployfix 2026-06-06

- `70_TESTS_AND_SMOKE/ui/audit_azubi42_de_server_bidirectional.py` behandelt generische UI-Begriffe wie `detailseite`/`detailseiten` nicht mehr als belastbaren Serverfunktionsmarker.
- `toolbox/deploy/deploy_live_winscp.ps1` paketiert `toolbox/legal/jurabibliothek/config/`, damit offizielle Quellenvertraege wie KMK-Rahmenlehrplaene im Serveraudit vorhanden sind und nicht durch lokale-only Dateien erklaert werden.


## Paperless-Pre-Consume-Deployfix 2026-06-06

- `toolbox/deploy/deploy_live_winscp.ps1` und der Ubuntu-Installer-Spiegel nehmen `toolbox/legal/paperless_preconsume_content_triage.py` wieder in das Live-Artefakt auf.
- `/api/paperless/upload` gibt bei `blocked_by_preconsume_triage` keinen Erfolgstext mehr aus, sondern meldet die Blockade als Review-/Triagefall.
- Der echte Userflow bleibt: Frontend-Upload -> Pre-Consume-Triage -> Paperless-OCR nur bei Freigabe -> Post-Consume/Webhook -> User-TOC-Status.
- Live-Nachweis `paperless_frontend_upload_20260606_112621_f32c43c0`: Triage erlaubte den Upload als `vorgangsrelevant`, Paperless legte Doc `2311` an, der TOC von User `b` stieg auf `1478` Dokumente und zeigte `paperless_post_consume` als letzten Event.


## Paperless-Originaltext-FTS 2026-06-07

- `toolbox/legal/paperless_original_text_index.py` führt pro Azubi42-/Paperless-User einen schnellen SQLite-FTS5-Index unter `runtime/paperless_user_toc/<user>/paperless_original_text_fts.sqlite3`.
- Der Bauteil liest zuerst echte `.azubi42-legal-ocr.json`-Sidecars inklusive Seiten-/Inlinebild-OCR und nutzt danach nur als Fallback direkte PDF-Textlayer sowie TXT/MD.
- `azubi42_server.py` stellt dafür `POST /api/paperless/original-search` bereit; der Suchscope kommt aus Session/Tresor/TOC und serverseitiger Env `AZUBI42_PAPERLESS_ORIGINAL_TEXT_ROOTS`, nicht aus geratenen Windows-Arbeitsordnern oder User-Payload-Pfaden.
- TOC-Status, TOC-Reconcile und der Paperless-Webhook liefern oder aktualisieren denselben `original_text_index`-Block, damit Upload, Suchbutton, RAG/WH3D-Trigger und Skriptlaeufe denselben pro-User-Index verwenden.
- Seit 2026-06-08 haengt auch `/api/legal/jurabibliothek/search` bei echten Suchbegriffen wenige Paperless-Originaltreffer aus dem eingeloggten Userindex an, ohne Norm-/Gesetzestreffer zu ersetzen; damit nutzen sichtbare Bibliothekssuche und RAG-/Button-Pfade denselben User-Originalbestand.
- `toolbox/legal/run_paperless_user_toc_reconcile.sh` baut den Originaltextindex im Reconcile-/Ops-Pfad mit, bleibt aber Fallback/Gegenprobe zum Post-Consume/Webhook.
- `toolbox/legal/config/paperless-user-toc.example.env` dokumentiert die serverseitigen Sidecar-/Original-PDF-Roots.
- `toolbox/deploy/deploy_live_winscp.ps1` und der Ubuntu-Installer-Spiegel paketieren den Indexer in jedes Live-Artefakt.
- `01_1_Layout.js`, `01_8_JuraBibliothek.js` und `10_1_PaperlessBridge.js` zeigen Suche und Indexstatus sichtbar im Paperless-/Bibliothek-Panel: Suchbegriff rein, Enter/Suchen, Treffer mit Originaltitel, Paperless-ID, Seite, Quelltyp, Laufzeit und Snippet raus; Status mit Originaltext- und Textstueckzählern.
- Kapust-Regression `selftest-kapust`: reales Sitzungsprotokoll-PDF indexiert, Suchtreffer für Folgenbeseitigung/Zahnbehandlungskosten/Schmerzensgeld in `9.7 ms`.
- Testvertrag: `test_paperless_original_text_index.py`.


## Bidirektionaler Gap-Audit Server-Scope 2026-06-06

- `70_TESTS_AND_SMOKE/ui/audit_azubi42_de_server_bidirectional.py` erkennt im Deploy den App-Root direkt und fällt nur lokal auf `10_SHARED_CORE/app_v27_multimedia` zurück.
- `toolbox/deploy/deploy_live_winscp.ps1` paketiert `40_INTEGRATIONS/fach-azubis/` und `40_INTEGRATIONS/legal-jura/bundid-eid/` mit, damit lokale und serverseitige P0/P1/P2/P3-Gaplisten denselben belegten Korpus verwenden.


## Bidirektionaler Gap-Audit Prioritaetsqueue 2026-06-06

- `70_TESTS_AND_SMOKE/ui/audit_azubi42_de_server_bidirectional.py` führt den azubi42.de-gegen-Server-Abgleich jetzt als Arbeitsqueue.
- Website->Server-Gaps erhalten `priority`, `workstream` und `action`[private Angabe entfernt]`access_contract`-Eintraege in die Queue gehoben, bleiben aber `fail_closed`.
- Der Audit schreibt JSON und Markdown nebeneinander, damit der 72h-Serverlauf sofort eine lesbare P0/P1/P2/P3-Liste liefert.
- Der Klassifikator behandelt kurze Marker wie `rag` nur als eigenes Wort, damit keine zufälligen Teilworttreffer Prioritaeten verschieben.


## Communication-Provider-Room-Gate 2026-06-06

- `azubi42_server.py` liefert für Provider-`rooms`/`sync` dieselbe Readiness wie der Statusvertrag plus echte `roomsReady/syncReady`-Flags aus den frisch gelieferten Räumen/Ereignissen.
- `01_7_Communication.js` speichert die letzte Providerantwort pro Dienst, setzt Raum-Bereitschaft nur bei echten frisch gelieferten Räumen, lässt leere/gesperrt bis zum Nachweis Antworten nicht in alte lokale Kataloge überlaufen und schaltet den Autosync für solche Provider wieder zu.
- Shared-Core und Ubuntu-Installer-Spiegel sind synchron; Testvertrag: `test_communication_connectors_contract.py`.


## Communication-Matrix-Raummapping 2026-06-06 ist historisch aufgehoben

- Der damals dokumentierte Bridge-Raum-Vertrag für Telegram/WhatsApp/Slack gilt seit dem Dienstraumvertrag 2026-06-14 nicht mehr.
- `bridge_rooms`/`bridge_send_enabled` bleiben nur Legacy-/Regression-Guard; gültig sind `telegram_rooms`, `whatsapp_rooms`, `slack_rooms`, `<dienst>_rooms`, `provider_send_enabled` und echte Provider-/OAuth-/Sessionpfade.


## Bidirektionaler Gap-Audit Korpusfix 2026-06-06

- `70_TESTS_AND_SMOKE/ui/audit_azubi42_de_server_bidirectional.py` liest zusätzlich `10_SHARED_CORE/app_v27_multimedia/runtime/fach-azubis/`, `40_INTEGRATIONS/fach-azubis/` und `40_INTEGRATIONS/legal-jura/bundid-eid/`.
- Dadurch werden echte Server-/Fachbauteile wie `Jura Gold` und das BundID/eID-`Antragspaket` als vorhandene Marker beruecksichtigt, ohne Website-Texte oder Serverfunktionen kuenstlich zu erweitern.
- Kurze Mehrwortlabels werden als exakte Phrase geprüft; kurze Einzelwoerter bleiben gegen Zufallstreffer gesperrt.
- Nachlauf 2026-06-06: 16 Website-Gaps, 6 gesperrt bis zum Nachweis Zugangskarten, 0 kritische Fehler; P0 liegt nur bei Zugangskarten ohne Betreiber-/Tokenvertrag.


## Abgleich


Diese Bauteileliste wurde gegen den aktuellen Produktionsordner abgeglichen. Der beschriebene Stand deckt die reale Modulstruktur der App ab. Laufzeitdateien unter `runtime/` und Python-Caches unter `__pycache__/` sind dabei nicht Teil des Produktionsinventars.


## Private Arbeitsdaten


Private Amts-, Schriftsatz-, OCR-, Versand- und Zwischenarbeitsstaende werden nicht in Forgejo, Matrix, Discourse oder öffentlichen Reports dokumentiert. Öffentliche Inventare nennen nur repo-taugliche Bauteile, neutrale Env-Namen und die zugehoerigen Schutzregeln.


Private PDF-/Scanquellen werden in Legal-Tools Sidecar-first verarbeitet. Direkter PDF-Textlayer ist für AMT-Arbeitslaeufe standardmaessig deaktiviert und nur mit `AZUBI42_ENABLE_PDF_DIRECT_TEXT=1` bewusst einschaltbar; neue OCR-Wellen schreiben Kopien und Textanker in private Runtime-Ordner, nicht in das Repo.


## BVerfG-Lesefassung 2026-06-03

- Das private Lesepaket `37_LESEPAKET_BVERFG_EGMR_2026-06-03` führt die 09er-Altakten-/Aktenbeiziehungsachse jetzt im gerichtssichtbaren BVerfG-DOCX als Beschwerdegegenstand, Kernpunkt des Schutzbedarfs und Anlagenhinweis.
- Die Kontaktzeile ist auf Rueckfragen ausserhalb formbeduerftiger Zustellungen begrenzt; LSG-URL-Gefaehrdung ist eigener Beschwerde-/Zugangspunkt im Text.
- Der Bauteil bleibt minimal-invasiv: bestehender Schriftsatzaufbau erhalten, keine PDF-Erzeugung, kein sichtbarer interner Arbeitswortschatz im Dokumenttext.


## Paperless-Inlinebild-Pipeline 2026-06-04

- `40_INTEGRATIONS/paperless/hooks/azubi42_paperless_legal_ocr.py` extrahiert DOCX-/PDF-Inlinebilder in `inline_visuals/`, erzeugt pro Bild SHA256, Metadaten, OCR, Rolle, Zusammenfassung, `vision_blocked`-Gate und Frucht-Clicktargets.
- Jede verschachtelte `inline_visuals[*].fruit` wird zusätzlich als `type=inline_visual_fruit` in die gemeinsame Top-Level-Liste `fruits[]` gespiegelt, damit Paperless-Viewer, AZ-/Dokumentenbaum, Helix/3D-Welt und Gegenüberstellung denselben Join verwenden.
- `toolbox/legal/paperless_inline_visuals_backfill.py` ist der Resume-Backfill für bestehende Sidecars; Langdokumente werden mit `inline_visuals_audit`, erwarteter Bildkandidatenzahl und `updated_incomplete`/`unchanged_incomplete` als nicht fertig markiert, wenn Limit, Timeout oder Extraktionsfehler das Ende abschneiden.
- `40_INTEGRATIONS/paperless/RUNBOOK_INLINE_VISUALS_BACKFILL_2026-06-04.md` führt den kontrollierten Serverlauf für den Paperless-Bestand inklusive `fruits[]`-Stopprüfung.
- `paperless_atom_indexer.py` und `paperless_sidecar_text.py` geben die Bildzusammenfassung/OCR an RAG/WH3D weiter.
- `azubi42_server.py`, `10_1_PaperlessBridge.js`, `style.css`, `aktenzeichen_timeline.py`, `spatial_jura_world.py` und `realfall_hin_her_zeitstrahl_mehrspur.py` binden Bildfrüchte in Paperless-Viewer, AZ-/Dokumentenbaum, Helix/3D-Welt und Gegenüberstellung ein.
- Die Review-Queue `/api/paperless/vision-review` und `/api/paperless/vision-review/update` dedupliziert Sidecar-Spiegel per `document_id::visual_id`, zeigt die 154 echten `needs_review`-Restbilder im Paperless-Panel und schreibt menschliche Nachklassifikation wieder in Sidecar und Bildfrucht.
- Ubuntu-Installer-Spiegel ist synchron.

## Paperless-DOCX-Relationship-Fix 2026-06-06

- Der Hook liest `word/_rels/document.xml.rels` jetzt namespace-robust über lokale XML-Attributnamen.
- Damit werden OOXML-Relationships mit namespaceten Keys wieder korrekt auf `word/media/*` aufgeloest; lokale und serverseitige DOCX-Inlinebilder laufen erneut als echte `inline_visuals`/`inline_visual_fruit` statt still leer.
- Der Ubuntu-Installer-Spiegel ist auf denselben Parserstand gezogen.


## Paperless-User-Inhaltsverzeichnis 2026-06-05

- `toolbox/legal/paperless_user_document_toc.py` führt pro Paperless-User ein selbstabgleichendes Dokument-TOC aus State-JSON, CSV und Events-JSONL im Azubi42-Serverbetrieb.
- `40_INTEGRATIONS/paperless/hooks/azubi42_paperless_legal_ocr.py` schreibt nach dem Consume direkt in dieses TOC und akzeptiert dafür `AZUBI42_PAPERLESS_TOC_OUTPUT_ROOT` oder `AZUBI42_PAPERLESS_USER_TOC_ROOT`.
- Post-Consume/Webhook ist der Primaerweg für neue Paperless-Dokumente.
- `azubi42_server.py` liefert `/api/paperless/toc/status`, `/api/paperless/toc/reconcile` und `/api/paperless/webhook/document`; diese Routen bauen Paperless-Service-Daten aus Request/Tresor-Payload, serverseitigem `auth_providers.paperless`[private Angabe entfernt]`toolbox/legal/run_paperless_user_toc_reconcile.sh` mit systemd-Service/Timer ist nur Reconcile-Fallback und Gegenprobe.
- Dokumentzahlen, Suchscope, RAG/WH3D, Anlagen- und Schriftsatz-Scope duerfen daraus abgeleitet werden, nicht aus Clientpfaden, Sidecar-Resten, AMT-Arbeitsordnern oder geratenen Dateisystemzahlen.
- Ubuntu-Installer-Spiegel, Paperless-Regelwerk und HW3D-Wissensschicht sind synchron.


## Paperless-User-TOC Server-Smoke 2026-06-05

- Live auf `[Serverpfad]` mit User `b` / `@b:42.chat`, Paperless-Dokument `2300` und Bestand `1467` geprüft.
- Post-Consume/Webhook, Reconcile `limit=25` und Vollbestand-Reconcile liefen OK.
- Authentifizierter Session-Smoke gegen den laufenden Server liefert mit echtem Cookie für `POST /azubi42-jura/api/paperless/toc/status` `200`, `ok=true` und `document_count=1467`.
- Der neue Vertrag nutzt Post-Consume als Primaerpfad; Timer/Service sind nur Reconcile-Fallback.
- Fallback ist serverseitig installiert: `/etc/azubi42/paperless-user-toc.env`[private Angabe entfernt]`azubi42-paperless-user-toc.timer` enabled/active, manueller Service-Start `RECONCILE_SERVICE_RC=0`, `events_written=0`.
- Runtime: `[Serverpfad]`; Nachweis: `reports/paperless_user_toc_server_smoke_2026-06-05.md`.


## Paperless-Frontend-Upload-Smoke 2026-06-05

- `70_TESTS_AND_SMOKE/integrations/smoke_paperless_frontend_upload_live.py` führt den echten Azubi42-Server-Userfluss gegen `https://forgejo.buschitut.eu/azubi42-jura` aus.
- Der Lauf startet als Linux-User `azubi42`, meldet sich am Frontend an, öffnet Bibliothek/Paperless, fuellt Upload-Kontext, legt Ordner-/Tagkontext an, waehlt eine Datei und klickt den Uploadbutton.
- Finaler Beleg: Paperless-Dokument `2308` mit Titel `SGP_Eilrechtsschutz_Paperless_Uploadtest_20260605_212012_4d1e1248`; der Paperless-Post-Consume-Hook schreibt unmittelbar `source=paperless_post_consume` für User `b` in `runtime/paperless_user_toc/b/paperless_document_toc_events.jsonl` und `paperless_document_toc.csv`.
- Die Webhook-Route `/api/paperless/webhook/document`[private Angabe entfernt]`[Serverpfad]` und `.png`.
- Kein Timer ist für diesen Finalevent beteiligt.


## Paperless-User-TOC Frontend-Status 2026-06-05

- `01_1_Layout.js`, `01_8_JuraBibliothek.js`, `10_1_PaperlessBridge.js`, `style.css` und `paperless_user_document_toc.py` zeigen den echten TOC-Stand jetzt direkt im Bibliothek-/Paperless-Frontend.
- Sichtbar sind User, Dokumentzahl, letzte Aktualisierung, letzte Eventquelle und Status der State-/CSV-/Events-Dateien.
- Nach einem Upload wird der Status automatisch nachgezogen; ein manueller Refresh bleibt im Panel verfügbar.
- Der Upload-Smoke prüft den sichtbaren TOC-Status und die direkte `/api/paperless/toc/status`-Antwort mit echtem Userkontext.
- Ubuntu-Installer-Spiegel ist synchron.


## Paperless-User-TOC Session-Fallback-Fix 2026-06-05

- `azubi42_server.py` priorisiert explizite Payload-TOC-User, danach serverseitig konfigurierte TOC-User aus `auth_providers.paperless`/Env und erst zuletzt den Azubi42-Sessionuser.
- Der Live-Smoke gegen `azubi42-jura` belegt nach Frontend-Upload sichtbar `1.477 Dokumente`, `User: b`, letztes Event `created · Doc 2310 · paperless_post_consume`; die authentifizierte API-Antwort liefert `200`, `ok=true`, `user_id=b`, `document_count=1477`.
- Testvertrag: `test_paperless_frontend_upload_provider_fallback.py` und `smoke_paperless_frontend_upload_live.py`.


## Vision-Gate-Windows-Smoke 2026-06-06

- `toolbox/legal/paperless_inline_visuals_vision_gate.py` haertet den Rueckschreibepfad vor dem Persistieren mit `mkdir(parents=True, exist_ok=True)`.
- `70_TESTS_AND_SMOKE/legal/test_paperless_inline_visuals_vision_gate.py` nutzt für den Subprozess einen festen Workspace-Tempordner unter `.tmp`, weil der hostseitige `pytest-of-User`-Baum auf diesem Windows-System Sidecar-Dateien nach dem Kindprozess instabil werden lässt.
- Damit bleibt der Vision-Gate-Vertrag lokal prüfbar, ohne produktive Serverpfade oder Paperless-Bestände anzufassen.


## Mobile-Realbrowser-Härtung 2026-06-02

- `10_SHARED_CORE/app_v27_multimedia/css/mobile-smart.css`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `70_TESTS_AND_SMOKE/ui/audit_azubi42_app_mobile_browser.mjs`[private Angabe entfernt]`v27.2.239` / `27259`; Testvertrag: `audit_mobile_smart_css.mjs`, `audit_azubi42_app_mobile_browser.mjs`.


## Jurabibliothek-Profiregal 2026-06-02

- `toolbox/legal/jurabibliothek/config/profi_jura_sources.json` führt den kuratierten Jura-Profi-Schnellbestand für Azubi42-Jura: Kern-Gesetzbuecher, SGB-/Gesundheits-/Existenzrecht, Digitalzugang/Barrierefreiheit, amtliche Justiz-Formular-/Vordruckseiten sowie BVerfG-/EGMR-Richterprofil-Lehrgaenge für RAG/WH3D.
- `toolbox/legal/jurabibliothek/egmr_bverfg_materials.py` kann `training_outline` jetzt als eigenes Fragment `Azubi42-Lehrgang` einlagern und zaehlt `legal_reference_*`, `legal_form` und `legal_training_program` im Quellenbericht.
- Echte Einlagerung: 73 Quellen, 0 Fehler, 746 Fragmente; Bericht `reports/egmr_bverfg_quellenpaket_2026-06-02.json/.md`.
- Ubuntu-Installer-Spiegel und Tests `test_jurabibliothek_profi_sources.py`, `test_legal_education_sources.py`, `test_egmr_bverfg_materials.py` sind synchron.


## Codex-/AI-Dev-Toolchain 2026-06-02

- `00_META/CODEX_TOOLCHAIN_INVENTAR_2026-06-02.md` führt den aktuellen lokalen Codex-Pluginbestand.
- Aktiv und für Azubi42 relevant sind Browser, GitHub, Google Drive, CircleCI, CodeRabbit, Documents, Spreadsheets, Presentations und OpenAI Developers.
- Der OpenAI-Developers-Bauteil liegt lokal unter `C:\Users\User\.codex\plugins\cache\openai-curated\openai-developers\90718987` und bringt `agents-sdk`, `build-chatgpt-app`, `chatgpt-app-submission`, `openai-api-troubleshooting` und `openai-platform-api-key` mit.
- Keine pauschale Zusatzinstallation; Pflicht ist gezielte Anwendung vorhandener Tools.


## Git-Arbeitsstand-Audit 2026-06-02

- `00_META/GIT_ARBEITSSTAND_AUDIT_2026-06-02.md` ist der Ordnungsanker für den aktuellen Dirty-Worktree.
- Der Stand ist in Mobile-/Smartphone-Härtung, Jurabibliothek-Profiregal, Native-Provider-Webapp-Browser-Windows-/OAuth-Härtung und Codex-/AI-Dev-Toolchain gegliedert.
- Untracked Reports und Smokes sind fachlich zugeordnet; neue Arbeitswellen sollen erst nach Commit, bewusster Offenmarkierung oder Scope-Ausschluss starten.


## Native-Provider-Webapp-Browser Windows-/OAuth-Härtung 2026-06-02

- `40_INTEGRATIONS/provider-webapp-browser/main.js`, `smoke-provider-webviews.js` und `README.md` führen eine eigene Electron-App-Identitaet, getrennte `userData`-Pfade und einen Deep-Link-Guard.
- Produktivdaten liegen unter `%APPDATA%\Azubi42\ProviderWebappBrowser`, Smoke-Daten unter `%APPDATA%\Azubi42\ProviderWebappSmoke`; Provider-Callbacks/Deep-Links werden in Navigation, Redirect, `window.open` und zweiter Instanz blockiert, wenn sie keine `http(s)`-URLs sind.
- Damit duerfen OAuth-Rückgaben nicht mehr als Electron-Apppfad oder Modulpfad starten.
- Windows-Alt-Smoke-Partitionen aus `%APPDATA%\Electron\Partitions\azubi42-*` wurden nach `runtime/local_handoff/windows_electron_cleanup_20260602_azubi42/` verschoben.
- Testvertrag: `npm run check` im Provider-Webapp-Browser.


## Server-Cleanup 2026-05-30

- Betriebsbauteil für Serverhygiene nach Live-Deploy.
- Auf `forgejo.buschitut.eu` wurden nur alte `/tmp/azubi42*`-Stagingverzeichnisse, ungenutzte Docker-Images, Apt-Cache und alte Journald-Anteile bereinigt; produktive Jurabibliothek, Paperless-Sidecars und Azubi42-Runtime bleiben erhalten.
- Ergebnis: Root von 91% auf 89%, Report `reports/server_cleanup_2026-05-30.md`, Serverlog `/root/azubi42_cleanup_20260530_115439.log`, Nachtest per serverseitigem Communication-Smoke grün.


## Communication-Provider-Webconnect-Härtung 2026-06-02

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_8_ProviderReturnBridge.js`, der Ubuntu-Installer-Spiegel, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/ui/audit_input_routine_modes.mjs` und `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` sind synchronisiert.
- Externe Provider-Weblogins erhalten einen expliziten Azubi42-Rueckkehranker mit `azubi42_provider_return=1`, Provider-ID und Quellenangabe.
- Der Azubi-UI-Smoke verlangt echte Provider-DOM-/Hostsignale aus Native-Chromium-`webview`[private Angabe entfernt]`v27.2.235` / `27255`; Testvertrag: `audit_input_routine_modes.mjs`, `test_provider_webapp_browser_contract.py`.


## Communication-Provider-Webapp-Fallback-Sperre 2026-06-01

- `01_7_Communication.js` erzeugt im normalen Webclient keine wartenden Provider-Webapp-Knoten mehr und startet Provider nicht per externem Tab-/App-Handoff.
- Dienstklicks ohne Native-WebView-Host entfernen alte `provider-webapp-missing`-/`Native-WebView wartet`-Knoten aus gespeicherten Arbeitsflächen.
- Echte eingebettete Anbieteroberflächen bleiben ausschließlich dem Native-/Electron-Host mit Chromium-`webview`[private Angabe entfernt]`v27.2.234` / `27254`; Testvertrag: `test_provider_webapp_browser_contract.py`, `audit_communication_server_playwright.py`.


## Communication-Raumlisten-Gate 2026-06-01

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py` und der Ubuntu-Installer-Spiegel trennen Dienstanzeige und Raum-/Chatanzeige hart. Matrix-/Bridge-/Provider-Kataloge duerfen zwar serverseitig vorhanden sein, werden in Sidebar, Matrix-Chips, Dashboard und Provider-Knoten aber erst sichtbar, wenn der konkrete Dienst im Userfluss geladen oder synchronisiert wurde.
- Provider-Hintergrundsync überspringt Dienste ohne Userfreigabe.
- Der Smoke prüft vor dem Laden und nach blosem Dienstklick auf `0`[private Angabe entfernt]`v27.2.232` / `27252`; Testvertrag: `audit_communication_server_playwright.py`.


## Communication-Dienstfluss-Korrektur 2026-06-01

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/js/07_DATA_VAULT/07_6_CommunicationSpaces.js`, `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs` und der Ubuntu-Installer-Spiegel setzen den Providerfluss hart auf Dienst-Seitenleiste -> Provider-Webapp-Vertragsknoten.
- Alte `Communication Zentrale`-/azubimeebo-/Matrix-API-/Provider-API-/BrowserGateway-/Screenshot-Knoten werden beim Restore und Heal entfernt, sofern sie keine echten Raum-/Chatknoten sind.
- Beim Login oder Workspace-Wechsel wird kein Account-Matrix-API-Knoten mehr automatisch über die Arbeitsleinwand gelegt.
- Echte Anbieteroberflächen duerfen nur im Native-Host über Chromium-`webview` erscheinen; normale Browser zeigen einen ehrlichen Native-Host-Hinweis und keinen iframe-, Bild-, Screenshot- oder BrowserGateway-Ersatz.
- MatrixBridge/API bleibt Backend-/Adminbauteil; Nutzerchat entsteht über echte Räume/Chats und eigene Gespraechsknoten.
- Live-Deploy und Server-QA vom 2026-06-01 sind abgelegt unter `[Serverpfad]` sowie `[Serverpfad]`[private Angabe entfernt]`v27.2.231` / `27251`; Testvertrag: `audit_communication_space.mjs`.


## Communication-Canvas-Entfakeisierung 2026-06-01

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `css/style.css`, `azubi42_server.py` und der Ubuntu-Installer-Spiegel entfernen die alte `Communication Zentrale` als Dienstsammlungs-Knoten.
- Die Communication-Leinwand bleibt Arbeitsfläche; Dienstwahl liegt ausschließlich in der linken Seitenleiste.
- Dienstklicks erzeugen direkt passende Provider-/Webapp-Knoten, alte Zentraldashboard-Knoten werden entfernt, und `Koppeln`-/`kopplung`[private Angabe entfernt]`v27.2.228` / `27248`; Testvertrag: `audit_communication_space.mjs`, `audit_communication_server_playwright.py`.


## Communication-Native-Providerfluss 2026-06-01

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `README.md`, `.gitignore`, `package-lock.json`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und `01_7_Communication.js` sind nachgezogen.
- Der Native-Bauteil prüft Matrix/Element, Telegram, WhatsApp, Slack, Discord, LinkedIn, Facebook, Instagram, TikTok, Signal, Teams und Google Chat als echte Chromium-`webview`-Providerseiten mit Host-/Login-Signalen und sichtbaren Wiederherstellungswegen, soweit der Anbieter sie anbietet.
- QR-/Device-Pairing wird als Provider-Eigenart dokumentiert, nicht durch Azubi nachgebaut.
- Alte Dienstsammlungs-Knoten werden auch über Inhaltserkennung entfernt, damit neue Dienst- und Raumknoten frei sichtbar bleiben.
- Serverpfad: `[Serverpfad]`; Installation dort mit `npm install`[private Angabe entfernt]`v27.2.229` / `27249`; Testvertraege: `test_provider_webapp_browser_contract.py`, `test_communication_connectors_contract.py`, `audit_communication_space.mjs`, `audit_new_user_busch_guide.mjs`, `npm run smoke:providers`.


## Communication-Userfluss 2026-06-01

- `70_TESTS_AND_SMOKE/integrations/smoke_usermanagement_lifecycle_live.mjs` nutzt für Zugangsanfragen wieder den echten Formularbutton mit Input-/Change-Events und Validitaetsauswertung; der Smoke wechselt über den echten View-Button `#btn-communication` in den Communication-Space.
- `01_7_Communication.js`[private Angabe entfernt]`v27.2.230` / `27250`; Testvertrag: mutierender Usermanagement-Lifecycle-Smoke.


## Deploy-Smoke-Pfad 2026-06-01

- `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/deploy/deploy_live_winscp.ps1` sucht den mutierenden Usermanagement-Smoke jetzt sowohl im Installer-Baum als auch im Repo-root.
- Damit bleibt der Live-Deploy nutzbar, wenn der Smoke bewusst nur im zentralen Testbaum liegt; erfolgreiche Versionauslieferung und Smoke-Abnahme werden nicht mehr durch einen falschen lokalen Scriptpfad getrennt.


## Communication-Provider-Scope 2026-06-01

- `toolbox/communication/provider_contracts_bootstrap.py`, `provider_contracts_apply.py`, `communication-providers.template.json` und `azubi42_server.py` trennen jetzt Accountbindung und Systemdienst.
- Standard ist `credential_scope=per_user_bridge` bzw. `per_user_oauth_or_bridge`[private Angabe entfernt]`credential_scope=system_service` oder `system_service_allowed=true`[private Angabe entfernt]`v27.2.226` / `27246`; Testvertraege: `test_communication_provider_contracts_bootstrap.py`, `test_communication_provider_contracts_apply.py`, `test_communication_provider_contracts_fixture.py`, `test_communication_connectors_contract.py`.


## Communication-Provider-Fixture 2026-06-01

- `toolbox/communication/provider_contracts_fixture.py`[private Angabe entfernt]`provider_contracts_apply.py` end-to-end geprüft werden kann.
- Es schreibt nie direkt in Live-`[private Angabe entfernt]`, gibt keine Token aus und darf nicht als produktiver Connectornachweis gelten.
- Der Ubuntu-Installer-Spiegel ist synchron.
- Version/Asset-Token: `v27.2.225` / `27245`; Testvertrag: `test_communication_provider_contracts_fixture.py`.


## Communication-Provider-Bootstrap 2026-06-01

- `toolbox/communication/provider_contracts_bootstrap.py` führt den serverseitigen Bootstrap- und Auditpfad für Telegram, WhatsApp, Slack, Signal, Discord, LinkedIn, Facebook, Instagram, TikTok, Teams und Google Chat.
- Das Werkzeug befuellt fehlende `auth_providers.<dienst>`-Felder aus `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`[private Angabe entfernt]`configured`/`Sende-Freigabe` nach Dienstvertrag.
- Seit 2026-06-14 sind `telegram_rooms`, `whatsapp_rooms`, `slack_rooms` und `<dienst>_rooms` die aktiven Bedien-/Zielräume; `provider_send_enabled` ist primaer.
- `bridge_*` bleibt nur Legacy-/Regression-Guard.
- `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/` und `deploy_live_winscp.ps1`[private Angabe entfernt]`v27.2.223` / `27243`.


## Communication-Provider-Apply 2026-06-01

- `toolbox/communication/provider_contracts_apply.py`, private Runtime-Auth-Quelle, `configured`/`Sende-Freigabe` und `30_INSTALLERS/ubuntu24/azubi42-server/60_RUNTIME_TEMPLATES/auth/`, damit Live-Deploys den Tool-Sibling `communication-providers.template.json` erzeugen.
- Seit 2026-06-14 akzeptiert der Apply-Pfad dienstspezifische Raumfelder und `provider_send_enabled`; alte Bridge-Felder sind nur Kompatibilitaet.
- Seit 2026-06-23 kann der private Apply-Pfad mit `__delete_keys__` gezielt stale Live-Felder wie `default_target`/`provider_rooms` entfernen, ohne diesen Marker in `[private Angabe entfernt]` zu speichern.
- Version/Asset-Token: `v27.2.224` / `27244`.


## Communication-Provider-Privatewerte 2026-06-01

- Live-Serverpfad `/etc/azubi42/private/communication-provider-values.private.json` ist als nicht committete, geschützte Wertequelle angelegt.
- `provider_contracts_apply.py --live-defaults --write`[private Angabe entfernt]`provider_send_enabled` verbindlich; Matrix ist nur eigener Dienst.


## Communication-Provider-Gleichzug 2026-06-01

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt für Telegram, WhatsApp, Slack, Signal, Discord, LinkedIn, Facebook, Instagram, TikTok, Teams und Google Chat denselben Provider-Vertrag: `auth_providers.<dienst>`[private Angabe entfernt]`telegram_rooms`, `whatsapp_rooms`, `slack_rooms`, `<dienst>_rooms` und `provider_send_enabled`; `bridge_send_enabled` ist nur Legacy-Alias.
- Telegram/WhatsApp/Slack behalten direkte Adapter als Backendmöglichkeit, werden aber nicht mehr als sichtbare Sonderklasse behandelt.
- `01_CORE/01_7_Communication.js` zeigt alle Provider als geplante/eingerichtete Connectoren mit denselben Status-/Rooms-/Sync-/Sendefunktionen.
- `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`[private Angabe entfernt]`v27.2.222` / `27242`.


## Therapiekatzen 2026-05-31

- Neuer UI-Bauteil für eine entspannte Canvas-Ansicht im Azubi42-Stil.
- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_11_Therapiekatzen.js` rendert den `Quantum Maneki-Neko Synthesizer` vollständig lokal im Browser per Canvas/AnimationFrame.
- `01_1_Layout.js` führt den vorletzten Sidebar-Punkt `Therapiekatzen`, `view-therapiekatzen`, Canvas, Theme-/Mood-Auswahl, DNA-Regler, Tempo, Glow/Streifen/Winken, Preset-/Clipboard- und PNG-Aktionen.
- `01_2_Navigation.js`, `01_4_InterfaceChrome.js`, `main.js`, `style.css`, `mobile-smart.css` und helle Theme-Dateien binden View, Aliasnamen, Sidebar-Chrome, responsive Layouts und Akzente an.
- Keine Express-Zusatzapp, keine Fremdassets, kein Serverprozess.
- Smoke: `70_TESTS_AND_SMOKE/ui/audit_therapiekatzen.mjs`[private Angabe entfernt]`v27.2.210` / `27230`.


## Server-Umzug-Readiness 2026-05-31

- Der aktuelle Live-Umzugsbericht für den kuenftigen Codex-Serverarbeitsplatz liegt unter `runtime/readiness/azubi42_readiness_20260531_codex_server_move_after_scopeguard.json/.md` und meldet 41 OK, 0 Warnungen, 0 Fehler.
- Geprüft wurden `azubi42-jura.service`, FixIt-Codex-Path/Timer, Paperless-Atom-Index, Jurabibliothek-Sync, Codex CLI, Ollama, Playwright-Chromium, Matrix/Element, Forgejo, Paperless, Runtime-Inboxen und Plattenstand.
- Der FixIt-Codex-Scope-Guard wurde im Hauptbestand, Integrationsspiegel und Ubuntu-Installer-Spiegel geschaerft: fachfremde Treffer duerfen nicht mehr durch generische API-/FixIt-Pfadwoerter als Azubi42-Arbeit gelten; noetig ist ein starkes Azubi42-/Server-/UI-/RAG-/WH3D-/Paperless-/Forgejo-/Matrix-/Bibliothek-/Test-/Deploy-Signal.
- QA: `test_server_fixit_scope_gate.py`, `test_content_safety_guard.py`, `audit_new_user_busch_guide.mjs`, `audit_error_fixit_list.mjs`.


## Communication-Nutzeransicht 2026-05-31

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` führt die normale Communication-Oberfläche jetzt als Nutzerfluss: Dienst waehlen, Räume/Chats sehen, Raum/Chat als eigenen Gespraechsknoten öffnen, Nachricht lesen, Antwort vorbereiten und Freigabe beachten.
- Die Meebo-Zentrale ist Roster/Verteiler; `openCommunicationRoomNode` erzeugt eigene `data-communication-room-node`-Knoten mit Nachrichtenbereich und Eingabe, linke Dienstunterpunkte öffnen diese Knoten direkt, und offene Knoten werden nach Sync aktualisiert.
- Provider-/Bridge-/Native-Host-/nicht belegter Zustand-Sperrtexte sind nicht gelöscht, sondern in einklappbare Admin-Details verschoben.
- Der Ubuntu-Installer-Spiegel ist synchron.
- Live-Server-Smoke gegen `azubi42-jura`[private Angabe entfernt]`v27.2.215` / `27235`.


## Communication-Provider-Rooms/Sync 2026-05-31

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt für Telegram, WhatsApp und Slack serverseitige Aktionen `status`, `rooms`, `sync` und `send` unter `/api/communication/{provider}/...`.
- Providerdaten kommen aus echten Provider-Endpunkten oder Provider-APIs: Telegram Bot API, Slack Web API, WhatsApp Cloud-/Device-Vertrag.
- Seit 2026-06-14 werden Räume aus dienstspezifischen Raumfeldern geführt und nicht aus Matrix-Raummapping.
- `01_7_Communication.js`[private Angabe entfernt]`v27.2.216` / `27236`.


## Communication-Matrix-Login-Cache 2026-05-31

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt `MATRIX_NOTIFIER_SESSION_CACHE`[private Angabe entfernt]`v27.2.217` / `27237`.


## Communication-Account-/Bridge-Trennung 2026-05-31

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` unterscheidet den angemeldeten Profil-/Kontaktkontext vom technisch sendenden Matrix-Bridge-Account.
- `@b:42.chat` bleibt User-/Profilanzeige; ein abweichender GPU-/Azubi-Matrix-Account bleibt als System-Bridge aktiv und wird nicht entfernt oder als User umetikettiert.
- `11_AUTH_MANAGER/11_3_MatrixBridge.js` liefert dafür `userId`[private Angabe entfernt]`v27.2.218` / `27238`.


## Communication-Beeper-Quellenvertrag 2026-05-31

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt nach GitHub-Abgleich `COMMUNICATION_BEEPER_BRIDGE_SOURCE` mit `beeper_org`, `source_roles` und `beeper_repositories`.
- Beeper ist Self-Hosting-/`bridge-manager`-/Tooling-Anker; aktive Provider-Bruecken werden aus Mautrix-Repos abgeleitet.
- Historische oder deprecated Beeper-Repos sind keine primaeren Codequellen, die betroffenen Dienste bleiben aber über aktive Bridges einrichtbar.
- `40_INTEGRATIONS/communication-beeper-bridges/README.md`, `40_INTEGRATIONS/fach-azubis/communication-fachazubi/README.md`[private Angabe entfernt]`v27.2.221` / `27241`.


## Communication-Provider-Vertraege 2026-05-31

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`[private Angabe entfernt]`*_file`[private Angabe entfernt]`provider_send_enabled` ist primaer, `bridge_send_enabled` bleibt nur Legacy-Alias.
- `/api/communication/{telegram|whatsapp|slack}/{status|rooms|sync|send}`[private Angabe entfernt]`60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`; Dokumentation: `40_INTEGRATIONS/communication-beeper-bridges/README.md` und `40_INTEGRATIONS/fach-azubis/communication-fachazubi/README.md`[private Angabe entfernt]`v27.2.220` / `27240`.


## Communication-Dienstfunktionen 2026-05-31

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` führt `COMMUNICATION_SERVICE_FUNCTIONS` als service-spezifischen Funktionsvertrag.
- Matrix, Telegram, WhatsApp und Slack bekommen eigene Aktionsleisten, Raum-/Chat-Auswahl, Sync, Gespraechsknoten und Sendepfad nur aus echten Matrix-/Provider-/Bridge-Daten.
- Weitere Dienste bleiben als Status-/Webapp-Vertrag sichtbar, ohne nachgebaute Providerinhalte, iframe oder Bildtransport.
- `css/style.css` führt die passenden Funktionsleisten, Raumchips und Conversation-Vorschauen; `audit_communication_space.mjs` und `audit_communication_server_playwright.py`[private Angabe entfernt]`v27.2.219` / `27239`.


## Ansichten-/Fruchtblock 2026-05-31

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` führt für Baum/Helix-Früchte einen klickbaren `+N`[private Angabe entfernt]`v27.2.212` / `27232`.


## Screenshot-/Exporter-Suite 2026-05-31

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js` führt den Topbar-`Shot`-Bauteil mit echter Browserfreigabe, BrowserGateway-Fullpage-Anstoss, Bereichsmarkierung, Zuschnitt, PNG-Download, Clipboard, Manifest-JSON und SHA256.
- Das Manifest `azubi42.screen_capture_manifest.v1`[private Angabe entfernt]`v27.2.214` sammelt derselbe Bauteil aktive Workspace-Knoten und -Verbindungen für Paketexporte und ruft serverseitig `POST /api/export/workspace` auf.
- `azubi42_server.py` baut daraus `package`-ZIP, `htmlzip`, `docx`, `pdf` und `svg`; ZIPs enthalten `manifest.json`, `HASHES.sha256`, Workspace-State und die jeweiligen Artefakte, Einzelantworten führen `X-Azubi42-SHA256`, Manifest-Schema und Export-ID.
- Seit `v27.2.215` schreibt `Workspace-JSON kopieren` dieselbe Workspace-Nutzlast in die Zwischenablage.
- Der Ubuntu-Installer-Spiegel ist synchron; Live-Exporter-Smoke auf `[Serverpfad]`[private Angabe entfernt]`v27.2.215` / `27235`; Testvertrag: `audit_screen_capture_exporter.mjs`, `audit_screen_capture_exporter_browser.mjs` und `audit_workspace_export_suite.py`.


## Communication-Connectorvertrag 2026-05-30/2026-06-01

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_2_Navigation.js` führt `communication` weiter als Canvas-Space.
- `01_7_Communication.js` startet linke Dienstklicks, `Login` und `Web` nicht mehr als BrowserGateway-Screenshot, sondern als Connector-Statusflächen.
- Matrix nutzt `11_AUTH_MANAGER/11_3_MatrixBridge.js` für Matrix-API-DOM mit Raumwahl, Sync und Senden; das ist ausdruecklich keine nachgebaute Element-Weboberfläche.
- Serverseitiger Matrix-Connector laeuft über `/api/communication/matrix/*`[private Angabe entfernt]`/api/communication/connectors/status`[private Angabe entfernt]`40_INTEGRATIONS/provider-webapp-browser/` liefert den getrennten Native-Host: in Electron mit aktiviertem Chromium-`webview` kann ein `Webapp`-Knoten die echte Anbieter-Webapp laden; im normalen Webbrowser erscheint nur der Status `Native Host fehlt`.
- Bildtransport, Fremd-iframe, externer App-/Tab-Handoff, BrowserGateway-Screenshot als Providerersatz und falsche Browser-Wortwahl sind im Communication-Standardflow gesperrt.
- Persistierte alte BrowserGateway-/Screenshot-Knoten werden beim Laden zu Connector-Knoten migriert.
- `css/style.css` sichert markierbaren Text, stabile Sidebar-Badges, scrollbare Connector-Flächen und die `.azubi42-provider-webview`-Geometrie.
- Smokes: `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py`, `audit_communication_space.mjs`, `test_provider_webapp_browser_contract.py` und `test_communication_connectors_contract.py`.


## Communication-Bridge-/Meebo-Leinwand 2026-05-30

- `azubi42_server.py` liefert in `/api/communication/connectors/status` zusätzlich `bridge_architecture`: Matrix bleibt `matrix_root_bus`, Telegram/WhatsApp/Slack sind `provider_bridge_candidate` mit Bridge-Kandidaten wie `mautrix-*`, Provider-API oder OAuth-App.
- `01_1_Layout.js` führt den Anker `communication-architecture-panel`; `01_7_Communication.js` rendert daraus den Meebo-artigen Vertrag aus Provider-Roster, frei platzierbaren Chat-/Webapp-Knoten und klarer Sperrliste.
- `css/style.css` macht diesen Baustein resizebar und textumbruchfest.
- `test_communication_connectors_contract.py` und `audit_communication_space.mjs`[private Angabe entfernt]`v27.2.197` / `27217`.


## Communication-Provider-Sendepfade 2026-05-30

- `azubi42_server.py` führt echte serverseitige Provider-Aktionen unter `/api/communication/{telegram|whatsapp|slack}/{status|send}`.
- Telegram sendet über Bot API, WhatsApp über Cloud API und Slack über `chat.postMessage`[private Angabe entfernt]`credentials_exposed=false`); ohne Credentials wird keine behauptete Sendefunktion angeboten.
- `test_communication_connectors_contract.py`[private Angabe entfernt]`v27.2.198` / `27218`.


## Communication-MatrixBridge-Härtung 2026-05-31

- `01_7_Communication.js` persistiert den gewaehlten Matrix-Zielraum aus Dashboard, nativer Matrix-Karte und Sidebar, markiert den Zielraum in Raum-/Chatlisten und blockiert Sendelaeufe ohne Zielraum oder Nachrichtentext.
- `azubi42_server.py` trennt für Matrix, Telegram, WhatsApp und Slack nun strikt `configured` von `Sende-Freigabe`[private Angabe entfernt]`css/style.css` markiert den persistenten Matrix-Zielraum sichtbar.
- Smokes: `test_communication_connectors_contract.py`, `audit_communication_space.mjs` und serverseitiger `audit_communication_server_playwright.py` gegen `azubi42-dev` und `azubi42-jura`[private Angabe entfernt]`v27.2.207` / `27227`.


## Communication-Meebo-Inhalte 2026-05-31

- `01_7_Communication.js` trennt die sichtbare Multi-Messenger-Leinwand jetzt in Accounts/Connectoren, Räume/Chats und Gespraechsfenster.
- Matrix-Räume bleiben Raum-/Chatobjekte; Raumklicks setzen den passenden Gespraechsknoten und zeigen echte Matrix-Events aus dem Anzeigen-Cache.
- `11_3_MatrixBridge.js` liefert dafür `fetchMatrixConversationEvents`[private Angabe entfernt]`css/style.css` führt die neuen Raum-/Conversation-Klassen.
- Smokes: `node --check`, `test_communication_connectors_contract.py`, `test_provider_webapp_browser_contract.py`, `audit_communication_space.mjs`[private Angabe entfernt]`v27.2.208` / `27228`.


## Communication-Bridge-Raum-Vertraege 2026-05-31 sind historisch aufgehoben

- Die damalige Matrix-Raummapping-Idee wird für externe Provider nicht weitergeführt.
- Seit 2026-06-14 prüft `test_communication_connectors_contract.py`, dass dienstspezifische Räume Bedien-/Zielräume sind und keinen Matrix-Ersatztransport öffnen.


## Server-first-Communication-Abnahme 2026-05-30

- `00_META/ARBEITSALLTAG.md` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` führen den Server-Testpfad als Werkzeugregel: Azubi42-Jura-Abnahmen laufen gegen `[Serverpfad]`, systemd und app-eigenes Playwright-Chromium, nicht gegen Windows als Ersatzbeweis.
- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js` markiert das Communication-Servicepanel gezielt; `css/style.css` verdichtet nur das gemessene linke Dienstmenü.
- Neuer Server-Smoke: `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py`[private Angabe entfernt]`v27.2.174` / `27194`.


## AZUBI42.de-Origin-Story 2026-05-29/2026-06-08

- `20_EDITIONS/azubi42-de/website/index.html` führt den öffentlichen Abschnitt `#azubi42-origin` direkt unter dem Hero.
- Sichtbar ist ein kurzer AZUBI/42-Erklaertext; der Deep-Thought-/planetarischer-Computer-Langtext liegt in einem nativen aufklappbaren `details`-Bauteil.
- Seit 2026-06-08 sitzt dieser Langtext nicht mehr als Nachbarkachel rechts, sondern im selben breiten Erklaercontainer; `20_EDITIONS/azubi42-de/website/css/site.css` führt dazu die einspaltige `origin-story-shell` und dreispaltige Langtextkarten im aufgeklappten Zustand.
- Der H2 ist bewusst als Zweizeiler nach `Ein Azubi lernt zuerst.`[private Angabe entfernt]`azubi42de-20260608-origin-wide`.
- Generator/Manifest/Public-Actions und Installer-Spiegel werden synchron geführt.


## Communication-Workspace-Layout 2026-05-30 (historisch, durch Worktree-Guard 2026-06-13 überholt)

- Der damalige Zwischenstand mit `view-communication` und `communication-workspace-shell` ist nicht mehr aktueller Einstieg.
- Gültig ist seit 2026-06-13 die gemeinsame Workspace-Canvas `#view-org` mit linker Communication-Seitenleiste; Rueckfall auf `#view-communication` ist ein Auditfehler.
- Die badge-stabile Sidebar-Liste bleibt erhalten.
- Aktueller Vertrag: `00_META/COMMUNICATION_WORKTREE_AUDIT_2026-06-13.md`, `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs` und `70_TESTS_AND_SMOKE/ui/audit_communication_browser_layout.mjs`.


## FixIt-Codex Scope-Guard 2026-05-29/2026-05-31

- `toolbox/codex/azubi42_codex_scope_guard.py` ist der verbindliche Schutzbauteil für Codex-/FixIt-Arbeiten im Server-Arbeitsplatz.
- Er erlaubt nur Azubi42-App-, Server-, UI-, RAG-, WH3D-, Paperless-, Forgejo-, Matrix-, Bibliothek-, Test- und Deploy-Arbeiten; fachfremde Userauftraege, direkte `git push`/`git commit`-/Forgejo-Mutationen und ungeprüfte Fachazubi-/Modulcode-Importe werden gesperrt bis zum Nachweis blockiert.
- Seit 2026-05-31 reicht bei fachfremden Treffern kein generisches Pfad-/API-Wort wie `fixit`, `api` oder `fix` mehr; erforderlich ist ein starkes Azubi42-/Server-/UI-/RAG-/WH3D-/Paperless-/Forgejo-/Matrix-/Bibliothek-/Test-/Deploy-Signal.
- `azubi42_server.py` nutzt den Guard vor dem Einreihen von FixIt-Autofix, `azubi42_fixit_codex_worker.py` nutzt ihn nochmals unmittelbar vor `codex exec` und schreibt je Lauf `scope_guard.json`.
- `01_CORE/09_TOOLS/09_9_ErrorFixList.js` behandelt `blocked_scope_guard` als terminalen Status.
- Fachazubi-Forks laufen nur als Review-Anfrage, nicht als Direktübernahme.
- Spiegel: `40_INTEGRATIONS/codex/azubi42_codex_scope_guard.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/codex/azubi42_codex_scope_guard.py`; Deploy/Installer installieren Guard und Worker nach `/usr/local/bin`.


## Content-Safety-/Anti-Missbrauchs-Guard 2026-05-29

- `toolbox/codex/azubi42_content_safety_guard.py` ist der lokale Schutzbauteil für Account-, Passwort-, Profil-, Guide-, FixIt- und Fachazubi-Fork-Eingaben.
- Er blockiert eindeutige extremistische/rassistische Identitaets- und Missbrauchssignale in strengen Feldern wie Username, Matrix-ID, lokalem Passwort und FixIt-Codex-Auftrag; normale Aufklaerungs-, Rechts-, Sicherheits- und Anti-Kontext-Texte bleiben möglich.
- Passwörter werden nur fluechtig vor dem Hash geprüft und weder im Klartext gespeichert noch geloggt; Guard-Ergebnisse enthalten nur Signal-IDs mit redigiertem Trefferstatus.
- `azubi42_server.py` nutzt den Guard bei Zugangsanfragen, Username-Preflight, Review-Freigabe, Account-Profil/Guide-Settings und FixIt-Autofix; `azubi42_fixit_codex_worker.py` prüft nochmals vor `codex exec`, schreibt `content_safety_guard.json` und markiert blockierte FixIt-Eintraege als `blocked_content_guard`.
- Spiegel: `40_INTEGRATIONS/codex/azubi42_content_safety_guard.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/codex/azubi42_content_safety_guard.py`; Deploy/Installer installieren den Guard nach `/usr/local/bin`.
- Öffentliche Fehlermeldung bleibt neutral (`Eingabe kann aus Sicherheitsgruenden nicht verwendet werden.`), keine Schein-Serverstörung.


## Linux-Umzug-Readiness-Gate 2026-05-29

- `toolbox/deploy/linux_move_readiness.py` prüft serverseitig den Umzug von Windows-Arbeit auf Linux-Betrieb.
- Der Baustein kontrolliert App-Version, `azubi42_server.py`[private Angabe entfernt]`CODEX_HOME` und Plattenstand.
- Der Ubuntu-Installer-Spiegel liegt unter `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/deploy/linux_move_readiness.py`; `linux_server_manifest.json` und README führen den Check als Umzugs-Gate.
- `toolbox/deploy/deploy_live_winscp.ps1` verpackt das Tool in `toolbox/deploy/` und `toolbox/codex/` des Live-App-Pakets, damit es bei späteren `rsync --delete`-Deploys nicht verschwindet.
- Live-Stand vom Server: Basisbericht `runtime/local_handoff/server_readiness_2026-05-29/azubi42_linux_move_readiness_20260529_afterfix.json/.md` mit 34 OK, 0 Warnungen, 0 Fehler; Codexworker-Bericht `..._codexworker.json/.md` mit 38 OK, 3 Warnungen, 0 Fehler; Aktivierungsbericht `runtime/local_handoff/server_readiness_2026-05-29/activate_20260529_110838/azubi42_linux_move_readiness_activated_20260529_110838.json/.md` mit 41 OK, 0 Warnungen, 0 Fehler.
- Server-`CODEX_HOME` ist vorhanden und nicht leer; `azubi42-fixit-codex.timer` und `.path` sind aktiv.


## Linux-Umzug-Lifecycle-Smoke 2026-05-29

- `70_TESTS_AND_SMOKE/integrations/smoke_usermanagement_lifecycle_live.mjs` wurde gegen die Serverinstanz `azubi42-jura` zunaechst als geschützter Route-Probe und danach mutierend im echten Browser ausgeführt.
- Geprüft: Zugangsanfrage, Freigabe, Login, Profil-Direktlinks für Azubi42/Matrix/Matrix-Client/Forgejo/Paperless, Guide-Settings, Bibliothek-Falllauf, Communication-Matrix-Knoten und Cleanup.
- Aktueller Bericht nach v27.2.171-Deploy: `runtime/local_handoff/server_readiness_2026-05-29/smoke_mutating_20260529_2324_v27_2_171/usermanagement_mutating_smoke_v27_2_171.json`.


## Startscreen-Stage-Overflow-Fix 2026-05-29

- `10_SHARED_CORE/app_v27_multimedia/css/style.css` und der Ubuntu-Installer-Spiegel halten `.view-start-stage`[private Angabe entfernt]`v27.2.172` / `27192`; QA: `audit_view_start_screens_browser.mjs`, `audit_sidebar_accordion_browser.mjs`, `audit_error_fixit_browser.mjs`, `clicktest_workspace_inline_views.mjs`, `clicktest_toolbox_links_and_connectors.mjs`, `clicktest_bibliothek_fixit_panel.mjs`, Live-Versioncheck und mutierender `smoke_usermanagement_lifecycle_live.mjs`.


## Matrix-Bestandsalias-Sync 2026-05-29

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt `sync_matrix_desired_username_aliases` und `[private Angabe entfernt]`.
- Matrix-Altfreigaben mit `desired_username` werden beim Laden und Speichern der Auth-Konfiguration gegen lokale Passwortdatensätze abgeglichen: liegt ein Bestandseintrag unter der vollen Matrix-ID, wird der kurze Login-Alias ohne Passwortneusetzung aus demselben PBKDF2-Datensatz nachgezogen.
- Der Alias führt `matrix_id`, `alias_of`, `account_alias_source` und bleibt auf bestehende freigegebene Matrix-User begrenzt; der normale Neuuser-Preflight bleibt unveraendert.
- Spiegel: Ubuntu-Installer; Smoke: `70_TESTS_AND_SMOKE/legal/test_user_account_lifecycle_contract.py`.





## Dokumentgesamtblick-/Inline-Bildanalyse-Regel 2026-06-04

- `toolbox/legal/config/hw3d_knowledge_layers.json` führt `document_context_contract` und das Core-Prinzip `inline_visuals_before_ocr_rag`, `toolbox/legal/config/paperless_task_rules.json` führt `unclear_page_context` und `inline_visuals_before_ocr_rag`.
- Wenn DOCX, PDF, Schriftsatz, Anlage oder Formular eingebettete Bilder, Grafiken, Screenshots, Logos, Diagramme oder gescannte Bildbloecke enthält, wird jede Inline-Grafik vor OCR-/RAG-/WH3D-/Blickwinkel-/Schriftsatzentscheidung einzeln extrahiert, visuell beschrieben, per Bild-OCR gelesen, nach Position, Rolle, Textinhalt, Beweisfunktion, Aussageabsicht und Risiko geankert und erst danach mit dem Volltext als Text-Bild-Verbund bewertet.
- OCR-only-Verstehen ist in solchen Faellen gesperrt; bei fehlender Bildanalyse ist `vision_blocked` zu setzen.
- Die bisherige Seiten-/Restdokumentregel bleibt Teil des gleichen Gates: Eine einzelne Seite darf erst nach Seitenzahl, Absatzanker, Dokument-ID, Vor-/Nachseiten, Restdokument und Inline-Bildanalyse als Block, Ast, Frucht, Risiko, Schriftsatzanker, Review oder Sperre verwendet werden.


## Login-Frischepflicht 2026-05-17

- `10_SHARED_CORE/app_v27_multimedia/js/11_AUTH_MANAGER/11_4_ForgejoBridge.js` stoesst nach dem Forgejo-Startup-/Versionscheck den globalen Frischelauf an; `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` holt danach per `no-store` Jurabibliothek/Bibliotek, Paperless-Ordner, Amt-Connect, Aktenzeichen-Zeitstrahl, Mahnwesen und Observatorium neu und speichert nur einen lokalen Stale-/Spickzettelstatus.
- Der Vertragsanker liegt in `toolbox/legal/config/hw3d_knowledge_layers.json`, `toolbox/legal/config/paperless_task_rules.json`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `00_META/ARBEITSALLTAG.md` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md`: Alte Laufordner, Browserstates, Exporte und ZIPs gelten nicht als aktueller Arbeitsstand, bevor sie gegen frische Quellenzähler abgeglichen wurden; neue Schriftsätze aktualisieren Kontrollspickzettel, Vorgangsliste komplett und betroffene Empfänger-/Vorgangsliste.


## Bulk-/RAM-Scope-Zähler 2026-05-26

- `toolbox/legal/config/hw3d_knowledge_layers.json`, `toolbox/legal/config/paperless_task_rules.json` und `toolbox/legal/config/language_packs/legal_de_language_profile.json` führen den Regelanker `bulk_scope_counter_before_ram_or_thinking`/`bulk_scope_counter_rule` sowie das Flag `require_document_scope_before_bulk_or_ram_run`.
- Vor Bulk-, RAM-, Cache-, RAG-, WH3D- oder Schriftsatzneulaeufen wird ein fachlicher Paperless-Dokument-Scope (Dokumentzahl, bekannte Seitenwerte, Seitensumme, laengste Datei, groesste Quelldateien, Dokumenttypen, ausgeschlossene technische Dateiarten, Zweck) als Kontrollspickzettel geschrieben; technische Dateisystemwerte (Sidecars/Thumbnails/Backups/Exporte/Arbeitsartefakte) sind nie Dokument-/Schriftsatzzahlen.


## Doc-563/GBA-Referenzanker-Korrektur 2026-05-27

- `runtime/bverfg_egmr_20260526/apply_doc563_gba_reference_not_answer_20260527.py` führt Doc 563 nur noch als Referenzanker auf eine nicht belegte GBA-Antwort.
- Der Baustein scannt AMT-VII-Matrizen auf Doc-563-/`Generalbundesanwalt_Re_001`-Verwendungen und erzeugt einen privacy-safe Audit- und Korrekturstand ausserhalb Forgejo.
- Ergebnis: 64 Audit-Treffer, 3 P0-Hauptmatrix-Zeilen als `bestes_gegenstueck` gesperrt, 23 Review-Kandidaten als Antwortkandidaten gesperrt.
- Doc 563 darf nicht als Antwort, Gegenentscheidung, Erledigung, Friststart oder Rechtsbehelfsabschluss zaehlen; Status bleibt `nicht_versandfrei`.


## BVerwG-Top15-Gesamtstatus 2026-05-27

- `runtime/bverfg_egmr_20260526/build_bverwg_p1_antwortkette_doc563_20260527.py` prüft die 8 P1-Zeilen gegen den Antwortketten-Suchraum und sperrt Doc 563 global als Antwortkandidat.
- `runtime/bverfg_egmr_20260526/build_bverwg_top15_gesamtstatus_doc563_p0p1_20260527.py` führt P0-Endentscheid und P1-Antwortkettenstatus zusammen (privacy-safe Outputs ausserhalb Forgejo).
- Ergebnis: 15/15 Topzeilen, P0=7, P1=8, 0 Versandfreigaben; Statusgruppen bleiben offen nach Teilgegenstück, falschem Treffer, Review-Gegenstück, harter Nichtantwort oder fehlender Doc563/GBA-Originalantwort.


## BVerwG-Originalreview-/Gliederungsblock 2026-05-27

- `runtime/bverfg_egmr_20260526/build_bverwg_top15_originalreview_queue_20260527.py`, `decide_bverwg_top15_originalreview_queue_20260527.py`, `apply_bverwg_originalreview_decisions_to_top15_20260527.py` und `build_bverwg_nichtversandfreie_zulaessigkeitsgliederung_20260527.py` bilden die Folgekette nach Top15: Originalsatz-Reviewqueue, konservativer Entscheid, bereinigter Top15-Status und nicht-versandfreie Zulassigkeitsgliederung.
- Ergebnis: 23 Evidenztexte, 13 nur Kettensignal, 10 falsche Treffer, 0 Antwortdeckung, 15/15 Topzeilen weiter `nicht_versandfrei`, 6 Gliederungsachsen.


## BVerfG/EGMR-Zulaessigkeitsregel-Mapping 2026-05-27

- `runtime/bverfg_egmr_20260526/build_bverfg_egmr_zulaessigkeitsregel_mapping_20260527.py` ist der Regel-Mapping-Baustein für die BVerwG-Top15-Achsen.
- Er führt BVerfG-Gates für Beschwerdegegenstand, Rechtsweg/Subsidiaritaet, Monatsfrist, Anhoerungsruege, schweren Nachteil/Fortwirkung und Substantiierung sowie EGMR-Gates für Konventionsrecht, Opferstatus, Rechtswegerschoepfung, Viermonatsfrist, Erheblichkeit und Fortwirkung.
- Ausgabe: 72 Gate-Zeilen (privacy-safe Outputs ausserhalb Forgejo), alle 6 Achsen wegen Stop-Lücken weiter nicht antragstauglich und nicht versandfrei.


## BVerfG/EGMR-DOCX-Korrekturfassung 2026-05-27

- `runtime/bverfg_egmr_20260526/build_bverfg_egmr_docx_korrekturfassung_20260527.py` erzeugt aus dem Top15-/Zulaessigkeitsstand eine DIN-A4-Hochkant-DOCX für Inline-Korrektur (privacy-safe Output ausserhalb Forgejo).
- Inhalt: 11 menschlich korrigierbare Punktkarten aus 15 Teilpunkten mit Ursprungsdokument, Paperless-Fundstelle, Aktenzeichen/Vorgangsbezug, Beschwerdegegenstand, bisherigem Prüfstand, geprüften späteren Antwort-/Entscheidungskandidaten, fehlenden Originalankern, Prüffragen und Korrekturfeld.
- Sichtbare Rohbegriffe/IDs (`TAB-`, Gate-/Mapping-IDs, `Gegenstueck`, `Mapping`, `Antwortdeckung`, `Reviewqueue`, `Sync-Lauf`) bleiben aus dem DOCX-Lesefluss.
- Der Baustein ist eine Korrektur-/Prüfansicht, keine Versand- oder Antragserzeugung.


## Gerichtssichtbares Sprachlogik-Gate 2026-05-28

- `toolbox/legal/court_visible_language_gate.py` prüft DOCX/MD/TXT/CSV vor Ausgabe auf unlogische Stapel-/Superlativformeln, interne Prüfbegriffe und schwache Antragsformeln.
- Gesperrt sind unter anderem `wenige erste`, `erste offensichtlichste`, `offensichtlichste Punkte`, sichtbare `TAB-`/`REGMAP-`/`BVEG-`/`ZUL-`/`Paperless`-/Reviewbegriffe und sichtbares `Bitte`.
- Zugehoerige Regeln liegen in `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/paperless_task_rules.json`, `toolbox/legal/config/hw3d_knowledge_layers.json` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md`.


## Neu-User-Busch-Guide 2026-05-28

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js` führt im Usermenü eine wiederaufrufbare Tour für neue und bestehende User.
- Schritte: Konto/Provider, Arbeitsprofil, Paperless/Fallordner, erster Falllauf.
- Settings: Haertegrad der Gesetzesanwendung, eigene Azubi-Arbeitsregeln, RAG-Charakter, Pizza-Button-Regeln, Regex-/Namensregeln, Paperless-Tags und Fallordner.
- Welle 2 speichert `guide_settings` und `guide_progress` serverseitig im Account-Profil; `azubi42_server.py` normalisiert daraus `user_runtime_context` für RAG, WH3D, Fachazubi und Falllauf-Manifeste.
- `01_8_JuraBibliothek.js` zeigt und übergibt diesen Kontext im Falllauf, `01_7_Communication.js` zeigt ihn im Fachazubi-Dialog.
- Lokale Speicher `azubi42.newUserGuide.progress.v1` und `azubi42.newUserGuide.settings.v1` bleiben nur Fallback/Offline-Spickzettel.
- `10_SHARED_CORE/app_v27_multimedia/css/style.css` liefert responsive Guide-Karten ohne Textüberlauf.
- Arbeitsliste: `00_META/NEU_USER_BUSCH_GUIDE_ARBEITSLISTE_2026-05-28.md`; Installer-Spiegel synchron; Smoke: `70_TESTS_AND_SMOKE/ui/audit_new_user_busch_guide.mjs`[private Angabe entfernt]`version_manifest.json`, gesperrt bis zum Nachweis); Live-Deploy-Gate: `-RunUsermanagementSmoke`.


## Request-Review-POST-only 2026-05-28

- `azubi42_server.py` erzeugt für Matrix/Web keine sichtbaren Freigabe-Ausführungslinks mehr.
- Review-URLs enthalten nur noch `request_id`; alte Links mit `intent=...&execute=1` werden ohne Aktion auf die saubere Review-Seite umgeleitet.
- Freigabe/Ablehnung laufen ausschließlich über das POST-Formular, damit kein Matrix-Syntax-/Aktionslink im Browser-URL-Zustand erscheint.
- Vertragssmoke: `70_TESTS_AND_SMOKE/legal/test_matrix_access_request_approval_contract.py`.


## Usermanagement-Lifecycle 2026-05-28

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt `check_account_username_preflight`, Provider-Direktlinks und einen gesperrt bis zum Nachweis Provisionierungsstatus für Zugangsanfragen.
- Geprüft werden lokale Azubi42-Logins, Matrix-Freigaben, konfigurierte Forgejo-/Paperless-Userlisten und die Access-Request-Queue; Review führt denselben Check erneut aus.
- Bestandsuser aus lokalen Accounts und Matrix-Altfreigaben laufen über denselben Konto-/Accounting-Nachzug.
- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js` und `10_SHARED_CORE/app_v27_multimedia/css/style.css` zeigen die Konto-Direktlinks im Usermenü.
- `30_INSTALLERS/ubuntu24/azubi42-server/create_azubi42_user.sh` nutzt denselben Preflight und dieselbe Passwort-Hashlogik; `30_INSTALLERS/ubuntu24/config-templates/server-auth-jura.example.json` dokumentiert Matrix, Forgejo und Paperless als getrennte Provider.
- Smokes: `70_TESTS_AND_SMOKE/legal/test_user_account_lifecycle_contract.py` und `70_TESTS_AND_SMOKE/integrations/smoke_usermanagement_lifecycle_live.mjs`; Deploy-Schalter: `toolbox/deploy/deploy_live_winscp.ps1 -RunUsermanagementSmoke`.


## Usermanagement-Smoke-Cleanup 2026-05-28

- `70_TESTS_AND_SMOKE/integrations/smoke_usermanagement_lifecycle_live.mjs` entfernt nach dem mutierenden Browser-Smoke nicht nur temporaere Admin-/User-/Matrix-Freigaben und Request-Dateien, sondern redigiert auch die zugehoerige Matrix-Testnachricht über deren gespeicherte `event_id`.
- Damit bleiben keine alten Smoke-Karten mit überholten Review-Links im ServerRoom stehen.


## Matrix-/Communication-Account-Kontext 2026-05-28

- `azubi42_server.py` schreibt in Matrix-Zugangsanfragen nur Request-Daten und `Matrix-Kontakt`, aber keine Review-/Freigabe-URLs und keine `matrix.to`-Direktlinks mehr.
- `auth_providers.matrix.client_url` führt den eigenen Element-Web-Client (`https://element.42.chat`) als `account_links.matrix_client`; `01_7_Communication.js` erzeugt daraus ein persistentes Account-Matrix-Template und öffnet den Knoten über den serverseitigen Client statt über den App-Chooser.
- `70_TESTS_AND_SMOKE/integrations/smoke_usermanagement_lifecycle_live.mjs` besitzt Guards für `matrix_client`, Element-Client-Link und Smoke-only-Redaktion.
- `01_4_InterfaceChrome.js` sendet Account-Profilupdates als `azubi42:account-profile-loaded`; `/api/legal/case/learn` erzeugt bei fehlendem Paperless-Tresor einen belegten Null-Lernlauf mit Warnung statt 502 und behauptet keine Dokumente.


## Paperless-Sidecar-Spiegel und leere Sidecar-Anker 2026-05-28

- `toolbox/legal/paperless_atom_indexer.py` erzeugt für Sidecars ohne indizierbaren Volltext ein `metadata_only`-/Sichtprüfungsfragment statt eines Jobabbruchs.
- Es wird kein OCR-Text erfunden; Paperless-ID, Dateiname, Quelle/Archiv, Dateigrößen, Warnungen und Sichtprüfpflicht bleiben als zaehlbarer Dokumentanker für RAG/WH3D/Helix erhalten.
- Vollimporte können stale Paperless-Dokumente per `--prune-missing` aus der Atomindex-DB entfernen; mit `--limit` ist Prune gesperrt, damit keine Teilfenster den Vollindex loeschen.













## FixIt-Jobkontrolle 2026-05-20, seit 2026-06-16 Aktenhaltung

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js` führt ein faltbares Kontrollpanel; `01_8_JuraBibliothek.js` liest FixIt-Liste, Auto-Signalstatus und Team-Ping aus den vorhandenen Serverendpunkten, zieht sie in Login-Frischelauf und Bestand-Refresh ein und markiert fehlgeschlagene Jurabibliothek-Jobs sichtbar.
- Das Panel liegt fachlich in `view-aktenhaltung`, nicht mehr in der Bibliothek.
- `view_start_menus/bibliothek_menu.js` führt Direktaktionen für `FixIt lesen`, `Team ping` und `FixIt JSON`; Installer-Spiegel und Audit `audit_aktenzeichen_timeline.mjs` sind synchron.


## FixIt-Jobentkopplung 2026-05-21, seit 2026-06-16 Aktenhaltung

- Kontrollierte Jurabibliothek-Jobstatuslisten sind `data-fixit-ignore`, damit rote Fetch-/Retry-Status nicht als neue UI-Fehler dupliziert werden.
- `azubi42_server.py` führt `/api/legal/jurabibliothek/retry-failed` zum erneuten Einreihen fehlgeschlagener Jobs; `01_8_JuraBibliothek.js` bindet `Fehlerjobs neu einreihen`.
- `09_9_ErrorFixList.js` stellt `window.azubi42FixIt.clear()` für das Aktenhaltungspanel `UI leeren` bereit.


## Gerichtssprache-/Gegenüberstellungs-QA 2026-05-21

- `toolbox/legal/config/hw3d_knowledge_layers.json`, `paperless_task_rules.json`, `language_packs/legal_de_language_profile.json`, `private_schriftsatz_notice_blocks.json`, `realfall_amt_vi_ausblendung_court_package.py`, `sgf_row_enrichment.py`, `sgp_row_enrichment.py` und `sgf_harter_kern_prueftabelle.py` trennen die Wortverwendung von `laienhaft`: keine Selbstabwertung der Kläger-/Nutzerseite, aber belegter Vorwurf gegen Gericht/Behörde/Gegenseite bei handwerklich unzureichenden oder themenverfehlenden Antworten bleibt möglich.
- Dieselbe Regelgruppe verlangt bei Schriftstuecksuche ab Datum oder zwischen mehreren Stellen eine Paperless-basierte Gegenüberstellungs-/Hin-Her-Mehrspur-QA als Azubi-eigenes Sicht- und Gegenzaehlwerkzeug.
- Installer-Spiegel synchron; aktueller AMT-VI-33-Ordner wurde sichtbar geprüft.


## Paperless-/Blickwinkel-Echtquellenpflicht 2026-05-21

- `01_1_Layout.js` führt keine hart verdrahtete Akteurs-Demo-Datalist mehr.
- `01_8_JuraBibliothek.js` baut Upload-Kontextvorschlaege nur aus echtem aktuellem Upload-Kontext, Upload-Protokoll, Paperless-Ordnerbaum, AMT-Connector und letztem AZ-/Vorgangslauf; ohne Quelle zeigt die UI `Keine echten Vorgangsvorschläge geladen`.
- `01_9_LegalPerspectives.js` startet Blickwinkel-Basislinien neutral-grau und erzeugt farbige Signallinien erst aus erkannten Textsignalen mit eigener `legalPerspectiveSignalId`.
- `toolbox/legal/config/hw3d_knowledge_layers.json`, `toolbox/legal/config/paperless_task_rules.json` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` verankern `ui_runtime_claims_must_be_data_backed`.
- Installer-Spiegel und `audit_aktenzeichen_timeline.mjs` prüfen diesen Anti-nicht belegter Zustand-Vertrag.


## Communication-Connector-Transparenz 2026-05-26

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` führt für Chat-/Messenger-Dienste sichtbare Loginarten und Connectorstatus.
- Matrix bleibt der einzige als aktiv markierte API-Connector, weil `11_AUTH_MANAGER/11_3_MatrixBridge.js` den echten Matrix-Pfad traegt.
- Slack, Discord, LinkedIn, Facebook, Instagram, TikTok, Teams und Google Chat sind OAuth-/WebAuthn-Webstarts; WhatsApp und Telegram QR-/Handy-Kopplung; Signal manuelle Desktop-Kopplung.
- Kacheln, Template-Karten und Webconnect-Knoten zeigen diesen Status direkt an und entfernen pauschale `Neu`-/`Thin Head`-Labels.
- Der Baustein baut keine Schein-OAuth-Clients, sondern macht fehlende Backend-Connectoren sichtbar.
- Installer-Spiegel synchron; QA: `node --check`, `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs`.


## Terminologie-/Rollenquellen-Gate 2026-05-25

- `toolbox/legal/config/legal_rule_source_contract.json` ist der Quellenvertrag für gerichtssichtbare Begriffe, Rollen, Statusfelder, WH3D-Früchte und Blickwinkelwaffen-Signale.
- `hw3d_knowledge_layers.json`, `paperless_task_rules.json`, `language_packs/legal_de_language_profile.json`, `00_META/ARBEITSALLTAG.md`, `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` und `01_9_LegalPerspectives.js` verlangen vor sichtbarer Verwendung den Abgleich gegen amtliche Quelle, Projektwoerterbuch, Bestandscode oder freigegebenen Vertrag.
- PKH/Beiordnung ist keine Akteursrolle, sondern Vorgangs-/Rechtsfrage; Rechtsanwalt/Rechtsbeistand bleibt Person-/Akteursrolle.
- Installer-Spiegel synchron.


## Blickwinkelwaffe-Hard-Anchor-Hinweis 2026-05-25

- `01_9_LegalPerspectives.js` und `FUNKTIONSINVENTAR_AZUBI42.md` führen sichtbar denselben Ankervertrag wie der Paperless-Detailpunkt-Audit.
- Antwortdeckungsfarben, Ausblendungsfrüchte und Blickwinkelwaffen-Treffer brauchen harte Einzelanker; reine Schablonen-, Weiterleitungs- oder Standwoerter reichen nicht.


## AMT-VI Meistertext-Delta 2026-05-25

- `toolbox/legal/amt_vi_open_basis_meistertext_delta.py` leitet aus der 33er offenen Basis ein geschütztes Delta ab, ohne vorhandene Gerichtsdokumente zu mutieren.
- Der Baustein inventarisiert die bestehenden Meister-DOCX/XLSX, ignoriert Office-Lockdateien, schreibt Textsnapshots, Empfänger-Deltas und eine Arbeitskopie unter `34_OFFENE_BASIS_33_MEISTERTEXT_DELTA_2026-05-25/03_MEISTERTEXT_ARBEITSKOPIE`; der 33er Leitbestand bleibt Hash-stabil.


## AMT-VI Meistertext-Delta-Inline 2026-05-25

- `toolbox/legal/amt_vi_apply_meistertext_delta_inline.py` baut Empfänger-Deltas zeilentreu in die geschützte 34er Arbeitskopie ein, ohne den 33er Leitbestand zu beruehren.
- Der Baustein erkennt nummerierte DOCX-Anker vor `Anlage und Leseführung`, schreibt Ziel-XLSX mit neuer Zeilenzahl und führt AOK/Krankenkasse als Gegenstellen-/Folgespur, nicht als eigenen Empfänger.
- Gültiger Inline-Stand: SGP 621 Datenzeilen/15 Spalten, SGF 141/15, LSG 244/15, BSG 305/15, BVerwG 1511/17; AOK-Punkt `TAB-00696` liegt in SGP/SGF/LSG.
- QA-Reports unter `20_QA_AUDIT/*_delta_inline_2026-05-25.json`.


## AMT-VI Gerichtspaket-Sprachglättung 2026-05-26

- Die geschützte 34er Arbeitskopie wurde ohne Neuaufbau und ohne Zeilenverlust gerichtssichtbar nachbearbeitet.
- Alle fuenf XLSX-Anlagen behalten ihre Zähler SGP 621/15, SGF 141/15, LSG 244/15, BSG 305/15 und BVerwG 1511/17; interne oder unschoene sichtbare Begriffe wie `Antwortdeckung`, `Nachfolgeabgleich`, `Vorprüfung`, `Registertreffer`, `paperlessvergleich`, `Finalprint`, `richtercheck`, `technische Metadaten` und `Stand / nächster Schritt` wurden durch Aktenabgleichs-, Einzelpunktbehandlungs- und gerichtliche Bearbeitungsformeln ersetzt.
- DOCX-Nachzug: SGP führt nun die 22-jährige Formfehler-/Überlaengen-/Existenzgründerachse, BSG die Aufgabenabgrenzung zu bisherigen BSG-Antworten und LSG den eigenen Leistungsstand/Ausblendungsblock.
- Finaler sichtbarer Tabellen-Nachputz entfernte `foo`-/`FOOTER`-/Mojibake-/`gebeten`-Reste aus 39 Zellen bei unveraenderten Zählern.
- QA-Dateien: `tabellen_sgp_bsg_lsg_nachzug_qa_2026-05-26.json`, `tabellen_sgp_bsg_lsg_glattung_qa_2026-05-26.json`, `docx_restjargon_glattung_qa_2026-05-26.json`, `final_structural_qa_2026-05-26.json`, `visible_forbidden_term_scan_2026-05-26.json`, `final_visible_cell_cleanup_qa_2026-05-26.json`, `final_cross_read_audit_after_cleanup_2026-05-26.json`.


## AMT-VI DOCX-TAB-ID-Bereinigung 2026-05-26

- Die gleiche 34er Arbeitskopie führt in gerichtssichtbaren DOCX keine internen `TAB-...`/`TAB.`-Prüfkennungen mehr.
- Sichtbare Verweise laufen über die XLSX-Spalte `Nr` als `Anlagenpunkt Nr. ...`, `Anlagenpunkte Nr. ... bis ...` oder `lfd.
- Nr. ...`.
- Betroffen und geprüft: SGP 607..621, SGF 139..141, LSG 237..244, BSG 300..305 und BVerwG 1509..1511.
- Patientenstelle und AZUBI42-Fortschritt hatten keine TAB-Treffer.
- Keine Tabellenzeile und keine Spalte wurde geaendert; Backup und QA liegen unter `20_QA_AUDIT\backup_pre_docx_tab_id_cleanup_2026-05-26` und `20_QA_AUDIT\docx_tab_id_cleanup_2026-05-26.json`.


## AMT-VI DOCX-Gerichtsregister-Bereinigung 2026-05-26

- Die nachgezogenen Delta-/Arbeitslistenbloecke `Ergänzende offene Einzelpunkte` wurden in SGP, SGF, LSG, BSG und BVerwG durch eine kurze gerichtliche Leseführung ersetzt.
- Die Schriftsätze drucken die ergänzten Detailpunkte nicht mehr seitenweise ab; die Details stehen ausschließlich in der beigefügten Tabellenanlage.
- Der sichtbare DOCX-Text beantragt nur noch die aktenkundige Zuordnung und Behandlung im Rahmen der bereits gestellten Einzelpunktanträge.
- Keine XLSX-Zähler- oder Spaltenaenderung.
- Backup/QA: `20_QA_AUDIT\backup_pre_docx_court_register_cleanup_2026-05-26`, `20_QA_AUDIT\docx_court_register_cleanup_2026-05-26.json`; Postscan 0 Treffer auf die entfernten Arbeitslisten- und Auditformulierungen.


## AMT-VI Gericht-DOCX Aktenzeichen-/Vorgangsbetreff 2026-05-26

- In der 34er Meistertext-Arbeitskopie setzen SGP, SGF, LSG, BSG und BVerwG im sichtbaren Betreff jetzt jeweils ein sortierfähiges `Az. u.a.` mit letztem bzw. bekanntem Aktenzeichen und dem Catch-all `und andere - Vorgang 2020-2026`.
- LSG ist damit nicht mehr ohne Zuordnungsanker; BVerwG vermeidet ein erfundenes Aktenzeichen und verweist auf die beigefügte Tabellenanlage.
- Keine XLSX-Zeile, keine Spalte und kein sonstiger DOCX-Block wurde neu generiert.
- Backup/QA: `20_QA_AUDIT\backup_pre_docx_az_vorgang_header_2026-05-26`, `20_QA_AUDIT\docx_az_vorgang_header_2026-05-26.json`; Postscan 5/5 Gericht-DOCX mit genau einer Betreffzeile, `Az. u.a.` und `und andere - Vorgang 2020-2026`.


## Gerichtsausgabe-/Serverregel-Gate 2026-05-26

- `toolbox/legal/config/paperless_task_rules.json`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/hw3d_knowledge_layers.json` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` führen nun das sichtbare Ausgabe-Gate für Online-Textlaeufe: Gericht-DOCX brauchen `Az. u.a. ... und andere - Vorgang 2020-2026`, interne Arbeits-/Debugsprache bleibt aus DOCX/XLSX draussen, sichtbare Mahnwesen-Templates arbeiten mit Antrags-/Mitteilungsformeln statt `bitte ich`, und Windows-/Office-/LibreOffice-Systemzustand wird für Azubi-Arbeitslaeufe nur read-only bzw. nach ausdruecklichem Rueckrollauftrag beruehrt.
- `realfall_amt_vi_ausblendung_court_package.py`, `amt_court_template_builder.py`, `amt_vi_apply_meistertext_delta_inline.py`, `mahnwesen.py` und `config/mahnwesen_templates.json` sind gehärtet; Ubuntu-Installer-Spiegel synchron.
- QA: `70_TESTS_AND_SMOKE/legal/test_court_output_release_rules.py`, JSON-Parse, py_compile, Auditreport `reports/court_output_release_rules_audit_2026-05-26.md`.


## Paperless-Detailpunkt-Antwortdeckung 2026-05-25

- `toolbox/legal/paperless_detailpunkt_erledigung_audit.py` arbeitet serverseitig auf dem aktuellen Paperless-Sidecar-Bestand und der expliziten 1508-Zeilen-Punktliste.
- Rollen-/Dokumentklassifikation trennt Akteur, Dokumentrolle, Vorgangsfrage und Nichtvorgang; Antwortkandidaten sind nur `direction=eingang_gericht_behoerde`, nicht Arbeitsartefakte, Belege, Formulare oder reine Stellenbezüge.
- Der Hard-Anchor-Gate verhindert Antwortdeckung aus Schablonenwoertern: Matchfelder sind auf Ursprung/Schriftstueck, Fundstelle, Zeitraum, Achse, konkreten offenen Punkt und Rechtsanker beschraenkt; generierte Antragssaetze, Folge-/Beschwer-Spalten, Gegenprobe, Stand- und Weiterleitungstexte bleiben draussen.
- Jeder mögliche Treffer braucht mindestens einen harten Einzelanker wie Aktenzeichen, Datum, Nummer, Seiten-/Absatz-/Zeilenbezug, seltenen Eigenbegriff, Normkette oder Original-/Gegenstücksbezug.
- Voll-Lauf 25.Mai.2026: 1508/1508 Punkte, 156 echte Eingangsantwortkandidaten, 119918 Vergleiche, 1053 offene/unscharfe Punkte, 455 mögliche Antwortdeckungen zur Review, 25 unscharfe Punkte als externe Modellqueue, keine Tabellenmutation.
- Batch-Kontrolllaeufe 51..75 und 76..100 in `hardanchor_v3_originalfields`: je 25 Punkte, je 3700 Vergleiche, Statussumme je 25, Tabellen-Nr. exakt fortlaufend, keine Dubletten, keine Tabellenmutation.
- Größeres Kontrollfenster 101..200: 100 Punkte, 13610 Vergleiche, Statussumme 100, Tabellen-Nr. exakt fortlaufend, keine Dubletten, keine Tabellenmutation.
- Größeres Kontrollfenster 201..400: 200 Punkte, 23582 Vergleiche, Statussumme 200, Tabellen-Nr. exakt fortlaufend, 200 eindeutige Punkt-IDs, keine Dubletten, keine Tabellenmutation.
- Größeres Kontrollfenster 401..600: 200 Punkte, 15532 Vergleiche, Statussumme 200, Tabellen-Nr. exakt fortlaufend, 200 eindeutige Punkt-IDs, keine Dubletten, keine Tabellenmutation.
- Größeres Kontrollfenster 601..800: 200 Punkte, 17506 Vergleiche, Statussumme 200, Tabellen-Nr. exakt fortlaufend, 200 eindeutige Punkt-IDs, keine Dubletten, keine Tabellenmutation.
- Größeres Kontrollfenster 801..1000: 200 Punkte, 9706 Vergleiche, Statussumme 200, Tabellen-Nr. exakt fortlaufend, 200 eindeutige Punkt-IDs, keine Dubletten, keine Tabellenmutation.
- Größeres Kontrollfenster 1001..1200: 200 Punkte, 3810 Vergleiche, Statussumme 200, Tabellen-Nr. exakt fortlaufend, 200 eindeutige Punkt-IDs, keine Dubletten, keine Tabellenmutation.
- Größeres Kontrollfenster 1201..1400: 200 Punkte, 10808 Vergleiche, Statussumme 200, Tabellen-Nr. exakt fortlaufend, 200 eindeutige Punkt-IDs, 16 plausible `kein_spaeteres_eingangsdokument`, keine Dubletten, keine Tabellenmutation.
- Paperless-Tags/Regex wurden nur als Dry-Run exportiert: 126 Tags, 32 mit Regex, 0 Regexfehler, 56 Review-Tags, keine Mutation.


## Paperless-Detailpunkt-Fenstermerge und Eingangskontakt-Prüfflags 2026-05-25

- Die konservativen Fensterlaeufe sind in einem frischen Ausgabeordner zusammengeführt: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_fenstermerge_0001_1508_hardanchor_v3_originalfields`.
- Ergänzt wurden das vorhandene Fenster 1..25, das nachgezogene Lückenfenster 26..50 und das Restfenster 1401..1508.
- Merge-Stand: 1508/1508 Punkte, Tabellen-Nr.
- 1..1508 exakt fortlaufend, 119918 Punkt-Dokument-Vergleiche, Statussumme 1508, keine Tabellenmutation.
- Neuer Baustein `toolbox/legal/paperless_incoming_violation_flag_audit.py` prüft Eingangskontakt-Datensätze auf Rechtsbruch-/Verstoß-Prüffelder, ohne Rechtsverletzungen zu behaupten.
- Scope-Korrektur: 156 ist nur der enge Antwortkandidatenkreis für Detailpunkt-Antwortdeckung; für Rechtsbruch-/Verstoß-Prüfflags gilt der breite Eingangskontakt-Scope mit 826 Paperless-Datensätzen aus Behörden-/Gerichtslanes (`eingang_gericht_behoerde`, `stellenbezug_ohne_antwortsignal`, `beleg_anlage_formular`), nicht die bereinigte Schriftsatzanzahl.
- Zusatzzähler: 3258 Seiten, grob 775 Schriftstueckgruppen nach Datum/Lane/normalisiertem Dateinamen, 35 Dateinamen mit Seitenfragment-Signal.
- Ergebnis: 283 `hoch_pruefen`, 311 `mittel_pruefen`, 197 `niedrig_pruefen`, 35 `kein_signal`.


## Scope-Gap Antwortdeckung 2026-05-25

- Der enge Antwortdeckungs-Audit ist für 156 Antwortkandidaten zahlenlogisch valide, aber nicht als rechtlicher Vollstaendigkeitsnachweis freigegeben.
- Unter den 670 ausgeschlossenen Eingangskontakten liegen 535 Reviewkandidaten mit Antwort-/Entscheidungs-/Substanzsignalen, davon 300 hoch und 235 mittel.
- Ausgabe: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_fenstermerge_0001_1508_hardanchor_v3_originalfields/scope_gap_answer_candidate_review`.
- Dieser Scope-Gap ist Pflichtgate vor jedem erweiterten Antwortdeckungs- oder Finalschriftsatzlauf.


## Scope-Gap-535-Klassifizierer 2026-05-25

- `toolbox/legal/paperless_scope_gap_candidate_classifier.py` klassifiziert die 535 Reviewkandidaten audit-only in `echte_antwort_entscheidung`, `nur_beleg_formular`, `seitenfragment`, `stellenbezug_ohne_antwortfunktion` und `ausschluss`.
- Gültiger konservativer Serverstand: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_fenstermerge_0001_1508_hardanchor_v3_originalfields/scope_gap_535_classification_v4_conservative_roles`.
- Ergebnis: 535/535 klassifiziert, 121 zusätzliche Antwort-/Entscheidungskandidaten, 84 Beleg/Formular, 56 Seitenfragment, 56 Stellenbezug ohne Antwortfunktion, 218 Ausschluss.
- Rollen wie Anlage, Vollmacht, Klage, Beschwerde, Schriftsatz und Ruege sperren Antwortdeckung auch bei enthaltenen Entscheidungswoertern; keine Tabellenmutation.


## Erweiterter Paperless-Detailpunkt-Antwortdeckungs-Audit 2026-05-25

- `paperless_detailpunkt_erledigung_audit.py` kann zusätzliche Antwortkandidaten über `--extra-answer-candidates-csv` aufnehmen, ohne den engen Standardlauf zu veraendern.
- Gültiger Serverlauf: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_extended_answers_1508_hardanchor_v3_scopegap121`.
- Ergebnis: 1508/1508 Punkte, 156 enge Antwortkandidaten plus 121 konservativ klassifizierte Zusatzkandidaten, 277 wirksame Antwortkandidaten, 204434 Punkt-Dokument-Vergleiche, Statussumme 1508, keine Tabellenmutation.
- Der starke Antwortdeckungs-Review-Anteil steigt auf 522, bleibt aber Review-Signal und loescht keine Punkte automatisch.


## Paperless-Detailpunkt-Residualreport 2026-05-25

- `toolbox/legal/paperless_detailpunkt_residual_report.py` baut aus einem Auditordner die getrennten Status-/Residual-/Hash-/Plausibilitaetsdateien: offene Punkte, mögliche Antwortdeckungen, unscharfe externe Modellqueue, Lane/Achsen-Status, Seitenzahlalarm, SHA256-Register und Markdown-QM.
- Erweiterter Reportstand: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_extended_answers_1508_hardanchor_v3_scopegap121/AUDIT_VERIFY_AND_RESIDUALS_2026-05-25.md`; lokaler Pull: `runtime/local_handoff/server_audit_pull_2026-05-25_extended_answers_1508_hardanchor_v3_scopegap121`; zusammenfassender Repo-Report: `reports/amt_vi_detailpunkt_bibliothek_qm_2026-05-25.md`.
- Residuals erweitert: 747 streng offene Punkte, 761 mögliche Antwortdeckungen zur Review, 11 unscharfe externe Modellqueue.


## Antwortdeckung-Review-Blockcheck 2026-05-25

- `toolbox/legal/paperless_answerdeckung_review_blockcheck.py` teilt die 761 möglichen Antwortdeckungen audit-only in stabile Reviewbloecke, Klassenqueues, Lane/Achsen- und Kandidatendokumentlisten.
- Gültiger Serverstand: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_answerdeckung_review_761_blockcheck_v2_classqueues`; lokaler Pull: `runtime/local_handoff/server_audit_pull_2026-05-25_answerdeckung_review_761_blockcheck_v2_classqueues`.
- Ergebnis: 8 Bloecke, 5 belastbare gleiche-Spur-Treffer, 39 starke gleiche-Spur-Reviews, 51 Querbezug-dominiert, 449 mittel aber nicht gedeckt, 217 schwache Treffer nicht decken.
- Keine automatische Erledigung, keine Tabellenmutation.


## Same-Lane-Satzfenster-Review 2026-05-25

- `toolbox/legal/paperless_answerdeckung_same_lane_sentence_review.py` prüft die 5 belastbaren plus 39 starken gleiche-Spur-Queues gegen echte Satzfenster aus den Paperless-Sidecars.
- Gültiger Serverstand: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_same_lane_sentence_review_44_v1`; lokaler Pull: `runtime/local_handoff/server_audit_pull_2026-05-25_same_lane_sentence_review_44_v1`.
- Ergebnis: 44/44 `falscher_treffer`, davon 40 gemischte Arbeitsfassung/Zitat und 4 echte Originalantworten als Selbsttreffer auf Antworttext.
- Regel: Score, harte Anker und gleiche Spur reichen nicht; nur ein sauberer späterer Originalantwortsatz auf einen offenen Ursprungspunkt darf Deckung tragen.


## Antwortdeckung-Review-Decision-Apply 2026-05-25

- `toolbox/legal/paperless_answerdeckung_review_apply_decisions.py` entfernt audit-only bestaetigte False-Hits aus der Reviewbasis, ohne Gerichtstabellen zu mutieren.
- Zwischenstand: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_review_basis_after_same_lane_false_717_v1`; lokaler Pull: `runtime/local_handoff/server_audit_pull_2026-05-25_review_basis_after_same_lane_false_717_v1`; 44 Same-Lane-False-Hits entfernt, 717 verbleibende Reviewzeilen.
- Gültiger Endstand nach Same-Lane plus Cross-Lane: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_review_basis_after_same_cross_false_666_v1`; lokaler Pull: `runtime/local_handoff/server_audit_pull_2026-05-25_review_basis_after_same_cross_false_666_v1`; 95 False-Hits entfernt, 666 verbleibend mit 449 mittel und 217 schwach.


## Cross-Lane-Satzfenster-Review 2026-05-25

- `toolbox/legal/paperless_answerdeckung_cross_lane_sentence_review.py` prüft die 51 `querbezug_dominiert_review`-Zeilen gegen Paperless-Sidecar-Satzfenster.
- Gültiger Serverstand: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_cross_lane_sentence_review_51_v1`; lokaler Pull: `runtime/local_handoff/server_audit_pull_2026-05-25_cross_lane_sentence_review_51_v1`.
- Ergebnis: 51/51 `falscher_treffer`; Querbezug ist Kontext/Spurhinweis, aber kein Erledigungsnachweis für den Ursprungspunkt.


## Residual-Satzfenster-Review 2026-05-25

- `toolbox/legal/paperless_answerdeckung_residual_sentence_review.py` prüft die verbleibenden Restklassen blockweise gegen Same-/Cross-Kandidat, Sidecar-Satzfenster, Kandidatenrolle, Richtung und Spur.
- Gültige Serverstaende: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_residual_sentence_review_mittel_449_v1` und `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_residual_sentence_review_schwach_217_v1`; lokale Pulls unter `runtime/local_handoff/server_audit_pull_2026-05-25_residual_sentence_review_*`.
- Ergebnis Mittel: 449 geprüft, 438 `falscher_treffer`, 11 offen.
- Ergebnis Schwach: 217 geprüft, 195 `falscher_treffer`, 22 offen.
- Endstand nach Apply: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_review_basis_after_residual_false_33_v1`; 33 offene Restzeilen, keine automatische Erledigung, keine Tabellenmutation.


## Open33-Endprüfung 2026-05-25

- `toolbox/legal/paperless_answerdeckung_open33_final_sentence_review.py` prüft die 33 offenen Restzeilen einzeln gegen Ursprungspunkt, Same-Lane-Originalantwortsatz und Cross-Kontext.
- Gültiger Serverstand: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_open33_final_sentence_review_v1`; lokaler Pull: `runtime/local_handoff/server_audit_pull_2026-05-25_open33_final_sentence_review_v1`.
- Ergebnis: 33 eindeutige Punkt-IDs, 30 `offen_endgueltig`, 3 `teilweise_beantwortet_pruefen`; Teilantwort bleibt Human-Review-Pflicht und deckt keine Tabellenzeile automatisch.


## Open30-Basisbuilder 2026-05-25

- `toolbox/legal/paperless_answerdeckung_open_basis_builder.py` überführt die Open33-Endprüfung in die nächste Arbeitsbasis.
- Gültiger Serverstand: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_open30_basis_partial3_review_v1`; lokaler Pull: `runtime/local_handoff/server_audit_pull_2026-05-25_open30_basis_partial3_review_v1`.
- Ergebnis: 30 offene Antwortlücken in menschenlesbarer Schriftsatz-/Tabellenbasis, 3 Teilantwortfaelle als Mini-Reviewqueue mit HTML, lokalem Entscheidungszustand und JSON-/CSV-Export; keine Tabellenmutation.


## Open30-Sinnsatzreview 2026-05-25

- `toolbox/legal/paperless_answerdeckung_open_basis_builder.py` erzeugt zusätzlich den v2-Stand `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_open30_basis_partial3_review_v2_sinnpruefung`; lokaler Pull `runtime/local_handoff/server_audit_pull_2026-05-25_open30_basis_partial3_review_v2_sinnpruefung`.
- Die 30 offene Basiszeilen bleiben unveraendert; die 3 Mini-Reviewzeilen enthalten jetzt `Spurgleichheit`, `Quellstellen-Hinweis`, `Deutsch-/Sinnprüfung`, `Rechtsprüfung` und die erweiterten Entscheidungscodes für OCR-/Sinnprüfung, Zuständigkeitsprüfung, AZ-/Entscheidungsanschluss und Abwimmel-/Verweigerungsprüfung.
- Regeln wurden in HW3D, Legal-DE-Sprachprofil und Paperless-Taskrules gespiegelt; keine Tabellenmutation.


## Paperless-Detailpunkt-In-Zeilen-Konsistenz-QM 2026-05-25

- `toolbox/legal/paperless_detailpunkt_row_consistency_audit.py` prüft die 1508er Punktliste ohne Tabellenmutation zeilenintern auf Pflichtfelder, Nummernfolge, Datum/Alter, Quelle/Rolle, Achse, Normanker, Fallbezug, sichtbare Technikbegriffe, Sprachrisiken und doppelte OCR-Auszugfragmente.
- Serverlauf: 1508/1508 Punkte, 546 ok, 481 niedrig, 465 mittel, 16 hoch; harte Reviewmenge `Nr 592..607` wegen fehlendem gesichertem Quelldatum.
- Output: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_row_consistency_2026-05-25`; Repo-Report: `reports/amt_vi_detailpunkt_row_consistency_qm_2026-05-25.md`.


## Jurabibliothek-QM/Backfill 2026-05-25

- Sync- und Vector-Timer laufen auf `[Serverpfad]`; `azubi42-jura.service` nutzt den großen Dev-DB-Bestand per `AZUBI42_JURABIBLIOTHEK_DB`.
- Alte `document_versions`-Duplicate-Fehler wurden neu eingereiht und abgearbeitet; `failed` sank von 2199 auf 116.
- Offen bleiben vor allem Feed-Parse-/Netzfehler, 71578 `fetch_case_zip`-Jobs und 559643 Embeddings.
- Eine Vector-Welle erzeugte 8000 neue Vektoren.
- Der Suchranking-Fix ist eingebaut: `jurabibliothek_vector_worker.py` nutzt für `vector-search` eine Hybrid-Suche mit FTS/BM25 zuerst, strikter Norm-/Fachwortgewichtung, Quellenvertrauen und Hash-Vektor nur als Tie-Breaker/Fallback.
- `azubi42_server.py` nutzt dieselbe Gewichtung für die UI-Suche.
- Live-Smoke `Rechtsbeugung` priorisiert amtliche BGH-Rechtsprechung zu `StGB § 339 Rechtsbeugung` vor Paperless-Arbeitsmatrizen.


## Connector-/Pfadleak-Schutz 2026-05-22

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt `redact_private_paths` und `safe_source_reference`; absolute Windows-, `/root`, `/home`-, Server- und UNC-Pfade werden in API-Fehlern, AZ-Zeitstrahl-Quellreferenzen und Cache-Run-Pfaden nicht mehr roh ausgeliefert.
- `01_8_JuraBibliothek.js` redigiert Status-/Payloadmeldungen zusätzlich im Browser, damit AMT-/Paperless-Connectoren und AZ-Zeitstrahl keine internen Pfade anzeigen.
- `amtconnect://...`-Aliasse und Web-URLs bleiben sichtbar; nicht erreichbare Root-Aliasse deaktivieren `Als AZ-Quelle` und `AZ analysieren`.
- Spiegel: Ubuntu-Installer; Smoke: `70_TESTS_AND_SMOKE/legal/test_azubi42_server_privacy_sanitizer.py`.


## Exporter-/Screenshot-/Scroll-Capture-Vertrag 2026-05-23

- `10_SHARED_CORE/app_v27_multimedia/docs/AZUBI42_UI_ANSICHTEN_FUNKTIONS_BAUSTELLEN_2026-05-22.md` führt jetzt Block F als zentrale Baustelle für Top-Navigation-Screenshot, Bereichsaufnahme, sichtbaren Bereich, ganze Seite per Scroll-Capture, offene Inline-Tabs, Workspace-Bild/PDF/DOCX, HTML-ZIP, Schriftsatzpaket, Belegkettenpaket, Clipboard/Send-to, Manifest, SHA256 und Privacy-Redaction.
- Quellvertraege bleiben `00_META/azubi42_export_konzept.md` und `00_META/SCREENSHOT_REGEL.md`; BrowserGateway liefert die echte Screenshot-/Fullpage-Screenshot-/Scroll-/Click-Grundlage über Playwright und gibt Capture-Metadaten sowie PNG-Download aus.
- Topbar-`Shot` erzeugt clientseitig Manifest `azubi42.screen_capture_manifest.v1` mit SHA256, Quelle, Viewport, Modus und Cropdaten.
- Windows-/Office-PDF/A-Exporter bleibt getrenntes Desktop-Thema und ist nicht Teil dieses Browser-/Server-Capture-Blocks.


## Topbar-Screenshot-Exporter 2026-05-23

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js` ist der erste produktive Header-Baustein für echte Nutzerfreigabe-Aufnahmen.
- Der Headerknopf `btn-screen-capture` in `01_1_Layout.js` öffnet ein Panel für Browser-Screen-Capture-API, PNG-Download, Zwischenablage, Bereich markieren, Auswahl zuschneiden, Manifest-JSON mit SHA256/Quelle/Viewport/Privacy und BrowserGateway-Fullpage-Bruecke.
- Boot: `js/main.js`; Spiegel: Ubuntu-Installer; Smokes: `audit_screen_capture_exporter.mjs` und `audit_screen_capture_exporter_browser.mjs`.


## Matrix-Neuuser-Freigabevertrag 2026-05-23

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt für Zugangsanfragen wieder den sichtbaren Matrix-/Admin-Vertrag `freigeben` und `nicht freigeben`.
- Falsch beschriftete oder alte Actionwerte werden nur als Alias akzeptiert und anschließend strikt auf `approved`/`rejected`, `review_status_label` und `review_action` normalisiert.
- Die Matrix-Freigabe schreibt den User in `auth_providers.matrix.approved_users`, nicht nur in die Requestakte.
- Spiegel: Ubuntu-Installer; Smoke: `70_TESTS_AND_SMOKE/legal/test_matrix_access_request_approval_contract.py`.
- Live-Reparatur: `@alice:42.chat` wurde aus der bestehenden `azubi42-jura`-Anfrage freigeschaltet.


## Fehler-Stop-Prozess 2026-05-23

- `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` führt den verbindlichen 9-Punkte-Stoppvertrag für störungsnahe Arbeiten: User-Hypothese zuerst, Minimal-Split-Test zuerst, Single-Bug-Modus, Beweis je Schritt, Hypothesen-Branch-Limit, keine Breitreparatur vor Trigger-Isolation, Widerspruchs-Lock, Real-UI-Replay-Pflicht und Fehlerklassen-Persistenz.
- Dieselbe Logik ist als `faultstop_*` in `toolbox/legal/config/hw3d_knowledge_layers.json` und `toolbox/legal/config/paperless_task_rules.json` verankert; `pre_consume_policy` aktiviert alle neun Guards.
- Der Ubuntu-Installer-Spiegel führt dieselben beiden JSON-Staende.


## Faultstop-Smoke-/UI-Wrap-/Resize-Bauteil 2026-05-23

- `70_TESTS_AND_SMOKE/legal/test_faultstop_guardrails.py` prüft die neun `faultstop_*`-Guards gegen Main- und Installer-Config inklusive `pre_consume_policy`-Booleans.
- `10_SHARED_CORE/app_v27_multimedia/css/style.css` (plus Ubuntu-Installer-Spiegel) führt den Hotfix für sichtbare Textüberlaeufe und manuelle Menühöhensteuerung: Header-Buttons umbrechen, Sidebar-Sektionstitel umbrechen, Dropdown-Summary/Action-Buttons umbrechen, Toolbox-Buttons umbrechen sowie vertikale Resizefähigkeit für geöffnete Sidebar-Dropdown-Panels mit Höhenlimit.


## UI-Wrap-/Resize-Welle 2 2026-05-23

- Dieselbe CSS-Bauteilstrecke führt jetzt zusätzlich robuste Inline-View-/Sidebar-Regeln für reale Überlaeufe: AZ-Timeline-Shell mit `box-sizing`/`min-width:0`, Session-Rename-Button ohne `nowrap`, sichtbarere Sidebar-Resizer (Breite/Höhe), `sidebar-section-body`-Wrap-Regeln für Buttons/Toolbox/Vault und Wrap-Fix für Property-/Theme-/FixIt-Label inklusive FixIt-Toasttext.
- QA bleibt auf den vorhandenen Smokes (`test_faultstop_guardrails.py`, `audit_aktenzeichen_timeline.mjs`, `audit_sidebar_sections.mjs`); Browser-Clicktest auf `127.0.0.1:8142` braucht laufenden UI-Server.


## Originalfundorte-read-only 2026-05-17

- `toolbox/legal/config/hw3d_knowledge_layers.json`, `toolbox/legal/config/paperless_task_rules.json`, `00_META/ARBEITSALLTAG.md` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` sperren Meister-/AMT-/A-amt-Originalordner als Ausgabeziel.
- `toolbox/legal/realfall_hin_her_zeitstrahl_mehrspur.py` verweigert Ausgaben in AMT-/A-amt-Pfadsegmenten.
- Originalfundorte liefern nur Herkunfts-, Lese- und Zähleranker; Ausgaben gehören in Azubi42-Runtime oder ausdrueckliche Arbeitsablage.
- Gefilterte Sidecar-/Atom-/WH3D-Zahlen sind keine Original-Schriftstueck- oder Schriftsatzanzahl.


## Legal-Regelwerk zuerst 2026-05-18

- `toolbox/legal/config/hw3d_knowledge_layers.json` führt jetzt `legal_rulebook_loaded_first` als gemeinsamen Charakter-/Guardrail-Anker für Jura-RAG, WH3D und Tabellen.
- SGP/SGF/Legal-Tabellenlaeufe laden zuerst `toolbox/legal/REGELWERK_AMT_QUELLENFAMILIEN_DUBLETTEN.md` (SSOT), Standard ist quellenbereinigt (nur neueste Version je Quellenfamilie), `--include-duplicates` ist ein bewusster Ausnahmelauf.
- Checkliste (Projektgedaechtnis-Knoten): `/amt-Quellenfamilien`, `/dubletten-versionsstatus`, `/neueste-version-statt-altvarianten`, `/verlustfrei-vs-quellenbereinigt`, `/final-print-druck-export-docx-pdf-varianten`, `/include-duplicates-ausnahmelauf`, `/wiederholte-textpassagen-manuell`.


## Pre-Consume-Inhalts-/Bildtriage 2026-05-18

- `toolbox/legal/paperless_preconsume_content_triage.py` prüft Paperless-Kandidaten vor Bulk-Consume einzeln nach Text/OCR, Seitenbild, lokaler Bild-OCR und bei Bedarf lokalem Servermodell (`qwen3.5`, `llama3.2-vision`).
- Dateinamen sind nur schwache Hinweise; Einzel-Ausnahmelisten sind gesperrt.
- User-Review entsteht erst nach gescheiterter lokaler Modellentscheidung oder bei langen/unplausiblen Dokumenten.
- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` nutzt die Triage vor `/api/paperless/upload` und blockiert nicht vorgangsrelevante Dateien vor Paperless.
- `toolbox/legal/realfall_hin_her_zeitstrahl_mehrspur.py` liest Triage-CSV und entfernt `nicht_vorgang` aus dem Ansichtsscope.
- Vertragsanker: `toolbox/legal/config/paperless_task_rules.json` und `toolbox/legal/config/hw3d_knowledge_layers.json`; Smokes: `70_TESTS_AND_SMOKE/legal/test_paperless_preconsume_content_triage.py`, `70_TESTS_AND_SMOKE/legal/test_realfall_hin_her_zeitstrahl_mehrspur.py`.


## AMT-IV-Neulauf Gerichtsausgabe 2026-05-19 KORR1

- `toolbox/legal/run_realfall_amt_iv_neulauf_server.sh` akzeptiert `PRECONSUME_TRIAGE_CSV` und baut daraus einen gefilterten Source-/Materialized-Scope, bevor Register, Finaltabellen, Gate-QA und Gerichtsausgaben laufen.
- `toolbox/legal/realfall_amt_iv_court_package.py` erzeugt aus Human-Sync-Finalprep/Gate-QA DOCX/XLSX/CSV-Pakete mit Kurzanschreiben, Kurzregister, fachlichen Frontspalten, Hashregister und separater interner AZUBI42-Rueckverfolgung in `20_QA_AUDIT` statt technischer Gerichtsspalten.
- Die Empfängerpakete sind ausdruecklich Fundstellen-, Beiziehungs- und Aktenabgleichsanlagen, keine abschließende Beweiswuerdigung und kein Ersatz für Originalakten.
- 14-Tage-Formeln werden sichtbar als zeitnaher Sachstands- und Aktenabgleichsantrag geführt; BVerfG und EGMR sind nur Prüfschiene/Vorstufe mit Frist-/Formularwarnung; Patientenstelle/Ombudsstellen sind Sachstands-, Informations- und Weiterleitungsspur ohne behauptete bindende Einzelfallentscheidung.
- Der Korrekturstand `C:\AMT-IV_KORR_CLEAN_2026-05-19_KORR1` enthält 513 Master-Zeilen und 8 Empfänger-/Prüfpakete: SGP 296, SGF 217, LSG 188, BSG 483, BVerwG 513, BVerfG-Prüfschiene 513, EGMR-Vorstufe 503, Patientenstelle 360; alle Empfänger-CSV/XLSX haben 23 menschliche Gerichtsspalten ohne Paperless-/Sidecar-/Gate-/Pixel-/Statusbegriffe.
- QA: `AMT_IV_RUN_AUDIT.json` mit 3.073 Empfänger-Tabellenzeilen, 0 Frontspalten-/Techniktreffern und 0 formaljuristischen Warnbegriffen in sichtbaren Frontspalten.
- Artifact-Tool-Render erzeugte blanke PNGs und ist für diesen Stand nur als Render-Tool-Gap dokumentiert; DOCX-/XLSX-Inhalt und Struktur sind maschinell geprüft.
- Smokes: `70_TESTS_AND_SMOKE/legal/test_realfall_amt_iv_court_package.py`, plus Pre-Consume-/Mehrspur-Smokes.


## AMT-VI Patientenstellen-Kurzfax 2026-05-19

- `[lokaler Pfad]` ist als Sachstands-/Weiterleitungs-/Beiziehungs-Kurzfax geführt.
- Der Baustein nennt den direkten Bezug `27.Feb.2026` und führt die Nachtragsschriftstuecke seitdem konkret nach Datum und aktenführender Stelle.
- Sichtbare Lager-/KORR1-/Techniksprache ist in dieser Frontdatei gesperrt; Altstand liegt getrennt unter `99_LAGER_KORR1_NICHT_BEILEGEN`.


## AMT-VI-Ausblendungsneulauf 2026-05-19

- Neues Bauteil `toolbox/legal/realfall_amt_vi_ausblendung_court_package.py` baut direkt aus der AMT-V-Ausblendungs-/Joinqueue eine neue gerichtsfeste DOCX/XLSX/CSV-Ausgabe.
- Jeder Ausblendungspunkt wird als neuer aktueller Vorgangspunkt mit altem Ursprung, Ursprungsalter, Fundstelle, damaliger Zuständigkeit, Gegenprobe, Dienstaufsicht-/Richterschutz-Abgrenzung, LSG-Leistungsbewertung und Folgen-/Schadensprüfachse geschrieben.
- Output: `[lokaler Pfad]`, mit SGP 321, SGF 381, LSG 276, BSG 691, BVerwG 1.669 und Gesamtregister 1.669 Punkten; AMT-V ist im selben Root nur als Kopie `00_AMT_V_KOPIE_AUSBLENDUNG_ESKALATION` abgelegt.
- Der Patientenstellenordner `06_Patientenstelle_Bundespatientenbeauftragter` ist rollenrichtig umgestellt: Frontdatei ist nur das Kurzfax `Patientenstelle_Kurzfax_Sachstand_Weiterleitung.docx` für Sachstand, Weiterleitung und Beiziehung aktueller Schriftwechsel; der alte KORR1-Stand mit 360 Tabellenzeilen/23 Spalten liegt ausschließlich unter `99_LAGER_KORR1_NICHT_BEILEGEN` und ist nicht als Beilage gedacht.
- Spiegel: `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_amt_vi_ausblendung_court_package.py`.
- Smokes: `70_TESTS_AND_SMOKE/legal/test_realfall_amt_vi_ausblendung_court_package.py`; AMT-VI-Smoke 3 passed, sichtbarer Tech-Begriff-Scan der Gerichtsordner 0 Treffer; kompletter Neusicht/Joinqueue/Notice-Smoke bleibt Vorgänger-QA.
- Render-QA: Artifact-Tool erzeugt in dieser Umgebung blanke PNGs, DOCX-Text/Styles und XLSX-Zeilen wurden maschinell geprüft.


## AMT-VI-Antragssprache und SGF-Anschlussruege 2026-05-19

- `toolbox/legal/realfall_amt_vi_ausblendung_court_package.py` erzwingt sichtbare Antragssprache statt Bettel-/Bitte-Sprache und sperrt `bitte`, `gebeten`, `erbeten`, `erbitten`, `Sachstandsbitte`, `Aktenabgleichsbitte` sowie `Bedenken` in gerichtssichtbaren Frontfeldern.
- SGF wird nicht mehr als allgemeiner Tabellenanschluss geschrieben, sondern als eigener Anschlussruege-Schriftsatz mit Gegenstand, Kurzsachverhalt/Ausblendungslage, rechtlicher Einordnung, konkreten Anträgen und Anlage als Fundstellenregister.
- Der Betreff führt `Ausblendungen` und `PKH-/Beistandsversagen mit spaeterer Bewilligung`; die Kernzahlen sind 381 SGF-Punkte, 141 Akten-/Beiziehung, 107 Zuständigkeit/Rechtsweg, 46 PKH/Rechtsbeistand, 22 Textbaustein/Formelschreiben und 20 Gesundheit/AOK/Krankenversicherung.
- Das Hashregister zaehlt den tatsaechlichen Paketordner inklusive Patientenstellen-Mitlauf.


## AMT-VI-SGF-Current-Reference-Gate 2026-05-19

- `toolbox/legal/realfall_amt_vi_ausblendung_court_package.py` führt für SGF einen festen aktuellen Anschlussbezug: Schreiben des Praesidenten/Gerichtsleitung des Sozialgerichts Frankfurt (Oder) vom 13.Apr.2026, Az.
- 3132-0212, zur Dienstaufsichtsbeschwerde vom 08.Mrz.2026 gegen den Vorsitzenden der 23.
- Kammer, Verfahrensbezug u.a. S 23 SV 2/25.
- Die SGF-DOCX ist dadurch Antwort/Anschlussruege/Antrag auf punktweise Ergänzung/Neubescheidung dieses Schreibens und kein neuer isolierter Antrag.
- Quellenanker: `reports/sgf_gerichtsschreiben_2026-04-13_pruefbericht.md`, `reports/sgf_anschlussruege_sendefassung_2026-05-05_ergaenzt.md`; die eigenständige Original-PDF wurde im lokalen Spiegel nicht belegt.
- Der 05.Mai.2026-Substanzblock ist als Antwortdeckungs-/Rechtsrahmenblock eingebaut: Betreffsverengung, Aktenbasis, Einzelpunktmatrix, Art.-97-GG-/Art.-108-LV-/§-26-DRiG-Abgrenzung, PKH/Rechtsbeistand, Akten/Kopien/Übermittlungsvermerke, Zustellung/eRV/Drittzugang, Verweisungs-/Zuständigkeitskette und AOK/medizinische Versorgung.
- Aktueller AMT-VI-ZIP-Stand: `[lokaler Pfad]`, SHA256 `7D5DF0B7FA3625F061BEA8B9A28912171B0646D47894628B78AA21B01A2DBB25`.


## AMT-VI-SGP-AOK-30P-Anschlussruege 2026-05-20

- `toolbox/legal/realfall_amt_vi_ausblendung_court_package.py` baut SGP nun nicht mehr generisch, sondern als eigenen Anschlussruege-/Eilantragskoerper.
- Reihenfolge: 30-Prozent-/Jobcenter-/Existenzgründungsachse und AOK-/Krankenversicherungsachse zuerst, danach Zustellung/eRV/E-Post, geöffneter/verspaeteter Zugang, Zuständigkeit/Rechtsweg, Irrlaeufer LSG/JCZ/SGP, Rechtsbeistand/PKH/Eilstatus, Ausblendungen 2020-2021, Suder-Beschluss, alte Akte/RA Kapust/Aktenunterdrueckung und Beschwerdeverfahrensaktenzeichen je Einzelpunkt.
- Neuer reproduzierbarer QA-Baustein: `20_QA_AUDIT/SGP_AOK_30P_AKTUELLER_BEZUG_CHECK_2026-05-20.csv` mit Rohfeld-Tags für AOK/KK, 30P/Jobcenter/Existenzgründung, Zustellung/eRV/Zugang und Irrlaeufer.
- Aktueller Output: `[lokaler Pfad]`, ZIP SHA256 `EDD99FEEDAD20CCA69CE9CE7A0A93FD10864661937188F4208DCE057036D327F`, SGP 321 Tabellenzeilen/15 Spalten, 25 ZIP-Eintraege.


## Paperless-Vollread-Ausblendung 2026-05-20

- `toolbox/legal/realfall_paperless_fullread_ausblendung.py` liest den aktuellen lokalen 831er Paperless-/Sidecar-Scope komplett durch und schreibt getrennte Dokument-, Rohkandidaten-, Cluster- und Problem34-Nachfasserlisten.
- Der Lauf arbeitet auf `[lokaler Pfad]`, nicht in Originalordnern: 831 Manifest-Dokumente, 806 Volltexte, 25 Problem34-Kurztexte, 830 lesbare Dokumente, 1 Nachfasser nur Manifest, 2.511 Seiten, laengste Datei 60 Seiten, 12.439 Rohkandidaten und 4.279 zusammengezogene Cluster aus 534 Dokumenten.
- `toolbox/legal/realfall_paperless_fullread_compare_amt_vi.py` vergleicht diese Cluster gegen die aktuelle 1.669er AMT-VI-Ausblendungsjoinqueue und schreibt `[lokaler Pfad]`.
- Entscheidung des Bauteils: Die 1.669er AMT-VI-Ausgabe ist nur Arbeitsstand; vor neuer Versandnaehe müssen Fullread-Cluster per Quellspur, aktuellem Gegenstück, Antwortdeckung, Dublette und Empfängerrolle gemappt und danach AMT-VI neu gerechnet werden.


## AMT-VI-BSG-2026-Guard 2026-05-20

- `toolbox/legal/realfall_paperless_fullread_ausblendung.py`[private Angabe entfernt]`toolbox/legal/realfall_amt_vi_bsg_2026_guard.py` prüft den Fullread-/Reviewqueue-Anschluss auf direkte BSG-2026-Schriftstuecke, retargeted falsch gelandete LSG-Zeilen nach BSG und zieht reviewpflichtige eBO-/PKH-/eRV- sowie BSG-Antwortzeilen aus Originaltext nach.
- `toolbox/legal/realfall_amt_vi_ausblendung_court_package.py` sperrt zusätzlich uppercase `BITTE` in sichtbaren Gerichtsfeldern.
- Korrekturoutput: `[lokaler Pfad]`, mit SGP 617, SGF 147, LSG 208, BSG 101, BVerwG 1358 und QA 0 Issues; die BSG-Tabelle enthält wieder echte 2026-Zeilen (15).
- Installer-Spiegel: `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_amt_vi_bsg_2026_guard.py`, plus aktualisierte Fullread-/Gerichtspaket-Skripte.
- Smokes: `70_TESTS_AND_SMOKE/legal/test_realfall_paperless_fullread_ausblendung.py`, `70_TESTS_AND_SMOKE/legal/test_realfall_amt_vi_bsg_2026_guard.py`, `70_TESTS_AND_SMOKE/legal/test_realfall_amt_vi_ausblendung_court_package.py`; 8 passed.


## AMT-VI-Empfänger-2026-Guard 2026-05-20

- `toolbox/legal/realfall_amt_vi_recipient_2026_guard.py` verallgemeinert den BSG-Fix auf alle direkten 2026-Anschlusskontakte.
- Der Guard laeuft nach Fullread/BSG-Guard und vor Gerichtspaket, prüft Dateiname, Briefkopf/Anrede, Paperless-Jahr und direkten Empfängeranker gegen die Joinqueue, retargeted falsche Zielspuren, zieht fehlende Reviewzeilen nach und plausibilisiert Quellen-/Vorgangsdatum gegen Personen-/Formulardaten.
- Aktueller gültiger Korrekturleseordner: `[lokaler Pfad]`; Zähler: SGP 617, SGF 148, LSG 237, BSG 101, BVerwG/Gesamtregister 1388, QA 0 Issues.
- Word-COM/PDF-Render-QA: SGP 4, SGF 5, LSG 2, BSG 2, BVerwG 2 lesbare Seiten; Tests mit Fullread/BSG-/Empfänger-Guard/Gerichtspaket: 12 passed.


## AMT-VI-BSG-Historienkontakt-Guard 2026-05-20

- `toolbox/legal/realfall_amt_vi_recipient_2026_guard.py` führt direkte BSG-Historienkontakte 2020-2026 zusätzlich zu den 2026-Anschlusskontakten.
- E-Post-/Nachrichtenumschlaege an Bundessozialgericht/Kassel erzeugen auch bei `candidate_count=0` eine menschliche Zugang-/Kenntnis-/Antwortdeckungsspur; doppelte From-/To-Umschlagzeilen werden im sichtbaren Auszug dedupliziert.
- E-POST-Rechnungen, Signatur-/Hash-Zufallstreffer und fremde Versandtechnik ohne Gerichtsadressat bleiben Nichtvorgang oder Review.
- Neuer gültiger Korrekturleseordner: `[lokaler Pfad]`; Zähler: SGP 619, SGF 148, LSG 238, BSG 299, BVerwG/Gesamtregister 1589, QA 0 Issues.
- BSG-Vor-Suder-Anker sichtbar: 11.Feb.2022, 23./26.Feb.2022 und 30.Mrz.2022; Regressionstest `test_bsg_historical_epost_envelope_adds_public_history_row` ist im Empfänger-Guard-Smoke enthalten.


## AMT-VI-33 Korrekturlese-Gate 2026-05-21

- `toolbox/legal/realfall_amt_vi_ausblendung_court_package.py` führt `court_clean_source()` für gerichtssichtbare Quellen-/Beiziehungsfelder.
- Semikolongetrennte Platzhaltersegmente `Unklar` werden vor der Ausgabe entfernt, statt als sichtbare menschliche Quelle in DOCX/XLSX/CSV zu erscheinen.
- Der bestehende gültige 33er Korrekturleseordner wurde ohne neue Ordnerkopie bereinigt: `[lokaler Pfad]`.
- Zeilen-/Spaltenzähler bleiben unveraendert: Gesamtregister 1589/17, SGP 619/15, SGF 148/15, LSG 238/15, BSG 299/15, BVerwG 1589/17.
- QA-Report: `20_QA_AUDIT\33_visible_placeholder_cleanup_2026-05-21.json`; Recheck 0 Lesefehler, 0 verbotene Tech-/Statusspalten-Treffer, 0 sichtbare `Unklar`-Segmente.
- Installer-Spiegel des Gerichtspaket-Generators ist synchron und per `py_compile` geprüft.


## AMT-VI-33 Rollen-Gate/Patientenstellen-Kurzfax 2026-05-21

- `toolbox/legal/document_role_classifier.py` ist das allgemeine Dokument-/Empfänger-/Rechtsgebietsrollen-Gate für sichtbare Legal-Ausgaben.
- `toolbox/legal/realfall_amt_vi_patientenstelle_shortfax.py` nutzt es im gültigen Korrekturleseordner `[lokaler Pfad]` für `06_Patientenstelle_Bundespatientenbeauftragter\Patientenstelle_Kurzfax_Sachstand_Weiterleitung.docx`.
- Sichtbar bleiben 14 echte Schriftwechsel-/Entscheidungspunkte seit 27.Feb.2026; 21 Register-, Arbeitsfassungs-, Beleg-, Fragment-, Dubletten- oder unklare Rollenpunkte laufen nur im QA-Ausschluss.
- Keine Volltabelle, keine unmittelbare Zahlungsforderung, keine bindende Einzelfallentscheidung gegen die Patientenstelle.
- `00_AMT_VI_README.md`, `20_QA_AUDIT\AMT_VI_HASHREGISTER.csv` und `20_QA_AUDIT\33_patientenstelle_shortfax_role_filter_2026-05-21.csv/.txt/.json` wurden aktualisiert.
- Installer-Spiegel: `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/document_role_classifier.py` und `.../realfall_amt_vi_patientenstelle_shortfax.py`.


## AMT-IV/AMT-VI Tabellen-Leseführung 2026-05-19

- `toolbox/legal/realfall_amt_vi_ausblendung_court_package.py` und `toolbox/legal/realfall_amt_iv_court_package.py` verdichten Fronttabellen gegen Wiederholungslesen.
- Einzel-Empfänger-Tabellen, BVerwG und Gesamtregister schreiben keine konstanten `Empfänger`-/`Ursprungsempfänger`-Spalten mehr; die Herkunft steht im Ursprungsschriftstück und in der Beiziehungs-/Abgleichsspalte.
- Sichtbare Gerichtsausgaben laufen über `visible_german_text()`, damit Spaltennamen und Textkörper echte Umlaute wie `Empfänger`, `Zuständigkeit`, `Prüfschritt`, `Schriftstück`, `Überlänge` und `Rückgabe` tragen.
- Gerichtssichtbare DOCX-Köpfe nennen Anlagen menschlich als beigefügte XLSX-Tabelle mit Punktzahl statt als Dateiname.
- Aktueller AMT-VI-ZIP-Stand: `[lokaler Pfad]`, SHA256 `7D5DF0B7FA3625F061BEA8B9A28912171B0646D47894628B78AA21B01A2DBB25`, ZIP 24 Eintraege ohne interne `_qa`-Ordner.


## Rechtsschutzziel-/Hinweislogik 2026-05-19

- `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md`, `toolbox/legal/config/private_schriftsatz_notice_blocks.json`, `toolbox/legal/config/language_packs/legal_de_language_profile.json` und `toolbox/legal/config/hw3d_knowledge_layers.json` führen Laienvortrag nun als erkennbare Rechtsschutzziel-Prüfung: Auslegung, richterlicher Hinweis, Gelegenheit zur Klarstellung, Amtsermittlung und Aktenabgleich werden als Schutz-/Arbeitsbausteine modelliert.
- Gleichzeitig ist fest verankert, dass Schlagwoerter ohne Antrag, Gegner/Empfänger, Bescheid/Vorgang, Zeitraum, Anlage/Fundstelle und begehrte Entscheidung nur Signale sind.
- Rechtsmittel-, Anhoerungsruege-, Verzoegerungsruege-, Amtshaftungs- und Rechtsbeugungsspuren bleiben getrennte nachgelagerte Prüfpunkte.
- Installer-Spiegel der drei JSON-Konfigs ist synchron.


## AZUBI42-/WH3D-Methodikhinweis 2026-05-19

- `toolbox/legal/config/private_schriftsatz_notice_blocks.json`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/hw3d_knowledge_layers.json` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` führen jetzt einen gerichtstauglichen Methodik-/Projektstandbaustein.
- Er beschreibt AZUBI42 als private Beta-Arbeitsumgebung und WH3D als graphbasierte Vorgangshelix für Aktenabgleich, Fundstellen, Fristen, Kausalketten, Beteiligten-Lanes, Früchte/Prüfpunkte, Beleganker, Bundes-/Landesanker und Gegenproben.
- Gesperrt sind automatische Beweislastumkehr, automatische Rechtskraftdurchbrechung, automatische Verjaehrungshemmung, automatische Haftung und jeder Ersatz für Originalakte, Beweisaufnahme, Gericht, Anwalt oder zuständigen Rechtsweg.
- Arbeits-DOCX für den BVerwG-Footer-/Anlagenentwurf liegt ausserhalb des Repo-Arbeitsstands unter `C:\AMT-IV_KORR_CLEAN_2026-05-19_KORR1\10_EMPFAENGER_DOCX_XLSX\05_BVerwG_Bundesverwaltungsgericht\BVerwG_AZUBI42_Methodik_Baustatus_Footerbaustein_2026-05-19.docx`; die Position `50 % done` / `210.000 EUR` bleibt KORR2-prüfpflichtige Software-/Baustands-Forderungsachse.


## Digitalzugangs-/Testumgebungsbaustein 2026-05-19

- `toolbox/legal/config/private_schriftsatz_notice_blocks.json`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/hw3d_knowledge_layers.json` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md`[private Angabe entfernt]`Ergaenzende Anlage: Digitalzugang und Testumgebung`.


## Entwicklungs-/Innovationsschadensblock 2026-05-19

- `toolbox/legal/config/private_schriftsatz_notice_blocks.json` Version `20260519e`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/hw3d_knowledge_layers.json` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` führen AZUBI42/WH3D nun als Working-Prototype-, Förder-/Skalierungs-, Baustands- und Schadensprüfachse.
- Erlaubt sind 831 Dokumentpunkte, 5.273 Knoten, mehr als 7.000 Kanten, 420.000 EUR Gesamtentwicklungsposition und 210.000 EUR bei 50 % Baustand nur mit Rechenweg, Artefakt-/Arbeitszeitanker, Kausalweg und Gegenprobe.
- Gesperrt sind automatische Förderansprueche, finale Sabotage-/Kollusionsbehauptungen und ungeprüfte Millionen-/Haftungsfolgen.
- Das BVerwG-Arbeits-DOCX enthält dazu Abschnitt 8 `Entwicklungsnachweis, Foerder-/Skalierungs- und Schadenspruefung`.


## BVerwG-Bild-/Baustandsanker 2026-05-19

- Das bestehende Arbeits-DOCX `C:\AMT-IV_KORR_CLEAN_2026-05-19_KORR1\10_EMPFAENGER_DOCX_XLSX\05_BVerwG_Bundesverwaltungsgericht\BVerwG_AZUBI42_Methodik_Baustatus_Footerbaustein_2026-05-19.docx` führt jetzt Abschnitt 9 `Konkrete Bauteil-, Bild-, Euro- und Baustandsanker fuer KORR2`.
- Der Abschnitt zieht Bauteileliste und Funktionsinventar als Todo-/Prüfkarte in das Dokument: WH3D-/Helix, Hin-Her Mehrspur, Review-Canvas, OCR-Kontrolle, Digitalzugang, Kostenregister und azubi42.de-Public-Layer.
- Server-Screenshots wurden per Playwright-Chromium auf Forgejo erzeugt und als 3200px-Bildanker mit Detailausschnitten und SHA256-Spur abgelegt unter `C:\AMT-IV_KORR_CLEAN_2026-05-19_KORR1_RENDER_QA\BVerwG_AZUBI42_Methodik_Baustatus_Footerbaustein_assets`; Render-QA liegt unter `...\BVerwG_AZUBI42_Methodik_Baustatus_Footerbaustein_render`.


## BVerfG-Mitlaufspur im BVerwG-Paket 2026-05-19

- `toolbox/legal/realfall_amt_iv_court_package.py`, `toolbox/legal/config/private_schriftsatz_notice_blocks.json` Version `20260519f`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/hw3d_knowledge_layers.json` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` sperren ohne ausdrueckliche Versandfreigabe die direkte BVerfG-Adressierung.
- Verfassungsrechtliche Punkte laufen bei Fach-/Bundesgerichten als Mitlauf-, Weiterleitungs-, Meldepflicht-, Beiziehungs- und Aktenklaerungsspur; im aktuellen BVerwG-Paket ist BVerfG Vorprüfung, nicht Direktadressat.
- Das BVerwG-Anschreiben führt die 09.05.2024-/AZ-Schiene, Aktenunterdrueckung, Überlaenge und öffentliches Klaerungsinteresse als BVerwG-Handhabungsblock.
- Die BVerwG-Tabelle bleibt 513 Zeilen stark und hat jetzt 25 Spalten; die beiden neuen Mitlaufspalten stehen am Tabellenende und veraendern keine fachlichen Frontspalten.
- Der Generator erzeugt diese BVerwG-Spalten und den Klarstellungsblock bei kuenftigen Neulaeufen automatisch.
- Das BVerwG-Methodik-DOCX enthält Abschnitt 10 mit vorgemerkten Detailshot-Ankern für Bibliothek, Blickwinkelkanone/Punkte3D und User-Regeln.
- Installer-Spiegel von Generator und drei JSON-Konfigs ist synchron.


## Antwortdeckungs-/Einzelpunktbegründungs-Gate 2026-05-19

- `toolbox/legal/config/hw3d_knowledge_layers.json`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/private_schriftsatz_notice_blocks.json` Version `20260519g` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` führen jetzt ein Pflichtgate für Gerichts-, Behörden-, Krankenkassen- und Gegnerschriftsaetze.
- Jede Antwort wird gegen vorherige Kläger-/Antragstellerpunkte gemappt: Quelle, Seite/Absatz/Zeile, Norm-/Paragrafenanker, damalige Zuständigkeit, Bezug zum Vortrag, Gegenargument, Ergebnis und offener Rest.
- Risiken wie Textbaustein, Richterschutz-Pauschale, fehlender Kernbegriff, falsche Zuständigkeitsannahme oder am Thema vorbeigehende Begründung erzeugen WH3D-Früchte `antwort_luecke`, `thema_verfehlt`, `normanker_fehlt`, `quelle_fehlt`, `zustaendigkeit_ungeklaert`, `textbausteinrisiko`, `richterschutz_pauschal` und `nicht_beschiedener_teilpunkt`.
- Realfall-Suchsignale wie Existenzgründer, 30-Prozent-Leistungsminderung, AOK-/Gesundheitsleistungsgründe, PKH/Beistand und ungeklaerte Zuständigkeit sind im Sprachprofil verankert.
- Installer-Spiegel der drei JSON-Konfigs ist synchron.


## Ausblendungs-Steigerungslogik / AMT-V 2026-05-19

- `toolbox/legal/config/ausblendung_escalation_taxonomy.json` und `toolbox/legal/jurabibliothek/config/ausblendung_escalation_sources.json` führen amtliche Such- und Quellenanker für Antwortluecke, entscheidungserheblichen Kern, wiederholte Ausblendung, Ausblendung nach direktem Hinweis und beharrliches Ignorieren nach Kenntnislage.
- Jurabibliothek-Import: 12 amtliche Quellen, 31 neue Textfragmente, 0 Fehler, Report `reports/egmr_bverfg_quellenpaket_2026-05-19.*`.
- `realfall_amt_iv_antwortdeckung_neusicht.py` erweitert Ausblendungsfrüchte um Stufe, WH3D-Farbe/Bluete, Rechtsfolge-Prüfachse und Bundesanker-Suchbegriffe; `realfall_amt_iv_ausblendung_joinqueue.py` übernimmt diese Felder in WH3D, Mahnwesen, Schriftsatz-Queue und HTML-Review.
- Neuer getrennter AMT-V-Ausgabeordner: `[lokaler Pfad]`; Scope nur SGP/SGF/LSG/BSG aus KORR1, keine Patientenstelle, kein BVerwG.
- Zähler: 1.669 Früchte, Stufe 2 = 897, Stufe 3 = 15, Stufe 4 = 757; Joinqueue 1.669 Zeilen/32 Gruppen.
- Installer-Spiegel und Tests synchron.


## AMT-IV-Neusicht Ausblendungsfrüchte 2026-05-19

- `toolbox/legal/realfall_amt_iv_antwortdeckung_neusicht.py` ist der reproduzierbare Antwortdeckungs-Lauf für SGP/SGF/LSG.
- Er liest die bestehenden KORR1-Gerichtstabellen read-only, verweigert Ausgaben im Eingabe-/Korrekturordner und erzeugt aus echten Ursprungssignalen (Thema, Tatsachen-/Originalstelle, Schriftstuecktitel) atomare `ausblendungsverdacht_antwortdeckung_pruefen`-Früchte.
- Generierte Folge-/Mahn-/Beiziehungstexte bleiben Kontext und blaehen die Kategoriezähler nicht auf.
- Aktueller getrennter Ausgabeordner: `[lokaler Pfad]` mit Gesamt-CSV/XLSX, Empfänger-CSV/XLSX, Summary JSON/CSV/XLSX und README.
- Zähler: SGP 296 Tabellenzeilen -> 321 Früchte, SGF 217 -> 381, LSG 188 -> 276, gesamt 978 Früchte.
- Installer-Spiegel: `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_amt_iv_antwortdeckung_neusicht.py`.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_amt_iv_antwortdeckung_neusicht.py`.


## AMT-IV-Ausblendungs-Joinqueue 2026-05-19

- `toolbox/legal/realfall_amt_iv_ausblendung_joinqueue.py` überführt die 978 Neusicht-Früchte in eine dreifache Anschlussqueue für WH3D, Mahnwesen und Schriftsatzbau.
- Jede Frucht erhält `WH3D-AUS-*`, `MAHN-AUS-*` und `SCHR-AUS-*`, Arbeitsrang, Prioritaetsband, Entscheidungsvorschlag, Reviewfrage, Anzeigegruppe und Einbauort.
- Arbeitsrangfolge: Zuständigkeit/Rechtsweg, Richterschutz-Abgrenzung, Gehoer/Ausblendung, Akten/Beiziehung, PKH/Beistand, Leistung/30 Prozent, Gesundheit/AOK, Existenzgründer, Textbaustein.
- Ausgabeordner: `[lokaler Pfad]` mit `ausblendung_joinqueue.csv/.xlsx` (978 Zeilen/34 Spalten), `ausblendung_joinqueue_summary.*` (24 Gruppen), `mahnwesen_joinqueue.csv`, `schriftsatz_joinqueue.csv`, `wh3d_ausblendung_join_nodes.json` (978 Knoten/978 Kanten) und klickbarer `ausblendung_joinqueue_review.html` für Suche, Filter, Detailpanel, lokale Klickentscheidungen und JSON-Export.
- Installer-Spiegel: `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_amt_iv_ausblendung_joinqueue.py`.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_amt_iv_ausblendung_joinqueue.py`.


## AMT-IV-P0-Zuständigkeit/Rechtsweg-Arbeitsfassung 2026-05-19

- `toolbox/legal/realfall_amt_iv_p0_zustaendigkeit_workdraft.py` ist der erste P0-Blockauszug aus der Joinqueue für nicht-versandfreie Schriftsatz-/Mahnwesen-Arbeit.
- Er filtert `zustaendigkeit_rechtsweg`, gruppiert nach Empfänger und Quelltag, berechnet Überlaengenmonate bis 19.Mai.2026 und erzeugt eine kurze Schriftsatzdarstellung nach der Meisterregel: Empfänger, Quelle/Datum, Anzahl der Ausblendungen, Monate.
- Ausgabeordner: `[lokaler Pfad]` mit Detailqueue CSV/XLSX 305 Zeilen/20 Spalten, Kurzregister CSV/XLSX 43 Zeilen/9 Spalten, Mahnwesen-CSV 43 Zeilen, Gegenüberstellung HTML/JSON mit Blüten und Fruechtchen sowie DOCX/MD-Arbeitsfassung.
- Zähler: SGP 92, SGF 107, LSG 106.
- Installer-Spiegel: `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_amt_iv_p0_zustaendigkeit_workdraft.py`.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_amt_iv_p0_zustaendigkeit_workdraft.py`.


## Server-Timer-Ordnung 2026-05-18

- `toolbox/legal/systemd/azubi42-jurabibliothek-sync.timer`, `azubi42-paperless-atom-index.timer` und `azubi42-jurabibliothek-vector.timer` laufen als schwere Legal-Jobs nur noch in 12-Stunden-Fenstern mit Versatz.
- `40_INTEGRATIONS/paperless/sync/azubi42-paperless-sidecar-sync.timer` ist auf 30 Minuten gedrosselt, `40_INTEGRATIONS/paperless/cbtc/systemd/azubi42-cbtc-vm-watch.timer` auf 5 Minuten.
- Installer-Spiegel und Live-Server-Units sind nachgezogen; 2-Minuten-Dauerfeuer ist nicht mehr der gültige Betriebspfad.


## Spezialansichten-Toolbox 2026-05-20

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `01_2_Navigation.js` und `view_start_menus/bibliothek_menu.js` führen in Toolbox, Bibliothek-Startmenü und linkem `Vorgang3D`-Menü nur noch echte AMT-VI-Hauptziele: `Antwortdeckung Review 320`, `Rechtsmittel Review`, `Rechtsmittel 3D`, `Rechtsmittel Hin-Her`, zugehoerige JSON/CSV/Summary-Daten und den 17.Mai-Hin-Her-Stand nur als klar markierten Alt-Dokument-Scope.
- Alte 16.Mai-`coverage_gate_2026-05-16`-Fakepfade zu nicht vorhandenen Helix-/Human-Review-Artefakten sind aus den Hauptlinks entfernt.
- `toolbox/legal/config/hw3d_knowledge_layers.json` führt dazu `frontend_links_must_resolve_current_artifacts`: Frontend-Hauptlinks brauchen vorhandene Runtime-Artefakte oder werden als Baustelle gesperrt.
- Der Bibliothek-Block `WH3D / RAG Regeln` zeigt `direct_recipient_year_coverage_guard`[private Angabe entfernt]`10_SHARED_CORE/app_v27_multimedia/runtime/legal-jura/private/amt-vi/27_antwortdeckung_review_canvas/` und `.../31_rechtsmittel_effektivitaet/`; Ubuntu-Installer-Spiegel ist synchron.
- Audit: `70_TESTS_AND_SMOKE/ui/audit_toolbox_special_views.mjs` prüft Shared-Core, Installer-Spiegel, vorhandene Runtime-Dateien und verbotene Altpfade.


## Eingebettete 3D-AZ-Helix-Interaktion 2026-05-20

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` führt im normalen Azubi42-Frontend für AZ-Baum und `3D-AZ-Helix` echte Detailpayloads.
- Baum-/Helix-Knoten tragen `data-node-json`, Früchte und Fruechtchen tragen `data-fruit-json`; Klick auf eine Frucht öffnet das neue `aztimeline-detail-modal`, Doppelklick auf Baumknoten oder Helix-Buchruecken öffnet Knotendetails mit Fundstellen, Docs, Poison/Checks, Bundesankern, Punktachsen und Paperless-Link bei ableitbarer numerischer Paperless-ID.
- `10_SHARED_CORE/app_v27_multimedia/css/style.css` enthält die Modalgestaltung und die eingebettete Helix-Höhe wurde von einer flachen 460px-Vorschau auf eine nutzbare variable Leinwand angehoben.
- Installer-Spiegel ist synchron; Audit: `70_TESTS_AND_SMOKE/ui/audit_aktenzeichen_timeline.mjs`.


## Startseiten-Inline-Faltgriffe 2026-05-20

- Derselbe AZ-Baum-/Helix-Baustein führt jetzt `data-aztimeline-title-toggle` als klickbare Titelzeile für Auf/Zu, `data-aztimeline-toggle-label` für synchrone `Auf`/`Zu`-Knöpfe und `openAzTimelineActiveDetail` für einen echten `Detail`-Knopf am aktiven Baum-/Helix-Eintrag.
- Der passive `klickbar`-Chip ist damit aus der eingebetteten Workspace-Ansicht entfernt.

## Startseiten-Bookcase-/LOD-Helix 2026-05-20

- Die eingebettete `3D-AZ-Helix` führt jetzt `data-aztimeline-helix-layout` mit `Bookcase`, `Tiefenhelix`, `Regal` und `Ringe`.
- Standard ist das ruhigere Bookcase-/Spiral-Katalog-Layout mit responsivem Radius, Rank-Index und `data-label-visible`, damit dichte AZ-Mengen nicht mehr alle Titel gleichzeitig überzeichnen.
- Der aktive Eintrag und Suchtreffer bleiben voll beschriftet; Detailpayloads und Paperless-Link bleiben unveraendert klickbar.
- `toolbox/legal/spatial_jura_world.py` drosselt Labels in großen 3D-Welten über `labelBudget`, `labelFits` und `drawNodeLabel`; die AMT-VI-Rechtsmittel-3D-Runtime ist synchron.
- Audits: `70_TESTS_AND_SMOKE/ui/audit_aktenzeichen_timeline.mjs`, `70_TESTS_AND_SMOKE/ui/audit_toolbox_special_views.mjs`.

## Startseiten-AZ-Panel-Collapse 2026-05-20

- Geschlossene `AZ-/Dokumentenbaum`- und `3D-AZ-Helix`-Panels verstecken jetzt nicht nur den Canvas-Body, sondern auch `data-aztimeline-view-controls` mit Suche, Layoutwahl, Fokus, Reset und Zoom.
- `toggleAzTimelinePanel` setzt `aria-hidden`, entfernt beim Zuklappen `aztimeline-full-canvas` und loescht den Full-Canvas-Pressed-Zustand; CSS setzt geschlossene Panels auf `overflow:hidden` und nimmt Controls/Body mit `display:none!important` aus dem Layout.
- Damit bleiben nach dem Zuklappen keine sichtbaren Steuerleisten- oder Containerreste stehen.

## Rechtsmittel-Ansichten-Interaktion 2026-05-20

- `toolbox/legal/spatial_jura_world.py` und `toolbox/legal/realfall_hin_her_zeitstrahl_mehrspur.py` erzeugen in `Rechtsmittel 3D` und `Rechtsmittel Hin-Her` echte Detailmodalen für Knoten, Kacheln, Früchte und Fruechtchen.
- Klick auf Frucht/Fruechtchen und Doppelklick auf Knoten öffnen Tabellenpunkt, Block, Risiko, Status, Originalanker, Rechtsmittel-Gate, konservativen Guard und Paperless-Link bei ableitbarer numerischer Paperless-ID.
- Markerzahlen kommen aus `fruit_badge`, Stufe oder Risiko; laufende Indexnummern sind nur Fallback.
- Seit 22.Mai.2026 kann `spatial_jura_world.py` über `--doc-link-index-csv` denselben Fullread-Join-Index laden: `Rechtsmittel 3D` führt dadurch `1353` Tabellenfrüchte mit `1353` echten Paperless-URLs, `262` eindeutigen Paperless-Dokumenten und Kanten zur Originaldokumentachse.
- `hw3d_knowledge_layers.json` führt dazu `view_markers_must_open_payload_detail`; der UI-Audit prüft Modal, Popup-Aktionen, Markerzahlen und Paperless-Aktion im Shared-Core und Ubuntu-Installer-Spiegel.


## Hin-Her-Mehrspur-Zuordnung 2026-05-17

- `toolbox/legal/realfall_hin_her_zeitstrahl_mehrspur.py` liest für den Dokument-Scope neben Manifestfeldern auch materialisierte Sidecar-Texte, damit bekannte Paperless-Dokumente nicht als finale `Unklar`-Lane enden.
- Der aktuelle Serverlauf führt 831 Dokumentpunkte in 23 Spuren, `Unklar`-Lane 0, sichtbare `Unklar`-Labels 0 und 831 Paperless-Detail-Links.
- Manifestzeilen erzeugen keine Schein-Früchte; Früchte/Fruechtchen werden erst aus echten Tabellen-/Flagquellen per Paperless-Dokument-ID, Seite und Anker gejoint.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_hin_her_zeitstrahl_mehrspur.py`.


## Arbeitslisten-Wellen 2026-05-18

- `00_META/AZUBI42_ARBEITSLISTEN_WELLEN_2026-05-18.md` ist der führende Spickzettel für die nächsten Arbeitsschichten: AMT-IV-Korrekturlesen, Server-Quellen-/Paperless-Abgleich, kompletter serverseitiger AMT-IV-Neulauf, Gerichtstext-/Tabellen-QM, Spezialansichten/Review-UI, Azubi42.de-Donation-/Whistleblower-Ausbau und Automations-/Serverhygiene.
- `toolbox/legal/config/azubi42_work_waves_2026-05-18.json` ist der maschinenlesbare Wellenvertrag für RAG/WH3D/Serverjobs; Windows/Office-PDF-XPS ist dort für diesen Block gesperrt.


## Wellen-Statuschecker 2026-05-18

- `toolbox/legal/azubi42_wave_status_check.py` sammelt read-only vor Bulk-/Serverjobs explizite Server-Lager-, Paperless-Sidecar-, Triage-CSV- und Runroot-Zähler, Seitenstatistik mit laengster Datei, relevante Prozesse, systemd-Timer und Plattenstand.
- Seit 2026-06-07 schreibt derselbe Bausteil für explizite Quellordner zusätzlich `scope_sha256`, `hashed_files`, Hash-Fehlerzähler und kleine `hash_samples`, damit der Wellenvertrag den geforderten Hash-/Datumsstand pro Quelle direkt im Vorcheck sieht.
- Ausgabe erfolgt nur in Runtime-/Arbeitsordnern; AMT-/A-amt-Originalsegmente werden als Ausgabeziel verweigert.
- Installer-Spiegel: `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/azubi42_wave_status_check.py`.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_azubi42_wave_status_check.py`.
- Automations-QA: `reports/azubi42_automation_wave_audit_2026-05-18.md`; aktiv bleibt nur der 12h-Arbeitslistenlauf, alte 23-/42-Minuten-Heartbeats und alte `COUNT=1`-Crons sind pausiert.


## Master-TODOs 2026-05-18

- `00_META/AZUBI42_MASTER_TODO_APP_SERVER_2026-05-18.md` buendelt die führenden App-/Server-/RAG-/WH3D-/Paperless-/UI-/Automationsaufgaben; `00_META/AZUBI42_MASTER_TODO_AZUBI42_DE_2026-05-18.md` buendelt Public-Site, Buergerrechte/Aktenhelix, Donation, Whistleblower, Fachazubi-Katalog, Story/Demos und Build-QA.
- Maschinenvertrag für RAG/WH3D/Automationen: `toolbox/legal/config/azubi42_master_todo_index_2026-05-18.json`.
- Die Listen übernehmen Chat-Screenshot-Hinweise, vorhandene Baustellen, Reports und Wellenregeln; Windows/Office-PDF-XPS und Corel sind darin ausdruecklich als später gesperrte Punkte geführt.


## AZUBI42.de Public-Build 2026-05-19

- `20_EDITIONS/azubi42-de/website/index.html`, `css/site.css`, `js/site.js`, `data/fachazubis.json`, `data/public_actions.json`, `site_manifest.json` und `20_EDITIONS/azubi42-de/tools/build_site.mjs` bilden den Public-Build-Zweig; aktueller Live-Build ist `2026.05.21.2` / `azubi42de-20260521-2`.
- Neue Public-Bauteile: `Buergerrechte / Aktenhelix`, Public-Werkzeugleiste mit 4 Fokus-Buttons, Donation-/Supportblock mit gesperrt bis zum Nachweis Zahlungsweg-Konfig, Whistleblowerblock mit Entwurf-kopieren/Download, sechs offiziellen externen Meldestellen-Deeplinks (BfJ, BaFin, BfDI, BAFA, OLAF, EPPO), Kenntnis-/Pflichten-Hinweis und gesperrter AZUBI42-Second-Line-Checkbox bis echter Intake-Zielwert existiert, Abschnitts-CTA-Knöpfe und getrennte Deep-Thought-/Story-Schicht.
- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt die privaten Public-Action-Endpoints `/api/public/actions/status`, `/api/public/whistleblower/status` und `/api/public/whistleblower/intake`; Freischaltung erfolgt nur über gitignorierte Runtime-Konfig (`AZUBI42_PUBLIC_ACTIONS_CONFIG`, `AZUBI42_PUBLIC_WHISTLE_INTAKE_DIR`), mit Sanitizing, Honeypot, Rate-Limit und privater JSONL-Ablage.
- Der Ubuntu-Installer-Spiegel unter `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/` ist synchron.
- Smokes/Audits: `70_TESTS_AND_SMOKE/ui/audit_azubi42_domain_site.mjs`, `70_TESTS_AND_SMOKE/ui/audit_azubi42_domain_mobile.mjs`, `70_TESTS_AND_SMOKE/ui/audit_public_actions_intake.py` und gezielter Chrome-CDP-Whistleblower-Check; Deploypfad: `toolbox/deploy/deploy_azubi42_domain_site_winscp.ps1 -FilesOnly`.


## AZUBI42.de Link-/Whistleblowerregel 2026-05-21

- Build `2026.05.21.2` / `azubi42de-20260521-2` ergänzt die generelle Außenlink-Regel: externe Donation-, Info- und Meldestellen-Deeplinks öffnen mit `target="_blank"` und `rel="noopener noreferrer"`.
- Die sichtbare Bezeichnung ist `Whistleblower`; amtliche Originalbegriffe in externen Behörden-URLs bleiben nur als Zieladressbestandteil unverändert.
- Audit `70_TESTS_AND_SMOKE/ui/audit_azubi42_domain_site.mjs` prüft Version, Linkattribute und Whistleblower-Wording.


## AZUBI42.de Wiedereinsetzungs-Checker 2026-05-21

- `20_EDITIONS/azubi42-de/website/index.html`, `css/site.css`, `js/site.js`, `js/detail.js`, `data/fachazubis.json`, `data/public_actions.json`, `site_manifest.json` und `tools/build_site.mjs` bilden den lokalen Build `2026.05.21.2` / `azubi42de-20260521-2`.
- Neue Bauteile: Public-Kachel `Wiedereinsetzungs-Checker`, Section `Jura / Wiedereinsetzungs-Checker`, Rechtswegweiche für Wiedereinsetzung, Anhoerungsruege, Wiederaufnahme, BVerfG- und EGMR-Vorstufe, Jura-Katalogmodulstein `wiedereinsetzungs-checker`, amtliche Rechtsanker zu VwGO/SGG/ZPO/StPO/BVerfGG/EGMR und RAG-/WH3D-Vertrag `post_judgment_repair_contract`.
- Öffentlich wird nur der Prüfpfad gezeigt; der echte Lauf verlangt die vollständige A-Z-Akte mit Urteil/Beschluss/Bescheid, Zustellung, Rechtsmittelbelehrung, Fristkalender und Gegenstücken in Paperless/Jura-RAG.
- Installer-Spiegel: `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/` plus Shared-Core-/Installer-Fachazubi-Kataloge.


## AZUBI42.de Whistleblower-Normalform 2026-05-21

- Derselbe Build `2026.05.21.2` / `azubi42de-20260521-2` führt eigene Public-URLs, In-Page-Anker, Fokus-Buttons, sichtbare Labels, Download-Dateinamen und Statusmeldungen einheitlich als `Whistleblower`.
- `Hinweisgeberstelle` bleibt nur dort stehen, wo es Bestandteil echter externer Behörden-URLs oder amtlicher Portaltitel ist, insbesondere BfJ/BaFin.
- Audit und Source-Grep prüfen diese Trennung.


## Paperless-Overlay-Positionsfix

- `40_INTEGRATIONS/paperless/ui/paperless-azubi42-overlay.js` speichert die lokale Position des schwebenden `A42`-Knopfs im Browser.
- Klick öffnet weiter das Panel; Click-hold verschiebt den Knopf, damit Paperless-Paginatoren und Dokumentsteuerung frei bleiben.


## OCR-Human-Proof

- `toolbox/legal/ocr_human_proof_docx.py` erzeugt aus Originalseitenbild und OCR-Textsidecar eine menschenlesefreundliche Kontroll-DOCX.
- `python-docx` wird erst bei DOCX-Build geladen; ohne Dependency ist Import/`--help` möglich, Build liefert dann eine klare Fehlermeldung.
- Prüfkopf und Unterschrift liegen auf eigenen Seiten; die Vergleichsseiten bleiben reine Zwei-Spalten-Prüfflächen ohne Kopf-/Fusszeile und rendern den OCR-Kontrolltext zeilenpositionsnah an den erkannten Original-Zeilenbändern.
- Bei erkannter Herkunft steht im rechten OCR-Kontrollbild eine kleine `von:`-Marke in der seltenen Proof-Farbe `#110D1F`, ohne den Textsidecar zu veraendern.
- Der Batchmodus besitzt `--include-name` für gezielte Gewinner-/Haertetests aus großen OCR-Manifesten.
- `compare-final` bildet den finalen visuellen Original/OCR-Endprodukt-Vergleich mit Blend, Heatmap, Rot/Cyan-Ink-Overlay und HTML/JSON-Report; die Herkunftsfarbe wird nur in der plausiblen oberen rechten Labelzone maskiert, Vorkommen ausserhalb erzeugen ein Warnflag.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_ocr_human_proof_docx.py`.


## OCR-Dreiwege-Kontrolle

- `toolbox/legal/ocr_threeway_compare_html.py` erzeugt die serverseitige HTML-Sichtprüfung für Original, Vergleichsarchiv und Paperless-Live-Archiv.
- Links und mittig werden Seitenbilder gerendert; rechts wird das echte Paperless-Live-PDF direkt im selben DOM per lokal mitgeliefertem PDF.js als scrollbarer Seitenstapel mit Canvas plus markierbarem Textlayer je sichtbarer Seite geladen, nicht als JPG-Spalte rekonstruiert.
- Für die Lochsuche besitzt die rechte Spalte eigene QA-Marker: `Textlayer markieren`, `Marker weg` und Drag-Rechteck über dem Textlayer. v2026-05-15 erweitert den Markier-/Linealtest: `Lineal` zeichnet Textzeilen-/Ink-Bänder, `Luecken pruefen` vergleicht Textlayer-Rechtecke mit dunklen Scanpixeln im echten Paperless-Canvas und markiert Kandidaten als `missing-line`, `line-hole` oder `edge-jump`; helle gesättigte Kandidatenbereiche erhalten `Textmarker-Verdacht`, damit bei typischen physischen Textmarker-OCR-Löchern zuerst der vorhandene Paperless-A42-Pipettenweg genutzt wird.
- Der Farbmaskenverdacht beruecksichtigt eine farbige, zeilenartige Maske um das Textband, die etwas größer als die Buchstaben ist, nicht nur bunte Einzelpixel im Loch.
- Klick auf einen Kandidaten öffnet einen hochskalierten Detailausschnitt für Human-in-the-loop-Prüfung und nennt Markerfarbe aufnehmen, Unschärfe setzen, Farbe rausfiltern und Reprocess als Folgeweg.
- Der Baustein nutzt kein `iframe`, kein `object`, kein `embed` und kein CDN; für lokale Chrome-Prüfung legt der Export `START_VIEWER.cmd`, `START_VIEWER.ps1` und `start_viewer.sh` bei.
- Die Spaltenkarten zeigen die technische Kette ab Bulk-Upload.
- Die Seitensteuerung folgt den links/mittig sichtbaren Seitenankern per IntersectionObserver und markiert die Ansicht bewusst als Kontrollansicht, nicht als Textlayer-Freigabe.
- Ausgaben bleiben private QA-/Spiegelartefakte ausserhalb des Repos.


## Paperless-Dublettenqualitaets-Audit

- `toolbox/legal/paperless_duplicate_quality_audit.py` prüft semantische Varianten, die nicht bytegleich sind, aber denselben Dokumentinhalt mit unterschiedlicher OCR-Qualitaet tragen.
- Der Baustein vergleicht Archiv-PDF-Seitenzahl, Textnaehe, schwache Bildseiten, Fax-/Sendebericht-Signale, Quellformat und Textvollständigkeit, waehlt eine kanonische OCR-Fassung und kann nicht-destruktiv `AZ42: OCR kanonisch`, `AZ42: OCR unterlegen` und `AZ42: Dublettenvariante` setzen.
- `paperless_atom_indexer.py` liest diese Reports per `--quality-report` und lässt unterlegene OCR-Varianten für Atomindex/RAG/WH3D aus.
- Zusätzlich liest der Atomizer Sinn-/Datenschutzreports per `--sense-privacy-report`: Identitaetsbelege bleiben gesperrte Referenz, private Reise-/Alltagsbelege bleiben Review und leere Textlayer bleiben bis zur Nachverarbeitung draussen.
- Live-Ablage für den Paperless-Webcontainer: `/opt/paperless/azubi42-share/toolbox/legal/` -> `/usr/local/share/azubi42/paperless/toolbox/legal/`.
- Smokes: `70_TESTS_AND_SMOKE/legal/test_paperless_duplicate_quality_audit.py`, `70_TESTS_AND_SMOKE/legal/test_paperless_atom_quality_filter.py`.


## Paperless-Dateinamen-/Datenschutz-Audits

- `toolbox/legal/paperless_filename_structure_audit.py` liest Paperless-Dokumente read-only und bewertet Datum-im-Namen, Seitenlabel, Kopie-/Versionsmarker, schwache Textseiten und kumulative Seitenserien; `toolbox/legal/paperless_document_sense_privacy_audit.py` bewertet ausgewählte Dokumente nach Sinn, Datenschutz und RAG-/WH3D-Policy.
- Identitaetsbelege laufen nur als gesperrte Referenz, private Reise-/Alltagsbelege bleiben Review, leere Textlayer werden bis zur Nachverarbeitung ausgeschlossen.
- Smokes: `70_TESTS_AND_SMOKE/legal/test_paperless_filename_structure_audit.py`, `70_TESTS_AND_SMOKE/legal/test_paperless_document_sense_privacy_audit.py`.


## Paperless-Cleanup-Nachlauf 2026-05-15

- `paperless_document_sense_privacy_audit.py` kann den bereinigten Bestand vollständig und öffentlich redaktiert auswerten; `paperless_atom_indexer.py` besitzt den harten Schalter `--require-sense-privacy-record`, damit nur Dokumente aus dem freigegebenen Report in Atomindex/RAG/WH3D gelangen.
- `run_paperless_atom_cycle.sh` reicht Quality- und Sense-Privacy-Reports über Env-Vertrag weiter.
- `amt_vorgang_pipeline.py` erkennt `.azubi42-legal-ocr.json` als Kandidatenquelle und liest den OCR-Text aus Paperless-Sidecars; `sgp_schriftsatz_register.py` zerlegt dieselben Sidecars seiten-/absatzgenau für SGP-/SGF-Langtabellen.
- Der letzte Serverlauf erzeugte aus demselben freigegebenen Stand 570 Atomdokumente, 2.124 Fragmente/Vektoren, 57 AZ-Knoten, 607 Punktflags, 4.845 Bundesanker-Hits, 1.190 SGP-Finalzeilen und 631 SGF-Finalzeilen; der Kreuzcheck meldete 15/15 Prüfpunkte grün und harte Fehler 0.
- Private Rohakten, absolute Arbeitsordner und Detailinhalte bleiben ausserhalb dieser Bauteileliste.


## Final-Print-/Word-Export-Schutz 2026-05-15

- `toolbox/legal/final_print_package.py` baut den privaten Druck-/Anlagenstand aus Paperless-clean-Tabellen, QM-Report, Mahnwesen und Universalblock; der aktuelle Nachlauf liefert 47 Registereintraege, harte Fehler 0 und Prüfpunkte 0.
- `toolbox/legal/word_pdf_export_guard.ps1` ist der geschützte lokale Word-COM-PDF-Exportpfad: Export in Temp-Datei, Print-/Screen-Optimierung, optionale PDF/A-Ausgabe, stabile Dateigrößenprüfung, Backup vorhandener Ziel-PDFs und maschinenlesbarer JSON-Status.
- Das optionale Öffnen erfolgt erst nach verifiziertem Final-PDF.
- Der Baustein ersetzt riskante manuelle Export-/Aufraeumfolgen, ohne private Rohakten ins Repo zu ziehen.


## DOCX-Render-Guard 2026-05-16

- `toolbox/legal/word_docx_render_guard.ps1` ist der lokale Windows-QA-Converter für DOCX.
- Er nimmt eine oder mehrere DOCX, exportiert über `word_pdf_export_guard.ps1` nach PDF, kuerzt interne Arbeitsnamen hash-stabil gegen Word-COM-Pfadlaengenfehler, rendert per PyMuPDF/Pillow Stichproben- oder Vollseitenbilder und schreibt Kontaktblaetter plus Manifest.
- Für Zähler gilt die PDF-Seitenzahl aus dem Render, nicht blind Word-`ComputeStatistics`.


## HW3D-Wissensvertrag 2026-05-16

- `toolbox/legal/config/hw3d_knowledge_layers.json` definiert für Jura-RAG, Spatial-Welt, Zusatzmodell-Pipe und Blickwinkelwaffe Glossar, Frucht-/Fruechtchen-Logik, Rollenprofile, neutrale Grau-Basislinien, Lernterrain und Testregeln.
- Der Vertrag führt zusätzlich die strukturierte Kausalketten-Frucht mit Akteur, Ereignis, Pflicht/Verbot, Kenntnis, Kausalweg, Schaden/Ziel, Beleganker, Bundesanker, Gegenprobe, Blickwinkeltest und Staerkegrad sowie den Dokumentgesamtblick vor jeder unklaren Seitenzuordnung.
- `spatial_jura_world.py` exportiert diesen Vertrag in die Welt, `hw3d_model_pipe.py` führt ihn im Prompt-Kontext und `hw3d_observatorium.py` zeigt ihn im neuen Tab `Wissensvertrag`.


## Gesamtvorgang-Tabellenvertrag 2026-05-16

- `toolbox/legal/config/gesamtvorgang_table_schema_v2.json` definiert die Langtabellenstruktur für Beleganker-Kopf/Detail, Kausalkette kurz/lang plus strukturierte Kausalfelder, Mahnwesen letztes/aktuelles/kommendes, Forderungsarten, Rechenweg, Zahlungseingangsabgleich, WH3D-Ast/Frucht und QM-Risiko.
- Neue Kausalfelder sind Akteur, Ereignis, Pflicht/Verbot, Kenntnis-ab, Folge/Schaden, Gegenprobe und Staerkegrad.
- `toolbox/legal/table_schema_probe.py` erzeugt daraus die 3-Zeilen-Probe für Meisterkontrolle; `toolbox/legal/gesamtvorgang_table_v2_builder.py` erzeugt echte SGP-/SGF-Arbeitsfassungen im selben Vertrag.
- `spatial_jura_world.py` exportiert den Vertrag als `table_schema`, kann `--table-v2` als klickbare Tabellenfrüchte einhaengen, und `hw3d_model_pipe.py` nutzt ihn für Kausalketten-, Forderungs-, Fristen- und Zahlungsprüfauftraege.


## Benchmark-Quellenvertrag 2026-05-16

- `toolbox/legal/config/benchmark_sources_public_cases.json` führt amtliche Ausbildungs-/Prüfungsakten als lokale Paperless-/WH3D-/Jura-RAG-Benchmarks.
- Enthalten sind Quellenliste, NRW-LJPA-Kandidaten KV-Nr.
- 2712 und KV-Nr.
- 2549, Split-Regeln für Aufgaben-/Sachverhaltsteil gegen Prüfer-/Loesungsteil, Copyright-/Privacy-Regeln und Bewertungsmatrix für Streitstand, Zulaessigkeit, Begründetheit, Kausalkette, Tenor, Beleganker und Halluzinationskontrolle.
- Nach dem ersten Blindscore führt der Vertrag zusätzlich `strict_answer_schema`: Tenor, Prozessstationen, Normkette, Ermaechtigungsgrundlagenwechsel, Subsumtion, Ermessen/Verhältnismaessigkeit, Vollstreckung/Folge, Kosten, Belegankertabelle und Unsicherheiten sind Pflichtfelder; Score-Caps verhindern volle Bewertung ohne Norm-/Beleganker oder fehlenden Grundlagenwechsel.
- Nach KV 2549 führt der Vertrag `training_fixes` für NRW-Eilrechtsschutz gegen Nebenverfuegungen/Zwangsgeld, §112 JustG NRW, §§88/122 VwGO, §110 JustG NRW und VwVG-NRW-Zwangsgeldnormen.
- Roh-PDFs, Volltexte, Loesungsteile und Auswertungsartefakte bleiben lokale Runtime und werden nicht versioniert.


## Legal-Benchmark-Selbsttest 2026-05-16

- `toolbox/legal/legal_benchmark_selftest.py` laedt amtliche Benchmark-PDFs aus dem Quellenvertrag, schreibt einen öffentlichen Seiten-/Split-Spickzettel und trennt Aufgaben- gegen Loesungs-/Prüferteil nur in privater Runtime.
- NRW-LJPA KV-Nr.
- 2712: 15 Seiten, Aufgabenteil 1-11, Prüferteil 12-15, laengste Seite 3.827 Zeichen, Score 24/28.
- NRW-LJPA KV-Nr.
- 2549: 16 Seiten, Aufgabenteil 1-12, Prüferteil 13-16, laengste Seite 3.857 Zeichen, Score 27/28.
- Beide Einzelblindfaelle sind bestanden, aber noch kein Staatsexamen-Gesamtnachweis.


## Coverage-Gate-Count-Check 2026-05-16

- `toolbox/legal/coverage_gate_count_check.py` prüft Paperless-/RAG-/WH3D-Zähler als harte Gleichungen: Importstand, Stage-Review, Sidecar-Dirs/JSON, Sense-/Privacy-Records, filtered Sidecars, normalisierte Atom-Markdowns, Spatial-Dokumentknoten, Timeline-Dokumente, AZ-Knoten und Punktflags.
- Serverlauf `coverage_gate_2026-05-16`: 14/14 Cross-Checks ok; 174 Clean-Stage-Kandidaten, 172 importiert, 2 Review-Rest wegen 307/744 Seiten, 1.443 Paperless-Dokumente/Sidecars/Sense-Records, 831 Atom-/WH3D-Dokumente, 831 Spatial-Dokumentknoten, 379 Timeline-Dokumente mit Referenzen, 64 AZ-Knoten, 874 Punktflags, maximale WH3D-Seitenzahl 60.
- Report: `reports/coverage_gate_count_check_2026-05-16.md`.


## Realfall-Zeilenanker-Tabelle 2026-05-16

- `toolbox/legal/realfall_zeilenanker_table.py` erzeugt die private Versandvorstufe aus SGP-/SGF-Finaltabellen.
- Jede Zeile führt Normkette, Tatsachenanker, Quelle/Seite/Absatz, Blickwinkel, Gegenprobe, Kausalfolge, Risiko, nächsten Prüfschritt, Anlagenzeile und Schriftsatzblock.
- Der Builder besitzt einen stdlib-XLSX-Fallback für Anlagen-Tabellen ohne `openpyxl`.
- Serverlauf `coverage_gate_2026-05-16/realfall-zeilenanker`: 1.821 Zeilen, 24 Spalten, 1.190 SGP, 631 SGF, 1.821 Normketten/Tatsachenanker/Quellenanker, 1.611 Bundesanker, 1.678 vorlaeufig ankerfähig, 143 Review ohne Versandfreigabe.
- Private Artefakte: CSV und XLSX.
- Report: `reports/realfall_zeilenanker_summary_2026-05-16.md`.


## SGP-Delta-Quellenaudit 2026-05-17

- `reports/sgp_delta_source_audit_2026-05-17.md` sperrt die 1190er SGP-Quelle als aktuellen Delta-Eingang, weil sie hash-identisch mit der vom Nutzer verworfenen `2026-05-15_paperless_clean`-Quelle ist.
- Die 117 rechnerischen Delta-Zeilen gegen die 1073er Baseline bleiben nur als gesperrte `99_BLOCKED_ALTQUELLEN`-Preview.
- `sgp_schriftsatz_register.py` und `sgf_gerichtsschreiben_register.py` lesen bei Paperless-Sidecars jetzt den echten `document.file_name` für Profil, Quellenanzeige und Dokumentfamilie; der Ubuntu-Installer ist gespiegelt.
- Der frische 17.05-Serverscope wurde nach der neuen Seiten-Spickzettel-Regel gezaehlt: 831 gefilterte Sidecars, 0 fehlend, laengste Datei 60 Seiten, 0 Dateien >100/>200 Seiten, SGP 296 kompakte Zeilen, SGF 236 kompakte Zeilen.
- Daraus folgt: keine Empfänger-/Anlagen-Nachschaerfung aus dem 1073->1190-Delta, bis eine aktuelle Volltabelle aus dem Server-Gate vorliegt.


## Sidecar-Originalname-Finaltabellen 2026-05-17

- `sgp_row_enrichment.py` loest `paperless_<id>/<Originalname>`-Quellenanzeigen wieder auf das echte Sidecar `<id>/<id>.azubi42-legal-ocr.json` zurück; `test_sgp_row_enrichment.py` deckt diesen Anzeige-zu-Sidecar-Pfad ab.
- Serverlauf `coverage_gate_2026-05-17/finaltables-sidecar-originalname-recalc`: SGP final 296 Zeilen lossless, SGF final 236 Zeilen lossless, Zeilenanker 532 Zeilen.
- Normkette, Tatsachenanker und Quelle/Seite/Absatz sind jeweils 532/532 vorhanden; Bundesanker 493/532, Risiko 498 mittel/34 hoch, Versand 498 vorlaeufig/34 nein.
- ZIP-SHA256: `9267a38639251c304dcd05dc089108727f993332a0828509357a05004d7053e4`.
- Empfänger-/Anlagenlogik bleibt bis Review der 34 Hochrisiko-Zeilen und 39 fehlenden Bundesanker gesperrt.


## Kanonischer Namensvertrag

- `toolbox/legal/config/hw3d_knowledge_layers.json` und `toolbox/legal/config/paperless_task_rules.json` schreiben vor, dass bestehende Dateinamen, Ordnernamen, Buttonlabels, Bauteile, JSON-Keys, CSV-/XLSX-Spalten, Reporttitel und WH3D/RAG-Begriffe wortgleich wiederverwendet werden.
- Gate-QA ist nur QA-Spalte/-Tabelle auf der Human-Sync-Finalprep-Schiene, kein neuer Reviewprozess.


## Realfall 17.05 Human-Sync-Finalprep mit Gate-QA

- `toolbox/legal/realfall_review_human_sync_finalprep_gate_qa.py` führt die 532er Zeilenankerbasis, das Review-Gate und den vorhandenen Human-Sync-Finalprep-Abgleich in einer nicht-versandfreien Human-Sync-Finalprep-Tabelle mit Gate-QA-Spalten zusammen.
- Lauf 2026-05-17: 532/532 Human-Sync-Finalprep-Zeilen, 69 Gate-QA-Flags, 463 normale Bestandszeilen, 48 Dokumente, `new_file_review_required=false`; Ausgabe (privat) unter `<PRIVATE_WORKDIR>/sgp_delta_1073_to_current_2026-05-17/08_REALFALL_REVIEW_HUMAN_SYNC_FINALPREP_GATE_QA`.
- Report: `reports/realfall_review_human_sync_finalprep_gate_qa_2026-05-17.md`; Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_human_sync_finalprep_gate_qa.py`.


## Review-Finalprint-Vorstufe Download 2026-05-17

- `reports/realfall_review_finalprint_vorstufe_download_2026-05-17.md` dokumentiert den handlichen Downloadordner (privat) `<PRIVATE_WORKDIR>/sgp_delta_1073_to_current_2026-05-17/09_REVIEW_FINALPRINT_VORSTUFE_DOWNLOAD` und das Gesamt-ZIP `azubi42_review_finalprint_vorstufe_download_2026-05-17.zip` mit SHA256 `d949a827eed216934607fdd8b02e15d726a5a05b412e8e3ccf61bd88270c8ea3`.
- Der Ordner führt 4 Einzel-ZIPs, Reports, Manifest, SHA256SUMS und QA-Zähler für Human-Sync-Finalprep Gate-QA, Review-Finalprint-Vorstufe, Kurzfassung und Empfängerlogik.
- Status bleibt `nicht_versandfrei`.


## Review-Gate 17.05 Sidecar-Originalname

- `toolbox/legal/realfall_review_gate.py` baut aus der neuen 532er Zeilenankerbasis eine einheitliche Gate-Menge aus Hochrisiko- und Bundesanker-offen-Zeilen.
- Lauf 2026-05-17: 34 Hochrisiko, 39 Bundesanker-offen, 4 Überschneidung, 69 eindeutige Gate-Zeilen, alle `nicht_versandfrei`.
- Gate-Aktionen: 30 Signalneutralisierung, 10 Bundesanker-Kandidaten prüfen, 28 `keine_bundesankerpflicht`-Marker prüfen, 1 Suchkaskade.
- Hochrisiko-Nachlauf zieht 4 reviewpflichtige BSG-2023-B9SB3-22R-Kandidaten nach und baut 34 nicht-versandfreie Neutralqueue-Zeilen.
- Das Gate ist ein QA-Overlay auf den bekannten gefilterten Sidecar-/WH3D-Scope, keine neue Datei-Review-Queue.
- Report: `reports/realfall_review_gate_17_05_2026-05-17.md`; Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_gate.py`.


## Realfall-Hochrisiko-Review-Queue 2026-05-16

- `toolbox/legal/realfall_review_queue.py` zieht die blockierten Zeilen aus der privaten Zeilenanker-Tabelle in eine getrennte Review-Queue.
- Der Baustein gruppiert nach konkretem Risikogrund: Normkette ungeklaert, Tatsachenanker fehlt, Quelle fehlt, Seite/Absatz/Randnummer fehlt, Review-/Offen-/Widerspruchssignal oder Bundesanker fehlt.
- Jede Queue-Zeile behält die komplette Zeilenanker-Basis und führt zusätzlich Review-ID, Prioritaet, Gruppe, Auftrag, Entscheidung und Notiz.
- Serverlauf `coverage_gate_2026-05-16/realfall-review-queue`: 143 Review-Zeilen, 34 Spalten, 47 SGP, 96 SGF, 6 Gruppen (`signal_fehlend` 76, `signal_review` 58, `signal_offen` 4, `signal_unklar` 2, `signal_widerspruch` 2, `signal_ausblendung` 1).
- Public-Reports enthalten nur Zähler/Gruppen; private Akteninhalte bleiben Runtime.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_queue.py`.
- Report: `reports/realfall_review_queue_summary_2026-05-16.md`.


## Realfall-P2-Entscheidungsmatrix 2026-05-16

- `toolbox/legal/realfall_review_decision_matrix.py` verarbeitet die private Hochrisiko-Queue zu einer Entscheidungsmatrix mit genau einer Arbeitsentscheidung je Zeile: `freigeben`, `belegen`, `umformulieren` oder `gesperrt`.
- Harte fehlende Kernanker sperren, fehlende Beleganker führen zu `belegen`, Risikosignale werden neutralisiert (`umformulieren`).
- Serverlauf Scope `P2`: 85 Zeilen, 42 SGP, 43 SGF, `belegen` 41, `umformulieren` 44, keine P2-Zeile versandfrei.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_decision_matrix.py`.
- Report: `reports/realfall_review_decisions_p2_2026-05-16.md`.


## Realfall-P2-Bundesanker-Nachtrag 2026-05-16

- `toolbox/legal/realfall_review_anchor_backfill.py` zieht für reviewpflichtige `belegen`-Zeilen kuratierte Bundesanker aus bestehenden SGP-QM-Clustern nach.
- Der enge Pfad verlangt vorhandenen Originalanker, fehlenden Bundesanker und Cluster `bescheid_bekanntgabe_widerspruch`; nachgetragen wird der bereits kuratierte BSG-Anker `BSG-2023-B9SB3-22R`.
- Serverlauf: 41/41 P2-`belegen`-Zeilen nachgezogen, alle reviewpflichtig; P2-Neuberechnung aus gepatchter Queue: 85/85 Bundesanker vorhanden, `bundesanker_missing` 0, Entscheidung `umformulieren` 85.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_anchor_backfill.py`.
- Report: `reports/realfall_anchor_backfill_p2_2026-05-16.md`.


## Realfall-P2-Umformulierungsqueue 2026-05-16

- `toolbox/legal/realfall_review_neutral_queue.py` erzeugt aus der P2-Entscheidungsmatrix nach Anchorfix eine private Neutralisierungsqueue.
- Jede Zeile führt neutrale Kernformulierung, Arbeits-Schriftsatzsatz, Anlagenzeile, Tatsachenanker, Quelle/Seite/Absatz, Bundesanker, Gegenprobe und den festen Versandstatus `nicht_versandfrei`.
- Serverlauf: 85/85 P2-Zeilen neutralisiert, 85/85 Tatsachenanker/Quellenanker/Bundesanker/Gegenprobe vorhanden, SGP 42, SGF 43, Versandstatus 85/85 `nicht_versandfrei`.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_neutral_queue.py`.
- Report: `reports/realfall_review_neutral_queue_p2_2026-05-16.md`.


## Realfall-P3-Review und P2/P3-Prestaging 2026-05-16

- P3 nutzt dieselben Bausteine `realfall_review_decision_matrix.py` und `realfall_review_neutral_queue.py`: 58/58 P3-Zeilen entschieden und neutralisiert, 58/58 Tatsachenanker/Quellenanker/Bundesanker/Gegenprobe vorhanden, Versandstatus `nicht_versandfrei`.
- `toolbox/legal/realfall_review_prestage_package.py` kombiniert P2 und P3 zu einem gemeinsamen nicht-versandfreien Schriftsatz-/Anlagen-Prestaging-Paket und validiert Tatsachenanker, Quellenanker, Bundesanker, Gegenprobe, Versandstatus und doppelte Zeilen-IDs.
- Serverlauf: 143 Paketzeilen, 64 Spalten, P2 85, P3 58, SGP 47, SGF 96, Validierungsfehler 0, doppelte Zeilen-IDs 0, Versandstatus 143/143 `nicht_versandfrei`.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_prestage_package.py`.
- Reports: `reports/realfall_review_decisions_p3_2026-05-16.md`, `reports/realfall_review_neutral_queue_p3_2026-05-16.md`, `reports/realfall_review_prestage_package_p2p3_2026-05-16.md`.


## Realfall-P2/P3-Block-Reviewpaket 2026-05-16

- `toolbox/legal/realfall_review_block_package.py` baut aus der P2/P3-Prestaging-CSV blockweise nicht-versandfreie Reviewfassungen für Schriftsatz-/Anlagenarbeit und eine private Einzelstellen-Queue.
- Jede Einzelstelle bleibt offen und muss gegen Originalanker, Normkette, Quelle/Seite/Absatz, Bundesanker-Gleichlage, Gegenprobe, Kausalfolge und Gesamtzusammenhang entschieden werden.
- Serverlauf: 143 Eingangszeilen, 5 Blockpakete, 143 Einzelstellen, P2 85, P3 58, SGP 47, SGF 96, Validierungsfehler 0, Versandstatus 143/143 `nicht_versandfrei`, Bearbeitungsentscheidung 143/143 `offen`.
- Private Einzelstellen-CSV/XLSX/MD bleiben auf Paperless; Forgejo/Jura erhält nur Summary, Gruppen und Blocktabellen.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_block_package.py`.
- Report: `reports/realfall_review_block_package_p2p3_2026-05-16.md`.


## Realfall-P2/P3-Einzelstellenentscheidungen 2026-05-16

- `toolbox/legal/realfall_review_single_point_decisions.py` entscheidet die 143 private Einzelstellen als `freigeben`, `bearbeiten`, `belegen` oder `sperren`.
- Harte Kernlücken oder falscher Schutzstatus sperren; Unklar-/Widerspruch-/Ausblendungssignale führen zu `belegen`; Fehlend-/Offen-/Streit-Signale führen zu `bearbeiten`; reines Review-Signal mit vollständigen Ankern wird `freigeben`, aber nur als `review_nutzbar_nicht_versandfrei`.
- Serverlauf: 143 Entscheidungszeilen, Validierungsfehler 0, `freigeben` 58, `bearbeiten` 52, `belegen` 33, `sperren` 0.
- Private Vollmatrix bleibt auf Paperless; Forgejo/Jura erhält nur Summary/Gruppen.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_single_point_decisions.py`.
- Report: `reports/realfall_review_single_point_decisions_p2p3_2026-05-16.md`.


## Realfall-P2/P3-Reparatur und Blockentwurf 2026-05-16

- `toolbox/legal/realfall_review_evidence_backfill.py` zieht 33 `belegen`-Stellen mit Zusatzbeleg, Gegenbeleg oder Abgrenzung nach; `toolbox/legal/realfall_review_neutral_repair.py` neutralisiert 52 `bearbeiten`-Stellen; `toolbox/legal/realfall_review_block_draft.py` führt diese Reparaturen mit 58 review-nutzbaren Stellen in 143 blockweise Schriftsatz-/Anlagenentwurfszeilen zusammen.
- Serverlaeufe: Belegnachzug 33/33, Neutralisierung 52/52, Blockentwurf 143/143, jeweils Validierungsfehler 0; Blockentwurf bleibt 143/143 `nicht_versandfrei`.
- Private Volltabellen bleiben auf Paperless; Forgejo/Jura erhält nur Summaries, Gruppen und Blockzähler.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_repair_flow.py`.
- Reports: `reports/realfall_review_evidence_backfill_p2p3_2026-05-16.md`, `reports/realfall_review_neutral_repair_p2p3_2026-05-16.md`, `reports/realfall_review_block_draft_p2p3_2026-05-16.md`.


## Realfall-P2/P3-Blockpunkt-Audit 2026-05-16

- `toolbox/legal/realfall_review_block_point_audit.py` prüft jede der 143 Blockentwurfszeilen gegen Originalanker, Normkette, Quelle/Seite/Absatz, Bundesanker, Gegenprobe, Kausalfolge, Struktur-Gesamtzusammenhang und Reparaturqualitaet.
- Serverlauf: 143 Audit-Zeilen, 0 Validierungsfehler, `freigeben` 126, `bearbeiten` 17, `belegen` 0, `sperren` 0; harte Pflichtachsenfehler 0; 17 Nacharbeiten wegen `axis_repair_quality` aus der Neutralreparatur; Versandstatus 143/143 `nicht_versandfrei`.
- Private Vollmatrix bleibt Paperless; Forgejo/Jura erhält nur Summary und Gruppen.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_block_point_audit.py`.
- Report: `reports/realfall_review_block_point_audit_p2p3_2026-05-16.md`.


## Realfall-P2/P3-Neutral-Contextfix 2026-05-16

- `realfall_review_neutral_repair.py` ist gegen Kurzmarker/generische Kerne gehärtet und waehlt bei zu duenner Neutralisierung tragfähige Kontextanker wie `beleganker_detail`.
- Servernachlauf: 52/52 Neutralreparaturen mit `tragfaehiger_neutralanker`, davon 17 aus `beleganker_detail`; neuer Blockentwurf 143/143 und neuer Blockpunkt-Audit 143/143 `freigeben`, Axis-Failures 0, Versandstatus weiter 143/143 `nicht_versandfrei`.
- Report: `reports/realfall_review_contextfix_p2p3_2026-05-16.md`.


## Realfall-P2/P3-Schriftsatz-Reviewfassung 2026-05-16

- `toolbox/legal/realfall_review_schriftsatz_reviewfassung.py` baut aus dem bestandenen Blockpunkt-Audit eine private blockweise Schriftsatz-/Anlagen-Reviewfassung und Satzmatrix.
- Serverlauf: 143 Reviewpunkte, 286 Satzprüfzeilen, 0 Validierungsfehler, 286/286 `review_nutzbar`, Axis-Failures 0, Versandstatus 286/286 `nicht_versandfrei`.
- Private Volltexte/Punkte/Satzmatrix bleiben Paperless; Forgejo/Jura erhält nur Summary und Blockzähler.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_schriftsatz_reviewfassung.py`.
- Report: `reports/realfall_review_schriftsatz_reviewfassung_p2p3_2026-05-16.md`.


## Realfall-P2/P3-Satzentscheidungen P1 2026-05-16

- `toolbox/legal/realfall_review_sentence_decisions.py` entscheidet die private Satzmatrix blockweise als `behalten`, `schaerfen`, `belegen` oder `sperren`.
- Erster Serverlauf für `forderung_anlage` und `hauptsache_anlage`: 286 Eingangs-Satzzeilen, 212 entschiedene Zeilen, 106 Anlagenzeilen `behalten`, 106 Schriftsatzsaetze `schaerfen`, 0 `belegen`, 0 `sperren`, 0 Validierungsfehler, Versandstatus 212/212 `nicht_versandfrei`.
- Private Vollmatrix bleibt Paperless; Forgejo/Jura erhält nur Public-Summary und Gruppen.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_sentence_decisions.py`.
- Report: `reports/realfall_review_sentence_decisions_p1_2026-05-16.md`.


## Realfall-P2/P3-Satzschaerfung und Restblockentscheidung 2026-05-16

- `toolbox/legal/realfall_review_sentence_sharpen.py` entfernt Arbeits-/Reviewlabel aus `schaerfen`-Schriftsatzsaetzen und baut neue nicht-versandfreie Prüfsaetze aus Originalanker, Normkette, Quelle, Bundesanker, Gegenprobe und Gesamtzusammenhang.
- Serverlauf P1: 106/106 geschaerft, Label nachher 106/106 `keine`, Ankerqualitaet 106/106 `anker_und_label_sauber`, Versandstatus 106/106 `nicht_versandfrei`.
- `realfall_review_sentence_decisions.py` lässt bei explizitem `--block` keine Default-Bloecke mehr stehen; Restlauf für `zustaendigkeit_rechtsweg`, `frist_mahnwesen` und `gehoer_ausblendung`: 74 Restzeilen, 37 `behalten`, 37 `schaerfen`, 0 `belegen`, 0 `sperren`, Validierungsfehler 0.
- Private Volltabellen bleiben Paperless; Forgejo/Jura erhält nur Public-Summaries und Gruppen.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_sentence_sharpen.py`.
- Report: `reports/realfall_review_sentence_sharpen_restblocks_2026-05-16.md`.


## Realfall-P2/P3-Satzpaket-Reviewfassung 2026-05-16

- `toolbox/legal/realfall_review_sentence_package.py` kombiniert P1/P2-Entscheidungen und P1/P2-Schaerfungen zu einer gemeinsamen nicht-versandfreien Reviewfassung.
- Serverlauf: 286 Eingangs-Entscheidungszeilen, 143 Schaerfungszeilen, 286 Paketzeilen, 143 Anlagenzeilen aus `behalten`, 143 Schriftsatzsaetze aus `geschaerft`, Final-Labels 286/286 `keine`, Versandstatus 286/286 `nicht_versandfrei`, Validierungsfehler 0.
- Rest-Schaerfung P2: 37/37 sauber.
- Private Paket-CSV/XLSX/Probe bleiben Paperless; Forgejo/Jura erhält nur Public-Summary und Gruppen.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_sentence_package.py`.
- Report: `reports/realfall_review_sentence_package_2026-05-16.md`.


## Realfall-P2/P3-Satzpaket-Sichtprüfung und Schriftsatz-/Anlagenpaket 2026-05-16

- `toolbox/legal/realfall_review_sentence_package_audit.py` prüft 286/286 Satzpaketzeilen gegen Punktpaar, Originalseite/Absatz, Source-Row, Restlabel, Schutzstatus und Anlagenregister; Serverlauf: 286/286 `sichtpruefbar`, 286 Source-Row-Matches, 143 Anlagenregisterzeilen, Fehler `keine`, Versandstatus 286/286 `nicht_versandfrei`.
- `toolbox/legal/realfall_review_schriftsatz_anlagen_package.py` baut daraus 143 Punktpaare und 5 blockweise nicht-versandfreie Schriftsatz-/Anlagen-Reviewpakete.
- Private Volltabellen bleiben Paperless; Forgejo/Jura erhält nur Public-Summaries und Gruppen.
- Smokes: `70_TESTS_AND_SMOKE/legal/test_realfall_review_sentence_package_audit.py`, `70_TESTS_AND_SMOKE/legal/test_realfall_review_schriftsatz_anlagen_package.py`.
- Report: `reports/realfall_review_schriftsatz_anlagen_package_2026-05-16.md`.


## Realfall-Human-Review-Leinwand 2026-05-16

- `toolbox/legal/realfall_review_human_canvas.py` baut aus 143 Paketpunkten und dem 286er Satzpaket-Audit eine private statische HTML-Leinwand für Block-/Satz-/Anlagenregister-Review.
- Funktionen: Blockfilter, Entscheidungsfilter, Mehrfachauswahl, Bulk-Entscheidung, Kartenansicht, Originalseitenanker-Chips, Detailspalte, Vergrößerungsmodal, lokale Notizen, Screenshot-Anforderungsflag, JSON/CSV-Export und `Azubi fragt`.
- Jede Stelle führt eine kurze Maschinenfrage zur Verwendungsebene, weil der Vorgangsbezug erkennbar ist, aber Block-/Verwendungsentscheidung menschlich gesetzt werden muss.
- Ein-Klick-Reviewfluss: `freigeben & raus`, `bearbeiten & raus`, `belegen & raus` und `sperren & raus` setzen Entscheidung plus lokalen Sendestatus, blenden erledigte Stellen in `alle` standardmaessig aus und ziehen die nächste offene Stelle nach.
- Inline-Fragebuttons ersetzen entscheidungsrelevante Woerter direkt im Satz durch Mini-Buttons; Payload führt `inlineOptions`, der Export führt `inlineChoice` plus `localSentAt`, `sendMode`, `azubiProblem`, `azubiQuestion`, `pageRefs` und `sourceRow`.
- Sync: `azubi42_server.py` stellt `/api/legal/review/human-canvas/sync` bereit; die Leinwand sendet Einzel-, Bulk-, Notiz- und Screenshot-Events, zeigt `Sync ok/lokal` und speichert serverseitig JSONL plus aktuellen JSON-Stand unter privater Runtime.
- Serverlauf: 5 Bloecke, 143 Punkte, 286 Saetze, Versandstatus 143/143 `nicht_versandfrei`, Validierungsfehler 0.
- Assetpfade werden relativ zum Canvas-Ausgabeordner geschrieben; Nachlauf: 143/143 Assetpunkte, 143/143 `azubiAsk`, 0 fehlende Bilddateien.
- Die Arbeitskopie liegt zusätzlich login-geschützt im `azubi42-jura`-Webroot unter `runtime/legal-jura/private/coverage_gate_2026-05-16/`; Public-Summaries bleiben text-/pfadarm.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_human_canvas.py`, `70_TESTS_AND_SMOKE/legal/test_realfall_review_sync_api.py`.
- Reports: `reports/realfall_review_human_canvas_2026-05-16.md`, `reports/realfall_review_human_canvas_sync_2026-05-16.md`.


## Realfall-Human-Sync-Finalprep 2026-05-16

- `toolbox/legal/realfall_review_sync_finalprep.py` merged den serverseitigen Human-Sync-Stand mit Canvas-Daten und Paperless-Seitenankern.
- Der Lauf erzeugt private Entscheidungen-CSV/XLSX, Seitenrollen-CSV/XLSX, Schriftsatz-MD/DOCX und Anlagenregister-MD/DOCX.
- Serverlauf: 143/143 `freigeben`, 192 Seitenrollen, 33 Mehrseitenpunkte, 17 Punkte mit gemischten Seitenrollen, Validierungsfehler 0; die von Meister beobachtete Trennung Versandbeleg vs Antrag/Beschwerde wird als Seitenrollen-Split statt als einheitliche Knopfreihe geführt.
- Report: `reports/realfall_review_human_finalprep_2026-05-16.md`.


## Realfall-Human-Finalprint-Paket 2026-05-17

- `toolbox/legal/realfall_review_final_print_package.py` verpackt die Human-Sync-Finalprep-Stufe in eine Review-Finalprint-Vorstufe.
- Der Baustein kopiert nur bewusst registrierte Artefakte, schreibt Hashregister und Paket-Audit, prüft CSV-/XLSX-Zeilenzähler, liest den DOCX-Render-Guard, baut ein Review-Gesamt-Empfängerpaket, 5 Blockpakete und eine Azubi-Lernnotiz.
- Lokaler Lauf: 143 Entscheidungen, 192 Seitenrollen, 59 Paperless-Dokumente, 13/13 Kernartefakte registriert, 0 harte Paketfehler; Paket-DOCX-Render danach: Schriftsatz 256 PDF-Seiten, Anlagenregister 44 PDF-Seiten; Nachlauf: 8 Gate-QA-Dateien in `00_TABELLEN/Review` ergänzt.
- Status bleibt `review_finalprint_vorstufe_nicht_versandfrei`, weil Layoutlaenge und Empfängerzuschnitt noch Abschlussarbeit sind.
- Report: `reports/realfall_review_final_print_package_2026-05-17.md`.


## Realfall-Kurzfassung/Verdichtung 2026-05-17

- `toolbox/legal/realfall_review_final_print_digest.py` erzeugt aus dem Review-Finalprint-Paket einen kurzen Front-Schriftsatz plus Anlagen A-E.
- Die 5 Seiten Kurzschriftsatz sind nur der drucknahe Vortrag mit 26 Schwerpunktpunkten; nichts wird als Vollnachweis ausgelassen, weil Anlage A alle 143 Punkt-IDs, Anlage B alle 192 Seitenrollen und Anlage E die Human-Sync-Finalprep-Volltabellen plus Gate-QA-Spalten führt.
- Coverage-QA prüft Decision-ID gegen Anchor-ID, Page-Role-Point-ID gegen bekannte Punkte, 8/8 Kern-Volltabellen-Dateien und 8/8 Gate-QA-Dateien.
- Lokaler Lauf: 143 Decision-IDs = 143 Anchor-IDs, 192 Seitenrollen, 59 Paperless-Dokumente, Hashregister 56 Zeilen, Kurzfassung-PDF 5 Seiten, harte Fehler 0.
- Report: `reports/realfall_review_final_print_digest_2026-05-17.md`.


## Realfall-Empfängerlogik 2026-05-17

- `toolbox/legal/realfall_review_recipient_logic_package.py` baut die drucknahe Empfängerentscheidung aus der Kurzfassung.
- Je Empfänger werden Papierbeilagen, Datentraeger-/Tabellenanlagen und reine QA-Referenzen getrennt; SGP, SGF, BVerwG, BVerfG, EGMR und Patientenstelle erhalten jeweils Kurzschriftsatz, Fokusauszug und vollständige Tabellen-/Hashspur.
- Papier ist nur Kurzschriftsatz-PDF plus Fokus-PDF; MD/DOCX bleiben Arbeitsfassungen.
- Lokaler Lauf nach Gate-QA-Nachzug: 6 Empfänger, 228 Anlagenentscheidungszeilen, 70 Papier-Fokuszeilen, 6 Fokus-PDFs, je 12 Anlage-E-Volltabellen-Dateien, 143/143 Punkt-IDs und 192/192 Seitenrollen über Anlage A/B gesichert, harte Fehler 0.
- `--preserve-focus-docx` erlaubt nach Word-COM-Render die registrierten Fokus-PDFs anzulegen, ohne die sichtgeprüfte DOCX neu zu schreiben.
- Report: `reports/realfall_review_recipient_logic_package_2026-05-17.md`.


## Realfall-Versandfertig 2026-05-17

- `toolbox/legal/realfall_review_versandfertig_package.py` erzeugt aus der Empfängerlogik-Vorstufe die Versandfassung.
- Der Baustein baut Kurzschriftsatz und Fokusauszüge als DOCX, haengt Word-COM-gerenderte PDFs über `word_docx_render_guard.ps1` an, schreibt Tabellenanlagen A/B/C/E mit `versandfertig` plus `shipping_status_original`, trennt Druck, Tabellenanlage und Originalreferenz, und schreibt Versandregister, Hashregister, Audit und ZIP.
- Lokaler Lauf: 143 Punkte, 192 Seitenrollen, 6 Empfänger, 156 Versandregister-Zeilen, 490 Hashregister-Zeilen, 0 harte Fehler, 0 Warnungen, ZIP-SHA256 `4ac181471020674dd762e6ffad9944497866c1d3db0756bf2316d35e783bf3dd`.
- Report: `reports/realfall_review_versandfertig_package_2026-05-17.md`; Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_versandfertig_package.py`.


## Realfall-Blickwinkelkanone/Beklagtenvertreter 2026-05-17

- `toolbox/legal/realfall_blickwinkelkanone_beklagtenvertreter.py` setzt den Nachtschicht-Prompt als wiederholbaren Prüflauf um.
- Der Baustein zaehlt Versandfertig-Schriftpunkte und Human-Sync-Finalprep-Gate-QA-Tabellenpunkte als Angriffskarten, spielt sie gegen einen harten Beklagtenvertreter und schreibt `blickwinkelkanone_attack_cards`, `blickwinkelkanone_rundenverlauf`, `blickwinkelkanone_verlorene_punkte` und Scoreboard als CSV/XLSX/JSONL/JSON/MD.
- Lauf: 675 Angriffskarten, Runde 1 606 nicht blockiert und 69 gegen uns verwendet; nach 3 Runden bleiben 69 verlorene Punkte, alle `bundesanker_pruefen`.
- Report: `reports/realfall_blickwinkelkanone_beklagtenvertreter_2026-05-17.md`; Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_blickwinkelkanone_beklagtenvertreter.py`.


## Realfall-Review Forderungs-/Anlagen-Override 2026-05-16

- `toolbox/legal/realfall_review_schriftsatz_anlagen_package.py` führt `--force-block` und `--block-override-reason`, damit eine menschliche Paketentscheidung alle 143 Punkte als `forderung_anlage` führen kann, ohne die alte Sortierung zu verlieren.
- Punkte, Bloecke, Gruppen und Human-Canvas-JSON enthalten `source_block_original` und `block_override_reason`; `realfall_review_human_canvas.py` zeigt und exportiert diese Felder.
- Servernachlauf: 286 Auditzeilen -> 143 Punkte -> 1 Block `forderung_anlage`, Originalblockzähler `forderung_anlage` 61, `hauptsache_anlage` 45, `zustaendigkeit_rechtsweg` 35, `frist_mahnwesen` 1, `gehoer_ausblendung` 1, Validierungsfehler 0.
- Die Regel korrigiert die Verwendungsebene, nicht den Versandstatus: alle Punkte bleiben `nicht_versandfrei`.
- Report: `reports/realfall_review_forderung_override_toolbox_2026-05-16.md`.


## Azubi42-Toolbox-Links 2026-05-16

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js` führt im linken `Azubi42 Toolbox`-Block die Arbeitsbuttons Human Review 143, Human OCR-Loop, Human Confused-Loop und Template-Baum/Lebensbaeumchen.
- `09_1_ToolManager.js` öffnet externe Toolseiten oder springt in Bibliothek/Paperless/Mahnwesen und markiert das Ziel kurz; `bibliothek_menu.js` führt OCR Human-Loop, Confused Review und Lebensbaeumchen zusätzlich im Bibliothek-Startmenü.
- CSS-Markierung: `.toolbox-focus-flash`.


## Human-Review-Sync-Endpunkt 2026-05-16

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt `/api/legal/review/human-canvas/sync` und `/api/legal/review/human-canvas/current`.
- Der Endpunkt normalisiert Entscheidungen `offen`, `freigeben`, `bearbeiten`, `belegen`, `sperren`, Actor, Quelle, Originalblock, Overridegrund und Seitenanker; Notizen/Screenshot-Events erhalten vorhandene Entscheidungen.
- Speicherziel ist private Runtime `runtime/legal-jura/private/realfall-review-human-canvas/sync/` mit Append-JSONL und Current-JSON.


## Realfall-Originalseiten-Assets 2026-05-16

- `toolbox/legal/realfall_review_thumbnail_pipeline.py` haengt echte Paperless-Seitenbilder an die Human-Review-Leinwand.
- Der Baustein liest die 286er Satzpaket-Auditmatrix, gruppiert 143 Reviewpunkte auf 59 Paperless-Quelldateien und 103 eindeutige Dokumentseiten, rendert Thumbnails/Vorschauen im Paperless-Webcontainer nach `/tmp` und kopiert sie danach in die private Runtime.
- Serverlauf: 143/143 Punkte mit Assets, 103/103 Seiten gerendert, 206 JPG-Dateien, Renderfehler 0, Validierungsfehler 0.
- `realfall_review_human_canvas.py` liest das Asset-Manifest per `--asset-manifest`, rechnet die Bildpfade relativ zum Canvas-Ordner um und lässt `Screenshot anfordern`, Detailfenster und Enlarge-on-click echte Seitenbilder öffnen.
- Private Bilder/Manifest bleiben Paperless und in der login-geschützten Jura-Arbeitskopie; Public-Summaries bleiben text-/pfadarm.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_realfall_review_thumbnail_pipeline.py` und erweiterter Canvas-Smoke.
- Report: `reports/realfall_review_originalseiten_assets_2026-05-16.md`.


## Bundesanker-Suchkaskade 2026-05-16

- `toolbox/legal/config/hw3d_knowledge_layers.json` führt jetzt einen festen Ankervertrag.
- Wenn nach allen lokalen Prüfungen ein Bundesanker fehlt, wird erst die Jurabibliothek geprüft, dann gezielt tief gesucht, gefundene Quellen werden eingelagert, und erst danach duerfen Landesgerichtsanker als gekennzeichneter niedriger Ersatzanker genutzt werden.
- Ohne tragfähigen externen Anker bleibt die Stelle Review/offen oder gesperrt.


## WH3D-Node-Count-Guard 2026-05-16

- Der Frontendzähler `831 Dokumente / 5.273 Knoten` ist geklaert.
- `5.273` ist die gesamte WH3D-Welt aus 831 Dokumenten, 3.496 Anchor-Früchten, 874 Punktfrüchten, 64 Aktenzeichen, 5 Modellslots und 3 Root-/Statusknoten.
- Dokumentabgleiche gegen Original-/Paperless-Bestand duerfen nur den Dokumentzähler verwenden; Gesamt-Knoten sind Visualisierungsbestand.
- Report: `reports/wh3d_node_count_guard_2026-05-16.md`.


## Legal-Education-Serverimport 2026-05-16

- Das Manifest `toolbox/legal/jurabibliothek/config/legal_education_sources.json` ist auf dem Live-Server in die Jurabibliothek eingelagert: 12/12 Quellen, 167 Fragmente und 167 lokale Lexical-Vektoren.
- `hw3d_model_pipe.py` sieht danach 5/5 bereite Slots, 91 geladene Legal-Education-Fragmente und 6 Benchmarkquellen.
- Der abgebrochene CPU-only-LLM-Lauf bleibt als Laufzeit-/Kontextfehler dokumentiert, nicht als bestandener Examenstest.


## Realcase-WH3D/Langtabellen-Lauf 2026-05-15

- Die produktive Jura-Pipeline wurde gegen den bereinigten Paperless-/Sidecar-Freigabestand neu gerechnet, nicht gegen synthetische Testdaten.
- Der freigegebene Stand liefert 654 Dokumente, 2.491 Textfragmente, 65 AZ-Knoten, 870 Punktflags und 6.947 Bundesanker-Hits.
- `spatial_jura_world.py` baut daraus 5.995 WH3D-Knoten, 7.517 Kanten, 535 Tabellenfrüchte und 383 Mahnwesen-Früchte; `hw3d_model_pipe.py` erzeugt die zugehoerigen Contract-Only-Auftraege.
- Der echte Jura-Frontendstand wurde als `@b:42.chat` geprüft: Bibliothek/Helix laden den Realcase-Cache, Helix und liegender Baum zeigen je 65 Knoten, ein Helix-Klick setzt genau einen aktiven Fokus, und das Mahnwesen zeigt 161 fällige Schritte aus 54 Vorgängen.


## AZ-Dokumentbaum/Vorgang3D 2026-05-16

- `toolbox/legal/aktenzeichen_timeline.py` erzeugt zusätzlich zu den normalisierten AZ-Knoten das View-Model `document_branch_tree`.
- Jedes gescannte Dokument wird genau einmal als Ast unter seinem primaeren Aktenzeichen oder einem Review-Sammelast eingehaengt; Punktflags, Bundesanker und Review-Hinweise erscheinen als Früchte am Dokument.
- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` rendert diese Ansicht bevorzugt, laedt den letzten Serverlauf beim Bibliothek-Öffnen automatisch und nutzt alte `horizontal_tree_lr`-Laeufe nur als Fallback.
- Baum/Helix besitzen jetzt volle Leinwand, Browser-Fullscreen, Pan/Drag, Auf/Zu je View, Fokus, Reset und Zoom; Klick und Doppelklick zentrieren aktive Baum-/Helix-Elemente.
- `10_SHARED_CORE/app_v27_multimedia/css/style.css` hält die View-Steuerleiste in Full-Canvas/Fullscreen sticky und kollabiert geöffnete Views sauber.
- `01_1_Layout.js`, `01_2_Navigation.js` und `view_start_menus/bibliothek_menu.js` führen ein linkes `Vorgang3D`-Menü für Live-Baum, Dokumentbaum, Kugel-Helix/Jura-Welt und Observatorium; `01_1_Layout.js` setzt die Bibliothek-Sektion für AZ-Baum/Helix auf volle Breite und verlinkt die große Spatial-Jura-Welt direkt über `Jura-Welt`.
- `toolbox/legal/spatial_jura_world.py` führt im großen WH3D-Viewer Fokus, Reset, Fullscreen, aufklappbare Sidebar-Sektionen sowie Klick-/Doppelklick-Fokus für Kugeln mit Detailanzeige und Zentrier-/Zoomlogik.


## Mahnwesen-Realcase-Importbruecke 2026-05-15

- `azubi42_server.py` besitzt jetzt einen privaten Importlayer für ein serverseitig erzeugtes Realcase-Ledger samt Summary.
- `build_mahnwesen_payload()` merged lokale Runtime-Eintraege mit importierten Realcase-Eintraegen, dedupliziert und liefert `imported_item_count`, `import_summary`, Queue und Template-Preview aus demselben Stand.
- `render_mahnwesen_templates()` rendert ebenfalls aus dem gemergten Bestand.
- Der Baustein ist absichtlich runtime-privat; Repo, Matrix und Public-Reports erhalten nur Zähler und Schnittstellenvertrag.


## Source-Coverage-/Nachimport-Gate 2026-05-16

- `toolbox/legal/source_coverage_audit.py` zaehlt Rohfundstuecke, Pipeline-Ausgaben, Importkandidaten, Paperless-Reports und WH3D-Gate gegeneinander und schreibt private Detail-CSV plus öffentliche Zählerzusammenfassung.
- `source_content_relevance_audit.py` prüft lokale Quellkandidaten inhaltlich auf Verfahrenssignale, damit schlecht benannte Downloads/Office-Dateien nicht verloren gehen.
- `source_gap_word_batch_export.ps1` exportiert Word-/DOTX-/RTF-Dateien ausschließlich über echten Word-Batch; `source_gap_image_text_pdf.py` rendert nur sichtbaren Bild-/Text-/Mailinhalt und überspringt EML-Anhaenge/Base64-/Data-URI-Bloecke; `source_gap_sheet_text_pdf.py` erzeugt ausdruecklich nur Index-/RAG-Fallback-PDFs für Tabellen.
- Die allgemeine RAG-Coverage-Regel verlangt vor jedem großen Folgeschritt einen frischen Stufenzähler Quelle -> Paperless -> Sidecar -> WH3D -> Tabellen; unlesbar, Review oder unsichere Herkunft blockiert die Folgestufe.
- Finaltabellen und Schriftsatz-DOCX duerfen erst nach neuem Paperless-Nachimport, Sense-/Privacy-, Duplicate-Quality-, Atomindex- und WH3D-Lauf aus dem bereinigten Staging entstehen.


## Bulk-Job-Spickzettel 2026-05-16

- Derselbe Gate-Vertrag verlangt vor Massenkonvertierung, Paperless-Import, Atomindex, WH3D und Tabellenlauf einen privaten Kontrollzettel mit Dateizahl, Hash-/Datumsstand, Dateitypen, Größenbild, Seitenstatistik und laengsten Dateien nach Seitenzahl.
- Laufzeitauffälligkeiten werden gegen diesen Zettel geprüft; unplausibel lange Kandidaten bleiben Review-Rest.


## No-iFrame-Bookmark

- `00_META/NO_IFRAME_BOOKMARK.md` ist die feste Merkhilfe für neue HTML-/Viewer-/Accordion-/Paperless-Bauteile.
- Neue Loesungen nutzen BrowserGateway/Webconnect/Connectoren oder Same-Origin/PDF.js/Canvas statt `iframe`, `object` oder `embed`; statische Suche nach diesen Mustern gehört zur Freigabe.


## Dokument-Text-/OCR-/Formular-Router

- `toolbox/legal/document_text_router.py` entscheidet pro Seite lokal zwischen belastbarem `pdftotext -layout`-Textlayer und echter Tesseract-Bild-OCR mit Preprocessing/PSM-Auswahl.
- `[skipped page]`-Sidecars aus OCRmyPDF werden nicht als Nutztext akzeptiert.
- Der Router merged PDF-Textlayer-Wortboxen mit sichtbarer Bild-OCR, schreibt Wordmaps/Coverage-Overlays für markierbare Bereiche und OCR-Löcher und verankert die Final-PDF-Regel: Originalseite, Logos, Grafiken, Scanbild und Layout bleiben erhalten; nur der Such-/Markiertextlayer wird ergänzt.
- Text-only-Rebuilds sind Prüfansichten, keine Final-PDFs.
- Der Report erzeugt zusätzlich lokale, deterministische Feld-/Checkbox-Kandidaten und Herkunftslabels (`von wem`) aus Seiteninhalt, Dateiname/Pfad, Vorseitenkontext und optionalem lokalem Woerterbuch für Formulare, RAG/HW3D und Proofing ohne Cloud-KI oder Drittanbieter-Ausleitung.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_document_text_router.py`.


## Provenance-/Herkunftskontext

- `toolbox/legal/provenance_context.py` und `toolbox/legal/config/provenance_context.schema.json` definieren Herkunft als Pflichtachse für OCR, RAG, Chat, Knoten, Blickwinkel, HW3D und Schriftsatzprüfung.
- Der Vertrag führt `who_wrote`, `who_reads`, Situation/Ort, Dokument, Seiten-/Absatzanker, Aktenzeichen, Rolle, Quelle und Konfidenz.
- Unbekannte Herkunft ist ein Warnzustand; finale Tatsachenbehauptungen duerfen daraus nicht entstehen.
- Smoke: `70_TESTS_AND_SMOKE/legal/test_provenance_context.py`.


## Frontend-Soundscape


- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_10_Soundscape.js` ist der zentrale WebAudio-Baustein für lizenzsaubere UI-/Bewegungsgeraesche. Er bedient Upload, Verarbeitung, AZ-Helix, AZ-Baum, Verbindung, Knotenmaterialisierung, Warnung und Fehler über einen Ereignisvertrag.
- Die Sidebar enthält Sound an/aus, Lautstärkeregler, Presets und lokale User-Sound-Zuordnung pro Ereignis. Eigene Sounds bleiben im Browserprofil und werden nicht ins Repo oder auf den Server geschrieben.
- v27.2.149 haengt denselben Soundvertrag in das User-Menü: Sound-Themensets, Ereignis-Sloteditor mit `Test`/`Tauschen`/`Reset` und ein Azubi-Shop-Katalog für austauschbare Soundpakete. Katalogvertrag: `40_INTEGRATIONS/soundscape/sound_theme_sets.catalog.json`.
- v27.2.150 erweitert den Vertrag um `ui-hover` und eine zentrale Pointer-/Klickverdrahtung. Menüs, Buttons, Icons, Startzentralen, Knotenflächen und die Login-/Intro-Seite geben nach User-Aktivierung Rueckmeldung, ohne Fremd-Samples oder Autoplay-Zwang.
- v27.2.153 macht die Soundscape praxisfester: eigener Boost für WebAudio, getrennte Slots für Öffnen, Schließen und Auswahl, breiterer UI-Zielkatalog für Mouseover/Klick und Sound als normales standardmaessig eingeklapptes Sidebar-Accordion.
- v27.2.154 zieht die Soundscape-Kopfoptik in die gemeinsame linke Sidebar-Schicht: alle `sidebar-section-collapsible`-Koepfe nutzen akzentuierte Panelkante, Radialfläche, Icon-Pill, Caret-Pill sowie Hover-/Focus-Zustaende; der Sound-Block bleibt kein optischer Sonderfall mehr.

## Sidebar-Resize


- v27.2.151 vereinheitlicht das horizontale Ziehen der linken Seitenleiste: der globale Griff und die rechten Griffe geöffneter Accordion-Bereiche nutzen denselben Sidebar-Breitenvertrag `azubi42.sidebar.width`. Alte Abschnittsbreiten `azubi42.sidebar.section.width.*`[private Angabe entfernt]`70_TESTS_AND_SMOKE/ui/audit_sidebar_accordion_browser.mjs`.

## BuschCode HW3D Projektwelt


- v27.2.152 führt eine eigene Dev-Projektwelt für BuschCode ein. `toolbox/dev/project_world.py` baut den getrennten Vertrag `azubi42.dev.project_world.v1` aus Code-, Doku-, Test-, Git-, FixIt- und Release-Spuren; die App liefert ihn über `/api/dev/project-world/status` kompakt an die BuschCode-Karte `HW3D Projektwelt`. Die Dev-Welt ist absichtlich nicht mit der Jura-Spatial-World gekoppelt und gibt nur relative Projektpfade sowie redigierte Meldungen aus. Installer-Spiegel und Smoke: `70_TESTS_AND_SMOKE/ui/audit_buschcode_project_world.mjs`.

## Betriebsnotiz Codex/Git


- Lokale Codex-Konfiguration: `%USERPROFILE%\.codex\config.toml` vertraut jetzt neben `[lokaler Pfad]` auch dem echten Forgejo-Arbeitsbaum `[lokaler Arbeitsstand]`.
- Lokale Entwickler-CLI: `git` 2.53.0, `rg` 15.1.0, `gh` 2.92.0 und `codex-cli` 0.128.0 sind über normale Befehlsnamen erreichbar. `rg`/`gh` laufen über stabile Shims in `%LOCALAPPDATA%\OpenAI\Codex\bin`, damit der blockierte WindowsApps-Ressourcenpfad nicht mehr greift.
- Forgejo-Remote `https://forgejo.buschitut.eu/admintut/AZUBI42.git` ist lesend und per Push-Dry-Run erreichbar. `gh` ist installiert, aber nicht bei GitHub angemeldet; das blockiert dieses Forgejo-Repo nicht.
- Führender Stand ist der Forgejo-Clone `runtime\forgejo_repo`. Lokale Ordner unter `[lokaler Pfad]`, insbesondere `app_v27_multimedia`, `reports`, `linixserveredition\app_v27_multimedia` und `linixserveredition\reports`, werden mit `00_META\sync_local_azubi42_mirrors.ps1` aus Forgejo nachgezogen.
- `00_META\azubi42_workday.ps1` fasst den Alltag auf vier Aktionen zusammen: `status`, `sync`, `check` und `finish`. Die Bedienregel steht in `00_META\ARBEITSALLTAG.md`.
- Privacy-/Arbeitsweise-Bookmark: `00_META\AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` ist die dauerhafte Regel für pfadfreie Veröffentlichung, private Arbeitsdaten, lose Arbeitsformatierung und sauberen Abschluss begonnener Arbeit. `70_TESTS_AND_SMOKE\security\scan_private_path_leaks.ps1` laeuft im `check`/`finish`-Pfad und sperrt private Amts-/Download-/Meisterablage-Pfade im Repo.
- `00_META\check_python_syntax.py` ist der lokale Windows-Syntaxcheck ohne Bytecode-Erzeugung. `azubi42_workday.ps1 check/finish` nutzt diesen AST-Pfad, damit gesperrte Python-`__pycache__`-Reste im App-Baum keine wiederkehrenden `py_compile`-Fehler mehr erzeugen; der Forgejo-Push-Dry-Run ist dort nur noch Warnung, wenn Windows-Schannel gerade keine Credentials hat.
- `00_META\ARBEITSALLTAG.md` führt jetzt zusätzlich eine Status-Hygiene-Regel: Nach größeren Bloecken wird der Git-Status in `gueltig`, `temp`, `runtime` und `offen` getrennt, Temp wird entfernt, gültige Dateien werden in einen Commit-/Push-Schnitt geführt und offene Baustellen werden benannt.
- `00_META\ARBEITSALLTAG.md` führt jetzt zusätzlich Infrastrukturpflege als wiederkehrenden Wartungsblock: Versionen, Dienste, Ports, Logs, Speicher, Zertifikate, Queues, Timer, Backups und lokale Werkzeuge prüfen, Updates nur mit Risikoabgrenzung und Live-Nachprüfung einspielen.
- Director/Orchester/RAG Arbeitsbasis: `00_META/AZUBI42_DIRECTOR_INDEX.md` verankert Bestandsaufnahme, Fach-Azubi-Ausbau und Indizes als Wiedereinstieg (inkl. Workspace/Blickwinkel-Entrypoints). `00_META/AZUBI42_DIRECTOR_ARBEITSMUSTER_KATALOG.md` fasst die wiederkehrenden Muster als Karten (Bauteile/Datenfluss/Prüfregeln/Smokes). `00_META/AZUBI42_FACH_AZUBI_KATALOG_AUSBAU.md` führt zusätzlich den geplanten `Berufsatlas` als Quellen-, Schema- und Rollenbruecke für BIBB-Ausbildungsberufe, KMK-Rahmenlehrplaene, BA/KldB/BERUFENET, Destatis-/HRK-Studienstrukturen, reglementierte Berufe, freie Berufe und Fortbildungswege.
- HW3D/Observatorium-Anker (datenfrei, lokal): `00_META/AZUBI42_HW3D_JURA_LERNPIPELINE_2026-05-12.md`, `00_META/AZUBI42_SPATIAL_JURA_WORLD_BAUTEIL_2026-05-12.md`, `00_META/AZUBI42_HW3D_OBSERVATORIUM_2026-05-12.md` beschreiben Lernpipeline, Weltmodell und Observatorium als private Runtime-Ausgaben (keine Rohakten, keine Pfadleaks).
- Jurabibliothek-Gap-Analyse 2026-05-14: `reports/jurabibliothek_gap_analyse_2026-05-14.md` trennt konfigurierten Quellenvertrag, lokal materialisierten App-Index, offene Fetch-/Vektorisierungsstaende und Zielquellen für Normfundament, Rechtsprechung, EGMR/HUDOC, BVerfG, Legal-Education, Berufsatlas, Kinderrechte und Paperless/HW3D. Der Report ist pfad- und aktenfrei und dient als Importreihenfolge für die nächsten Bibliothekswellen.
- Aktenzeichen-Normalisierer: `toolbox/legal/aktenzeichen_timeline.py` führt vor dem AZ-/Spatial-Vertrag eine Bibliothekslogik für kanonische Vorgangs-AZ, Vorgangs-/Geschäftsnummern und Entscheidungs-/Bundesanker aus. Zitations-AZ aus BSG/BVerfG, klaren Bundesanker-Kontexten oder öffentlichen SG-/LSG-Vergleichsentscheidungen bleiben Fundstellen-/Ankerreferenzen und zaehlen nicht als Vorgangsbaum-Aeste; S45-/aehnliche Kandidaten mit Hauptsache-/Ursprungs-/Verfahrenskontext bleiben echte Vorgangs-AZ. `context_review` liefert für SG-/LSG-Kandidaten die Einstufungen `procedural_vorgangsaz`, `lower_court_decision_anchor`, `mixed_context_review` und `unconfirmed_vorgangsaz_candidate`. `aktenzeichen_timeline.compact.json` ist der kompakte Routinevertrag für Frontend, Observatorium und Spatial-Jura-Welt; die Vollausgabe mit Fundstellentabelle bleibt daneben für Audit und Originalprüfung. Der View-Model-Vertrag führt jetzt `fruits` und `fruit_count` pro AZ-Knoten: Punktflags, offene/erledigte/ausgeblendete Aeste und Bundesanker können dadurch als klickbare WH3D-Früchte in Baum und Helix erscheinen. Das Frontend begrenzt AZ-Panel, Baum- und Helix-Shell auf die echte Leinwandbreite, damit große Innenbaeume im eigenen Scrollbereich bleiben. Der Installer-Spiegel ist identisch.
- AMT-Connector für Server-/Rechner-Aktenroots: `azubi42_server.py` führt den privaten Config-Vertrag `amt_connect`, neutrale Env-Namen `AZUBI42_AMT_CONNECT_ROOT`, `AZUBI42_AMT_CONNECT_ROOTS`, `AZUBI42_AMT_CONNECT_ENABLED`, Matrix-/Local-Freigaben und die API-Routen `/api/legal/amt-connect/roots` und `/api/legal/amt-connect/tree`. Die UI sieht nur Root-Aliasse und relative Pfade; absolute Serverpfade und private Aktenlisten bleiben im Backend. Unerreichbare oder nicht lesbare Roots erhalten nur einen datenarmen `availability_status`, werden nicht automatisch ausgewaehlt und duerfen keinen AZ-Lauf starten, bis der Serverpfad real erreichbar ist. `01_1_Layout.js`, `01_8_JuraBibliothek.js` und `view_start_menus/bibliothek_menu.js` binden den Block `Server / Rechner Connect` in `Ordnerbaum und OCR-Upload` ein und setzen ausgewählte erreichbare Aliasse als `amtconnect://...`-Quelle für die Aktenzeichenanalyse. Smoke: `70_TESTS_AND_SMOKE/ui/audit_aktenzeichen_timeline.mjs`.
- Paperless-Upload-Kontext: `azubi42_server.py` speichert pro Upload einen privaten Runtime-Sidecar mit Richtung, `Schreiben von`, `Schreiben an`, Login-/Rollenhinweis und Warnstatus. `01_1_Layout.js`, `01_8_JuraBibliothek.js` und `view_start_menus/bibliothek_menu.js` binden Felder, Vorschlagschips, lokale Persistenz und den Upload-Formvertrag ein, damit Herkunft vor OCR/Paperless gesetzt wird statt später geraten zu werden. Absolute Pfade und Rohakten bleiben aus UI-/Repo-Berichten heraus. Smoke: `70_TESTS_AND_SMOKE/ui/audit_aktenzeichen_timeline.mjs`.
- FixIt-Ursachenrang: `azubi42_server.py` erzeugt für FixIt-Eintraege `rootCauseScore`, `rootCauseHints`, `priorityLabel`, bewahrt `manualRank` und nimmt `/api/fixit/reorder` als zentrale Rangfolge entgegen. `09_9_ErrorFixList.js` und `01_8_JuraBibliothek.js` können offene Eintraege nach Top/Hoch/Runter sowie im Bibliothek-Panel per Drag/Drop sortieren, damit auslösende Basisfehler vor Folgefehlern abgearbeitet werden. Der Codex-Bridge-Status nutzt eine aufloesbare Projektwurzel für CLI-Handoffs statt nur eines App-Unterordners.
- Paperless-Jura-Taxonomie: `40_INTEGRATIONS/paperless/taxonomy/paperless_legal_taxonomy.json` führt 10 globale Regex-Kernachsen, 11 katalog-only Spezialtags, Dokumenttypen, Custom-Fields, 21/23-Punkte-Legende und deaktivierte Workflow-Blueprints. `paperless_legal_tag_rules.json` ist auf denselben 10er-Kern reduziert, damit es keinen zweiten chaotischen Tagpfad gibt. `paperless_taxonomy_tool.py` validiert Regexe, 256-Zeichen-Grenze, Custom-Field-Typen, Workflow-Namensbezug und Paperless-OpenAPI-Schema und erzeugt Paperless-konforme Payloads; Select-Custom-Fields werden als `{"label": ...}` normalisiert. `paperless_tag_catalog_ui.json`, `40_INTEGRATIONS/paperless/ui/paperless-azubi42-overlay.js` und `azubi42_marker_profile_view.py` führen den Floating-Tag-Katalog für `Mein Account` und `Global` mit Gruppenbeschreibung, Dry-Run und Klick-Apply über `/api/azubi42/tag-catalog/`; globaler Apply bleibt serverseitig Paperless-Superuser-pflichtig. Spezial-, harte Vorwurfs- und Stellen-Tags bleiben katalog-only und werden bewusst geklickt. `hooks/azubi42_paperless_semantic_handoff.py` haengt optional nach fertigem Paperless-Sidecar einen Azubi42-RAG/HW3D-Queue-Job an, der Kerntag-Vorschlaege, Kataloggruppen und Weltklassen-Signale erzeugt, ohne harte Tags blind zu setzen. Das Overlay führt zusätzlich dokumentweise Markerprofile mit Mehrfarben-Pipette, Farbmasken-Unschaerfe `0..160`, Maskenvorschau, `Farbe rausfiltern` und `Neu speichern` über `/api/azubi42/marker-profile/`, damit markierte OCR-Lücken über Paperless-Reprocess plus Azubi42-Marker-Hook behandelt werden. Das lokale Azubi42-Paperless-Image ist updatefest auf `paperless-ngx:2.20.15` gepinnt; Updates laufen nur nach Export-/Volume-/Konfig-Backup, Build mit `--pull` und Live-Smokes. Live-Admin-Bausteine: `paperless_admin_inventory.py` für read-only Inventar/Gaps, `paperless_apply_taxonomy.py` für idempotenten Apply und `paperless_apply_tag_regex_profile.py` für das kuratierte `core_global_v2`-Profil. Bestandskonflikte melden `admin_edit_hint` für den Paperless-Editieren-Knopf oder bewusstes `--patch-existing`; alte Test-/Fail-Tags werden nicht blind gelöscht. Live-Regel 2026-05-13: keine Paperless-Automatik-Tags für Jura; aktive Erkennung ist auf AZ42-Kernachsen plus wenige harte Legacy-Regex-Tags begrenzt, alles andere wird `MATCH_NONE`. Smoke: `70_TESTS_AND_SMOKE/legal/test_paperless_legal_taxonomy.py`, `70_TESTS_AND_SMOKE/legal/test_paperless_overlay_tag_catalog.py`, `70_TESTS_AND_SMOKE/legal/test_paperless_semantic_handoff.py`.
- Paperless-Reprocess-Batch: `40_INTEGRATIONS/paperless/tools/paperless_reprocess_batch.py`[private Angabe entfernt]`bulk_edit`/`reprocess` in Chunks und verlangt für mehr als drei Dokumente `--confirm-all`.
- Paperless-Live-Smokes und Cleanup: `40_INTEGRATIONS/paperless/tools/paperless_tag_match_audit.py` prüft live sichtbare Dokumente read-only gegen AZ42-Tags/Dokumenttypen. `40_INTEGRATIONS/paperless/tools/paperless_date_sanity.py` prüft read-only Paperless-Dokumentdaten gegen Titel, Dateinamen, Textdatum und optionales privates Importmanifest, damit Timeline/HW3D/Mahnwesen keine Ausreisser wie `1968` oder `Vorgang (2) (2)` übernehmen. `40_INTEGRATIONS/paperless/tools/paperless_upload_smoke.py` erzeugt eindeutige Text-/PNG-Smokes mit Zeitstempel plus UUID-Suffix, wartet auf Task-Terminalstatus, prüft OCR, Archiv-PDF, AZUBI42-OCR-INLINE, Auto-Tags und Queue-Parallelitaet und schaltet bei Dubletten-/Taskfehlern auf `ok=false`. `40_INTEGRATIONS/paperless/tools/paperless_cleanup_by_query.py` raeumt Testdokumente nur per enger Query und nur nach explizitem Confirm auf. Messstand 2026-05-13: 4-PNG-, 8-PNG- und 64-PNG-OCR-Smoke `ok=true`, 2-TXT-Race-Smoke `ok=true`, maximal 2 aktive `consume_file`-Tasks; der 64er-Testbestand wurde gelöscht und der Papierkorb geleert. `40_INTEGRATIONS/paperless/config/paperless-parallel-capacity.example.env` hält das Kapazitaetsprofil für `PAPERLESS_TASK_WORKERS=8`/`PAPERLESS_THREADS_PER_WORKER=8`; `PAPERLESS_OCR_THREADS` bleibt bewusst draussen.
- Upload-Toolhaertung v27.2.154: `azubi42_server.py` führt gleiche-Origin-Routen `/api/tools/pdf/extract` und `/api/tools/ocr/image`; `09_1_PDFViewer.js` und `09_2_OCR_Engine.js` nutzen diese lokalen Servertools statt Drittanbieter-CDN-Runtimes. `01_1_Layout.js` erlaubt im Hauptupload jetzt Text, HTML, Markdown, JSON, XML, Office-Dokumente, Tabellen, PDF, Bilder und Videos als echte Nutzerdateien. `toolbox/legal/aktenzeichen_timeline.py` nutzt für Bildsegmente lokalen Tesseract-OCR mit `AZUBI42_TESSERACT_CMD`, `AZUBI42_TESSDATA_DIR` und `AZUBI42_OCR_LANGS`; Runtime-Tessdata bleibt git-ignoriert. Der Live-Deploy-Packer kopiert `aktenzeichen_timeline.py`, `sgf_row_enrichment.py`, `sgp_row_enrichment.py`, `sgp_schriftsatz_register.py` und `amt_argument_tables.py` in den App-Baum, damit Server-Instanzen die Bundesanker-/AZ-Pipeline nicht verlieren. Shared-Core und Ubuntu-Installer sind gespiegelt. Der neue Smoke `70_TESTS_AND_SMOKE/integrations/smoke_uploads_and_clicks.mjs` prüft harmlose gemischte Upload-Fixtures, Chat-/Workspace-Import, Schließen-X, Bibliothek-Dateiauswahl, AZ-Analyse, Baum und Helix.
- HW3D-Zusatzmodell-Pipe (datenfrei, lokal): `toolbox/legal/hw3d_model_pipe.py` verbindet `world_classes`, `world_findings`, den WH3D-Wissensvertrag, den Gesamtvorgang-Tabellenvertrag, den Benchmark-Quellenvertrag und Legal-Education-Fragmente zu JSON-/JSONL-Prüfauftraegen für strukturierte Kausalketten, Widersprueche, Blickwinkel, Fristen und Forderungen. Standardmodus ist `contract_only`; echte Modellübergabe erfolgt nur explizit per `--run-model`. Modellproben haben harte Lauf-/Ausgabebegrenzer (`--model-num-predict`, `--model-num-ctx`, `--model-temperature`, `--model-keep-alive`, `--model-prompt-char-limit`) und protokollieren Laufzeit, Promptgröße und Optionen; Ollama-`context`/`thinking` wird nicht gespeichert.
- Director-Runbook Tages-Schriftsätze (datenfrei): `00_META/AZUBI42_DIRECTOR_RUNBOOK_TAGES_SCHRIFTSAETZE.md` trennt Inputs/Variablen, Legal-QM, Fach-Azubi-Einsatz und Abschlusschecks; Antwortform (Character) und Prüfregeln sind als stabiler Vertrag explizit.
- Director-Templates (datenfrei): `60_RUNTIME_TEMPLATES/director/` führt Vorlagen für variable Prozessparameter und Raum-/Kanal-Listen; Fahrschule/Schule besitzen zusätzlich modulnahe JSON-Templates `PARAMETERS.template.json` und `ROOMS.template.json`. Quality-Gate: `legal_rulebook_loaded_first`. Smoke: `70_TESTS_AND_SMOKE/ui/audit_director_templates.mjs`.
- Browser-/Web-Knoten Zielarchitektur: `00_META/azubi42_browser_web_knoten_zielarchitektur.md` verankert Ist-Stand, Risiken, Zielbild, Phasen und Smoke-/Playwright-Tests für Live-Web, Snapshot und spätere Mobile/WebView-Pfade. Dynamischer Live-Smoke: `70_TESTS_AND_SMOKE/integrations/smoke_browser_gateway_live_page.mjs`.
- Browser-/Web-Knoten Selbsttest 2026-05-08: Upload-Modus defaultet pro Boot auf `Normal`, MediaParser erkennt generische Knoten-Titel (statt nur `Baustein N`) und BrowserGateway-Navigation wartet auf `load`, damit echte Seiten (z. B. `wetter.com`) screenshotbasiert möglichst direkt wirken. v27.2.137 führt direktes Mausrad-Scrollen auf dem Screenshot-Frame ein, spiegelt Klick/Scroll-Metadaten zurück in die Node-Session und erweitert den Live-Smoke um echte `scroll`-/`click`-/Screenshot-nach-Klick-Prüfung. v27.2.138 beendet BrowserGateway-Sessions, Profilkontexte und den Playwright-Treiber kontrolliert bei Service-Stop/SIGTERM, damit der echte Browserpfad ohne EPIPE-/RAM-Altlasten neu startet. v27.2.139 erkennt vorhandene Windows-Playwright-Runtimes im Forgejo-Shared-Core oder Windows-Cache, wenn der lokale portable `runtime/ms-playwright` leer ist. Smoke: `70_TESTS_AND_SMOKE/ui/audit_input_routine_modes.mjs`, `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs`, `70_TESTS_AND_SMOKE/integrations/smoke_browser_gateway_live_page.mjs`. 2026-05-13: Live-Smoke akzeptiert Bare-Domains (z. B. `AZUBI42_BROWSER_SMOKE_URL=wetter.com`). 2026-05-14: Smoke redacted Screenshot-Data-URLs (`image_ok`/`image_chars`) für lesbare Logs. 2026-05-15: Selbsttest erneut grün (Default `https://example.com/` und `AZUBI42_BROWSER_SMOKE_URL=wetter.com`).
- Browser-/Web-Knoten Architekturplanlauf 2026-05-16: Zielbild und Bauteilgrenzen für BrowserGateway (deterministischer Kern), WebSnapshot/Parsing, Discourse/FAQ/Behördenfreund, browser-agent/browserservice (Skalierung) und spätere Mobile-WebView sind als zusammenhaengende Schicht dokumentiert: `00_META/AZUBI42_BROWSER_WEB_KNOTEN_ZIELARCHITEKTUR_2026-05-16.md`. Der strikte Selbsttest ist als Report pfadfrei festgehalten: `reports/azubi42_browser_knoten_selbsttest_2026-05-16.md` (inkl. Live-Smoke gegen `wetter.com`).
- Browser-/Web-Knoten Selbsttest 2026-05-17: Strikter Selbsttest erneut grün (Audits + Live-Smoke gegen `https://example.com/` und `wetter.com`[private Angabe entfernt]`?`/`#`) werden als URL erkannt und Host/TLD robust extrahiert; Absicherung über `70_TESTS_AND_SMOKE/ui/audit_url_detection_edges.mjs` und Runner `70_TESTS_AND_SMOKE/integrations/run_browser_web_node_selftest.ps1`. Report: `reports/azubi42_browser_knoten_selbsttest_2026-05-17.md`.
- Modellrouting-Regelwerk/Smokes 2026-05-10: `00_META/AZUBI42_MODELLROUTING_REGELWERK.md` definiert sichtbare Modellpfade/Toolpfade/Fallbacks (inkl. Konstruktionsfehler-Hinweis: localhost darf keine remote Login-/Session-Ollama-Pfade still akzeptieren); `70_TESTS_AND_SMOKE/local-models/SMOKE_modellrouting_ollama_session.md` und `70_TESTS_AND_SMOKE/ui/audit_modelrouting_basepath_cookie_path.mjs` sichern Login-Gate, Base-Path-/Cookie-Path-Kohaerenz und eindeutige Toolpfad-Labels wie `Toolpfad: Direktrechnung (lokal)`.
- Modellwechsel-Klicktest 2026-05-09: `06_1_ModelSelector.js` behandelt jedes echte Select-`change` als bewusste Modellauswahl. Damit bleibt OpenAI -> Codex Native -> Ollama/local -> OpenAI klickbar, während Startup-/Autoscan-Aufrufe ohne Event weiterhin gespeicherte Sticky-Provider herstellen duerfen. Der aktive App-Spiegel, Shared-Core und Ubuntu-Server-Spiegel sind synchron.
- Todo Fix-It v27.2.146: `09_9_ErrorFixList.js` sammelt rote UI-/Runtime-Fehler weiterhin lokal, spiegelt offene Eintraege an `/api/fixit/report`, meldet `Erledigt` und `Leeren` jetzt auch als Server-Abschluss und normalisiert Fehlerobjekte lesbar statt als `[object Object]`. `css/style.css` gibt FixIt-Toast und Aktionsbuttons mobile Touch-Ziele und ein schmalbildschirmfestes Aktionslayout. `azubi42_server.py` führt die private Inbox `runtime/fixit_inbox/` mit JSONL-Log, aktuellem offenen Stand, `GET /api/fixit/list`[private Angabe entfernt]`token=...`; Server-Merges erhalten bestehende Trefferzähler. Shared-Core und Ubuntu-Installer sind gespiegelt. Smokes: `70_TESTS_AND_SMOKE/ui/audit_error_fixit_list.mjs`, `70_TESTS_AND_SMOKE/ui/audit_error_fixit_browser.mjs`, `70_TESTS_AND_SMOKE/integrations/audit_fixit_codex_worker.py`.
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- Meisterablage-OCR-Sidecar-Härtung 2026-05-12: `toolbox/legal/meisterablage_builder.py`[private Angabe entfernt]`ocr_sidecar_ready`. Dadurch bleiben kuratierte Final-Print-Scan-PDFs im Manifest textgedeckt, ohne private Rohdaten ins Repo zu ziehen.
- Final-Print-Universalblock 2026-05-12: `toolbox/legal/final_print_package.py` führt einen privaten Universalblock Vorfehlerkette als generellen Einleitungsbaustein für alle Empfängerpakete. Der Baustein erzeugt nur Paket-/Registereintraege und generierte Druckfassungen aus `[private Vorgangswurzel]`; private DOCX/PDF/XLSX/TXT-Quellen werden nicht ins Repo oder in öffentliche Reports übernommen.
- Fullbestand-Final-Print 2026-05-13: Derselbe Baustein laeuft auf dem Server gegen `[private Vorgangswurzel]` als verbindlichen Gesamtbestand. Erwartet werden neutral benannte Quellenwurzel, privater Arbeitsbereich, Paperless-Sidecars für OCR-Aggregate und der aktuelle QM-/Mahnwesen-Stand; der Serverlauf erzeugte 47 Registereintraege mit `hard=0`, `check=0` und `recipient_missing=0`. Private Rohakten bleiben ausschließlich im privaten AMT-Bestand.
- Public-Decision-Pattern-Research 2026-05-09: `toolbox/legal/public_case_pattern_research.py` wertet die zentrale Jurabibliothek per SQLite/FTS read-only gegen die Achsen Zuständigkeit, PKH/Rechtsbeistand, rechtliches Gehoer/Ausblendung, einfache Formfehler und SG Potsdam/LSG Berlin-Brandenburg aus. Serverlauf gegen 83.241 Entscheidungen und 1.096.100 Fragmente erzeugte 13.442 Roh-Treffer, 2.871 A-Prüfkandidaten und die Berichte `reports/public_case_pattern_research_2026-05-09.md`, `reports/public_case_pattern_research_2026-05-09_A_core.csv` sowie `reports/public_case_pattern_kernnotiz_2026-05-09.md`. Roh-Voll-CSV/JSON bleiben serverseitig unter `/tmp/azubi42_case_research_20260509/`, damit Forgejo nicht mit 34 MB Analyseartefakten belastet wird.
- Fix-It Entscheidungsfenster v27.2.134: `09_9_ErrorFixList.js` zeigt in der Fehler-Meldung `Jetzt fixen`, `Später fixen` und einen 5-Minuten-Countdown. Ohne Entscheidung wird ein Auto-Fix-Auftrag an `/api/fixit/auto/fix` geschrieben. `azubi42_server.py` speichert diese Auftraege unter `runtime/fixit_inbox/fixit_autofix_current.json`/`.jsonl`; der Codex-Worker priorisiert fällige Auftraege und respektiert `later`. Optional weckt `azubi42-fixit-codex.path` den Worker bei neuen Auftraegen direkt.
- Fix-It Auto-Modus v27.2.133: `azubi42_server.py` signalisiert neue Fix-It-Reports automatisch in `runtime/fixit_inbox/fixit_team_signals.jsonl`, bietet `GET /api/fixit/auto/status` und `POST /api/fixit/auto/ping` und nutzt für Team-Pings bevorzugt `fixit.notify.matrix`, sonst den bestehenden Access-Request-Matrix-Fallback. Der Codex-Worker bleibt separat und startet nur über bewusst aktivierten Server-Timer.
- Fix-It Codex-Worker v27.2.132: `40_INTEGRATIONS/codex/azubi42_fixit_codex_worker.py` und `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/codex/` bauen aus offenen Fix-It-Eintraegen reproduzierbare Codex-CLI-Jobs. Der Ubuntu-Installer schreibt systemd-Service/Timer-Vorlagen und installiert den Worker nach `/usr/local/bin`, aktiviert ihn aber erst nach eigenem Server-Login bewusst per Timer. Smoke: `70_TESTS_AND_SMOKE/integrations/audit_fixit_codex_worker.py`.
- FachConnect-Bridge v27.2.130: `11_5_FachConnectBridge.js` führt einen wiederverwendbaren Connect-Dialog für Forgejo und spätere Fachazubi-Dienste ein. BuschCode `Forgejo verbinden`, Fachazubi-Karten und Fachazubi-Profil-Popup nutzen denselben Ablauf: Fachanimation, Credential-Formular, echte Serverprobe, Runtime-Session ohne Passwort-Persistenz und Fix-It-Eintrag bei Fehlern. `11_1_VaultDB.js` trennt persistierte Tresoransicht und Runtime-Session, damit ein Login die Forgejo-API-Werkzeuge fuettert, ohne das Passwort im Tresorpanel dauerhaft sichtbar zu machen.
- Modellrouting-Härtung v27.2.136: `06_3_CloudFetch.js` trennt die lokale OpenAI-Proxyroute wieder strikt vom Codex-Native-Handoff. `fetchCloudLLM` sendet keine nativen Handoff-Felder wie `open_app`, `sandbox_mode` oder `writable_roots` an `/api/openai/responses`; diese bleiben nur in `fetchNativeCodexBridge`. Der Installer-Spiegel ist synchron, `audit_parallel_chat_runs.mjs` prüft beide Pfade.
- Modellrouting-Härtung v27.2.129: `06_1_ModelSelector.js` übernimmt OpenAI-Modell-IDs aus `value`, `model_id` oder `id`, `02_1_ChatWindow.js` startet bei OpenAI-Authfehlern keinen automatischen Codex-Native-Lauf mehr, `06_3_CloudFetch.js` stoppt Codex-Handoffs aus OpenAI-/Google-Routen als Provider-Mismatch, und `azubi42_server.py` meldet fehlende OpenAI-API-Keys als 401 statt als Handoff. Browser-Smoke belegt: sichtbare Auswahl `gpt-5.4` bleibt technisch `gpt-5.4`, der Ollama-Pfad wird nicht verwendet und die Fehleranzeige landet in der Todo-Fix-It-Liste.
- AZUBI42.de Public-Site: `20_EDITIONS/azubi42-de/website/` führt die neue Hauptdomain als statischen Fachazubi-Atlas mit eigenem Manifest, sanitisierten Katalogdaten, Gelonade-/Cyan-CSS, Poster-Asset, lokalem Mission-Patch samt transparentem Web-Derivat als dauerhaftem Haltungs-/Motto-Leitmotiv, interaktiver Modul-/Blickwinkel-/Modulstein-Ansicht, Roadmap und generierten Detailseiten je Fachazubi. `20_EDITIONS/azubi42-de/tools/build_site.mjs` erzeugt die Public-Daten und Detailseiten aus `40_INTEGRATIONS/fach-azubis/catalog.json`, entfernt aber interne Forgejo-URLs, Forgejo-Pfade, Entrypoints und private Runtime-Bezüge aus der öffentlichen JSON-/HTML-Fläche; die Seite bleibt ohne Tracking und ohne Drittanbieter-Frames. v2026.05.08.2 ergänzt `website/data/berufsatlas.json`, eine filterbare Berufsatlas-Section mit sechs Routing-Tracks und Quellenankern für BIBB, BA/KldB und KMK. v2026.05.08.3 haertet die mobile Public-Site: Header ist bei Smartphone-Landscape/Coarse-Pointer nicht sticky, Portrait-Navigation ist kompakter und Unter-520px-Inhalte nutzen mehr Breite. v2026.05.08.4 ergänzt IHK als eigenen Ausbildungs-/Kammerpfad samt IHK-Ausbildung, IHK-Berufen und IHK-Finder. v2026.05.08.5 ergänzt im Plant-Fachazubi die Blickwinkel `Pflanze` und `System` sowie den Modulstein `systemtechnik`. v2026.05.08.6 integriert Buschitut als Mutterbusch-/Campus-Schicht mit eigener `#buschitut`-Section, Plant-`ecosystem.id=buschitut`, Modulstein `buschitut-campus`, Bericht `reports/buschitut_azubi42_mapping_2026-05-08.md` und Cache-Buster `azubi42de-20260508-6`.
- AZUBI42.de Public-Pipeline v2026.05.12.1: `site_manifest.json` wird jetzt direkt durch `build_site.mjs` erzeugt und enthält `build_pipeline` mit Detailseiten-, Modulstein-, Blickwinkel- und Public-Request-Status. Die Startseite besitzt eine sichtbare `#autopipeline`-Sektion, `site.js` laedt Manifest, Fachazubi-Katalog und Berufsatlas mit `no-store`[private Angabe entfernt]`audit_azubi42_domain_site.mjs` prüfen diesen Vertrag.
- AZUBI42.de Tech-Atlas v2026.05.12.3: Der kanonische Fachazubi-Katalog führt `azubi42-tech.tech_atlas` mit sechs öffentlichen Spuren für Soundscape, Dev-HW3D, FixIt, echten Browser-Smoke, Modellrouting und Observatorium. Die Startseite besitzt unter `#tech` einen datengetriebenen Atlas mit Statuszeile, Blickwinkel-Konsole, Faehigkeiten und Public-Regeln. Manifest, Detailseiten, Installer-Spiegel und Domain-Audit sind auf Cache-Buster `azubi42de-20260512-3` aktualisiert.
- Discourse-Accordion `20260508a`: `40_INTEGRATIONS/discourse/` führt jetzt das eigene Item `AZUBI42 Vorstellung` mit Same-Origin-Karte `Azubi42/index.html`, Kapitel-Seed `config/azubi42-chapter.seed.json`, Bootstrap-Helfer `discourse_azubi42_chapter_bootstrap.py`, Matrix-Alias `#btut-azubi42:42.chat` und Forgejo-Orga-Seed `40_INTEGRATIONS/forgejo/buschitut-forgejo.organization.seed.json`. Matrix-Map und Matrix-Live werden relativ über `/ext/...` geladen, damit Preview und Live-Host dem Same-Origin-Vertrag folgen. Live-Deploy 2026-05-09: `/ext` auf `discourse.buschitut.eu` wurde nachgezogen; Browsercheck bestaetigt `AZUBI42 Vorstellung`, `buschitut-forgejo` und den Azubi42-Handoff.
- Admin-Update Browser/Discourse 2026-05-09: `reports/azubi42_admin_update_browser_discourse_2026-05-09.md` fasst v27.2.138, echte BrowserGateway-Interaktion, Shutdown-Härtung, Discourse-`/ext`[private Angabe entfernt]`$JKEoJl9X2eyd9jmYQOvF1EymrJNziI5gth46fn4OcQI`.
- `.gitattributes` setzt stabile Zeilenenden für Windows- und Linux-Dateitypen, damit `git diff --check` im Alltag ohne CRLF-Rauschen laeuft.
- `.gitignore` hält Laufzeitdaten, Browser-/Pytest-Tempdaten, Screenshots, Deploy-Artefakte, Jurabibliothek-Arbeitsdaten, top-level Chrome-/Audit-Profile, Installer-Deploy-Runtime und App-Runtime-Privatpfade wie `[private Angabe entfernt]`, Zugangsanfragen, BrowserGateway-Profile/Downloads, `ms-playwright`, Paperless-Sidecars, AZ-Zeitstrahl-Runs/-Browseruploads, Logs und Temp aus dem Forgejo-Main heraus.
- Installer-ZIP-Hygiene: `toolbox/package/build_azubi42_server_zip.ps1` baut das Ubuntu-Server-ZIP reproduzierbar neu und lässt Top-Level-`config/`, Runtime-/Deploy-Artefakte, App-Runtime-Privatpfade, Domain-Site-Binaerassets, lokale Intro-Medien, große optionale Logo-Medien, alte Windows-/Exporter-Helfer sowie echte `.key`-/Auth-Dateien nicht ins Paket. `70_TESTS_AND_SMOKE/security/audit_installer_archives.ps1` prüft das fertige ZIP direkt vor Weitergabe.
- Release-Artefaktvertrag: `30_INSTALLERS/ubuntu24/azubi42-server/azubi42-linux-server.zip` ist nicht mehr als normale Git-Datei getrackt. `toolbox/package/build_azubi42_release_artifacts.ps1` baut ZIP, SHA256 und Manifest nach `runtime/release_artifacts/` und `50_CODEX_OPENAI/release-manifests/`; aktuell ist `v27.2.123-27143` gebaut, geprüft und im Release-Manifest verankert. `toolbox/package/publish_forgejo_release_asset.ps1` kann das Artefakt mit lokalem `[private Angabe entfernt]` als Forgejo-Release-Asset hochladen.
- Matrix-Admin-Fortschrittsbericht: `reports/azubi42_admin_kurzbericht_seit_gpu_post_2026-05-07.md` fasst den secretfreien Stand seit dem letzten GPU-ServerRoom-Post zusammen, inklusive v27.2.108, Jura-Aktenzeichen-Zeitstrahl, Bundes-/Normankern, Helix, Jurabibliothek-Coverage, Berufsatlas-Konzept und lokalem Screenshot-/OBS-Nachweis.
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- UI-Regressionsfix v27.2.110: `azubi42_server.py` und `11_4_ForgejoBridge.js` behandeln private/nicht lesbare Forgejo-Versionsmanifeste als lokalen Versionsfallback statt als Deploybruch; das Startup-Popup zeigt dadurch Backend-/Webroot-Stand statt `Deploy-Pfad pruefen`. v27.2.109 setzt Desktop-Login-Animationen früher und sichtbarer an und führt den sichtbaren Startup-Auto-Close-Countdown im Forgejo-Version-Popup.
- Matrix-Admin-Nachtrag Domain/Discourse: `reports/azubi42_admin_domain_discourse_nachtrag_2026-05-07.md` dokumentiert `azubi42.de` live mit HTTPS-Forward, Manifest `2026.05.06.8`, Public-Sanitizing, Desktop-/Mobile-Screenshots und Video sowie den Discourse-Iststand: Repo-Vertrag grün, Live-`/ext` noch alt, Matrix-Live-Raumroute teilweise aktiv und Remote-Deploy bis zur fehlenden Discourse-Root-/Plesk-Auth blockiert.
- Forgejo-HTTP-413-Härtung: `40_INTEGRATIONS/forgejo/` führt jetzt Runbook, Plesk-nginx-/Apache-Vorlagen, Forgejo-`app.ini`-Beispiel, idempotente Apply-Skripte für Plesk-vHost und klassische nginx-Site-Datei sowie `70_TESTS_AND_SMOKE/integrations/check_forgejo_push_limit.ps1`, damit Push-Grenzen reproduzierbar geprüft und serverseitig auf mindestens `256M` angehoben werden können. Live wurde `/etc/nginx/sites-available/forgejo` am 2026-05-06 gepatcht; echte Probe-Pushes bis 16 MB gingen danach durch und wurden gelöscht.
- Matrix-Integrationsanker (tokenfrei, templates-first): `40_INTEGRATIONS/matrix/README.md` fasst Raum-/Alias-Map, Sync/Livemap und die variable Raumlistensteuerung zusammen.
- UI-/Browser-Debugging: Bei sichtbar live auftretenden Frontend-Fehlern ist zuerst der echte Live-DOM mit Screenshot/Inspect/DevTools zu prüfen. Dateilisten, Repo-Suchen und lokale Standsicht sind danach nur die zweite Stufe zur Ursachenhypothese und zum Patch. Der Server besitzt dafür einen XFCE-Desktop mit echten Browsern; lokale Playwright-Laeufe bleiben für reproduzierbare Screenshots und Geometriedaten. Der aktuelle Regelbericht liegt unter `reports/live_dom_first_rule_2026-05-05.md`.
- Screenshot-Regel 2026-05-14: `00_META/SCREENSHOT_REGEL.md` verankert Tagesordner `runtime/screenshots/YYYY-MM-DD/<laufname>/`, JPG 100% für normale UI-Belege, PNG nur für Transparenz/Masken/Differenzen und eine Mindestbreite von 2000 px. Der AZUBI42.de-Mobile-Audit nutzt diesen Vertrag als erster Referenzlauf. Legacy `screenshots/` im Repo-Root ist superseded/ignoriert; Doku: `90_ARCHIVE/superseded_artefakte/screenshots_root_dir_2026-05-15.md`.
- Codex-Wiederaufnahme: `00_META/windows/Start-Codex-Azubi42.ps1` startet beim Windows-Login bevorzugt den Thread `019de072-d008-7c10-bb53-9436d6c9b01d` über das `codex:`-Protokoll und fällt auf den Codex-App-Start zurück. `00_META/azubi42_codex_wiederaufnahme.md` dokumentiert die Dauerregel; der bestehende Heartbeat `bibliothek-42-minuten-check` enthält jetzt zusätzlich die Wiederaufnahme-/Baustellenregel.
- Jura-Testzugang RA Tegebauer: serverseitig wurde `ra-tegebauer` für `azubi42-jura`[private Angabe entfernt]`reports/ra_tegebauer_testzugang_2026-05-04.md`. Passwörter werden nicht versioniert.
- Login-Cookie-/Rechtshinweis: das Server-Login zeigt jetzt einen ruhigen Datenschutz-/Cookie-/Impressum-Accordion mit dem notwendigen `azubi42_session`-Cookie, Behördenfreund-FAQ-Ankerzielen und Tracking-Ausschluss; Session-Cookies werden bei HTTPS mit `Secure`, `HttpOnly` und `SameSite=Lax` gesetzt.
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- Legal-Mahnwesen: `toolbox/legal/mahnwesen.py` führt ein datenarmes Fristen-/Versandregister für alle Fachazubi-Scope-Wiedervorlagen; Jura nutzt es zuerst für BVerwG, SGF, SGP, LSG, AOK, Jobcenter und Patientenbeauftragten. Es berechnet fällige Sachstands-/Erinnerungsschreiben nach `toolbox/legal/GRUNDREGEL_FRISTEN_MAHNWESEN.md`, schreibt `mahnqueue.csv/json/md`, rendert Markdown-Faxvorlagen aus `toolbox/legal/config/mahnwesen_templates.json`, unterstützt Templatearten `sachstand`, `mahnung`, `ruege`, `beschwerde`, `pkh_sperre`, `zustaendigkeit_sperre` und `strafanzeige_pruefen`, und bringt eine systemd-Timer-Vorlage für tägliche Serverkontrolle mit. `azubi42_server.py` stellt die globale `/api/mahnwesen/*`-API bereit; das Bibliothek-Panel führt Formular, Queue, Template-Preview, Click-&-Edit-Fristenregeln und ab v27.2.126 einen editierbaren Maßnahmenbaum pro Vorgangspunkt. Ab v27.2.127 liegt zusätzlich `toolbox/legal/config/mahnwesen_template_tree.json` als editierbarer Eskalations-Templatebaum vor; `/api/mahnwesen/tree` persistiert Nutzeranpassungen in der privaten Runtime, und die UI kann ausgewählte Knoten direkt als Maßnahmenzweig in einen Vorgangspunkt einpflanzen. v27.2.128 ergänzt PKH-/Beistandssperre und Zuständigkeitssperre als harte Schutzschwellen und merged neue Default-Schutzarme auch in alte private Runtime-Baeume, ohne Nutzerknoten zu überschreiben. `toolbox/legal/mahnwesen_case_audit.py` wendet diese Logik auf den privaten Gesamtvorgang 2020-2026 an, erzeugt ein Ledger aus SGF-/SGP-Finaltabellen plus aktuellen Bezugspunkten und vergleicht Queue-Achsen mit SGF, SGP, BVerwG und Patientenstelle. `toolbox/legal/schriftsatz_konsistenz_audit.py` prüft darauf aufbauend aktuelle Schriftsätze, Tabellen, BVerwG-Fassungen, Patientenstelle, BVerfG-Fassungen und neue PDF-Eingaenge aus Angriffsflächen-Sicht; der Lauf erzeugt private Konsistenzberichte, Versandmaster-Regel und Nachtragsbausteine. Ein Vorgangspunkt kann dadurch mehrere getrennte Queue-Zweige mit eigener Fälligkeit, Empfänger, Vorlage und Status auslösen. Der Baustein bewertet nur Fristen/Nachfasspunkte und behauptet keine ungeprüften Rechtsfolgen.
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.

## Produktionsumfang


- Gesamtdateien: `120`
- JavaScript: `70`
- CSS: `7`
- HTML: `1`
- JSON: `9`
- Markdown-Hilfen: `9`
- Python: `1`
- PowerShell: `3`
- Batch: `2`
- SVG: `1`
- TXT-Logos: `9`
- PNG: `1`
- Medienplatzhalter/Gitignore: `.gitignore` `1`, `.gitkeep` `2`

## Modulgruppen


- `js/main.js`: `1`
- `js/00_STATE`: `1`
- `js/01_CORE`: `10`
- `js/02_CHAT`: `5`
- `js/03_WORKSPACE`: `3`
- `js/04_NODE`: `5`
- `js/05_LEGEND`: `5`
- `js/06_API_ROUTER`: `6`
- `js/07_DATA_VAULT`: `6`
- `js/08_TIMELINE`: `3`
- `js/09_TOOLS`: `10`
- `js/10_PAPERLESS_RAG`: `3`
- `js/11_AUTH_MANAGER`: `5`

## Kernbauteile


- `index.html`
  Einstiegspunkt der App. Laedt Layout, Stil, Bootsequenz, Lightbox und Mini-Logo-Block inklusive Codex, Matrix, Forgejo, Paperless, Behördenfreund, Footer, Kristall CBTC und Ollama. Die Mini-Logo-Lightbox zieht für Matrix, Forgejo, Paperless, Codex und Ollama ihre Web-URLs jetzt bevorzugt dynamisch aus dem Azubi-Tresor statt aus festen Hartverdrahtungen. Der Startpfad versteht jetzt zusätzlich einen transienten Reload-Token `azubi42_reload`[private Angabe entfernt]`F5`[private Angabe entfernt]`27165`[private Angabe entfernt]`27164` für getrennte helle Farbschema-Templates `Gelato41`, `WeddingCake` und `WhiteRuntz`[private Angabe entfernt]`27155`[private Angabe entfernt]`27154`[private Angabe entfernt]`27153`[private Angabe entfernt]`27152`[private Angabe entfernt]`27151`[private Angabe entfernt]`27150`[private Angabe entfernt]`27149`[private Angabe entfernt]`27148`[private Angabe entfernt]`27147`[private Angabe entfernt]`27146`[private Angabe entfernt]`27145`[private Angabe entfernt]`27144`[private Angabe entfernt]`27143`[private Angabe entfernt]`27142`[private Angabe entfernt]`27141`[private Angabe entfernt]`27140`[private Angabe entfernt]`27139`[private Angabe entfernt]`27138`[private Angabe entfernt]`27137` für lesbare Jurabibliothek-Such-/API-Fehler statt `[object Object]`[private Angabe entfernt]`27136`[private Angabe entfernt]`27135` für den mobilen Sidebar-Fix, bei dem `Azubis Kollegen`[private Angabe entfernt]`27131`[private Angabe entfernt]`27130`[private Angabe entfernt]`27129`[private Angabe entfernt]`27128`[private Angabe entfernt]`27127`[private Angabe entfernt]`27126` für den sichtbaren 3D-AZ-Helix-Ergebnisblock und `AZ letzter Lauf`[private Angabe entfernt]`27125` für `[private Vorgangswurzel]/kopiertes` als sicheren lokalen AZ-Quellpfad und den Knopf `Letzter Lauf`[private Angabe entfernt]`27124`[private Angabe entfernt]`27123`[private Angabe entfernt]`27122`[private Angabe entfernt]`27121`[private Angabe entfernt]`27120`[private Angabe entfernt]`27119`[private Angabe entfernt]`27118`[private Angabe entfernt]`27117` für den direkt sichtbaren mobilen `Azubis Kollegen`[private Angabe entfernt]`27116` für die Fachazubi-Profil-Lightbox aus Kartenklick und `Vorstellen`[private Angabe entfernt]`27115`[private Angabe entfernt]`27114`[private Angabe entfernt]`27113`[private Angabe entfernt]`27112`[private Angabe entfernt]`27111`[private Angabe entfernt]`27110`[private Angabe entfernt]`27109` für durchgehende Fach-Azubi-Akzentfarben in Karten, Pfadboxen und Aktionen.

  Laedt zusätzlich `css/mobile-smart.css` als zweites, versioniertes Stylesheet nur für schmale oder grobe Touch-Viewports und führt die passenden Viewport-/Safe-Area-Meta-Tags, ohne `css/style.css` anzufassen.

- `css/style.css`
  Zentrale Basis-Gestaltungsdatei für Sidebar, Dock, Knoten, Zeilen, Overlay, Matrix-Zielpanel, Tooltip-System, das verdichtete laptopfreundliche Layout, den verschiebbaren Dock-Griff, die erweiterten Matrix-Resize-Ecken, `Strg`/`Cmd`[private Angabe entfernt]`user-msg`, `assistant-msg` und `system-msg`; skaliert feste Tailwind-Pixelklassen, damit Theme- und Schriftgrößenwahl auch in Paperless, Timeline, Communication, BuschCode, Dock und Overlays greift. v27.2.130 ergänzt `.fach-connect-*` für den fachakzentuierten Forgejo-Connect-Dialog mit Symbolorbit, Credential-Formular, Erfolg/Fehler-Zustaenden und mobilem Bottom-Sheet-Verhalten.

  2026-05-16 ergänzt die Datei sticky Steuerleisten und kollabierbare Koerper für AZ-Dokumentbaum/Helix-Views, damit Auf/Zu, Fokus, Reset, Zoom, volle Leinwand und Fullscreen ohne verlorene Bedienung laufen.

  v27.2.119 ergänzt Jurabibliothek-Rechtsgebietskarten, Checkbox-Hitboxen und den Rechtsgebiets-Detaildialog mit erweiterten Aktionen. v27.2.118 ergänzt Fix-It-Konsole, Erfassungs-Toast und Ursprungsmarkierung für automatisch erkannte Fehleranzeigen. v27.2.109 führt `.forgejo-update-popup-timer` für den sichtbaren Auto-Close-Countdown ein und bindet den Timer an die vorhandenen Theme-Farbregeln. v27.2.100 verbreitert die Startzentralen-Buehne auf die echte Hauptfläche, reduziert verschenkte Dock-Reserve, verschiebt Breite aus Nebenleisten in die Mitte und hebt Startscreen-Lesetexte auf browsergeprüfte Mindestgrößen ohne unnoetige Innen-Scrollbars. v27.2.94 führt das linke `nav-communication`-Untermenü, Communication-Dienstbuttons, eigene Communication-Akzente und Sidebar-Fit-Regeln für mehrere Messenger-Knoten ein. v27.2.74 führt `azubi-sensitive-field`[private Angabe entfernt]`password`-Inputs zu verwenden.

  Der Sidebar-Resizegriff hat wieder eine breite Maus-Hitbox mit nur 1px sichtbarer Linie. Die Dock-Resize-Hitbox liegt unter den Eingabe-Steuerelementen, damit `Senden` und Upload im kompakten Dock klickbar bleiben. Theme-Kacheln schneiden lange Farblegenden sauber ab, damit `WhiteRuntz` und spätere Custom-Themes nicht aus dem Button laufen. v27.2.145 ergänzt für mobile Theme-Karten `overflow-wrap:anywhere`/Hyphenation auf Beschreibungstexten, damit zweispaltige Touch-Menüs keine langen Wörter mehr abschneiden.

  Die Dichte-Presets `Kompakt`, `Normal` und `Luftig` steuern jetzt nicht mehr nur die linke Seitenleiste, sondern über gemeinsame CSS-Variablen auch Workspace-Views, Dock, Knoten, Message-Bloecke, Timeline, Paperless, Communication und Antwort-/Suchkarten. Der Knoten-Chrome ist verdichtet: Draggriff, Referenz, Titel, Datum, Flags und Fensterknöpfe belegen weniger Höhe, leere Flag-Zeilen kollabieren und der Body bekommt mehr Nutzfläche. Das Eingabe-Dock zeichnet keinen zweiten inneren Resize-Rahmen mehr und besitzt wieder robuste Kanten-/Eck-Hitboxen für Maus-Resize; v27.2.25 ordnet den höher gezogenen Dock-Zustand als Editor-, Upload-Werkzeug- und Sendezone. Die linke Sidebar nutzt schlankere Abstaende, Felder und Dropdown-Aktionen. Das Matrix-Zielpanel sitzt auf Desktopbreite oberhalb des Docks statt links aus dem Viewport zu laufen. Die visuelle Knotenmarkierung für `data-selected` und `data-focused` besitzt jetzt eigene theme-sichere CSS-Regeln, damit Mehrfachauswahl nicht mehr von allgemeinen Theme-Panelregeln überdeckt wird.

  v27.2.26 macht alle linken Hauptsektionen einheitlich klappbar, lässt das Usermenü sichtbar aus der Sidebar herausragen, verdichtet Logo- und Flagbereiche weiter und führt `--azubi-canvas-dot` als eigenes Farbziel für das Punktraster ein. Die hellen Themes steuern Header-Buttons, Dock-Verlauf und Canvas-Punkte jetzt über dieselben Bauteil-Token statt über harte Restfarben.

## v27.2.27 entfernt die letzten Inline-Styles, die den Logo-Block wieder groß gezogen haben

- der Kollegenbereich ist jetzt ein schlankes 48px-Logo plus 4er-Mini-Grid.
- Legende und Verlaeufe verwenden nun dieselben breiten Klappkoepfe wie die uebrigen Sidebar-Sektionen, und die Flaggenpalette ist als 24px-Symbolraster ohne fette Hintergrundkacheln ausgelegt.
- `Gelato41` und `WeddingCake` sind farblich auseinandergezogen, damit die hellen Themes nicht mehr als einfarbige Beige-Flächen wirken.

  v27.2.28 ergänzt sichtbare Scrollbars für offene Sidebar-Gruppen und den linken Gesamtnavigationsbereich, fuegt pro geöffneter Gruppe einen eigenen horizontalen Ziehgriff mit gespeicherter Breite hinzu und übersetzt dunkle Perspektiven-Waffe-Innenkarten im WhiteRuntz-Theme auf helle Theme-Tokens.

  v27.2.29 faerbt Sidebar-Karten, Felder und Knöpfe in `Gelato41`, `WeddingCake` und `WhiteRuntz` über eigene Theme-Token durch und ergänzt einen vertikalen Höhenziehgriff je geöffneter Sidebar-Gruppe mit lokaler Persistenz.

  v27.2.30 führt eigene Scrollbar-Token für Spur, Schieber und Hover ein, hält die obere Header-Navigation auf schmalen Viewports in einer internen Scrollspur und setzt die Perspektiven-Waffe als festes Overlay oberhalb des Eingabe-Docks. Die hellen Themes liefern jetzt eigene Inhaltsfarben für Header, Sidebar, Dock, Knoten und Overlays, damit Knoten-/Gegenüberstellungs-Scrollbars nicht mehr aus dunklen Defaults stammen. v27.2.31 korrigiert den Header-Titel und das Forgejo-Version-Popup auf theme-sichere Inhaltsfarben und hält `Azubis Kollegen`[private Angabe entfernt]`BWB`[private Angabe entfernt]`Azubis Kollegen` als feste Iconleiste mit Flex-Wrap, damit breitere Sidebars nicht nur mehr Leerraum in einzelnen Logo-Kacheln erzeugen. v27.2.52 skaliert diese Iconleiste proportional zur Sidebar-Schrift und begrenzt die Größe trotzdem, damit sie bei breiten Sidebars lesbar bleibt ohne wieder zu wuchern. v27.2.53 entfernt das große Einzel-Logo und erhoeht die Partnerlogo-Zellen um 20px. v27.2.54 startet Basis-Blickwinkel wieder mit sichtbaren grünen Verbindungslinien; das BWB-Auge blendet erst auf Nutzeraktion aus. v27.2.55 macht lange Mouseovertexte wieder lesbar, damit die Perspektiven-Waffe ihre 42-/Deep-Thought-Erklaerung nicht verliert. v27.2.60 verlegt die Perspektiven-Waffe aus der Kopfleiste in das linke Blickwinkel-Untermenü und sperrt horizontale Sidebar-Scrollspuren zugunsten von Umbruch. v27.2.61 macht die aktive linke Ansicht zur Text-/Iconmarkierung ohne Hintergrundfläche und vereinheitlicht View-Icons als monochrome Symbolkacheln. v27.2.63 führt die aktive Ansichten-Space-Zentrale mit Launcher-Kacheln, Statusbereich, Startzielwahl, Kompaktmodus und dockfreiem Layer ein. v27.2.64 trennt sichtbare `#`-Adressen von internen `nodeCounter`-Werten und nummeriert Workspace-/Blickwinkel-Scope jeweils ab `#0`. v27.2.70 stylt den kompakten Leerhinweis für die Arbeitsleinwand nach geschlossenem Workspace-Intro, gibt Communication-/Workspace-Webconnect-Buttons sichere Umbruch-, Mindestbreiten- und Letter-Spacing-Regeln, entknotet die Timeline-Kopfleiste mit eigenen Rasterbereichen, verhindert Flex-Shrink der linken Accordion-Karten, lässt offene Sidebar-Menüs standardmaessig nach unten fliessen, stylt das neue Startleinwand-`Pruefspur / Testmodus`-Panel und macht maximierte BrowserGateway-Knoten zur reinen Webseitenfläche mit gemessenem Viewport; nur bewusst höhenbegrenzte Abschnitte bekommen noch eine eigene Innen-Scrollspur. v27.2.72 setzt offene Sidebar-Sektionen auf `box-sizing: border-box`, sichtbaren Overflow und automatische Buttonhöhen, entfernt aktive Button-Transforms und stylt die neue Startleinwand-Moduszeile. v27.2.86 führt `.view-start-fach-palette` und per `--nav-view-accent` getrennte aktive Haupt-/Untermenüfarben ein. v27.2.87 gibt Accordion-Koepfen `--sidebar-section-accent` und leitet Button-Hover über `--nav-view-accent` oder Abschnittsakzent, damit die linke Seitenleiste inhaltlich passend statt global cyan reagiert. v27.2.96 ergänzt die `fachazubi-lightbox` mit Popup-Hero, Meta-Raster, Rollen-/Modulsteinsektionen und Aktionsleiste. v27.2.95 ergänzt Fachprofil-CSS für Theme-Zeile, Farbswatch, Funktionspanel, Rollenblickwinkel und Modulsteine-Katalog. v27.2.89 stylt Fach-Azubi-Karten über semantische `fachazubi-*`-Klassen und `data-fach-accent`, damit Karte, Statusbadge, Forgejo-Pfad, Entry-Chips sowie Aktivieren-/Forgejo-Aktionen denselben Fachakzent tragen.

  Die Legal-Blickwinkel-Avatare nutzen jetzt eigene CSS-Regeln für SVG-Gesichter, dezente Emotions-Aura, reduzierte Bewegung bei `prefers-reduced-motion`, Avatar-Steuerleiste, die Blickwinkel-Farben der Perspektiven-Waffe, SVG-Farbicons, Strenge-/Folgenregler und eigene Blickwinkel-Aktionen. Neue Workspace-Eingabeknoten erzeugen automatisch analysierte Perspektiven-Verbindungen, die ab v27.2.34 in Ausgangslage-/Reaktionsbuendeln geführt werden; frische Sets starten einheitlich grün, Reaktionsbuendel lassen sich ausblenden/verschieben und Aura-Flags am Zielknoten direkt am Symbol ausblenden.

- `css/mobile-smart.css`
  Additive Mobile-/Tablet-Ergänzung für schmale oder grobe Touch-Viewports. Die Datei veraendert keine Desktop-Farb-/Theme-Vertraege, importiert `style.css` nicht und setzt nur mobile Guards für Safe-Area, `100dvh`, iOS-Eingabezoomschutz, Touch-Scrolling, 44px-Touchziele, Header-Aktionsscrollspur, Sidebar-Breiten, den mobil am Menüende gehaltenen `Azubis Kollegen`-Block, Dock-Einspaltenlayout, Startleinwand-Scrollreserve, Communication-Karten und Timeline-Pan.

- `css/themes/theme-*.css`
  Getrennte Farbthemen für `Gelonade`, `Gelato41`, `WeddingCake`, `RS11` und `WhiteRuntz`[private Angabe entfernt]`style.css` frei von hart verdrahteten Edition-/Arbeitsplatzfarben. v27.2.144 trennt die hellen Templates sichtbar: `Gelato41` als Minz/Cyan-Arbeitsprofil, `WeddingCake` als warmes Papier mit Kanzlei-Rot/Gold und `WhiteRuntz` als striktes Grau-/Druckprofil.

- `media/video/` und `media/bilder/`
  Server-/Lokalablage für Login-, Demo- und How-to-Medien. Git versioniert nur `.gitkeep`, `.gitignore`, README und die Login-Intro-Metadaten; MP4/JPG/WebM/Poster werden lokal oder serverseitig in dieselbe Struktur kopiert. Das Login nutzt ab v27.2.45 eine browsernative 24-Sekunden-Systemshow; v27.2.109 zieht die Desktop-Storyboard-Bewegung früher sichtbar in den ersten Viewport, während Reduced-Motion erhalten bleibt. v27.2.47 macht den Inspect-/Reduced-Motion-Pfad als ruhiges Storyboard sichtbar und nutzt denselben Demo1-Rahmen für Header-/Zeilenpanel-Prüfungen. `azubi42_login_intro_v27_2_43.mp4` bleibt als optionaler Medien-/Fallback- und Produktionsvergleich unter `/media/...` erhalten.

- `azubi42_version.json`
  Statischer, öffentlicher Build-Marker für Webroot-Prüfungen. Wenn dieser Marker alt ist oder fehlt, ist der Deploypfad nicht auf dem Forgejo-Main-Stand.

- `js/main.js`
  Bootreihenfolge der aktiven Module. Initialisiert jetzt zusätzlich Workspace-, Blickwinkel- und Communication-Sessions zwischen Restore und Snapshot-Backup, entfernt beim Start einen einmaligen Reload-Token wieder aus der URL, bootet die App jetzt auch dann sicher, wenn `DOMContentLoaded` vor dem asynchronen Modulimport schon durchgelaufen ist, zieht die neue Communication-/Fach-Azubi-Schicht hoch, startet den internen Paperless-Sidecar-Viewer für BuschCode, bindet den Legal-Blickwinkel-Baustein ein und startet die Ansichten-Startleinwaende nach Restore/Sessions.

- `js/00_STATE/store.js`
  Globaler Laufzeitzustand für Fokus, Auswahl, Zeilen, Knotengeometrie, Verbindungen, Matrix-Ziele, Antwortverlauf und Toolmodus.


## Oberfläche und Bedienung


- `js/01_CORE/01_1_Layout.js`
  Baut Sidebar, Workspace, Dock, Matrix-Zielpanel, Antworten-Overlay, Tresor, Modellblock, Versionstempel und die obere Werkzeugleiste. Das Eingabedock führt jetzt wieder ein echtes Mehrzeilen-Textarea statt eines Einzeilen-Inputs und ist in Editor, Upload-Werkzeuge und Sendeaktionen gegliedert; der Modellblock bietet zusätzlich mehrere Gemini-Staende für den Google-Proxy und einen direkten Web/Login-Knopf pro aktivem Provider. v27.2.82 nutzt diesen Knopf für echte Browser-Webziele bei OpenAI/GPT, Codex, Google, DuckDuckGo und Ollama, während API-/Proxy-Felder getrennt bleiben. v27.2.83 koppelt den Knopf an den Provider-Return-Bridge-Baustein, damit Azubi42 nach externem Weblogin wieder Fokus und Status zeigt. v27.2.84 meldet dort den neuen Schutzpfad: der erste Klick öffnet eine Azubi42-Rueckkehrbruecke statt den Provider direkt. Das Matrix-Zielpanel besitzt jetzt auch einen eigenen Kompakt-Knopf im Panelkopf. Die Matrix-Bridge-Karte im Tresor ist als `data-vault-service-only="matrix"` gekennzeichnet und wird nur für Matrix angezeigt. Die Verlaufssektion führt jetzt zusätzlich eigene Workspace-Sessions als aufklappbaren Verwaltungsblock mit `+ Neu`, `Speichern`, `Löschen`, Namensfeld `Setzen` und scrollbarer Liste. `Update` und `Logout` sitzen jetzt direkt im Sidebar-Topbar-Chrome neben dem Menü-Knopf; im Workspace-Header bleiben nur noch Dock, Antworten, Verbinden, Zeilen und Knoten. Zusätzlich führt das Layout jetzt `Communication` samt Kanalpalette, `BuschCode` für den Forgejo-Fach-Azubi-Katalog, `Blickwinkel` als eigenes linkes Untermenü mit Perspektiven-Waffe und Space-Verwaltung sowie eine eigene `Paperless`-Arbeitsfläche für Sidecars, Thumbnails, Farbpipette und Seiteninspektor. Der Header besitzt stabile IDs für Titel- und Aktionsbereich, damit die obere Navigation auf kleinen Monitoren gemessen und intern gescrollt werden kann. BuschCode besitzt jetzt denselben Blickwinkelblock für Kläger, Behörde, Gericht, Normprüfung, Anwalt und Gegenseite sowie Slots für Avatar-/Aura-Steuerung und die Farb-/Folgenlegende. Die Bibliothek besitzt jetzt eine Paperless-Ordner-/Uploadkarte mit `Fall lernen`-Knopf, einen schlanken `Bestand`-Refresh im Bestandskopf und eine dynamische Dock-Scrollreserve unter dem Inhalt, damit auch ein verschobener oder vergrößerter Dock-Container die Trefferliste nicht verdeckt. Der Communication-Arbeitsbereich gibt der Kanalspalte jetzt mehr Breite und führt den Leeren-Knopf über dieselbe Button-Fit-Klasse wie die Template-Aktionen. Die Perspektivenwaffe im linken Blickwinkel-Menü traegt keine eigene `max-h`-/`overflow-y-auto`-Utility mehr, damit das Accordion im Standardfluss mitwaechst. Der 2026-04-28-Hotfix entfernt unmaskierte Backticks aus einem Layout-Template, damit `azubi42-dev` und `azubi42-jura` nicht mit leerem blauem Hintergrund abbrechen.

  v27.2.74 kennzeichnet API-/Tresor-Felder direkt im Markup als Nicht-Login-Felder (`autocomplete=off`, `data-form-type=other`[private Angabe entfernt]`Normal` als erste Option; `Als Kontext`, OCR, Bildanalyse, Einbetten, AtomKnoten und Atom-PDF bleiben ausdrueckliche Datei-/Uploadrouten.

- `js/01_CORE/01_2_Navigation.js`
  Schaltet zwischen Workspace, Chat, Timeline, BuschCode, Bibliothek, Communication und Blickwinkel-Space um. Die aktive Ansicht führt `aria-current="page"`/`aria-pressed="true"` und markiert nur Text und Symbolkachel, ohne eine eigene aktive Hintergrundfläche zu erzwingen. v27.2.120 führt `getDefaultStartView()` und den Mobile-/Touch-Viewport-Guard ein: Desktop startet weiter im Workspace, Mobile startet frisch in BuschCode; `?azubi42_view=`, `?view=` und Hash-Startziele können den Default gezielt übersteuern.

- `js/01_CORE/01_3_Theme.js`
  Platzhalter für Theme-Logik.

- `js/01_CORE/01_4_InterfaceChrome.js`
  Steuerung für Sidebar, Dock, Ziehgriffe, Tooltips, Statusdichte und Overlay-Geometrie. Verwaltet die persistente Dock-Größe nur noch über das Panel selbst, migriert den gespeicherten Layoutstand auf Version 5 und nutzt für das untere Dock eigene Resize-Hitboxen statt des nativen Browser-Griffs; das Dock kann jetzt auch über untere Kanten und Ecken gegriffen werden und startet höher, damit die neue Mehrzonen-Aufteilung greift. Das Dock besitzt jetzt zusätzlich einen freien Drag-Griff mit persistenter Offset-Geometrie, klemmt diesen Offset nach unten aber bei `0` und schreibt korrigierte Altwerte zurück, damit die Eingabezeile nicht halb unter dem Viewport landen kann. Das Matrix-Zielpanel besitzt jetzt eigenes Panel-Chrome mit Verschieben, Kompaktmodus und vollständigeren Resize-Kanten statt nur rechter/untenseitiger Griffe. Die Systemaktionen für `Update/Neu laden` und `Logout` werden jetzt am Sidebar-Topbar-Chrome gebunden; im Workspace-Header bleiben nur noch die Dock-Knöpfe. Der Profilchip unter dem Logo wird jetzt host-/pfadbasiert auf genau eine Edition reduziert und kann sich zusätzlich über `/api/runtime/status` korrigieren. Der `Menue`-Knopf öffnet jetzt einen sichtbaren Azubi42-Steuerstand mit Strain-Theme-Kacheln, Dichte-Schaltern, Schriftfamilien, Schrift-Presets, Bauteil-Farbpicker, Reset und geladenen Theme-CSS-Dateien.

  Eigene Farbthemen können jetzt lokal benannt, gespeichert, geladen, gelöscht und in einer Liste verwaltet werden. Die Sidebar-Resize-Interaktion markiert den aktiven Ziehvorgang am Body, damit CSS und Mauslogik wieder synchron laufen.

  v27.2.26 erweitert den Steuerstand um den Farbpicker `Punkte` für das Canvas-Raster und bindet einheitliche Klappkoepfe für Ansichten, Legende, Modelle, Toolbox, Tresor, Verlaeufe und Logo-Bereich. v27.2.27 korrigiert die Menü-Theme-Kacheln auf die neuen hellen Farbprofile und zeigt den UI-Stand `2026-05-02`. v27.2.28 speichert zusätzlich Breiten pro Sidebar-Sektion und stellt dafür einen eigenen Maus-Ziehgriff bereit. v27.2.29 fuegt im Steuerstand eigene Farbziele für Sidebar-Karten, Sidebar-Felder und Sidebar-Knöpfe hinzu und speichert Höhen pro Sidebar-Sektion. v27.2.30 strukturiert die Bauteil-Farbpicker nach Gruppen und führt pro Bauteil Hintergrund-/Inhaltsfarben sowie Scrollbar-Spur, -Schieber und -Hover als eigene Nutzerfarben. v27.2.31 behandelt den kleinen Kollegenblock als kompakte Sidebar-Sektion, damit die höhenverstellbaren Langbereiche nicht mit einem Mini-Logo-Feld verwechselt werden. v27.2.32 zieht Konto-/Datenschutzpflege in dasselbe Menü: Login-Name read-only, Wunsch-Username als Rename-Antrag, Nickname/Anzeigename/Realname getrennt und Löschantrag als prüfbarer Admin-Workflow. v27.2.33 führt User-Eigenschaften mit Barrierefreiheit, Gesundheit, Konzentration, Beistand, eRV/Zugang, Sonderkunde, freier Notiz, Prüfachse und eigenem Icon. v27.2.34 führt die Sicht-/Hidden-Zustaende der Blickwinkel-Buendel und Aura-Flags in die UI-Steuerung ein, ohne deren Bewertungsdaten aus dem Zustand zu entfernen. v27.2.57 gibt allen linken Accordion-Sektionen ein zentrales, größeres Iconfeld mit eigenem Label- und Caret-Bauteil statt eines Toolbox-Sonderfalls. v27.2.58 richtet diese Icons auf eine gemeinsame linke Kante aus, reduziert den Kopf auf 2px vertikales Iconpadding und misst die Startbreite aus laengstem Abschnittslabel plus 15px Luft und Caret. v27.2.60 registriert `nav-perspective` als eigenes Accordion für Blickwinkel-Leinwand, Perspektiven-Waffe und Space-Verwaltung. v27.2.61 führt einheitliche View-Symbolkacheln für Ansichten und Blickwinkel ein. v27.2.70 migriert alte gespeicherte Sidebar-Abschnittshöhen auf den neuen gestapelten Standardfluss; Höhenlimits werden nur noch über den aktiven Höhengriff als `is-section-height-limited`[private Angabe entfernt]`username`-/`email`-Autocomplete aus dem App-Menü. v27.2.75 ergänzt den Abschluss-/Rettungsknopf `Startzentrale anzeigen`, damit ein ausgeblendeter Space-Intro-Baustein nicht nur automatisch verschwindet, sondern im Alltag aktiv wieder erreichbar bleibt. v27.2.76 ergänzt im Chat-/Knotenpfad lokale Direktwissen-Miniantworten vor dem Modellrouting. v27.2.77 aktualisiert die Upload-Tips für `Normal` und trennt damit Textsendung von Datei-Kontextwahl. v27.2.78 stellt den Chat-Busy-Vertrag auf parallele `activeChatRuns` um, sodass neue Texte keine laufenden Knoten abbrechen.

- `js/01_CORE/01_5_BuschCode.js`
  Bindet die neue BuschCode-Ansicht an die vorhandenen Modell- und Tresorbauteile. Setzt Quick-Aktionen für `codex-native`, das aktuell beste OpenAI-Profil aus der Live-Modellliste, Tresor `codex`, Forgejo-Connect, Startpfad und Ruecksprung in den Workspace, ohne einen zweiten parallelen Konfigurationsweg zu bauen. v27.2.130 setzt `Forgejo verbinden` auf den neuen FachConnect-Dialog, zeigt verbundene Forgejo-Nutzer im BuschCode-Status und aktualisiert diesen bei Runtime-Session-Events.

- `js/01_CORE/01_6_Timeline.js`
  Neues natives Zeitstrahl-Bauteil für Jahrbereiche, horizontale Jahresblasen, 12 editierbare Monatsblasen pro Jahr, Richtung oben/unten pro Auswahl, Marker auf der Verbindungslinie und einfache Player-Navigation. Führt jetzt eigene Timeline-Sessions mit `+ Timeline`, `Speichern`, `Loeschen`, selektierbare Jahr-/Monatsblasen, eigene Flags aus der Legende, Upload-Einsortierung nach Datei- oder Schriftsatzdatum, Timeline-Verbindungen mit Tageszähler sowie Z-Layer-Buttons für Marker und Verbindungsanzeiger. Timeline-Flags melden sich jetzt an die gemeinsame Legende und können dort als Farbfilter für Jahr-/Monatsblasen genutzt werden. Die Ansicht unterstützt jetzt zusätzlich Pan mit Maus, Pointer-Zoom per `Strg`/`Cmd` + Mausrad am Mauszeiger, eine echte horizontale Scrollreserve und Spalten-Drag am Jahresrahmen: eine gegriffene Jahresspalte verschiebt sich zusammen mit allen rechten Spalten, damit Verbindungen und Schilder gezielt Platz bekommen. Die Toolbar besitzt eine eigene `timeline-heading`-Zone und trennt Verwaltung, Zeitraumsteuerung und Player in prüfbare Rasterbereiche.

- `js/01_CORE/01_7_Communication.js`
  Erste produktive Kommunikationsschicht für Web-Messenger und Fach-Azubis. Rendert die Kanalpalette, erzeugt mehrfach klickbare Kommunikations-Templates mit Login- und Ziel-URL, speichert diese lokal pro Browserstand und liest den Forgejo-/Repo-Fachkatalog über `/api/fachazubi/catalog` ein. Die aktive Spezialisierung wird lokal vorgemerkt und in BuschCode sowie Communication sichtbar gespiegelt. Das aktive Fachprofil korrigiert sich über `/api/runtime/status`, damit `azubi42-dev` nicht mehr mit einem alten Jura-LocalStorage startet. `Login` und `Web` erzeugen jetzt sichere Web-Connect-Knoten ohne Fremd-iframe und ohne Direktnavigation aus dem Knoten; der User startet einen kontrollierten Webconnect-Popup-Pfad oder kopiert die URL. Der Webconnect trennt den Popup-Opener bewusst und dokumentiert im Knoten, wenn Dienste externe App-Handler erzwingen. Kanal-Kacheln, Template-Badges und Login-/Web-/Neu-Aktionen besitzen eigene Klassen für Textumbruch und Overflow-Schutz. Echte Inline-Bedienung bleibt als späterer Session-/Browser-Connector vorbereitet.

  v27.2.130 führt Fachazubi-Karten und Profil-Popup für `Forgejo` durch denselben FachConnect-Loginfluss, statt direkt aus Azubi42 heraus zu springen. v27.2.72 erweitert den Fachazubi-Katalog in Frontend-Fallback und Serverkatalog um Kanzlei, Fahrschule und Schule; `audit_fachazubi_catalog.mjs` gleicht kanonischen Katalog, Runtime-Kopien, Frontend-Fallbacks und Backend-Fallbacks ab. Der Live-Deploy behandelt `runtime/fach-azubis/` als öffentliches App-Katalog-Bauteil, während Auth-, Zugangsanfrage- und Browser-Gateway-Runtime ausgeschlossen bleiben. v27.2.73 rendert den Fallback-Katalog sofort vor dem API-Fetch, damit BuschCode nicht mit leerem Fachazubi-Block startet.

## v27.2.86 vereinheitlicht die Fachfarben

- Jura `gold`, Plant `leaf`, Dev `code`, Communication `signal`, Kanzlei `burgundy`, Fahrschule `traffic` und Schule `school`; die passenden `accentStyles` liegen im Frontend-Fallback und werden gegen Katalog/Runtimes gespiegelt. v27.2.89 führt `normalizeAccentName`, `data-fach-accent`, `data-fach-active` und die `fachazubi-*`-Klassen ein, damit der Katalog nicht nur Icon/Badge, sondern auch Kartenfläche, Pfadboxen, Entry-Chips und Aktionen fachfarbig rendert. v27.2.95 ergänzt `FACHAZUBI_MODULE_PROFILES`, `Funktionen`-/`Modulsteine`-Buttons, rollengetrennte Alltagspanels und eindeutige sichtbare Forgejo-Modulpfade je Fachazubi. v27.2.96 ergänzt `openFachazubiPopup`, `ensureFachazubiPopup`, Kartenflächen-Klick und den `Vorstellen`-Button, damit dieselben Profilinformationen als Lightbox erreichbar sind. v27.2.90 ergänzt `connectorType`, `agentMode`, Connector-Badges und `azubi42.communication.connectorPlan.v1`, damit Communication-Webknoten spätere Browser-Agent-Laeufe ohne erneute UI-Erfindung vorbereiten.

- `js/01_CORE/01_8_JuraBibliothek.js`
  Gemeinsame Jurabibliothek-Komponente für BuschCode und Bibliothek. Laedt Status, Rechtsgebiete, Bestandswerte, Mouseover-Hinweise und Treffer aus den `/api/legal/jurabibliothek/*`-Endpunkten. Steuert zusätzlich den klickbaren Paperless-Ordnerbaum, lokale Zielpfad-Persistenz, Unterordner-Anlage als `azubi-folder:`-Tags, Dateiliste, Upload-Protokoll, Dateiübergabe an den Paperless-OCR-Zulauf und den Fall-Lernlauf über `/api/legal/case/learn`.

  2026-05-16 führt der AZ-Zeitstrahl-/Vorgang3D-Renderer gemeinsame View-Aktionen für Auf/Zu, volle Leinwand, Browser-Fullscreen, Fokus, Reset und Zoom. Baum- und Helix-Layer teilen Pan-/Zoomzustand; Klick setzt den aktiven Fokus, Doppelklick zentriert die Auswahl schaerfer.

## v27.2.119 trennt die Rechtsgebietskarten-Interaktion

- die Checkbox bleibt reine Suchfilter-Aktion, der Kartenklick öffnet einen Detaildialog mit Bestand, Suchbegriffen, Einordnung, Zaehllogik und Aktionen für Begriffe einsetzen, Gebietssuche und Bestand-Refresh.

  v27.2.117 normalisiert objektfoermige API-/HTTP-Fehler vor dem Rendern, damit Suche, Fall-Lernlauf und AZ-Zeitstrahl lesbare Hinweise statt `[object Object]` zeigen.

## v27.2.112 führt den erklaerten Bibliotheksbestand ein

- Rechtsgebietskarten zeigen echte serverseitige Zähler, Textfragmente werden als durchsuchbare Textanker erklaert, offene Jobs werden nach Typ/Status sichtbar, technische SQLite-/Serverpfade bleiben aus der Nutzeransicht heraus, und der `§ Schnellnachschlag` nutzt denselben Suchpfad für konkrete Normen.
- Der wiederverwendbare Fachachsen-Anzeiger wird zusätzlich im AZ-Zeitstrahl-Ergebnis eingesetzt, damit Ordner-/Schriftsatzanalysen sofort erkannte Punktachsen, offene Bereiche und Fundstellendichte zeigen.

## v27.2.114 ersetzt den reinen Browser-Ordnerpicker durch eine gemischte Datei-/Ordnerauswahl

- normale Mehrfach-Dateien, zusätzliche Ordner inklusive Unterordnern, Auswahlkorb, Leeren-Aktion und anschließende Analyse über denselben Runtime-Uploadpfad.

  v27.2.116 cached den letzten Jurabibliothek-Status, hydriert später sichtbare Panels per `MutationObserver`, lässt den Bestandstatus auch bei Topic-Vorlauffehlern separat laufen und zeigt Status-API-Fehler konkret im Bestandkasten.

- `js/01_CORE/01_9_LegalPerspectives.js`
  Legal-Blickwinkel-Baustein für Schriftsatz- und Vorgangsarbeit. Liest den Login-/Legal-Actor-Kontext aus `/api/runtime/status`, verwaltet aktivierte und eigene Blickwinkel lokal, rendert linkes Blickwinkel-Untermenü als `Perspektiven-Waffe`, BuschCode-Block, Blickwinkel-Farben und Regler und erzeugt aus markierten Workspace-Knoten farbige Gegenüberstellungs-Knoten für Kläger, Behörde, Gericht, Gerichtsleitung/Präsidium, Normprüfung, Anwalt, Gegenseite oder frei angelegte Beteiligte. Die erzeugten Knoten bekommen Quellen-Auszug, Prüfachsen, RAG-Auftrag, Flag, Verbindungslinie zum Ausgangsknoten und optionale SVG-Avatare mit eigener `data-avatar-id`. Avatar-Stil, Aura-On/Off, Sichtbarkeit, Strenge und Folgengewicht werden lokal gespeichert; die Reaktion wird bereits beim Tippen und nach gesendeten Eingaben aus Frist-, Norm-, Beleg-, Zuständigkeits-, Gesundheits-, StGB-/Vorsatz- und Klaerungssignalen abgeleitet. v27.2.34 trennt frische, rechtlich unbeanstandete Ausgangsverbindungen als grüne `perspective-basis`-Buendel von späteren `perspective-reaction`-Buendeln und führt ausblendbare Aura-Flags, deren Daten für die Bewertung erhalten bleiben. v27.2.48 ergänzt lagebezogene Reaktionserwartungen für Eisbecher-/Privatkostenanträge und öffentliche Hinrichtungsdrohungen, damit Grenzbereich, Skepsis, positive Nebenwirkung und rote Normverletzung nicht gewuerfelt werden. v27.2.49 führt die gespeicherte Sitzordnung `Aktenreihe`, `Halbrund` und `Gegenueber` ein; neue Blickwinkel starten horizontal bzw. im Poker-Halbkreis, scrollen automatisch zur Reaktionserwartung und behandeln `Rechtsbeistand` nicht mehr als Eis-Signal. v27.2.50 macht die Blickwinkel-Sets `Jura Kern`, `Privat schlank`, `Verfahrensfluss` und `Alle Rollen` sichtbar und reduziert die Layoutbreite für ruhigere Erstansichten. v27.2.54 startet die grünen Basisbuendel wieder sichtbar; ausgeblendet wird erst per BWB-Auge. v27.2.55 führt den kanonischen Perspektiven-Waffe-Mouseovertext als prüfbaren UI-Vertrag. v27.2.60 bindet die Waffe in das linke Blickwinkel-Menü statt in die Kopfzeile ein. v27.2.70 benennt die feste authority-Rolle als reine `Behoerde` statt `Behoerde / Verteidigung`, setzt Emotionsdaten/Reaktionstext direkt beim Erzeugen aus der Live-Ausgangslage und fuegt `Gerichtsleitung / Praesidium` als festen Kernblick für Dienstaufsicht, Geschäftsverteilung, Aktenorganisation, Zustellung/eRV und Art.-97-Abgrenzung hinzu; gespeicherte alte Vierer-Jura-Kernsets werden beim Laden auf den neuen Fuenfer-Kern migriert. v27.2.71 migriert zusätzlich alte gespeicherte Authority-Knoten, Inhalte, Tooltips und Verbindungstexte beim Laden aktiv auf `Behoerde`. `audit_legal_perspective_labels.mjs` sichert den Knotentitel-, Migrations- und Gerichtsleitungsvertrag.

- `js/01_CORE/01_10_ViewStartScreens.js`
  Eigenes Startleinwand-Bauteil für Chat, Timeline, BuschCode, Bibliothek, Communication, Workspace und Blickwinkel. Rendert die Ansichten als aktive Space-Zentrale im `main-views`-Layer: links die Second-Level-Werkzeuge der aktuellen Ansicht, mittig Erklaerung, kompakte Ansichten-Umschaltzeile, Karten und Status zum aktiven Space, rechts Startsetup mit Laufzeitfakten, Startzielauswahl, Kompaktmodus und Startaktion. Wenn das Workspace-Intro sessionweit geschlossen wird und noch kein echter Inhalt existiert, bleibt ein kleiner Leerhinweis mit Knoten-, Zeilen- und Startzentrale-Aktion sichtbar. v27.2.100 lässt die CSS-Buehne die echte Hauptfläche nutzen und der Browser-Smoke misst Breiten-/Höhenquote, Mindestschriften und fehlende Stage-/Panel-Scrollbars. v27.2.99 verschiebt die pro Ansicht importierten Menüaktionen aus dem rechten Setup in die linke Leiste und verhindert damit das alte First-Layer-Hauptansichten-Duplikat. v27.2.75 führt `FORCED_VISIBLE` und `azubi42:show-start-screen` ein, damit das normale Ausblenden nicht zur Sackgasse wird: der Steuerstand kann die aktuelle Startzentrale trotz sessionweitem Schließen oder vorhandenem Workspace-/Blickwinkel-Inhalt wieder voll anzeigen. v27.2.70 importiert die Space-Menü-Inhalte aus eigenen Dateien unter `js/01_CORE/view_start_menus/`, bricht die Setupspalte früher um und führt pro Space Akzentfarben plus Probeauftraege für Kurztest, Webtest, Rechtsgültig, Rechtsfremd, Rotbereich und Fangfragen ein. v27.2.69 hält BuschCode als zentrale Werkstatt für Fach-Azubi-Ausbau, Modellwege, Tresor und Forgejo-Ablage und kopiert passende Werkzeuge zusätzlich in die jeweiligen Startleinwaende. v27.2.68 entfernt die dauerhafte Auto-Ausblend-Checkbox; Schließen ist nur sessionweit, alte gespeicherte Ausblend-Keys werden ignoriert und beim Reset bereinigt. Die Blickwinkel-Leinwand kann damit direkt die Perspektiven-Waffe starten; leere Fallback-Ausgangslagen werden als Ausgangslage-Knoten markiert.

  v27.2.72 führt pro Ansicht eigene Szenen-/Moduszeile und eigene Footer ein, damit Chat, Timeline, BuschCode, Bibliothek, Communication, Workspace und Blickwinkel nicht mehr denselben Intro-Textcharakter tragen.

  v27.2.86 ergänzt `FACHAZUBI_PALETTE` und `buildFachPaletteHtml`, damit BuschCode die Fach-Azubi-Farblogik als ruhige Palette direkt in der Startzentrale zeigt.

- `azubi42_server.py` trennt in der Jurabibliothek-Suche konkrete Nutzereingaben von Rechtsgebiet-Kontext. Dadurch bleiben Filter/Pills für Bestand und spätere RAG-Auswahl aktiv, ohne Suchanfragen wie `SGB § 7a` durch allgemeine Themenbegriffe wie `Verfahren` zu verfälschen. Konkrete SGB-Normanfragen werden jetzt vor FTS als exakte Norm erkannt und bei fehlendem lokalem Anker amtlich über `gesetze-im-internet.de` aufgeloest. Der Datenbankpfad kann per `AZUBI42_JURABIBLIOTHEK_DB` gesetzt werden, damit `azubi42-jura` den zentralen Live-Bestand der Jurabibliothek read-only nutzen kann. `/api/legal/case/learn` erzeugt private Fall-Lernplaene unter `runtime/case_learning_runs/`[private Angabe entfernt]`/api/legal/schriftsatz/notice` liefert den rollenabhaengigen Kopfhinweis für Privatpersonen oder Human-in-the-Loop-Bearbeiter. v27.2.112 zaehlt Rechtsgebietsbestand über `fragments_fts` mit Server-Zeitbudget, liefert Dokumentarten und Jobgruppen ohne Datenbankpfad an das Frontend und berechnet `jobs_open` aus pending/running/retry/failed. v27.2.31 baut das Login-Gate als 3-4-Sekunden-Intro mit dunkler 16:9-Buehne, Pixel-/Biolumineszenz-Effekt, Editionschips, Kernbauteil-Kacheln, Kollegenhinweisen und anschließendem Login-Panel. v27.2.32 ergänzt `/api/account/profile` für lokale/Matrix-Profilmetadaten und `/api/account/delete-request` für Löschanträge unter `runtime/account_requests/`. v27.2.33 erweitert `/api/account/profile` um `user_properties` und festen `role_context` für RAG-/Blickwinkel-Prüfachsen. v27.2.35 ersetzt die reine CSS-Login-Intro-Buehne durch den Demo1-Webteaser mit Laufzeitzähler, zwei Durchlaeufen, Replay/Skip und automatischer Login-Freigabe; v27.2.36 zieht MP4/JPG aus Git in `media/video` und `media/bilder`; v27.2.37 macht Version-Marker, Backend-Probe und Login-Medien öffentlich lesbar, gleicht `HEAD`/`GET`-Verhalten an und liefert `/api/version` sowie `/__azubi42/version.json`; v27.2.38 ergänzt `/api/monitor/tls/certificate` für serverseitige TLS-Zertifikatsprüfung mit Private-Host-/DNS-Guard; v27.2.39 macht `/api/runtime/status` als secretfreien Health-Endpunkt öffentlich; v27.2.40 verhindert das vorzeitige Überspringen des Login-Intros, erzwingt die geplante Mindestlaufzeit pro Trailer-Durchlauf und entfernt die doppelte Desktop-Scrollbar im Login; v27.2.41 verbreitert das Login auf Wide-Screens, laedt den Teaser aktiver und nutzt einen weicheren Materialize-Übergang; v27.2.42 blendet das sichtbare Trailer-HUD aus und verdoppelt die ruhige Intro-Laufzeit; v27.2.43 führt den 4K-Medienpfad ohne Demo1-Brennstempel ein; v27.2.44 ersetzt die sichtbare Login-Show durch eine browsernative Systemshow; v27.2.45 verlaengert sie auf 24 Sekunden mit lesbaren Plateaus statt Standbild-Wischeffekt; v27.2.46 lässt Reduced-Motion/Inspect als sichtbares ruhiges Storyboard laufen, statt Animationskinder unsichtbar zu lassen; v27.2.47 bleibt serverseitig kompatibel und nutzt den neuen Build-Marker für den Zeilenpanel-Fix; v27.2.48 hebt den Build-Marker für den Blickwinkel-Buendel-Fix an; v27.2.49 hebt den Build-Marker für die Blickwinkel-Sitzordnung an; v27.2.50 hebt den Build-Marker für die ruhigen Blickwinkel-Sets an; v27.2.54 hebt den Build-Marker für den sichtbaren Basislinien-Start an; v27.2.55 aktualisiert Loginstand und Build-Marker für den Tooltip-/Asset-Kohaerenz-Fix; v27.2.56 hebt den Build-Marker für den lokalen Ollama-Kurzlauf an.
## v27.2.113 korrigiert den Login-Motion-Vertrag

- Desktop-Web nutzt die volle Intro-Animation auch bei unbeabsichtigtem `prefers-reduced-motion`, während nur `?motion=reduce` den ausdruecklichen ruhigen Modus aktiviert.

  v27.2.114 erweitert die AZ-Pipeline um sichere Textlesung für Code-/Scriptdateien sowie XLSX/XLSM-Tabellenzellen; hochgeladene Dateien werden nur gelesen und nicht ausgeführt.

- `00_META/azubi42_export_konzept.md`
## Konzept für Workspace- und Schriftsatzexporte

- Bild, PDF mit A4/A3/A2/Websize, DOCX, HTML-ZIP, Manifest/Hashliste, Versandvorbereitung für Mail/Fax/e-Rechtsverkehr und sicherer Azubi42-User-Handoff mit Ablauf, Wasserzeichen, Auditlog und Widerruf.

- `30_INSTALLERS/ubuntu24/config-templates/forgejo-4k-media.app.ini.example`
  Servervorlage für Forgejo-Uploads mit 256 MB pro Repository-Upload/Attachment, 30 Dateien je Upload und 32 MiB Web-Anzeigegrenze für große How-to-Bilder und 4K-Demo-Rohmaterialien.

- `70_TESTS_AND_SMOKE/ui/audit_light_theme_resize.mjs`
  CDP-basierter 4K-Smoke für lokale Frontend-Prüfung ohne zusätzliche npm-Pakete. Startet vorhandenes Chrome/Edge headless, laedt `AZUBI42_UI_URL`, prüft `Gelato41`, `WeddingCake` und `WhiteRuntz` auf Sidebar-Kontrast, testet den vertikalen Höhenziehgriff, prüft die feste/wrappende `Azubis Kollegen`-Icongeometrie ohne großes Einzel-Logo bei normaler und breiter Sidebar, prüft im schmalen WeddingCake-Viewport Header-Begrenzung, Perspektiven-Waffe-Overlay und Scrollbar-Farben und erzeugt die Demo1-Rohmaterialien im aktuellen Versionsordner aus `00_META/version_manifest.json`[private Angabe entfernt]`nav-tools`/`Azubi42 Toolbox`, auf Toggle, Body, horizontalen Breitenziehgriff, bei allen nicht kompakten Gruppen den vertikalen Höhenziehgriff, gleiche Icon-Linkskoordinaten, 1-3px vertikales Kopfpadding, stabile Kopfhöhen bei einem offenen Accordion und einen gestapelten Sidebar-Fluss ohne nested Options-/Body-Scroller; für die Toolbox führt er einen echten Einklapp-/Aufklapp-Klick aus. Die App-Ready-Wartezeit ist für schwere Vorfuehrlaeufe auf 60 Sekunden erhoeht und der CDP-Port wird ohne explizite Umgebungsvariable pro Prozess abgeleitet. Der statische Smoke `audit_perspective_weapon_tooltip.mjs` prüft zusätzlich Tooltip-Text, Film-/Funktionsanker und Version-/Asset-Token-Kohaerenz.

- `70_TESTS_AND_SMOKE/ui/audit_mobile_smart_css.mjs`
  Statischer Mobile-/Tablet-Smoke. Prüft den separaten Ladevertrag in `index.html`, den Media-Guard für `css/mobile-smart.css`, Safe-Area-/dvh-/Touch-Regeln, den am Ende des mobilen Menüs stehenden `Azubis Kollegen`-Block, den mobilen BuschCode-Erststart samt Restore-Schutz für leere Workspace-Snapshots, den Workspace-Session-Boot ohne Ruecksprung auf `org`, Dock-/Header-/Timeline-/Communication-/Startleinwand-Guards und verbietet einen Rueckimport von `style.css`.

- `70_TESTS_AND_SMOKE/ui/audit_input_dock_viewport.mjs`
  Statischer Dock-Viewport-Smoke. Prüft, dass gespeicherte Dock-Offsets beim Init und Resize geklemmt werden, der untere Dock-Y-Offset nicht positiv werden kann, korrigierte Werte zurück in `localStorage` gehen und der bestehende CSS-Vertrag für Dock-Shell, Transform und Panelhöhe erhalten bleibt.

- `[private Angabe entfernt]`
  Statischer Guard-Smoke für API-/Tresor-/Dock-/Steuerstandfelder. Prüft, dass keine App-Menüfelder mehr `autocomplete=username/email` setzen, dass sensible Felder als Nicht-Login-Felder markiert sind und dass Shared-/Installer-Spiegel denselben Schutz besitzen.

- `[private Angabe entfernt]`
## CDP-Browser-Smoke gegen den echten DOM

- erzeugt einen aktiven Testknoten, klickt `Menue`, prüft die Guard-Attribute, verbietet sichtbare `[private Angabe entfernt]` in der App und verbietet Login-Autocomplete-Felder.

- `70_TESTS_AND_SMOKE/ui/audit_parallel_chat_runs.mjs`
  Statischer Chat-Smoke für parallele Modelllaeufe. Prüft Shared- und Installer-Spiegel auf `activeChatRuns`-Map, fehlendes `replaceBusy`-Auto-Stoppverhalten, weiter aktive Sende-/Anhang-/Routenfelder, den Eingabepfad ohne Busy-Ersetzung und ab v27.2.86 den providergebundenen GPT/OpenAI-/Google-/Codex-/Suchvertrag gegen Ollama-Scan-Rueckfall. Ab v27.2.91 prüft er zusätzlich, dass Sticky-Provider beim Senden und nach Ollama-Scan nicht lokal überschrieben werden. v27.2.93 prüft, dass der Chat-Sendepfad nach Sticky-Provider-Restore auch das sichtbare Modellpanel per Change-Event aktualisiert. Ab v27.2.129 prüft er, dass OpenAI ohne API-Key provider-treu stoppt, keinen Codex-Native-Handoff erzeugt, CloudFetch fremde Handoffs blockt, OpenAI-Modell-IDs aus `id` übernommen werden und Cloudfetch keinen Zugriff auf `matrix_local_model_path` nimmt.

- `70_TESTS_AND_SMOKE/ui/audit_parallel_chat_runs_browser.mjs`
  CDP-Browser-Smoke für echte Parallelitaet im Workspace. Mockt zwei Modellantworten, startet zwei Knotenlaeufe gleichzeitig und prüft, dass beide Antworten sichtbar werden, der Sendeknopf aktiv bleibt und kein Lauf durch den nächsten abgebrochen wird.

- `70_TESTS_AND_SMOKE/ui/audit_sidebar_sections.mjs`
  Statischer Inventar-Smoke für die linke Sidebar. Gleicht Layout-Markup, Accordion-Binder, CSS, Abschnittsicons, No-Shrink-Regel, `single-scroll-v1`, gelöschte Altbreiten, automatische Buttonhöhen, den Verzicht auf aktive Button-Skalierung und inhaltsgebundene Hover-Akzente für Ansichten, Communication, Blickwinkel und die weiteren Sidebar-Bereiche gegeneinander ab.

- `70_TESTS_AND_SMOKE/ui/audit_sidebar_accordion_browser.mjs`
  CDP-Browser-Smoke für den realen Sidebar-Zustand. Injiziert alte Abschnittshöhen und 640px-Breiten, laedt den aktuellen Build, öffnet alle linken Gruppen, misst Button- und Abschnittsgeometrie, schreibt einen Screenshot nach `reports/sidebar_accordion_audit/sidebar_accordion_open.png` und prüft zugleich die neuen Fachazubi-DOM-Eintraege im BuschCode.

- `70_TESTS_AND_SMOKE/ui/audit_fachazubi_catalog.mjs`
  Statischer Katalog-Smoke für Fach-Azubis. Prüft kanonischen Forgejo-Katalog, beide Runtime-Kopien sowie Frontend- und Backend-Fallbacks auf Jura, Plant, Dev, Communication, Kanzlei, Fahrschule und Schule; ab v27.2.96 zusätzlich Popup-Markup, `Vorstellen`-Button und Lightbox-CSS; ab v27.2.95 zusätzlich eindeutige Forgejo-Pfade, vollständige Themes, Funktionslisten, Rollenblickwinkel, Modulsteine sowie die Schul-/Fahrschul-Rollen; ab v27.2.89 zusätzlich semantisches Fach-Akzent-Markup und CSS im Shared- und Installer-Spiegel.

- `70_TESTS_AND_SMOKE/ui/audit_fachconnect_bridge.mjs`
  Statischer FachConnect-Smoke. Prüft neuen Shared-/Installer-Bridge-Code, fachbezogene Symbolprofile, BuschCode-Button, Fachazubi-Karten-/Popup-Routing, Runtime-Session ohne Passwort-Persistenz, Fix-It-Fehlerpfad, CSS und Buildtoken.

- `70_TESTS_AND_SMOKE/ui/audit_azubi42_domain_site.mjs`
  Statischer Public-Site-Smoke für AZUBI42.de. Prüft Domain-Website, Manifest, Drittanbieter-/Iframe-Ausschluss, Domainprofil, Deployhelfer, Installer-Spiegel, generierte Fachazubi-Detailseiten, Roadmap, Site-Generator, Kinderrechte-Altersphasen/Rechtsanker und eindeutige Forgejo-Pfade je Fachazubi.

- `70_TESTS_AND_SMOKE/ui/audit_legal_perspective_labels.mjs`
  Statischer UI-Smoke für feste Blickwinkel-Rollenlabels. Sichert, dass der blaue authority-Knoten nur `Behoerde` heisst, keine Verteidigung an die Behörde gehaengt wird und `Gerichtsleitung / Praesidium` als feste Rolle im Jura-Kern sowie mit Organisations-/Dienstaufsichtsreaktion vorhanden bleibt.

- `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs`
  Statischer UI-/Server-Smoke für direkte Webknoten. Sichert, dass reine URL-Eingaben in Chat, Knoten-/Drop-/Kontextpfad den Lesesnapshot überspringen, leere fokussierte Knoten direkt in BrowserGateway-Knoten umgewandelt werden, dynamische Viewports an Server und Screenshot gehen, maximiert nur das Webseitenbild gezeigt wird und ab v27.2.90 Service-ID, Connector-Typ, Agent-Modus sowie Human-Checkpoint-Planung in Shared- und Installer-Spiegeln erhalten bleiben. v27.2.92 prüft zusätzlich persistenten Playwright-Chromium per `launch_persistent_context`, Downloadannahme, Downloadpfad, Download-Events, Back/Forward/Reload/Scroll/Fill und den Ausschluss von Contentpass-/Third-Party-Rendering; v27.2.94 prüft Communication-Scope-Markierung, lesbare Gateway-Fehlerobjekte und den app-eigenen Playwright-Browserpfad `runtime/ms-playwright` (2026-05-10 zusätzlich `BROWSER_GATEWAY_LOCAL_BROWSERS_DIR` als Serveranker); v27.2.98 wird durch den Discourse-Gateway-Smoke um externe `azubi42_browser_url`-Handoffs ergänzt.

- `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs`
  Statischer Space-Smoke für Communication. Sichert eigenen linken Communication-Bereich, Dienstliste, Communication-Sessions, Canvas-Routing mit `workspaceSpace='communication'`, markierte Communication-Webstart-Knoten mit externem Originalbrowser-Link, keine automatischen BrowserGateway-Anbieter-Nachbauten im Communication-Standardflow, getrennte sichtbare Knotenadressen und Schutz gegen falsche Workspace-/Blickwinkel-Snapshot-Überschreibung.

- `70_TESTS_AND_SMOKE/integrations/test_browser_agent_worker.py`
  Statischer Worker-Smoke für `40_INTEGRATIONS/browser-agent/`. Prüft Worker-Dateien, parsebaren Python-Code, FastAPI-Endpunkte, Run-Artefakte, Contract-JSON, Human-Checkpoint-Policy, Private-Target-Guard und den Schutz gegen `supervised_browser` ohne Nutzerfreigabe.

- `70_TESTS_AND_SMOKE/integrations/audit_discourse_accordion_gateway.mjs`
  Statischer Discourse-Smoke für den Accordion-Footer. Prüft versionierte Footer-Assets, echte `azubi42_browser_url`-Handoff-Parameter, Verbindungs-/Plan-Tabs für alle sechs Items, sichtbaren Matrix-Live-404-Status, relative Same-Origin-`/ext`-Routen, das AZUBI42-Kapitel samt `buschitut-forgejo`-Seed, das Discourse-Ext-Deploypaket, den Azubi42-DEV-Boot-Hook und den Ausschluss von Contentpass sowie altem Inline-Webplayer-Wording.

- `70_TESTS_AND_SMOKE/integrations/check_forgejo_push_limit.ps1`
  Forgejo-Pushlimit-Smoke. Prüft im Standardmodus Remote, Main-Hash und sauberen Arbeitsbaum ohne Upload; mit `-RunPushProbe` erzeugt er temporaere Testbranches mit nicht komprimierbaren Probe-Dateien und loescht erfolgreiche Remote-Branches wieder.

- `70_TESTS_AND_SMOKE/integrations/audit_release_artifact_contract.ps1`
  Release-Artefakt-Smoke. Prüft, dass der generierte Linux-Server-ZIP nicht mehr in Git getrackt wird, per `.gitignore` geschützt ist, Latest- und versioniertes Manifest existieren und der lokale Artefakt-SHA256 bei `-RequireLocalArtifact` zum Manifest passt.

- `70_TESTS_AND_SMOKE/ui/audit_view_start_screens.mjs`
  Statischer UI-Smoke für die Ansichten-Space-Zentrale. Prüft Boot-Import, sieben View-Konfigurationen, Launcher-Kacheln, Startzielauswahl, Kompaktmodus, fachbezogene Space-Menüs aus eigenen Modulen, eigene Moduszeilen/Footer je Space, Prüfspur-/Testmodus-Probes, BuschCode-Werkstattvertrag, session-only Schließen ohne dauerhaften Auto-Ausblend-Schalter, Blickwinkel-Direktstart, Communication-Button-Fit-Regeln, Timeline-Toolbar-Raster, CSS-Layer und Version-/Build-Token.

- `70_TESTS_AND_SMOKE/ui/audit_view_start_screens_browser.mjs`
  CDP-Browser-Smoke für die Ansichten-Space-Zentrale. Laedt ein frisches Profil, prüft leeren Workspace-Start, Launcher-Wechsel zur Blickwinkel-Leinwand, Startsetup, Kompaktmodus, Prüfspur-Probes inklusive Workspace-Webtest und Blickwinkel-Rechtsfremd-/Rotbereich, Direktstart der Perspektiven-Waffe mit Ausgangslage plus Blickwinkel-Knoten, das Ausblenden im Chat, fehlenden Text-Overflow in Communication- und Workspace-Webconnect-Buttons sowie fehlenden Overflow/Overlap in der Timeline-Kopfleiste.

- `70_TESTS_AND_SMOKE/ui/audit_node_visible_numbering.mjs`
  Statischer UI-Smoke für Knotennummern. Prüft, dass interne `nodeCounter`-Werte nicht mehr in Badge oder Defaulttitel gerendert werden, sichtbare `#`-Adressen pro Scope bei `#0` starten und `#0` nicht durch Truthy-Checks verloren geht.

- `70_TESTS_AND_SMOKE/ui/audit_local_ollama_fast_profile.mjs`
  Statischer Smoke für den lokalen Ollama-Fast-Pfad. Prüft, dass Core- und Installer-Frontend `Azubi Auto Fast`[private Angabe entfernt]`num_thread`-Rahmen (4 Auto-Fast, 8 Text, 6 Vision, maximal 12), optionalem `azubi42_ollama_num_thread`, leerer-Ollama-Antwortmeldung, lokalem Antwortvertrag gegen `Kann ich dir helfen?`-Gegenfragen und v27.2.79-Modellscore für 7B-/8B-Coder statt 1B-/3B-Miniantworten führen, und dass Server sowie Ubuntu-Installer dieselbe App-Policy schreiben.

- `70_TESTS_AND_SMOKE/ui/audit_login_intro.mjs`
  CDP-basierter 4K-Smoke für das Login-Gate. Laedt `/__azubi42/login`, fotografiert die browsernative Systemshow mit AZUBI42-Logo, Modul-Docking, OCR-Scan, Jura-RAG-Graph, Blickwinkel-Orbit, Reduced-Motion-Storyboard und eingelaufenem Login-Panel und prüft spaete Login-Freigabe, berechnete Intro-Styles sowie fehlende aeussere Desktop-Scrollbar.

- `70_TESTS_AND_SMOKE/ui/audit_header_row_panel.mjs`
  CDP-basierter Header-/Zeilen-Smoke für lokale Frontend-Prüfung. Testet in Desktop- und schmalem Viewport `+ Zeile`, `+ Knoten`, das Zeilenpanel, Klicktreffer auf Bearbeiten-/Ausblenden-/Löschen-Aktionen, offenen Panelzustand nach Rerender und den sichtbaren Zeilenstatus.

- `70_TESTS_AND_SMOKE/ui/audit_perspective_bundle.mjs`
  CDP-basierter Blickwinkel-Buendel-Smoke. Erzeugt Eisbecher-, Hinrichtungs- und Zuständigkeits-Testlagen, prüft die drei Sitzordnungen `Aktenreihe`, `Halbrund` und `Gegenueber`, verlangt sichtbare grüne Basislinien beim Erzeugen, verschiebt den `BWB`-Griff auf andere Knotenkanten, prüft Auto-Scroll, bewegte Pfade, Emotionsfarben, Reaktionstexte und isoliert jedes Szenario durch bereinigten Browser-Storage. Legt große Screenshots sowie `blickwinkel_bundle_audit.json` unter `reports/blickwinkeltests/` ab.

- `reports/v27.2.34_demo1/`
  Neuer Studio-Rahmen für die nächste Demo1-Runde. `CODE_COMMENT_SIGNAL_TABLE.md` verdichtet 78 Code-Kommentar-Funde zu filmbaren Funktionssignalen; `STUDIO_SCRIPT.md`, `SHOTLIST.md`, `INTRO_BRIEF.md` und `VISIBILITY_AND_DEPLOY_CHECKLIST.md` definieren Reihenfolge, Sprecher-/Metadaten-Texte, sichere Demo-Eingaben, Datenschutzgrenzen und die Bedingung, dass Live-Aufnahmen erst nach Webroot-Deploy auf Build `27054` erfolgen.

- `reports/v27.2.35_demo1/`
  Lokaler, per `.gitignore` geschützter Rohmaterialordner für den neu gerenderten Login-Teaser mit 4K-Frames, Manifest und 4K-MP4. Die verkleinerte Webfassung liegt im App-Assetbaum.

- `reports/v27.2.47_demo1/`
  Lokaler, per `.gitignore` geschützter Rohmaterialordner für die aktuelle Login-/Header-Show. Enthalten sind browsernative Smoke-Screenshots der gestaffelten 24-Sekunden-Regie, Reduced-Motion-/Inspect-Prüfungen, Header-/Zeilenpanel-Prüfungen und spätere Demo-/Trailer-Rohmaterialien.

- `toolbox/video_studio/`
  Wiederholbares Windows-Mini-Studio für lokale Trailer-Vorbereitung. `check_studio.ps1` schreibt Werkzeug-/GPU-/Encoder-Reports in den Demo1-Rohmaterialbereich; `render_intro_teaser.ps1` rendert aus repo-nativen SVG-Karten einen 4K-MP4-Testteaser; `render_login_intro_asset.ps1` bleibt als optionaler Exportpfad für 3840x2160-Webassets erhalten. Die sichtbare v27.2.47-Login-/Header-Show kommt aus DOM/CSS und ist dadurch direkt im Browser iterierbar.

- `toolbox/deploy/`
  Live-Deploy-Prüfung für Windows/PowerShell und Linux/Bash. `check_live_version.ps1` und `check_live_version.sh` testen statischen Marker, Manifest, Backend-Version-Probe, Runtime-Status und Medienpfade gegen den erwarteten Build und markieren HTML-statt-JSON als harten Deployfehler. `deploy_live_winscp.ps1` erzeugt ein gestagtes App-Paket ohne volatile `runtime`, `__pycache__` und `node_modules`, nimmt aber `runtime/fach-azubis/` als öffentlichen Katalog mit, prüft vor Upload den Plattenstand, synchronisiert nach `[Serverpfad]` und `[Serverpfad]`, kopiert den Katalog explizit in beide Ziel-Runtimes und ruft danach den Live-Check auf. Service-Restarts sind nur mit `-RestartServices` aktiv; `-PrepareOnly` baut Paket und Script ohne Serverzugriff. Ab v27.2.94 bereitet `-EnsureBrowserGatewayRuntime` die app-eigenen Chromium-Binaries unter `runtime/ms-playwright` auf den Zielservern vor und korrigiert BrowserGateway-Runtime-Rechte auf den jeweiligen systemd-Dienstnutzer.

## 2026-06-15

- Der Deploy-Baustein paketiert zusätzlich die Communication-/Handoff-Runtime-Werkzeuge `codex_matrix_handoff.py`, `provider_contracts_smoke.py`, `start_codex_matrix_listener_windows.ps1` sowie die Server-systemd-Schablone `azubi42-codex-matrix-listener.service`; Haupt- und Ubuntu-Installer-Packliste sind synchron.
- Der Live-Deploy leitet `VersionTag`, `ExpectedVersion` und `ExpectedCode` standardmaessig aus `azubi42_version.json` ab, damit Paketname, Webroot-Manifest und Live-Check nicht mehr durch veraltete Script-Defaults auseinanderlaufen.

  `deploy_azubi42_domain_site_winscp.ps1` deployt die statische AZUBI42.de-Public-Site nach `/var/www/azubi42.de/current`, schreibt einen getrennten Nginx-Serverblock für `azubi42.de www.azubi42.de`, setzt Sicherheitsheader und kann nach DNS-Propagation Let’s Encrypt per Certbot aktivieren. Mit `-FilesOnly` synchronisiert der Helfer nur die Webdateien und lässt bestehende Nginx-/Certbot-Konfiguration unangetastet. Die Version 2026.05.06.5 liefert zusätzlich den lokalen Mission-Patch im Hero und als OpenGraph-Bild; 2026.05.06.4 liefert generierte Fachazubi-Detailseiten, Roadmap, mobile Detail-Navigation und Katalogdaten. v2026.05.07.1 liefert den mobilen 2x3-Patch-Kachelheader, nicht-sticky Mobile-Header und das bereinigte `Closed Beta Invite only`-Wording mit aus.

- `70_TESTS_AND_SMOKE/legal/test_account_profile_privacy.py`
## Unit-Smoke für Konto-/Datenschutzprofil

- prüft getrennte Login-/Wunsch-/Anzeige-/Realnamen und stellt sicher, dass Löschen als `pending_admin_review`-Antrag gespeichert wird.

- `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_coverage_and_case_toc.py`
## Unit-Smoke für den RII-ZIP/XML-Vollbestand

- prüft strukturierte Entscheidungsfragmente, Gericht/Datum/ECLI sowie den Coverage-Alarm, wenn die Queue leer ist, aber die Bundesrechtsabdeckung noch fehlt.


## Chat und Verlauf


- `js/02_CHAT/02_1_ChatWindow.js`
  Hauptpfad für Fragen, Antworten, Workspace-Antworten, Tool-Bridge-Routing, Knotenkontext und Modellaufrufe. Auth-/Sessionfehler lokaler Modelle werden als Systemfehler gezeigt und enthalten konkrete Handlungslinks (`/__azubi42/login` / `/__azubi42/logout`) statt nur "Login erforderlich". v27.2.129 stoppt OpenAI-No-Key/Auth-Fehler provider-treu ohne Codex-Handoff, übernimmt OpenAI-Modell-IDs aus der Serverliste und verhindert Ollama-/Codex-Spruenge hinter sichtbar ausgewähltem GPT. v27.2.93 aktualisiert nach Sticky-Provider-Restore auch das sichtbare Modellpanel, damit GPT/OpenAI beim Chatten nicht links als Ollama-Auswahl stehen bleibt. v27.2.91 priorisiert gespeicherte Sticky-Provider vor lokalem Fallback, wenn das Modell-Select beim Senden leer oder durch Ollama-Scan lokal steht; gespeicherte Provider duerfen dabei nur auf eine vorhandene sichtbare Option zurückstellen, nicht heimlich hinter einem Ollama-Dropdown routen. v27.2.86 erweitert `resolveSelectedModelRoute` um den gespeicherten Provider aus `matrix_selected_provider` und `matrix_selected_model_provider_*`: GPT/OpenAI, Google, Codex-Native und Websuche gewinnen gegen einen später sichtbaren lokalen Ollama-Select, bis der User bewusst einen anderen Provider waehlt. v27.2.85 führt `resolveSelectedModelRoute` als festen Providervertrag ein: explizite GPT/OpenAI-Werte gewinnen vor alten Select-/Ollama-Zustaenden, Google/Codex/Search bleiben getrennt, Cloudlabels nutzen den echten Modellwert und nur lokale Modellwerte laufen nach Ollama. v27.2.79 führt `tryResolveDirectAzubiCapabilityQuestion` ein: konkrete Fragen wie `kannst du coden? welche sprachen?` werden als direkte Azubi-Faehigkeitsantwort mit Coding-/Sprachenliste beantwortet, statt in ein schwaches Mini-Modell oder eine leere Gegenfrage zu laufen. v27.2.78 führt parallele Modelllaeufe pro Run über `activeChatRuns` ein: neue Eingaben stoppen laufende Knoten nicht mehr automatisch, `replaceBusy` ist nur noch Legacy-Warnung, Senden/Anhang/Routenauswahl bleiben aktiv und `Stop` wirkt als manuelle Notbremse. Ab v27.2.59 werden normale markierte Workspace-Knoten in der Eingabe wieder als `Knoten` bezeichnet; `Blickwinkel` gilt nur im eigenen Blickwinkel-Space oder für echte Perspektiven-Knoten. `Ausgangslage · Eingabe`-Knoten entstehen nur noch im Blickwinkel-Space, während normale Workspace-Chattexte keine Perspektiven-Reaktionslinien mehr anlegen. DuckDuckGo nutzt jetzt wieder die rohe User-Anfrage statt des angereicherten RAG-Prompts, Suchtreffer können direkt als neue Knoten geöffnet werden und der automatische Matrix-Direktsendepfad bleibt auch dann aktiv, wenn die Websuche im UI gewaehlt oder getoggelt ist. Suchanfragen werden vor dem Versand zusätzlich lokal entschaerft, falls versehentlich doch noch Fokus- oder Systemkontext in den Query-Pfad rutscht. Suchkarten werden jetzt auch in Fokus-Knoten als echte Rich-HTML-Antwort gespiegelt und nicht mehr zu blosem Text escaped. Lokale Modelle bekommen jetzt bei URL-Auftraegen echten Live-Webkontext statt bloss der URL-Zeichenkette; reine URL-Eingaben und klare Browser-/Login-/Webapp-Intents überspringen den Snapshot-Import und erzeugen zuerst einen BrowserGateway-Knoten. v27.2.70 zieht den URL-only-Wächter vor `ingestMessageUrls`, damit `Als Kontext` im Upload-Menü keine Browserknoten mehr in Lesesnapshots verwandelt; der Wächter wird jetzt aus dem gemeinsamen AgentInterceptor genutzt und kann einen leeren fokussierten Knoten direkt als BrowserGateway wiederverwenden. Wenn BrowserGateway explizit angefragt wurde, gibt es keinen stillen Snapshot-Fallback mehr, sondern eine klare Gateway-Meldung. Echte Web-Intents wie Wetter-, Bild- oder Videosuche können auch aus dem lokalen Modellpfad automatisch in die freie Websuche übergehen, und kurze falsche Policy-/Rechtsablehnungen lokaler Modelle fallen bei harmlosen Web-Snapshots auf die eigene Web-Browser-Antwort zurück. v27.2.76 führt `Direktwissen` für harte Mini-Fakten wie `legen pinguine eier?` ein, damit solche Fragen ohne Thinking-Indicator, ohne Ollama-Loginfehler und ohne Modelllauf direkt im aktiven Knoten beantwortet werden.

- `js/02_CHAT/02_2_InputBar.js`
  Eingabelogik für das Mehrzeilenfeld, Upload-Staging, automatische Höhenanpassung und Sende-Trigger. v27.2.78 sendet normale Texte ohne `replaceBusy`, damit laufende Modelllaeufe nicht ersetzt, sondern parallel weitergeführt werden. v27.2.77 gibt Datei-Staging ohne Auswahl als `normal` weiter und hält den normalen Text-Sendepfad unabhaengig vom Upload-Select.

- `js/02_CHAT/02_3_History.js`
  Lokaler Chatverlauf mit Anlegen, Umbenennen, Pinnen, Löschen und Wiederherstellen. Persistiert aktive Inhalte jetzt zusätzlich bei `pagehide` und beim Verlassen des Tabs. Das Öffnen eines Verlaufs zieht die UI jetzt sichtbar in die Chatansicht, statt still nur das versteckte Chatfenster zu fuellen.

- `js/02_CHAT/02_3_Speech.js`
  Platzhalter für Spracheingabe.

- `js/02_CHAT/02_4_Extraction.js`
  Extrahiert markierten Text in neue Fokus-Knoten.


## Workspace und Zeilen


- `js/03_WORKSPACE/03_1_CanvasCore.js`
  Leinwandlogik für freies Panning, Auswahlrechteck, Hintergrundklicks, Maus-Aura und Pointer-Zoom per `Strg`/`Cmd` + Mausrad am Mauszeiger. Der Zoomstand liegt im globalen State und wird mit Workspaces gesichert.

- `js/03_WORKSPACE/03_2_ConnectionEngine.js`
  Verbindungsmodus und Kanten zwischen Knoten. Die Verbindungsplakette zeigt jetzt zusätzlich unter dem Abstand zwischen beiden Knotendaten noch eine zweite Zeile mit den Tagesabstaenden der beiden Knotendaten zum heutigen Datum. Wenn noch kein Datum in beiden Knoten vorhanden ist, erklaert ein Hover-/Title-Text das Verbindungssymbol und den fehlenden Tagesabstand. v27.2.34 rendert Blickwinkel-Verbindungen als Buendel mit eigenem Griff am Ausgangsknoten: Auge blendet nur die Darstellung aus, der Griff ist entlang der Ausgangslage-Outline verschiebbar und die enthaltenen Verbindungen bleiben im State für Gesamtbewertungen erhalten. v27.2.48 projiziert den Griff auf alle vier Knotenkanten, schreibt `bundleEdge`/`bundleOffset` in den State, lässt gebuendelte Linien am Griff starten und dockt Zielenden am nächsten Zielknotenrand in Richtung Ausgangslage an.

- `js/03_WORKSPACE/03_3_HitboxSystem.js`
  Platzhalter für spätere Hitbox-Logik.


## Knoten und Fokus


- `js/04_NODE/04_1_Builder.js`
  Erzeugt Knoten, verwaltet Normal-/Kompakt-/Vollansicht, Zeilenzuordnung, Geometry-Persistenz, Drag, Resize, Mehrfachauswahl und Row-Panel-Aktionen. Der Kopfbereich ist jetzt verdichtet aufgebaut: Referenz, editierbarer Titel, Datum, Flags und Fensterknöpfe teilen sich eine kompakte Chrome-Zone, während leere Flag-Leisten kollabieren und der Textbereich größer bleibt. Knoten können über einen umlaufenden Resize-Rahmen sowie weiter über den Eckgriff unten rechts gegriffen werden. Modifizierte Auswahlklicks (`Ctrl`/`Cmd`/`Shift`) werden dabei nicht mehr versehentlich von Resize-Rand oder Drag-Handle abgefangen. Ein normaler Klick auf einen bereits mehrfach markierten Knoten behält die Gruppenauswahl bei und setzt nur den aktiven Fokus; Ziehen eines mehrfach markierten Knotens verschiebt die ganze Gruppe über denselben Drag-Pfad wie der Handle. Drag, Resize und Vollansicht-Rueckkehr beruecksichtigen den aktuellen Canvas-Zoom. Workspace-Snapshots speichern ab v27.2.34 zusätzlich Verbindungsart, Labelversatz, Buendel-ID, Buendel-Sichtbarkeit, Buendelposition, Legal-Perspektive und Emotions-ID. v27.2.47 delegiert Zeilenpanel-Aktionen am Panel selbst, stoppt den Outside-Click nach Rerender und schreibt Ausblenden wieder auf das aktuelle Zeilen-State-Objekt statt auf eine stale Kopie. Ab v27.2.64 rendert der Builder keine internen `nodeCounter`-Werte mehr als sichtbare Badge-/Defaulttitel, sondern lässt die sichtbare Adresse vom Content-Sync setzen. Ab v27.2.67 startet der Defaulttitel generisch im Auto-Titelmodus und wird aus Typ/Inhalt verdichtet, solange der User keinen eigenen Titel fixiert; v27.2.71 stellt den sichtbaren Starttitel wieder auf `Knoten`, ohne die Smart-Titel-Automatik abzuschalten. Ab v27.2.252 wandelt der Builder alleinstehende `http://`-/`https://`-Eingaben im leeren Knoten bereits beim Tippen, Einfuegen, Enter oder Blur in denselben BrowserGateway-Knoten um.

- `js/04_NODE/04_1_NodeLayout.js`
  Hilfsbaustein für Node-Layout.

- `js/04_NODE/04_2_Header.js`
  Platzhalter für separaten Node-Header.

- `js/04_NODE/04_3_Content.js`
  Fokus- und Inhaltshilfen, Knotentitel, sichere Ausgabe, Antwortdarstellung und Kontextchips. Unterstützt jetzt neben Textantworten auch gezielte Rich-HTML-Antwortkarten für Suchtreffer, damit Links, Bilder und Knoten-Aktionen in Fokus-Knoten klickbar bleiben. Spiegelt Fokus-, Auswahl- und KI-Trefferstatus zusätzlich als stabile Klassen (`is-focused`, `is-selected`, `is-ai-hit`) für die Theme- und Resize-Rahmenanzeige. v27.2.64 führt die sichtbare Knotenadressierung als eigenen Scope ein: Workspace-Knoten und Blickwinkel-/Ausgangslage-Knoten zaehlen jeweils ab `#0`, `data-visible-node-number`/`data-visible-node-ref` werden bei UI-Sync aktualisiert, und `#`-Adressierung im Chat loest gegen die aktuelle sichtbare Scope-Reihenfolge auf. v27.2.65 beantwortet einfache Rechenfragen im Knoten-Chat vor dem Modellrouting direkt als lokaler Toolpfad (Systemnachricht) und vermeidet so unnoetige Servermodell-Laeufe für Mini-Arithmetik. v27.2.66 zeigt laufende Chat-/Knoten-Analysen mit gekuerztem Modellnamen und ruhiger Puls-Bubble statt generischem Bounce-/Ping-Indikator. v27.2.67 ergänzt Smart-Titel: generische Knotentitel werden aus Perspektive, Ausgangslage, PDF-Quelle, Web-/Suchinhalt oder erster sinnvoller Inhaltszeile gebildet; v27.2.71 behandelt den sichtbaren Default `Knoten` wieder als generischen Auto-Titel.

- `js/04_NODE/04_4_MediaDrop.js`
  Dateidrop und URL-Drop direkt auf Knoten.


## Legende und Filter


- `js/05_LEGEND/05_1_Flags.js`
  Flaggen, Symbolik, Filterung und Meteor-Trefferlogik. Im Timeline-View sammelt die Legende jetzt auch Jahr-/Monatsflags aus dem aktiven Timeline-Speicher und leitet Klicks dort als Timeline-Farbfilter weiter, statt versehentlich Workspace-Knoten zu filtern.

- `js/05_LEGEND/05_1_SymbolPicker.js`
  Platzhalter.

- `js/05_LEGEND/05_2_ActiveLegend.js`
  Platzhalter.

- `js/05_LEGEND/05_3_Filter.js`
  Platzhalter.

- `js/05_LEGEND/05_4_SyncLogic.js`
  Platzhalter.


## Modell- und API-Router


- `js/06_API_ROUTER/06_1_ModelSelector.js`
  Modellauswahl, Reasoning-Level, lokale Modelllisten und `Codex Native`-/OpenAI-/Google-Status. Remappt alte Browser-Defaults von `localhost:11434` auf den neuen serverseitigen Ollama-Proxy, normalisiert den Ollama-Basispfad basispfad-sensitiv für Webdeployments unter Subpfaden wie `/azubi42-dev/`, verdrahtet den Google-Proxy über denselben Subpfad-Mechanismus und behandelt relative Proxy-Pfade jetzt auch in der UI korrekt als Server-Ollama statt als lokalen Modellordner; der Folderpicker wird im Webmodus bewusst stillgelegt. In Webeditionen werden externe (cross-origin) Ollama/Azubi-URLs auf den lokalen Proxy normalisiert, damit Session-/Login-Gates nicht als "Modellantwort" erscheinen. Das Modellpanel bietet jetzt zusätzlich einen direkten Web/Login-Pfad für den gerade gewaehlten Provider und ersetzt statische OpenAI-Optionen beim Start über `/api/openai/models` oder den lokalen Codex-Cache. v27.2.82 führt die Provider-Webziele zentral: Google `accounts.google.com`, OpenAI/GPT `chatgpt.com/auth/login`, Codex `chatgpt.com/codex`, DuckDuckGo `duckduckgo.com` und Ollama `ollama.com/library`; der Knopf liest keine Provider-Passwörter oder Browser-Cookies aus und trennt Browser-Sitzung von API-/Proxy-Konfiguration.

## Konstruktionsschutz 2026-05-15

- Auch auf `localhost` werden remote/cross-origin Ollama/Azubi-Endpunkte nicht mehr als "lokal" akzeptiert (nur same-origin `/api/ollama` oder loopback-Ollama wie `http://127.0.0.1:11434`).

  v27.2.83 initialisiert `09_8_ProviderReturnBridge.js` und öffnet Provider-Webziele über `openExternalProviderTarget`, damit Modellblock-Fokus und Status nach ChatGPT-/Provider-Login wieder erreichbar bleiben. v27.2.84 schützt denselben Knopf gegen vorhandene Provider-Sessions: Der Start bleibt in Azubi42s Rueckkehrbruecke, bis der Nutzer den Provider bewusst öffnet. v27.2.86 merkt Modellwerte providergebunden und lässt den lokalen Ollama-Scan eine gespeicherte OpenAI/GPT-, Google-, Codex-Native- oder Websuche-Auswahl nicht mehr überschreiben. v27.2.91 stellt gespeicherte Cloud-/Web-Provider nach OpenAI-Modell-Rebuild und Ollama-Scan wieder auf eine sichtbare Provideroption; v27.2.88 trennt das obere lokale `/api/ollama`-Pfadfeld sichtbar von der Provider-API-Konfiguration, loescht lokale `matrix_api_*_local`-Altlasten und stellt beim Ollama-Scan notfalls sichtbar auf die erste gespeicherte Provideroption statt den Status hinter einem lokalen Dropdown zu verstecken.

- `js/06_API_ROUTER/06_2_PromptBuilder.js`
  Platzhalter.

- `js/06_API_ROUTER/06_3_CloudFetch.js`
  OpenAI-Responses-Proxy, Google-Gemini-Proxy, Cloud-Requests und Codex-Native-Handoff-Fallback. Nutzt für Webdeployments jetzt subpfad-sichere API-Pfade statt harter Root-URLs und fällt für Langlaeufer jetzt auf ein 24h-Timeout statt auf kurze Browser-Standardwerte zurück. Cloudfetch liest ausschließlich providergebundene `matrix_api_url_*`-Werte und keinen lokalen `matrix_local_model_path`. OpenAI-Profil-Aliasse wie `*-pro` senden jetzt die zugehoerige echte Modell-ID und nur das Azubi42-Profil steuert Reasoning/Compute.

- `js/06_API_ROUTER/06_4_LocalFetch.js`
  Standard-Ollama-Requestpfad. Nutzt jetzt denselben remap- und basispfad-sicheren Endpoint wie die Modellauswahl und kann dadurch lokal wie auf `azubi42-dev` über den Azubi42-Proxy statt direkt über Browser-`localhost` arbeiten. Das `keep_alive` wird jetzt deutlich kuerzer gefahren und unterscheidet zwischen lokaler Einzelplatznutzung und Web-/Serverbetrieb; der Fallback-Timeout liegt jetzt ebenfalls auf Langlaeufer-Niveau bei 24 Stunden.

- `js/06_API_ROUTER/06_5_LocalFetch_Enhanced.js`
  Erweiterter Ollama-Pfad mit robusteren Timeouts, Keep-Alive, Modell-Fallbacks und demselben servertauglichen sowie basispfad-sicheren Ollama-Proxy-Remap für Webdeployments. Normalisiert in Webdeployments zusätzlich same-origin absolute `/api/ollama`-URLs auf den basispfad-sicheren Defaultpfad, damit Session-Cookies mit `Path`-Bindung nicht versehentlich ins 401/Login-Gate laufen. v27.2.79 baut für lokale Modelllaeufe einen Antwortvertrag vor den User-Prompt, der konkrete Antworten auf `[USER-ANFRAGE]` verlangt und leere Gegenfragen wie `Kann ich dir helfen?` bei konkreten Fragen verbietet. `Azubi Auto Fast`[private Angabe entfernt]`num_thread` standardmaessig auf 4 für Auto-Fast, 8 für Text und 6 für Vision, geklemmt auf maximal 12; `azubi42_ollama_num_thread` kann gezielt übersteuern, bleibt aber ebenfalls gedeckelt. Vision-Anfragen senden bewusst leichtere Parameter; das `keep_alive` hält Modelle im Serverbetrieb nicht mehr stundenlang im RAM.

## Konstruktionsschutz 2026-05-15

- Remote/cross-origin Ollama/Azubi-Pfade werden auch auf `localhost` auf den Defaultpfad normalisiert (kein versteckter Session-/Cookie-Pfad).

- `js/06_API_ROUTER/06_6_WebSearch.js`
  Freier Suchpfad für Webrecherche über den serverseitigen DuckDuckGo-Proxy. Erkennt jetzt Web-, Bild- und Videoanfragen heuristisch und erzeugt daraus klickbare Ergebnis-Karten statt nur reinen Fliesstext; Karten können Quellen extern öffnen oder mit strukturierter Metadaten-Nutzlast direkt neue Workspace-Knoten erzeugen. Suchqueries werden vor dem Versand bereinigt, damit eingemischter Fokus-, Prompt- oder `[USER-ANFRAGE]`-Kontext nicht mehr die eigentliche Websuche verfälscht. Die Anzeige im Knoten bereinigt die Query zusätzlich lokal erneut und blendet die laute `Frage:`-Zeile im Textmodus aus, damit Altpfade oder Stale-Daten keine Prompt-Reste mehr sichtbar machen. Webtreffer zeigen jetzt zusätzlich kleine Seitenicons über DuckDuckGo-Domain-Favicons an, damit die Ergebnisliste nicht wie nackter Rohtext wirkt.


## Daten, Timeline und Toolschicht


- `js/07_DATA_VAULT/07_1_VaultScan.js`
  Platzhalter für spätere Tresor-/Dateiscans.

- `js/07_DATA_VAULT/07_2_StateBackup.js`
  Persistiert Workspace, Zeilen, Knoten, Verbindungen, Fokus und Scrollposition lokal im Browser. Ab v27.2.94 schreibt der globale Workspace-Backup nicht, wenn der aktive Space `communication` ist.

- `js/07_DATA_VAULT/07_3_StateRestore.js`
  Stellt den letzten Workspace-Stand beim Reload wieder her und setzt die gespeicherte Ansicht wieder ein. v27.2.120 lässt echte gespeicherte Workspace-Knoten weiterhin zurückkommen, lenkt aber leere alte Workspace-Snapshots auf Mobile in den BuschCode-Start um, damit der Erstkontakt nicht auf einer leeren Knotenfläche landet.

- `js/07_DATA_VAULT/07_4_WorkspaceSessions.js`
  Lokaler Workspace-Verlauf mit Anlegen, Aktivieren, explizitem Speichern, Umbenennen und Löschen kompletter Arbeitsflächen. Sichert pro Workspace eigene Snapshot-Staende auf Basis des bestehenden Knoten-/Zeilen-Backups, synchronisiert das Namensfeld des aktiven Workspace-Blocks in der Sidebar und haengt sich an dieselben State-Events wie das globale Restore an. Ab v27.2.59 schützt der Baustein normale Workspace-Sessions davor, den separaten Blickwinkel-Space in den aktiven Workspace zurückzuspeichern; ab v27.2.94 gilt derselbe Schutz für Communication-Sessions. v27.2.121 laedt beim Boot weiterhin die aktive Workspace-Session, fokussiert sie aber nur, wenn die aktuelle Startansicht schon `org` ist; Mobile-BuschCode und URL-/Hash-Startziele werden dadurch nicht mehr überfahren.

- `js/07_DATA_VAULT/07_5_PerspectiveSpaces.js`
  Eigene lokale Space-Verwaltung für die Perspektiven-Waffe. Der linke Menüpunkt `Blickwinkel` nutzt dieselbe Knoten-/Linien-Leinwandtechnik, speichert aber getrennte Blickwinkel-Sessions mit `+ Neu`, `Speichern`, Umbenennen, Aktivwechsel und Löschen. Beim Wechsel zwischen Workspace, Blickwinkel und Communication werden die jeweiligen Snapshots kontrolliert gesichert und wiederhergestellt, damit normale Arbeitsknoten nicht durch Blickwinkel-Reaktionen oder Messenger-Knoten vermischt werden.

- `js/07_DATA_VAULT/07_6_CommunicationSpaces.js`
  Eigene lokale Space-Verwaltung für Communication. Der linke Communication-Bereich nutzt dieselbe Knoten-/Linien-Leinwandtechnik wie Workspace/Blickwinkel, speichert aber getrennte Messenger-/BrowserGateway-Sessions mit `+ Space`, `Speichern`, Umbenennen, Aktivwechsel und Löschen. Der Baustein persistiert beim Verlassen von Communication und stellt beim Rueckwechsel die Communication-Knoten wieder her, ohne Workspace- oder Blickwinkel-Snapshots zu überschreiben.

- `js/08_TIMELINE/*`
  Platzhalter für spätere spezialisierte Zeitleisten-Renderer. Die erste produktive Zeitstrahlansicht liegt bewusst in `01_CORE/01_6_Timeline.js`, weil sie direkt an Navigation und Layout haengt.

- `js/09_TOOLS/09_1_PDFViewer.js`
  PDF-Zerlegung, Seitenkontext und Abschnittslogik. v27.2.154 nutzt die gleiche-Origin-Route `/api/tools/pdf/extract` mit serverseitigem PyMuPDF statt einer Drittanbieter-CDN-Runtime im Browser. Ergebnis bleibt für normale PDF-Karten, Seitenvorschau und Atom-PDF-Gruppen derselbe Frontend-Vertrag.

- `js/09_TOOLS/09_1_ToolManager.js`
  Sidebar-Tooltoggles. Der Websuche-Knopf schaltet jetzt direkt auf das DuckDuckGo-Suchmodell und teilt sich denselben globalen Zustand mit Chat- und Matrix-Routing.

- `js/09_TOOLS/09_2_OCR_Engine.js`
  OCR-Pfad für Bilder. v27.2.154 lässt die Browser-Vorverarbeitung bestehen, übergibt das Bild aber an die gleiche-Origin-Route `/api/tools/ocr/image`; serverseitig entscheidet lokales Tesseract/Tessdata. Fehlt Tesseract, entsteht ein klarer lokaler Hinweis statt eines stillen Drittanbieter-Fallbacks.

- `js/09_TOOLS/09_3_WebScraper.js`
  Webseitenimport über den lokalen Azubi42-Proxy statt über externe Browser-CORS-Workarounds. Importiert HTML, Links und Formularfelder für Knoten jetzt serverseitig stabiler, bewahrt Formularmetadaten für den KI-Kontext und spiegelt Formulare lokal ohne echten Submit. Die extrahierten Seitentexte dienen weiter als Analysekontext für lokale Modelle. Der Import erzeugt bewusst einen sicheren Lesesnapshot ohne fremde Skripte und ohne globale Fremd-CSS, entfernt Cookie-/Consent-/Werbe-Boilerplate aus dem Modelltext und liefert Beschreibung, Überschriften und Seitenstatistik für robuste Web-Antworten. Direkte URL-/Login-/Browser-Intents werden vorher in `02_1_ChatWindow.js` zum BrowserGateway geroutet und landen nicht mehr versehentlich im Snapshot-Pfad.

- `js/09_TOOLS/09_4_MediaParser.js`
  Upload- und Medienpipeline für Dateien, Bilder, PDFs und URLs. Reine URL-Texte werden vor dem WebScraper erkannt und in BrowserGateway geleitet; ein leerer Zielknoten wird dabei in den Browserknoten verwandelt. URL-plus-Auftrag bleibt weiter im Websnapshot-/Analysepfad. v27.2.77 kennt `normal` als unaufgeregten Upload-Fallback, während `context`, `ocr`, `vision`, `embed`, `atom` und `atom-pdf` getrennte Routen bleiben.

- `js/09_TOOLS/09_4_WorkspaceContext.js`
  Baut den relevanten Prompt-Kontext aus Fokusknoten und Verbindungen.

- `js/09_TOOLS/09_5_AgentInterceptor.js`
  Erkennt Referenzen, URLs und Toolpfade im Freitext. URL-Erkennung normalisiert `www.`-Adressen und Bare-Domains wie `wetter.com` auf `https://`, entfernt typische Satzzeichen am URL-Ende und filtert typische Datei-Endungen (z.B. `README.md`), damit Webassist/URL-Import nicht versehentlich am Modellpfad vorbeilaufen. Führt zusätzlich den gemeinsamen URL-only-Wächter für Chat, MediaParser und BrowserGateway-Routing.

- `js/09_TOOLS/09_6_BrowserGateway.js`
  Echte Live-Browser-Knoten für Webapps, Logins und interaktive Seiten. Nutzt den serverseitigen BrowserGateway unter `/api/browser/*`, zeigt den lokalen Playwright-Chromium-Enginezustand, Screenshotfläche als sichtbaren Browser-Frame, URL-Leiste, Text-/Key-Eingabe, gezieltes Formular-Fill, Back/Forward/Reload/Scroll, Inspect-Auszug, Downloadliste, Console-/Network-Hinweise und interne Tabs. Reine URL-Eingaben und Browser-/Login-/Webapp-Intents werden direkt in diesen Pfad geleitet, statt zuerst einen sicheren Lesesnapshot zu erzeugen. Leere Zielknoten können direkt übernommen werden, damit `https://wetter.com` in einem frisch angelegten Knoten nicht mehr als Snapshot, sondern als BrowserGateway-Knoten startet. Maximierte BrowserGateway-Knoten messen die sichtbare Knotenfläche, geben diesen Viewport an Session/Screenshot weiter und blenden URL-Leiste, Status und Inspect aus, damit das Webseitenbild wie im direkten Browserfenster steht. Der Knoten bietet zusätzlich jederzeit einen klaren `↗ Extern öffnen`-Fallback in den echten Browser. v27.2.90 normalisiert Browser-Connector-Metadaten und reicht `service_id`, `connector_type` und `agent_mode` an den Serverpfad weiter; Captcha, MFA, Consent und Rechteentscheidungen bleiben als Human-Checkpoint statt als Umgehung modelliert. v27.2.92 schließt Contentpass-/Third-Party-Renderer aus: Rendering, Navigation, Cookies, Downloads und Aktionen laufen lokal im persistenten Playwright-Chromium-Kontext. v27.2.94 formatiert Backend-Fehlerobjekte lesbar und markiert BrowserGateway-Knoten aus Communication mit eigenem Scope. v27.2.98 kann über `main.js` aus externen `azubi42_browser_url`-Handoffs gestartet werden. v27.2.170 stellt `renderIntoNode` als globalen Direktpfad bereit, damit Communication vorhandene Knoten in echte BrowserGateway-Knoten umwandeln kann. v27.2.252 führt URL, Zurueck/Vor, Neu laden, Drucken und Werkzeuge in der Knoten-Kopfzeile; der Body bleibt frei von Plan-/Installations-/Werkzeugtexten und dient nur Browserbild und Inspect. v27.2.138 hat einen kontrollierten BrowserGateway-Shutdown für Service-Stop, SIGTERM und Prozessende. v27.2.139 loest den aktiven Browserpfad dynamisch auf und nutzt vorhandene Chromium-Runtimes statt an einem leeren lokalen Runtime-Ordner haengen zu bleiben.

  Der Knoten führt jetzt eine sichtbare Profilkennung, sendet sie beim Sessionstart an den Server und bietet `Profil leeren`, damit Login-/Cookie-Zustaende gezielt zurückgesetzt werden können.

- `js/09_TOOLS/09_8_ProviderReturnBridge.js`
  Rueckkehrbaustein für externe Provider-Weblogins. Merkt OpenAI/GPT, Codex, Google, DuckDuckGo, Ollama sowie Tresor-/Logo-Webstarts lokal, zeigt beim Zurueckkommen ein kompaktes Panel `Zurueck in Azubi42`, fokussiert Modellblock/Tresor/Logo erneut und hält Provider-Login vom API-/Proxy-Pfad getrennt. v27.2.171 bricht lange Provider-/OAuth-URLs in der Rueckkehrkarte sichtbar um, damit der User sie prüfen kann, statt nur eine abgeschnittene Ellipsis-Zeile zu sehen. v27.2.84 öffnet zuerst eine Azubi42-Rueckkehrbruecke statt direkt die Provider-Webapp, damit bereits eingeloggte ChatGPT-User nicht automatisch aus Azubi42 herausgezogen werden; der Provider wird erst dort bewusst mit `noopener,noreferrer` geöffnet.

- `js/09_TOOLS/09_9_ErrorFixList.js`
  Globale Todo-Fix-It-Liste für Fehleranzeigen. Startet direkt nach dem Layout, beobachtet per `MutationObserver` sichtbare rote/Error-Statusmeldungen, erfasst Runtime- und Promise-Fehler, dedupliziert nach Quelle/Text in `localStorage`, zeigt einen kurzen Toast und führt Eintraege mit `Anzeigen` zum Ursprung oder `Erledigt` in der Toolbox. v27.2.131 spiegelt neue und offene lokale Eintraege best-effort an `/api/fixit/report`, damit Live-Fehler nicht nur im Browserprofil des Testers liegen.

- `js/10_PAPERLESS_RAG/10_1_PaperlessBridge.js`
  Interner Paperless-Sidecar-Viewer für BuschCode und die eigene Paperless-Arbeitsfläche. Liest geschützte Azubi42-Legal-OCR-Sidecars über den lokalen Proxy, zeigt Dokumentliste, größere Seitenthumbnails ohne sichtbare Scrollbar, Seitenmetriken, vollständigen PDF-/Inline-OCR-Auszug pro Seite und erzeugt per Farbpipette ein Markerprofil für `docker-compose.env`. Thumbnail-Klick öffnet ohne aktive Pipette eine große Vorschau; bei aktiver Pipette oder im Zoom-Overlay wird gezielt Farbe gelesen. Niedrig aufgeloeste Alt-Thumbnails werden markiert. Paperless-Direktlinks werden nur bei echter numerischer Paperless-Dokument-ID erzeugt, sonst führt die UI in die Paperless-Suche.

- `js/10_PAPERLESS_RAG/10_2_VectorSearch.js`
  Platzhalter für spätere Vektor-/RAG-Suche über Paperless-, Jura- und CBTC-Quellen.

- `js/10_PAPERLESS_RAG/10_3_ContextFeeder.js`
  Platzhalter für spätere Übergabe von Paperless-/CBTC-Kontext an Modelle und Fach-Azubis.


## Auth, Tresor und Dienstbruecken


- `js/11_AUTH_MANAGER/11_1_VaultDB.js`
  Tresor für Zugangsdaten, Host- und Projektfelder, ACL, Notizen und Start-/Web-Buttons. Enthält jetzt auch die eingebauten Laufzeitquellen für Matrix, Forgejo, Paperless, Codex und Ollama, die von den Mini-Logo-Popups mitverwendet werden, nutzt für interne Service-Checks/Codex-Status subpfad-sichere Proxy-Pfade und blendet servicegebundene Bedienkarten wie die Matrix-Bridge nur für den passenden Tresor-Dienst ein. v27.2.82 setzt den Codex/OpenAI-Web- und Startstandard auf `https://chatgpt.com/codex`, damit Tresor, Mini-Logo und Modellblock denselben Browser-Weblogin-Vertrag nutzen.

## v27.2.130 ergänzt `setVaultRuntimeSessionData` und `clearVaultRuntimeSessionData`

- FachConnect kann Forgejo-Zugangsdaten nur im laufenden Tab als Runtime-Override bereitstellen, während `loadVaultService()` weiter die persistierte Tresoransicht ohne Runtime-Passwort rendert. v27.2.83 führt Tresor-Start/Web ebenfalls über den Provider-Return-Bridge-Baustein, damit externe Service-/Provider-Starts den Rueckfokus in der App behalten. v27.2.84 erbt für diese Startwege dieselbe Rueckkehrbruecke statt direktem Provider-Sprung.

- `js/11_AUTH_MANAGER/11_2_ToolAuth.js`
  Guard- und Erkennungsschicht für operative Befehle wie Matrix, Forgejo, Paperless oder Server. Dienst-Aliasse matchen jetzt mit Wortgrenzen statt per rohem Substring, damit Begriffe wie `Projektordner` nicht mehr versehentlich Forgejo- oder Paperless-Guards auslösen; Arbeitsordner-Hinweise bleiben modellübergreifend separat verfügbar.

- `js/11_AUTH_MANAGER/11_3_MatrixBridge.js`
  Matrix-Bridge für Login, Raumkatalog, Sync, Ping-Erkennung, Senden, Raumwahl und sichere Kontaktbehandlung. Direkte Pings können jetzt zusätzlich knapp über das lokale freie Modell beantwortet werden, ohne Admin- oder Geheimdaten freizugeben. Für Identitaets- und Modellfragen gibt es jetzt einen deterministischen Guard, damit Azubi42 im Matrix-Chat nicht versehentlich Hardware- oder Systemidentitaeten halluziniert. v27.2.38 nimmt trusted Invites an, kann direkte Matrix-IDs als DM-Ziel nutzen und merkt Serverroom-SSL-Meldungen als reine Prüftermine vor; nach Ablauf plus 1h wird nur geprüft und bei fehlender Erneuerung ein Admin-Hinweis gesendet.

- `js/11_AUTH_MANAGER/11_4_ForgejoBridge.js`
  Forgejo-Bridge für Repo-Liste, Dateibaum, repo-bezogene Antworten und den nicht blockierenden Start-Versionscheck gegen Forgejo. Interne Bridge-Requests laufen jetzt subpfad-sicher auch unter Webmounts wie `/azubi42-dev/`, `/azubi42-jura/` und aus `__azubi42/login`[private Angabe entfernt]`Update verfuegbar` nach kurzer Sichtzeit, damit ein alter lokaler Live-Stand die App nicht dauerhaft überdeckt. v27.2.77 zeigt das Startup-Popup wieder für alle Routinezustaende inklusive `ahead` und lokalem Fallback ohne Forgejo-Vaultpfad. v27.2.80 verlaengert nur die Startup-Sichtbarkeit auf 18 Sekunden, damit die Boot-/Login-Sichtprüfung das Popup sicher erfasst.

- `js/11_AUTH_MANAGER/11_5_FachConnectBridge.js`
  FachConnect-Dialog für Forgejo und spätere Fachazubi-Dienste. Rendert Fachprofile mit einheitlichem Symbolorbit und fachbezogenen Akzenten (Jura, Plant, Dev, Communication, Kanzlei, Fahrschule, Schule), führt den Nutzer von `Verbindung herstellen`[private Angabe entfernt]`70_TESTS_AND_SMOKE/ui/audit_fachconnect_bridge.mjs`.


## Laufzeit und Start


- `azubi42_server.py`
  Lokaler Proxy für die App, Servicechecks, Login-Gate, sichere Zugangsanfragen mit lokaler Request-Ablage, Matrix-Alarm samt Quick-Action-Links für Admin-Review, klickbare Admin-Review-Pfade, Matrix-Login für Dev-Zugangsfreigaben inklusive Alias-Mapping, optionalen separaten lokalen Azubi-Login bei Freigabe, ersten Forgejo-Providerpfad für spätere Buschitut-Logins, serverseitigen Ollama-Proxy unter `/api/ollama`, DuckDuckGo-Suchproxy unter `/api/web/search`, neuen serverseitigen Webseiten-Import unter `/api/web/fetch`, neuen Google-Gemini-Proxy unter `/api/google/generate`, Codex-Native-Rueckkanal, OpenAI-Responses-Weiterleitung, Forgejo-Versionsvergleich und `/api/monitor/tls/certificate` für öffentliche TLS-Zertifikatsprüfungen. Die Matrix-Benachrichtigungen kennzeichnen Freigabe-/Ablehnungslinks jetzt explizit als lokale Admin-Review, damit ein Klick ohne bestehende Admin-Session nicht mehr wie eine bereits ausgeführte Freigabe wirkt. Das Login-Gate führt jetzt Instanzlabel, Edition-ID, sichtbaren Loginstand, optional verpflichtende Legal-Identity-Felder und den gewaehlten Nachweis-/Freischaltweg, damit `azubi42-dev`, `azubi42-jura` und spätere Fachinstanzen getrennte Zugangsanfragen und Matrix-Meldungen erzeugen. Der notwendige Cookie-/Impressum-/Datenschutzhinweis zeigt standardmaessig direkt auf den Behördenfreund-FAQ-Anker `https://xn--behrdenfreund-kmb.de/#faq`. Freigaben speichern jetzt den abgeleiteten Legal-Actor-Rollenhinweis; `/api/runtime/status` und `/api/legal/schriftsatz/notice` liefern daraus den passenden Schriftsatzkopf für Privatpersonen oder Human-in-the-Loop-Bearbeiter. Der Suchproxy unterstützt jetzt neben Websuche auch Bild- und Videosuche über DuckDuckGo, saeuert eingehende Queries gegen versehentlich mitgesendeten RAG-/Systemkontext ab und gibt neben der bereinigten Suchanfrage auch die Originalanfrage für Debugzwecke zurück; Websuche und Webseitenimport verwenden jetzt browseraehnlichere Header statt einer auffälligen Azubi42-User-Agent-Signatur. Der Webseiten-Import blockiert lokale/private Ziele bewusst als SSRF-Schutz; die TLS-Prüfung blockt lokale/private Hosts zusätzlich über DNS-Aufloesung. Für große PDF-/OCR-Auftraege laufen OpenAI-, Google-, Codex- und Ollama-Langlaeufer jetzt mit sehr hohen Proxy-Timeouts. Neu sind `/api/runtime/status` für editionstreue UI-/Fachprofil-Anzeige, `/api/openai/models` für aktuelle OpenAI-Modelloptionen aus OpenAI-API oder Codex-Cache, `/api/legal/case/learn` für private Fall-Lernplaene sowie `/api/paperless/*` für geschützte Legal-OCR-Sidecars, Seitenthumbnails, Farbpipetten-Profile und getrennte Paperless-Direkt-/Suchlinks ohne falsche Sidecar-ID-URLs.

## v27.2.147 führt den MJP-abgeleiteten BundID/eID-Arbeitsprototypen `/__azubi42/bundid/prototype`

- sichtbarer Redirect-Link `BundID/eID starten`, Readiness-/SSP-Status, MJP-Schrittvertrag, harte Nicht-Speicher-Grenzen und lokaler Prototyp-Handshake mit PKCE/State plus optionaler Invite-only-Zugangsanfrage `access_proof_method=bundid`. v27.2.143 zeigt nach jeder Invite-only-Zugangsanfrage eine direkte Handprüfungs-Bestätigung mit Tageszeit-/Nachweisweg-Hinweis und Vorgangsnummer, ohne lokale Queue-Pfade preiszugeben; Request-Datensätze führen dazu `review_mode=manual`, `review_status_label` und eine User-Confirmation. v27.2.142 wertet einen erreichbaren AusweisApp-Status-Port als laufenden lokalen eID-Client, auch wenn Windows `tasklist` den Prozesszugriff verweigert. v27.2.141 ergänzt den lokalen BundID/eID-Readiness-Pfad `/api/auth/bundid/readiness`: PC/SC-Dienst, AusweisApp-Installation/Prozess und lokaler eID-Status-Port werden ohne Ausweis-, PIN- oder Personendaten geprüft und in der Login-Kachel angezeigt. v27.2.140 ergänzt den amtlichen BundID/OIDC-Vorpfad: `/api/auth/bundid/status`, `/_auth/bundid/start` und `/_auth/bundid/callback`[private Angabe entfernt]`provider=bundid`, `access_proof_method=bundid` und `legal_actor_role=private_person`.

  Der BrowserGateway-Serverpfad startet ab v27.2.92 pro Profil einen persistenten lokalen Playwright-Chromium-Kontext über `launch_persistent_context`, speichert Profilzustand unter `runtime/browser_gateway_profiles/`, akzeptiert Downloads unter `runtime/browser_gateway_downloads/`, registriert Download-Ereignisse und führt echte Browseraktionen für Tabs, Back/Forward, Reload, Scroll, Click, Type, Key und gezieltes Fill aus. `/api/browser/clear_profile` leert Profil- und Downloadzustand gezielt. v27.2.94 setzt `PLAYWRIGHT_BROWSERS_PATH` serverseitig auf `runtime/ms-playwright`, damit der echte Chromium portabel vorbereitet werden kann. v27.2.138 schließt bei Service-Stop alle Sessions/Profile und stoppt den Playwright-Treiber über Worker-Shutdown, `atexit` und SIGTERM-Handler. v27.2.139 prüft vor dem Setzen des Browserpfads, ob der portable Pfad wirklich Chromium enthält; Windows-Lokalstarts fallen sonst auf Forgejo-Shared-Core oder `LOCALAPPDATA/ms-playwright` zurück. v27.2.70 normalisiert dynamische Viewportwerte pro Session/Screenshot und setzt die Playwright-Seitengröße vor dem Screenshot neu, damit maximierte Webknoten nicht mehr mit einem alten festen 1280x820-Bild skaliert werden. Smoke-Test 2026-05-09: `/api/browser/status`, `/api/browser/session`, `/api/browser/screenshot` und `/api/browser/close` liefen lokal gegen `https://example.com/` mit aktivem Shared-Core-Chromium. Smoke-Test 2026-05-12: `70_TESTS_AND_SMOKE/integrations/smoke_browser_gateway_live_page.mjs` lief lokal gegen `https://www.wetter.com/` inkl. Snapshot/Scroll/Click/Screenshot nach Klick.

- `version_manifest.json`
  Lokales Versionsmanifest für Azubi42. Dient als Referenzstand für Forgejo-Update-Prüfung und Repo-Abgleich.

- `Start_Azubi.ps1`
  Stabiler Windows-Startpfad. Setzt lokal `PYTHONDONTWRITEBYTECODE=1`, damit Windows-Starts keine App-`__pycache__`-Altlasten mehr erzeugen.

- `start_windows.bat`
  Konservativer Batch-Startpfad für Windows. Setzt lokal `PYTHONDONTWRITEBYTECODE=1`, damit der Proxy-Server ohne Bytecode-Schreibversuch startet.

- `start_v27.bat`
  Aelterer Starthelfer.

- `Build-Linux-v27.ps1`
  Linux-Export für die einfache Linux-Version.

- `Build-LinuxServer-v27.ps1`
  Exporter für die Ubuntu-24-Serveredition mit Login-Gate, Nginx- und Systemd-Paketierung. Ab v27.2.94 installiert das Setup Playwright-Chromium in den app-eigenen Pfad `runtime/ms-playwright` und schreibt `PLAYWRIGHT_BROWSERS_PATH` in die Service-Env.

- `linixserveredition/setup_azubi42.sh`
  Interaktives Ubuntu-24-Setup für die Serveredition. Installiert jetzt neben Python/Nginx/UFW auch Ollama samt Azubi42-Standardmodellen, richtet das serverseitige `.codex`-Home ein, installiert die Codex CLI für spätere native Server-Logins, setzt für den Reverse-Proxy lange Zeitlimits und schreibt zusätzlich eine steuerbare Ollama-Memory-Policy. Default ab v27.2.80: `OLLAMA_KEEP_ALIVE=2m`, `OLLAMA_MAX_LOADED_MODELS=1` plus App-Env für `num_thread` 4/8/6 und maximal 12; kleine Server können per `AZUBI42_OLLAMA_*` enger gefahren werden. v27.2.141 dokumentiert die passive eID-Clientprobe; v27.2.140 installiert `cryptography`, legt `auth_providers.bundid` deaktiviert an und reserviert `[private Angabe entfernt]` für amtliche SSP-/Testzugangsdaten.

- `30_INSTALLERS/ubuntu24/azubi42-jura/setup_azubi42_jura_instance.py`
  Installer für die getrennte Jura-Instanz. Schreibt systemd- und Nginx-Anbindung für `/azubi42-jura/`; der Reverse-Proxy nutzt jetzt `proxy_pass .../` mit trailing slash, damit der Subpfad vor dem Python-App-Upstream entfernt wird und Assets/Loginseiten nicht als 404 landen.


## Hilfe und Nutzerführung


- `docs/HELP_AZUBI42.md`
  Grunderklaerung, Nutzungsideen, Berufs- und Alltagsbeispiele, Weiterentwicklungslogik, sichtbare Secret-Hygiene für Tool-Kommandos/Bildschirmfreigaben und Verweise auf die Detaildokumentation.

- `docs/FUNKTIONSINVENTAR_AZUBI42.md`
  Vollstaendiger Funktionskatalog in Nutzersprache für Workspace, Knoten, Zeilen, Modelle, Suche, Matrix, Forgejo, Tresor, Verlaeufe und Einsatzszenarien.

- `docs/README_WINDOWS.md`
  Windows-Start, Bedienidee, typische Einsaetze, Forgejo-Versionscheck beim Start sowie die Position von `Update` und `Logout` in der linken Sidebar.

- `docs/README_LINUX_SERVER.md`
  Linux-Serverbetrieb, Sicherheitsmodell, Installationspfad für Ubuntu 24, geschützter Web-Einstieg, Pflegepfad für Web-Benutzer, Admin-Review und Provider-Schiene für Matrix/Forgejo/Paperless. Dokumentiert jetzt auch den serverseitigen Ollama-Proxy `/api/ollama`, die automatisch installierten Standardmodelle, das vorbereitete `.codex`-Home, Secret-Hygiene für sichtbare Betriebswege und verweist auf den gemeinsamen Funktionskatalog.

- `docs/README_FORGEJO_STRUCTURE.md`
  Zielstruktur für den Umzug nach Forgejo, Editionsaufteilung, Codex/OpenAI-Ablage und Trennung von Upstream, Bridges und lokalen Geheimnissen.

- `docs/README_DOMAIN_PROFILES.md`
  Architektur für mehrere Web-Domains und Fachprofile wie Buschitut, Behördenfreund und den internen Dev-Azubi auf gemeinsamem technischen Kern, inklusive jetzt eingebautem Dev-Matrix-Pfad und erstem Forgejo-Zugangspfad.


## Externe Rechts- und Identitaetsmodule


- `40_INTEGRATIONS/legal-jura/bundid-eid/`
  Antragspaket für BundID/eID-Testzugang, eID-Testkits, Berechtigungszertifikat und spätere Legal-Identity-Anbindung. Enthalten sind Antragstext, technischer Anhang, Self-Service-Checkliste, Connector-Plan, Schnittstellentrennung, SSP-/BVA-Feldermapping, Datenschutz-/Sicherheitskurzkonzept, Testfallkatalog, Anlagenindex, SSP-Führungsmappe, Organisationsdaten-Template, Metadatencheckliste, Callback-/ACS-URL-Register, SAML-vs-OIDC-Entscheidungsmatrix, OIDC-/SAML-Metadaten-Templates und eine MJP-Clickflow-Referenz für BundID/eID, AusweisApp, Ruecksprung und Postfach-Trennung.

  Vor echten Testtokens sind Login-Gate, Nachweisweg-Auswahl, Zugangsanfrage, Matrix/Admin-Review, der gesperrt bis zum Nachweis BundID/OIDC-Loginpfad, die lokale eID-Clientbereitschaft, der MJP-Referenzclick gegen Start/Abbruch/Ruecksprung und ab v27.2.147 der Arbeitsprototyp `/__azubi42/bundid/prototype` testbar; echte BundID/eID/ZBP/FIT-Connect-Flows bleiben bis zur amtlichen Freigabe deaktiviert. v27.2.141 führt `/api/auth/bundid/readiness` für PC/SC/AusweisApp/Status-Port ohne Ausweisdaten; v27.2.140 führt `60_RUNTIME_TEMPLATES/auth/bundid-oidc.template.json` und `70_TESTS_AND_SMOKE/legal/test_bundid_oidc_connector.py`[private Angabe entfernt]`70_TESTS_AND_SMOKE/legal/test_bundid_ssp_application_package.py`; der vorsichtige MJP-Live-Inspect vom 2026-05-10 liegt unter `reports/mjp_clicktest_2026-05-10/`.

- `40_INTEGRATIONS/legal-jura/vorgang-2020-2026/schriftsatz-register.html`
  Lokale sortier- und filterbare Registerseite für Schriftsatzdatum, Empfänger, Inhalts-Punkte, Vorwuerfe, Verstöße, Status und Quellen. Dient als erste strukturierte Arbeitsfläche für Paperless-/CBTC-/RAG-Ausleitungen.

- `runtime/legal-jura/vorgang-2020-2026/argument-tabellen/`
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- `40_INTEGRATIONS/legal-jura/config/focus_topics_richterschutz.json`
  Fachprofil für den Jura-Azubi mit Quellenachsen, Begriffsbuckets und Prüfbereichen für Richterschutz-Grenzen, SGP/LSG/BSG, eRV/Zustellung, Datenschutz, Verwaltungsvorschriften und strafrechtliche Prüfbegriffe.

- `40_INTEGRATIONS/legal-jura/vorgang-2020-2026/RICHTERSCHUTZ_GRENZEN_ARBEITSPLAN.md`
  Arbeitsplan zur Trennung von Sachentscheidung, Verfahrenshandlung, Dienstaufsicht, Zeitachse, Daten/Akte und strafrechtlichem Prüfhinweis.

- `40_INTEGRATIONS/legal-jura/tools/extract_amt_vorwurf_index.py`
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- `40_INTEGRATIONS/paperless/`
  Paperless Legal-OCR-Grundpaket mit Post-Consume-Hook, Sidecar-Generator, JSON-Schema, deutschem Tesseract-Rechtswoerterbuch, OCR-Konfigurationsbeispiel, CBTC-Handoff-Adapter, Docker-Pfad, Ubuntu-24-Installer, Paperless-Inline-Overlay und konservativem Sidecar-Sync. Erzeugt getrennte Sidecars für `PDF-TEXT`, `OCR-INLINE-TEXT`, `IMAGE-REGIONEN`, `HIGHLIGHT-REGIONEN` und `VISUAL-HIGHLIGHT-REGIONEN`, ohne Originaldokumente zu veraendern. Der Hook kann temporaere Tesseract-Bilder per automatischer Markerbereinigung oder per dokumentweisem Farbpipetten-Profil neutralisieren, schützt dunkle Schriftpixel, laengere Seiten-/Region-OCR-Timeouts nutzen, Seitenthumbnails standardmaessig mit höherem Scale für Dokumentkarten erzeugen und Nicht-PDF-Textdateien wie TXT/Markdown als Text-Sidecar statt als Fehler behandeln. Optional spiegelt er fehlende Inline-OCR-Funde als klar markierten `AZUBI42-OCR-INLINE`-Block in Paperless `Document.content`, damit markierte Fundstellen in Paperless selbst sichtbar und suchbar werden. Der Shell-Wrapper versteht Paperless-Positionsargumente, ignoriert Thumbnail-WebP-Pfade als Archiv, fällt bei nicht beschreibbarem Primaerpfad auf `/tmp` zurück und lässt Paperless-Imports bei Azubi42-Hook-Fehlern weiterlaufen. Der Docker-Pfad baut ein lokales Paperless-Webserver-Image mit PyMuPDF, A42-Overlay und authentifizierter Route `/api/azubi42/marker-profile/`; das Overlay enthält Mehrfarben-EyeDropper, dokumentweise Toleranzsteuerung mit Maskenvorschau, `Farbe übernehmen`, `Farbe rausfiltern`, `Neu speichern` und `Marker aus`. `Farbe rausfiltern`/`Neu speichern` queued serverseitig eine Celery-Kette aus Paperless-Reprocess und `azubi42.paperless.marker_post_reprocess`, damit die Paperless-Dateiaufgabe sichtbar ist und der Azubi42-Hook erst nach dem nativen OCR-Lauf patcht. Der Overlay-Script-Tag wird im Docker-Build dedupliziert und mit `?v=20260513d` injiziert, damit F5 nicht an alten Browsercache-Staenden haengen bleibt. Der CBTC-Handoff baut reproduzierbare Jobordner für Kristalls Linguistik-Pipe, führt aber ohne explizite lokale Konfiguration keinen Fremdcode aus; die offene Frageliste liegt jetzt unter `cbtc/KRISTALL_FRAGEN.md`. `sync/` zieht Sidecars per SSH/rsync kontrolliert in dev/jura-Runtimeordner.

  Der bestehende Sidecar-Backfill `toolbox/legal/paperless_inline_visuals_backfill.py` kann Paperless-Containerpfade per `--path-map` auf das Host-Volume abbilden und den Hook per `--hook-path` vom Paperless-Quellhost laden; dadurch werden Sidecars und Originale nicht vermischt, aber DOCX-/PDF-Inlinebilder können gegen den echten Paperless-Media-Bestand nachgezogen werden.

  Für den direkten Quellhostlauf sind `python3-pil`, `tesseract-ocr`, `tesseract-ocr-deu` und `tesseract-ocr-eng` auf dem Host selbst erforderlich. WMF/EMF werden nicht als PNG gefälscht; ohne lokalen Rasterizer bleiben sie als Originalvektor mit `normalization=original_unrendered`, `skipped_reason` und `vision_blocked=true` im Sidecar.

## Live-Check 2026-04-30

- Paperless-Webserver gesund, `deu+eng`, Tesseract `deu`, 106 Legal-Woerter, aktive Hooks, lange Timeouts und Sidecars mit 37 Seiten/860 Inline-OCR-Eintraegen ohne Hook-Warnungen.

- `40_INTEGRATIONS/paperless/tagging/`
  Kontrollierter Paperless-Tag-Regelkatalog für juristische Akten. `paperless_legal_tag_rules.json` führt nur noch die 10 globalen Kernachsen Aktenzeichen, Gericht/Instanz, Behörde/Traeger, Zuständigkeit, PKH/Beistand, Gehoer/Ausblendung, Frist/Verzug, Zugang/Nachweis, Bescheid/Normprüfung sowie Gesundheit/Existenz. `paperless_tag_regex_tool.py` validiert lokal die Paperless-Grenze von 256 Zeichen pro `match`[private Angabe entfernt]`--apply` gegen `/api/tags/` ausführen. Der Katalog nutzt `matching_algorithm=4` statt Paperless-`Automatic`; Spezialtags wachsen im Overlay-Katalog statt als globale Blindautomatik.

- `40_INTEGRATIONS/browser-agent/`
  Geplanter Ausbaupfad für den Knoten-App-Browser aus dem 05.05.2026-Plan. `azubi42_browser_agent.py` ist der erste getrennte FastAPI-Worker mit Run-Queue, `/health`, `/contract`, `/runs`, Playwright-Snapshot, Screenshot-/Markdown-/Download-Artefakten und vorbereiteten Paperless-/Forgejo-/Matrix-Handoff-Dateien. `README.md`, `browser_agent_contract.json`, `browser-agent.example.env`, `requirements.txt` und die systemd-Vorlage definieren Connector-Typen, Agent-Modi, Runtime-Pfade, Run-Artefakte sowie die Sicherheitsregel: nur eigene oder ausdruecklich autorisierte Ziele, keine Captcha-/MFA-/Consent-Umgehung im Kern, Secrets nur als Vault-Referenzen.

- `toolbox/legal/`
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- `toolbox/legal/disk_guard.sh`
  Server-Plattenwächter für Jurabibliothek- und Paperless-Fuelllaeufe. Prüft vor Downloads/Imports relevante Mounts, warnt ab 95%, meldet kritisch ab 99%, schreibt ins Journal, optional in einen Admin-Hook und pausiert konfigurierte Fuell-Timer, damit keine Platte voll laeuft.

- `toolbox/legal/amt_vorgang_pipeline.py`
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- `toolbox/legal/amt_argument_tables.py`
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- `toolbox/legal/sgp_schriftsatz_register.py`
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.

- `toolbox/legal/sgp_row_enrichment.py`
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
## Die SGP-Regel gilt als Prototyp für den allgemeinen Legal-Text-QM

- jede juristisch relevante Zeile, jeder Absatz und jeder Block muss vor Verwendung gegen Originalstelle, Umfeld, Blickwinkel, Normanker und hoechste passende Gewinnentscheidung geprüft werden; ohne Gleichlage bleibt der Block `offen`.

- `toolbox/legal/sgp_final_table.py`
  Baut aus SGP-Schlanktabelle, Zeilen-Enrichment und QM eine verlustfreie finale private Arbeitsfassung. Jede Originalzeile bleibt über `source_row` erhalten; fehlende, doppelte oder extra Zeilen brechen den Lauf ab. Ausgabe: CSV, TSV, HTML, XLSX und Manifest unter `runtime/legal-jura/vorgang-2020-2026/sgp-schriftsatzregister/final/`. Der quellenbereinigte Lauf 2026-05-05 führt 1.073 Originalzeilen, 1.073 Enrichment-Zeilen und 1.073 QM-Zeilen zu 1.073 Finalzeilen zusammen; 959 Zeilen tragen Bundesanker, 114 Marker bleiben bewusst ohne Bundesankerpflicht. Der Finalbuilder sucht Enrichment/QM-Dateien jetzt anhand der aktuellen Originalzeilenzahl statt hart `0001_1647`. Stand 2026-05-15 fuegt der Tabellenvertrag Richter-Lesepfad, Pflichtachse, Belegankerstatus, Fristausloeser, Überlaenge-Rechenstart, Monate bis Stichtag, Euro-Hinweise, Mahnwesen-Stufe und nächste Massnahme direkt in die Haupttabelle ein; Euro-Summen bleiben leer, solange keine belastbare Berechnungsregel oder Aktenzahl vorliegt.

## Dubletten-/Versionsguard

- blockiert `input_old_versions>0`, ausser `--include-duplicates` ist bewusst gesetzt; Manifest führt `include_duplicates` und `duplicate_policy_description` (Regelwerk).

- `toolbox/legal/sgf_gerichtsschreiben_register.py`
  Spezialisiert die SGP-Registerlogik auf SGF, Gerichtsleitung, Dienstaufsicht, Akten-/Kopienvorlage, Zustellung/eRV, Verweisungen, PKH/Rechtsbeistand, Ausblendung, AOK/medizinische Versorgung und Kläger-Eigenschaften. Der quellenbereinigte Lauf 2026-05-05 erzeugt unter `runtime/legal-jura/vorgang-2020-2026/sgf-gerichtsschreiben/` volle Atomtabellen, schlanke CSV/HTML und lesbare XLSX aus 49 SGF-Dokumenten, 1.094 Atomfunden und 544 Schriftsatzzeilen. Alte Dubletten-/Versionsfamilien werden standardmaessig ausgeschlossen; `Final-Print`-/Druck-/Exportvarianten bilden keine eigene Quellenfamilie mehr; Outputs/Derivate (Final-Print/Empfängerpakete, OCR-Sidecars) werden nie als Quellen rueckgefuettert (Regelwerk Abschnitt 5a).

- `toolbox/legal/sgf_row_enrichment.py`
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- `toolbox/legal/sgf_final_table.py`
## Führt SGF-Schlanktabelle, Enrichment und QM verlustfrei zusammen. Ausgabe

- `sgf_final_verlustfrei.csv`, `.tsv`, `.html`, `.xlsx` und Manifest unter `runtime/legal-jura/vorgang-2020-2026/sgf-gerichtsschreiben/final/`.
- Das Manifest bestaetigt 544 Original-, Enrichment-, QM- und Finalzeilen ohne fehlende, doppelte oder extra `source_row`; `hat_bundesanker_counts` steht vollständig auf `ja`.
- Nutzt denselben erweiterten Tabellenvertrag wie SGP, damit Frist-/Verzug-/Euro-/Mahnwesen-Achsen nicht als Nachtragstabelle, sondern in derselben Haupttabelle mitgeführt werden.

## Dubletten-/Versionsguard

- blockiert `input_old_versions>0`, ausser `--include-duplicates` ist bewusst gesetzt; Manifest führt `include_duplicates` und `duplicate_policy_description` (Regelwerk).

- `toolbox/legal/gesamtvorgang_table_v2_builder.py`
  Adapter für den neuen Gesamtvorgang-Tabellenvertrag v2. Nimmt verlustfreie SGP-/SGF-Finaltabellen, mappt sie in die Schema-Spalten für Beleganker-Kopf/Detail, Kausalkette kurz/lang, strukturierte Kausalfelder, Mahnwesen letztes/aktuelles/kommendes, Zahlungsabgleich, Forderungsarten und WH3D-Fruchtfelder und schreibt CSV, XLSX sowie eine kurze Markdown-Probe.

- `toolbox/legal/realfall_zeilenanker_table.py`
  Versandvorstufen-Adapter für die echten SGP-/SGF-Finaltabellen. Jede Zeile erhält Normkette, Tatsachenanker, Quelle/Seite/Absatz, Blickwinkel, Gegenprobe, Kausalfolge, Risiko, nächsten Prüfschritt, Anlagenzeile und Schriftsatzblock; öffentliche Reports enthalten nur Zähler. XLSX wird per `openpyxl` oder stdlib-Fallback erzeugt.

- `toolbox/legal/sgf_schriftsatzkern.py`
  Erzeugt aus der SGF-Finaltabelle einen vorsichtigen Schriftsatzkern für die Anschlussruege zum Schreiben vom 13.04.2026. Der Bericht enthält Vorbemerkung als Prüfhypothesen, Betreffvorschlag, Kernbitten, Themencluster, QM-Cluster, häufige Bundesanker und Zeilenanker zu Gerichtsleitung, Zustellung/eRV, Akten/Kopien, Ausblendung, Laienstatus und AOK/medizinischer Versorgung.

- `toolbox/legal/sgf_harter_kern_fundstellen.py`
## Erzeugt aus `sgf_final_verlustfrei.csv` eine reproduzierbare Anlage 4 für den SGF-Hartkern

- 34 ausgewählte Fundstellen als Markdown/CSV/XLSX und eine Arbeitsqueue aller Schwellen-Treffer.
- Die Achsen decken Beschwerdegegenstand, Akten/Kopien, Ausblendung, Art.-97-/DRiG-Abgrenzung, Zustellung/eRV, PKH/Beistand, AOK/Medizin und Suder-Schutz ab; alte Platzhalter-Zeilen werden damit durch echte `source_row`-Anker ersetzt.

- `toolbox/legal/sgf_harter_kern_prueftabelle.py`
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- `toolbox/legal/amt_court_template_builder.py`
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- `toolbox/legal/paperless_atom_indexer.py`
  Separater Paperless-zu-Jurabibliothek-Adapter. Liest `*.azubi42-legal-ocr.json`, baut seitenweise Atomfragmente mit `OCR-INLINE`, `VISUAL-HIGHLIGHT` und `IMAGE-REGION`-Markern, schreibt sie in `documents`, `document_versions`, `fragments`, `fragments_fts`, `fragment_vectors` und `embeddings_queue` derselben Jurabibliothek-SQLite. `--continue-on-error` meldet defekte Sidecars, blockiert aber nicht die weitere Fuellung. Der Linux-Cycle wartet jetzt bewusst, wenn Jurabibliothek-Download oder Vektorisierung aktiv ist, damit Paperless nicht gegen denselben SQLite-Schreiber laeuft. Die Sense-/Privacy-Schleuse schließt gesperrte, private, unlesbare und `REVIEW_BEFORE_RAG`-Dokumente standardmaessig aus; nur freigegebene kanonische Kandidaten duerfen in Atomindex, WH3D und Helix. Smoke-Test 2026-05-01 gegen temporaere DB und Dokument `paperless::55`: 72 Fragmente, 72 lokale Vektoren, 72 offene Embeddings, FTS- und Vector-Treffer für `Rechtsbeugung`. Lokaler Sidecar-Smoke 2026-05-01 aus bereits vorhandenen Runtime-Sidecars: 7 Paperless-Dokumente, 213 Fragmente, 213 Vektoren, 213 offene Embeddings; kein amtlicher Web-Sync auf dem Laptop.

- `40_INTEGRATIONS/paperless/cbtc/CBTC_LANGTEST_RUNBOOK.md`
  Kontrollierter Testablauf für Kristalls CBTC-/Jura-Pipe mit Smoke-, Medium- und Langteststufe, Vorbedingungen und Abbruchkriterien.

- `40_INTEGRATIONS/paperless/cbtc/run_cbtc_longtest_safe.sh`
  Sicherer Startwrapper für CBTC-Testjobs mit reproduzierbarem Run-Ordner, Statusdatei, Logs, Timeout, nice und ionice.

- `40_INTEGRATIONS/paperless/cbtc/systemd/azubi42-cbtc-longtest@.service`
  systemd/cgroup-Servicevorlage für CBTC-Langtests mit CPU-, RAM-, Task- und Runtime-Limits.

- `40_INTEGRATIONS/paperless/cbtc/systemd/elasticsearch-azubi42-guard.conf`
  systemd-Drop-in für Elasticsearch auf der gemeinsamen Forgejo/CBTC-VM mit Memory-, CPU-, Task- und IO-Grenzen.

- `40_INTEGRATIONS/paperless/cbtc/systemd/kristall-user-slice-guard.example.conf`
  systemd-Slice-Beispiel für interaktive Kristall-/CBTC-Prozesse, damit Tests die VM nicht komplett mitreissen.

- `40_INTEGRATIONS/paperless/cbtc/systemd/azubi42-cbtc-vm-watch.service`
  oneshot-Service für periodische VM-Ressourcen-Snapshots.

- `40_INTEGRATIONS/paperless/cbtc/systemd/azubi42-cbtc-vm-watch.timer`
  systemd-Timer für minuetliche CBTC-/Elasticsearch-Watchdog-Snapshots.

- `40_INTEGRATIONS/paperless/cbtc/watch/azubi42-cbtc-vm-watch.sh`
  leichter Watchdog-Logger für Speicher, Disk, Top-RSS-Prozesse, Elasticsearch-cgroup-Werte und Kernelwarnungen.


## Assets


- `favicon.svg`
  Browser-Favicon.

- `logos/*.txt`
  Mini-Logos für Matrix, Forgejo, Paperless, Behördenfreund, Footer, Codex, Kristall CBTC, Ollama und Buschmann.

- `logos/buschmannproductions-spAypEH8aB78FVs554_Sxg.png`
  Bildlogo für die Lightbox.


## Hinweis


Die detaillierte Dateiliste mit Pfad, Dateigröße und Aenderungsdatum steht in:


- `reports/azubi42_v27_superinventar.md`
- `reports/discourse_footer_hotfix_2026-04-22.md`
  Betriebsbericht für den Live-Hotfix auf `discourse.buschitut.eu`. Dokumentiert den wiederhergestellten Accordion-Footer unter `/ext/accordion-footer-snippet.html`, den nachgezogenen HTTPS-Forward-Header-Fix in `vhost_ssl.conf`, den später auf iframe-freien Theme-Initializer-Boot umgestellten Accordion-Footer, die aktiven Tabs und Breitenmodi sowie die Livekarten für Matrix, Forgejo und Themen/Events. Stand `20260506a` ersetzt die frühere Webflächenkarte durch den echten Azubi42-BrowserGateway-Handoff nach `https://forgejo.buschitut.eu/azubi42-dev/` und führt pro Accordion-Item eigene Verbindungs- und Ausbauplan-Tabs. Stand `20260508a` ist am 2026-05-09 live auf `/ext` nachgezogen und im Browser auf AZUBI42-Vorstellung, `buschitut-forgejo` und Handoff-Link geprüft. Der Bericht führt ausserdem den neuen Admin-Sync `40_INTEGRATIONS/discourse/discourse_matrix_sync.py`, die Alias-Map `matrix-room-map.public.json`, den Theme-Einstieg `theme-initializer.gjs`, die produktiven Systemd-Units unter `40_INTEGRATIONS/discourse/systemd/` und die Live-Prüfung bis zum Produktionslauf mit den ersten Kategorie-Räumen `#btut-site-feedback:42.chat` und `#btut-general:42.chat`.

- `40_INTEGRATIONS/discourse/deploy_discourse_ext_winscp.ps1`
  Kontrollierter Deploy-Helfer für die statischen Discourse-`/ext`-Assets. Baut ein `discourse_ext_<version>.tar.gz`, laedt Accordion-Snippet, Boot-Script, Preview, Alias-Map und statische Kontextseiten inklusive `Azubi42/index.html` auf den Plesk-Webroot und prüft danach Version, BrowserGateway-Handoff, Matrix-Live-404-Status und `buschitut-forgejo`-Marker. Der Discourse-Theme-Initializer bleibt bewusst ein separater Themefeld-Schritt. `-HostKey` kann auch zusammen mit einer gespeicherten WinSCP-Session genutzt werden, damit Hostkey-Pinning und gespeicherte Auth nicht gegeneinander arbeiten.

- `40_INTEGRATIONS/discourse/deploy_discourse_matrix_live_winscp.ps1`
  Kontrollierter Deploy-Helfer für den Matrix-Live-Service auf dem getrennten Discourse/Plesk-Host. Paketiert `matrix_live_service.py`, `systemd/azubi42-discourse-matrix-live.service`[private Angabe entfernt]`config-templates/matrix-live-vhost.nginx.conf` sowie `config-templates/matrix-live-vhost.apache.conf`. Echte Matrix-Zugangsdaten werden nicht erzeugt oder überschrieben; der Live-Pfad bleibt `/etc/azubi42/discourse/matrix-live.json`. `-HostKey` wird auch bei gespeicherter WinSCP-Session an `open` weitergereicht.

- `reports/discourse_matrix_live_endpoint_2026-05-06.md`
## Betriebsbericht zum same-origin Matrix-Live-Endpunkt für den Discourse-Accordion-Footer

- loopback-only Dienst auf `127.0.0.1:18442`[private Angabe entfernt]`/ext/matrix-live.json` bis zum Serverdeploy.

- `70_TESTS_AND_SMOKE/integrations/check_discourse_live_endpoints.ps1`
## Wiederholbarer Live-Checker für `discourse.buschitut.eu`

- prüft Matrix-Live-Health, Matrix-Raumfeed, Accordion-Bootmarker und Snippet-Version; bis zum Serverdeploy mit `-AllowPending` nutzbar.

- `reports/azubi42_technik_aenderungsliste_2026-05-06.md`
  Secretfreie, für Matrix geeignete Technik-Zusammenfassung für AZUBI42-App, BrowserGateway, Discourse-Accordion, AZUBI42.de, Forgejo/Installer und Matrix/42.chat samt Live-Status, Blockern und nächsten Schritten.

- `reports/security_config_leak_scan_2026-04-28.txt`
## Redigierter Security-Smoke-Bericht für DB-/Konfig-Leak-Prüfung. Aktueller Lauf

- `high=0`, keine Hochrisiko-DSNs oder Passwortwerte in öffentlichen Repo-Flächen.

- `reports/public_live_security_check_2026-05-06.md`
## Live-Public-Prüfbericht für `azubi42.de` und Forgejo

- anonyme Web-/Raw-/Git-/API-Zugriffe auf `admintut/AZUBI42` bleiben gesperrt, `azubi42-dev` bleibt `401`[private Angabe entfernt]`highSecretFindings=0`.

- `reports/paperless_cbtc_handoff_2026-04-28.md`
  Betriebsnotiz zum Paperless-CBTC-Handoff, inklusive offener Kristall-Angaben und vorbereiteter Matrix-Nachricht.

- `reports/paperless_visual_highlight_smoke_2026-04-28.md`
  Smoke-Testbericht für das Problem-PDF mit visuellen Textmarkern. Dokumentiert erkannte Bildregionen, 14 Visual-Highlight-Regionen und den lokalen Tesseract-Hinweis.

- `reports/web_connect_embed_security_2026-04-28.md`
  Sicherheitsnotiz zu Communication-Webknoten, Fremd-iframe-Grenzen, OAuth-Top-Level-Pfaden und späterem Matrix-Widget-/Session-Connector.

- `reports/elasticsearch_cbtc_watch_2026-04-28.md`
  Diagnosemerkblatt für Elasticsearch-/CBTC-Stabilitaet, sichere Admin-Prüfbefehle und OOM-/Disk-/Shard-Verdachtsklassen.

- `reports/forgejo_vm_stability_audit_2026-04-30.md`
  Stabilitaetsbericht zur Forgejo-VM mit Crashspuren, fehlendem OOM-Befund, Postfix-SRS-/Plesk-Restartloop, Logrotate-/Apache-Konflikten, offenen Ports, erster Safe-Hardening-Umsetzung und verbleibenden Port-Risiken.

- `reports/forgejo_vm_safe_hardening_2026-04-30.md`
## Betriebsbericht zur risikoarmen Live-Härtung der Forgejo-VM

- Logrotate, Plesk-SSH-Terminal, Postfix-SRS, Apache-Autostart, Forgejo-Loopback-Bindung, stale Certbot-Renewal, RPC/Avahi sowie bewusst offen gelassene Ports mit Folgeplan.

- `reports/azubi42_ui_theme_communication_2026-04-30.md`
  UI-Bericht zum Theme-/Schriftgrößen-Fix, zur Communication-Webconnect-Entscheidung und zur CBTC-Testbeobachtung.

- `reports/matrix_gpu_direct_check_2026-04-30.md`
  Matrix-Betriebsnotiz zum GPU-Login, Annahme offener Kristall-Einladungen und erfolgreichem 1:1-Test ohne Secret-Ausgabe.

- `reports/jurabibliothek_richterschutz_2026-04-30.md`
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- `reports/paperless_atom_index_2026-04-30.md`
## Smoke-Bericht zum neuen Paperless-Atom-Indexer

- Sidecar 55, 72 Atomfragmente, 72 lokale Vektoren, FTS-Treffer und Embedding-Queue.

- (private, nicht versioniert) AMT-Vorgang-Pipeline-Reports/Outputs
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- `reports/amt_argument_tables_2026-05-01.md`
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- `reports/sgp_schriftsatzregister_2026-05-03.md`
  Bericht zum spezialisierten SGP-Schlankregister mit strengem SGP-Adressatenfilter; per Nachtrag 2026-05-05 als historische 1.647-Zeilen-Zwischenfassung markiert. Aktueller quellenbereinigter Stand: 98 SGP-Dokumente, 3.105 Atomfunde, 1.073 Schriftsatzzeilen, `old_versions=0`.


- `reports/sgp_row_enrichment_2026-05-03.md`
  Bericht zur zeilenweisen SGP-Recherchequeue; per Nachtrag 2026-05-05 ist die alte Range `1:1647` durch den quellenbereinigten Lauf `1:1073` ersetzt. Aktuell: Originalkontext-Extraktion, enge Bundesanker-Regeln, 959 gesetzte Bundesanker, 114 bewusst ohne Bundesankerpflicht abgelegte Markerzeilen.

- `reports/sgp_final_dubletten_audit_2026-05-05.md`
## Audit zur SGP-Finaltabelle

- dokumentiert den verworfenen 1.647-Zeilen-Lauf mit 1.647 alten `possible_version_duplicate`-Basiszeilen, die neue 1.073-Zeilen-Finaltabelle, `old_versions=0`, dynamische Finaltable-Range-Suche und abgelegte Altartefakte.

- `reports/legal_text_qm_cbtc_rule_2026-05-04.md`
## Prozessvertrag für alle kuenftigen juristischen Textpfade

- Schriftsätze, Tabellen, Webquellen, Normtexte, Rechtsprechung, Workspace-Knoten, Blickwinkelreaktionen und Chattexteingaben werden zeilen-/absatzweise über Originalstelle, Nicht-Handlung, Blickwinkel, Normanker, hoechste passende Gewinnentscheidung, Angriffsfläche und Ergebnisstatus geprüft.
- CBTC wird als vorgeschaltete deutsche Rechtsverstaendnis-Schicht definiert, sobald Kristalls Pipe stabil angebunden ist.

- `reports/sgf_gerichtsschreiben_2026-04-13_pruefbericht.md`
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- `reports/sgf_gerichtsschreiben_2026-04-13_prueftabelle.csv`
  Maschinenlesbare 12-Punkte-Prüftabelle zum selben SGF-Schreiben für spätere Schriftsatz-/Tabellenübernahme.

- `reports/sgf_gerichtsschreiben_schriftsatzkern_2026-05-05.md`
  Schriftsatzkern zur SGF-/Gerichtsleitungs-Anschlussruege aus der quellenbereinigten verlustfreien 544-Zeilen-Finaltabelle. Führt Kernbitten, Themencluster, QM-Status, Bundesanker und thematische Zeilenanker als vorsichtige Arbeitsfassung.

- `reports/sgf_final_dubletten_audit_2026-05-05.md`
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- `toolbox/legal/REGELWERK_AMT_QUELLENFAMILIEN_DUBLETTEN.md`
- Projektgedaechtnis-Knoten (Checkliste im Regelwerk-Ende): `/amt-Quellenfamilien`, `/dubletten-versionsstatus`, `/neueste-version-statt-altvarianten`, `/verlustfrei-vs-quellenbereinigt`, `/final-print-druck-export-docx-pdf-varianten`, `/include-duplicates-ausnahmelauf`, `/wiederholte-textpassagen-manuell`.
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- `reports/sgf_anschlussruege_schriftsatz_2026-05-05.md`
  Versandnaher SGF-Anschlussruege-Entwurf zum Schreiben vom 13.04.2026. Baut auf Prüfbericht, Prüftabelle, Schriftsatzkern und Finaltabelle auf und führt Anträge, Begründung, Prüfmatrix, Anlagenbezug sowie vorsichtige Vermutungsformulierungen für Gerichtsleitung, Akten/Kopien, Zustellung/eRV, PKH/Beistand, AOK und Kläger-Eigenschaften.

- `reports/sgf_anschlussruege_sendefassung_2026-05-05.md`
  Bereinigte Sendefassung des SGF-Anschlussruege-Entwurfs ohne interne Arbeitsnotiz und Quellen-/Prozesskopf; für DOCX/PDF-Satz und Versandnachbearbeitung vorgesehen.

- `reports/sgf_anschlussruege_sendefassung_2026-05-05_ergaenzt.md`
  Ergänzte SGF-Sendefassung mit BVerwG-tauglichem Kopiehinweis, Sachdienlichkeits-/Laienstatus-Baustein, Nicht-Sachstandsmitteilung, eRV-/Zugangsfrage, technischer Strukturierungslogik und Anlagenhinweis auf Hartkern-Fundstellen/Finaltabelle; Richter Suder und der Beschluss vom 21.05.2022 bleiben als Klaerungsanker geschützt.

- `reports/sgf_anschlussruege_textbausteine_2026-05-05.md`
  Interne Bausteinablage aus dem bereinigten BVerwG-Faxtext für sachdienliche Auslegung, Gerichtsleitungsabgrenzung, Akten-/eRV-/Drittzugang, Tabellenhinweis, BVerwG-Kopie und Azubi42/Human-in-the-Loop-Strukturierung ohne Bank-/Zahlungsdaten.

- `reports/sgf_anschlussruege_harter_kern_sendefassung_2026-05-05.md`
## Kurze Hartkern-Sendefassung für SGF

- beschraenkt auf Aktenbasis, Kernbereich-/Organisationszuordnung, Nachweise, Zustellung/eRV als Zugangspunkt, abweichende Namensschreibweise als Sorgfalts-/Zustellungs-/Aktenführungsprüfpunkt und ausdruecklichen Schutz der Suder-Achse vor Fehladressierung als Angriff.

- `reports/sgf_anschlussruege_harter_kern_prueftabelle_2026-05-05.md`
  Anlage-3-Prüftabelle zur Hartkern-Sendefassung mit acht sicheren Punkten und direkten Bundesankern, einschließlich pauschalem Richterschutz ohne Definition/Einzelbezug.

- `reports/sgf_anschlussruege_harter_kern_prueftabelle_2026-05-05.csv`
  CSV-Quelle derselben Hartkern-Prüftabelle für Tabellenexport, Drucksatz oder XLSX-Erzeugung.

- `reports/sgf_anschlussruege_harter_kern_prueftabelle_2026-05-05.xlsx`
  Exportierte XLSX-Anlage der Hartkern-Prüftabelle; enthält dieselben acht Punkte wie MD/CSV.

- (private, nicht versioniert) SGF-Hartkern-Fundstellenanlage (Outputs)
  Anlage 4 zur Hartkern-Sendefassung mit 34 harten Fundstellen aus der quellenbereinigten 544-Zeilen-SGF-Finaltabelle. CSV/XLSX und Arbeitsqueue liegen daneben.

- `reports/sgf_sorgfalt_richterschutz_namenspunkt_2026-05-05.md`
  Vorsichtiger SGF-Nachtrag zu falscher Namensschreibweise, Zustellung/Aktenführung, pauschalem Richterschutz und punktbezogener Art.-97-/DRiG-Abgrenzung. Enthält Bundesanker, Quellenlinks und einen direkt nutzbaren Schriftsatzbaustein.

- `reports/sgf_docx_render_qm_2026-05-05.md`
## Render-QM zur SGF-DOCX-Vollversion

- dokumentiert Artifact-Tool-Lauf, den bekannten lokalen Blank-Page-Rendererbefund, den erfolgreichen Word/PDF-Gegenrender und die korrigierten DOCX-Builderregeln für Markdown-Marker, Listen und exakte Dateinamen.

- `reports/sgf_namens_identitaetspruefung_2026-05-05.md`
## Bundesanker-Prüfspur für falsche Namens-/Zustellungsdaten

- kanonischer Eigenname, abweichende Fremdschreibweise, Zustellung, Beteiligtenbezeichnung, Aktenführung, Gehoer, Klaerungspflichten und vorsichtiger Versandbaustein.

- `reports/live_dom_first_rule_2026-05-05.md`
  Arbeitsregel für Live-DOM-First bei sichtbaren UI-Fehlern, inklusive aktueller DOM-/Version-Prüfung.

- `reports/status_hygiene_2026-05-05.md`
  Arbeitsbericht zum großen Git-Status nach UI-/Deploy-/Legal-Bloecken, sicherem Temp-Putz und neuer Status-Hygiene-Regel.

- `reports/infrastrukturpflege_regel_2026-05-05.md`
  Betriebsregel für wiederkehrende Infrastrukturinspektion, Updates, Backups, Live-Nachprüfung und Dokumentation.

- `reports/case_learning_button_2026-05-01.md`
  Bericht zum Bibliothek-Knopf `Fall lernen`, dem privaten Fall-Lernplan unter `runtime/case_learning_runs/`, der Serverroute `/api/legal/case/learn` und dem Schutz gegen gespeicherte Paperless-Secrets/Rohdokumente.

- `reports/schriftsatz_role_notice_2026-05-01.md`
  Bericht zum rollenabhaengigen Schriftsatzkopf-Hinweis, dem Privatpersonenpfad, dem Human-in-the-Loop-Pfad und dem neuen Test für Login-/Nachweisrollen.

- `reports/legal_perspectives_2026-05-01.md`
  Bericht zum neuen Blickwinkel-Menü, dem BuschCode-Blickwinkelblock und den Gegenüberstellungs-Knoten für Schriftsatzarbeit.

- `reports/legal_perspective_avatars_2026-05-01.md`
  Bericht zur neuen SVG-Avatar- und Emotions-Aura-Schicht für Blickwinkel, inklusive Emoshape-/Unreal-Ideenbookmark und Hinweis, dass keine externe UE- oder Cloud-Runtime eingebaut wurde.

- `reports/bibliothek_disk_guard_2026-05-01.md`
  Smoke- und Betriebsbericht zum neuen Plattenwächter für 42-Minuten-Fuelllaeufe, inklusive 95/99%-Schwellen, Admin-Hook und Timer-Pause.

- `reports/jurabibliothek_sources_refresh_2026-05-01.md`
  Quellen- und Refreshbericht für Gesetze im Internet, Verwaltungsvorschriften, Bundesrechtsprechung, recht.bund.de, Bundesanzeiger und Buzer inklusive Versions-/Aenderungssortierung.

- `reports/jurabibliothek_coverage_backfill_2026-05-03.md`
  Betriebsbericht zum RII-ZIP/XML-Vollbestand, Coverage-Check, 2-Minuten-Wellen, Paperless-Skip bei aktiver Jurabibliothek und Live-Stand 2026-05-03 05:06 CEST.

- `reports/jurabibliothek_search_langpacks_research_2026-04-30.md`
## Recherche- und Integrationsnotiz zu fertigen Jura-Such-/Sprachbausteinen

- OpenLegalData, Legal Reference Extraction, OpenSearch/Elastic German Analyzer, Hunspell, Decompounder, Tesseract-Sprachdaten, German Legal NER, Urteil-Segmentierung und amtliche Quellenpfade.

- `reports/cbtc_vm_crash_guard_2026-04-30.md`
## Betriebsbericht zur Live-Quarantaene für CBTC/Elasticsearch

- Befund, gesetzte cgroup-Limits, Watchdog und nächste Prüfbefehle.

- `00_META/AZUBI42_BAUSTELLEN_2026-04-30.md`
  Tagesgedaechtnis für offene und provisorische Pfade in Windows-App, Server/Forgejo, Azubi-Editionen, Paperless, Discourse, Matrix, Security und Doku.

- `70_TESTS_AND_SMOKE/security/scan_public_config_leaks.ps1`
  Wiederholbarer Scanner für DB-/Konfig-Hinweise in öffentlichen Dateien. Private Runtime-, Backup- und lokale Tresorbereiche werden nicht gescannt; Ausgabe redigiert Passwort-/Token-/Secret-Werte. Gesperrte Cache-/Temp-Pfade werden beim Rekursionslauf übersprungen, damit lokale Pytest- oder Browser-Arbeitsordner den Security-Smoke nicht abbrechen.

- `70_TESTS_AND_SMOKE/security/audit_installer_archives.ps1`
  Wiederholbarer ZIP-Audit für `30_INSTALLERS/ubuntu24/azubi42-server/azubi42-linux-server.zip`. Prüft Pflichtdateien, verbotene Secret-/Runtime-/Auth-/Browserprofil-Pfade, alte App-Level-Windowshelfer und hochriskante Secret-Schlüssel in kleinen Textdateien, ohne Beispielwerte als Fund zu werten.

- `toolbox/package/build_azubi42_server_zip.ps1`
  Reproduzierbarer Paketbauer für das Forgejo-Ubuntu-Server-ZIP. Erstellt das Archiv aus dem Installerbaum, lässt volatile/private Pfade, Domain-Site-Binaerassets, lokale Intro-Medien und große optionale Logo-Medien aus und kann den Archiv-Audit direkt mit `-RunAudit` ausführen.

- `toolbox/package/build_azubi42_release_artifacts.ps1`
  Release-Artefaktbauer für die Linux-Serveredition. Führt den ZIP-Build aus, kopiert das Ergebnis nach `runtime/release_artifacts/<tag>/`, schreibt `.sha256`, versioniertes Manifest und `azubi42-linux-server-latest.json`.

- `toolbox/package/publish_forgejo_release_asset.ps1`
  Optionaler Forgejo-Release-Uploader. Nutzt nur lokal gesetztes `[private Angabe entfernt]`, kann fehlende Releases anlegen und vorhandene Assets bewusst ersetzen; echte Tokens werden nicht versioniert.

- `50_CODEX_OPENAI/release-manifests/`
## Versionierte kleine Release-Manifeste für große, ignorierte Artefakte. Aktueller Linux-Server-Releasevertrag

- `v27.2.116-27136`, 730261 Bytes, SHA256 `0ac2af79d124270ab37ac3c6e71a1562fa7fde174c4ac80c860d6dbd94e55604`.

- `40_INTEGRATIONS/forgejo/`
  Forgejo-Betriebsbereich für HTTP-413-/Pushlimit-Härtung. Enthalten sind Runbook, Plesk-vHost-Vorlagen für nginx/Apache, secretfreies `app.ini`-Beispiel, `apply_forgejo_pushlimit_plesk.sh` für Plesk-vHost-Ausführung, `apply_forgejo_pushlimit_nginx_site.sh` für den aktuellen `/etc/nginx/sites-available/forgejo`-Pfad und der Betriebsbericht `reports/forgejo_http_413_push_limit_2026-05-06.md`.

- `toolbox/legal/jurabibliothek/egmr_bverfg_materials.py`
  EGMR-/BVerfG-/Bundesanker-Loader für die Jurabibliothek. Laedt das amtliche EGMR-Beschwerdepaket, BVerfG-Verfassungsbeschwerde-Seiten, kuratierte BSG-Gewinn-/Strukturanker und Grundrechts-/Normanker in SQLite, FTS, Dokumentversionen und Embedding-Queue. Dynamische EGMR-XFA-Formulare bleiben als Rohformular mit Hash erhalten und bekommen ein Fallback-Atom.

- `toolbox/legal/jurabibliothek/config/egmr_bverfg_sources.json`
  Quellenmanifest zum EGMR-/BVerfG-Paket mit offizieller URL, Dokumenttyp, Sprache, Gericht, Jurisdiktion, Atom-Tags und Fallbacktexten für Formulare ohne Textschicht.

- `toolbox/legal/templates/egmr_bverfg/`
  Basistemplates für EGMR-Beschwerde, mehrteilige EGMR-Anträge, BVerfG-Verfassungsbeschwerde mit §-32-Eilbaustein und Bundesanker-Atomisierung. Die Vorlagen sind Arbeitsstruktur, nicht Ersatz für amtliche Formulare.

- `40_INTEGRATIONS/paperless/hooks/azubi42_paperless_legal_ocr.py`
  Paperless-Legal-OCR-Hook mit stabiler Tesseract-Aufloesung über Env/CLI/Windows-Standardpfad. Lokale Nicht-Paperless-Dokument-IDs erzeugen Sidecars ohne unnoetigen Django-Content-Patch; produktive numerische Paperless-Dokumente behalten den Patchpfad.

- `app_v27_multimedia/azubi42_server.py`
## Live-Modellrouting-Hotfix 2026-05-09

- Codex-Native-Directroute entfernt Handoff-only-Felder (`open_app`, `dry_run`, `sandbox_mode`, `writable_roots`) vor dem Weiterreichen an die OpenAI Responses API.
- Das Dienstprofil nutzt die serverseitige Codex-/OpenAI-Konfiguration, ohne Tokens in Repo-Dateien zu schreiben.

- `app_v27_multimedia/js/06_API_ROUTER/06_1_ModelSelector.js`
## Modellselector-Hotfix 2026-05-09

- OpenAI-/Codex-Cache-Modelle werden als Objekt- oder String-Payload akzeptiert.
- Reine Stringmodelle wie `gpt-5.5` erhalten wieder echte `option.value`/`data-model-id`, damit GPT-Auswahl nicht auf lokale Ollama-Modelle zurückfällt.

- `app_v27_multimedia/js/06_API_ROUTER/06_5_LocalFetch_Enhanced.js`
  Lokaler Modellpfad (Ollama) mit sehr hohen stabilitaetsfördernden Timeouts, Modell-Preflight über `/api/tags`, Auto-Fast-Kurzlauf und klarer HTTP-Fehlerabbildung (401/`Login erforderlich` => Zugriff-/Sessionproblem statt "LLM kaputt"). Cross-Origin-/Remote-Ollama wird nicht als stiller "lokaler" Pfad behandelt, sondern muss als eigener Providervertrag sichtbar werden.

- `app_v27_multimedia/js/02_CHAT/02_1_ChatWindow.js`
  Antwort-/Routingkernel für Chat + Workspace-Knoten. Enthält harte lokale Toolpfade (`Direktrechnung`, `Direktwissen`) die niemals als Modellantwort gerendert werden, sowie die Trennung der Providerpfade (Ollama lokal, Cloud, Codex Native, Websuche/BrowserGateway). Offenes Delta (2026-05-17): 401 `Login erforderlich.` (Server-Login-Gate für `/api/*`) wird im Chat derzeit noch zu grob als lokales Modell/Ollama normalisiert; Ziel ist eine strukturierte Server-Login-Klassifizierung + Preflight (siehe `reports/azubi42_modellrouting_reparaturplan_2026-05-17.md`). Verifiziert 2026-05-18: das Gate liefert JSON nur mit `error.message` (kein `error.kind`), während `isModelAuthError(...)` im Chat bereits nacktes `login erforderlich` matched; daher ist die strukturelle Fehlerklassifizierung zwingend, bevor Providertexte angezeigt werden.

- `70_TESTS_AND_SMOKE/ui/audit_parallel_chat_runs.mjs`
## Smoke erweitert 2026-05-09

- prüft Server-Payload-Bereinigung für Codex Native und Stringmodell-Support im Modellselector zusätzlich zu Parallelchat, Sticky-Provider und OpenAI/Ollama-Trennung.

- `toolbox/legal/schriftsatz_konsistenz_audit.py`
## Konsistenz-Audit erweitert 2026-05-09

- erzeugt gehärteten BVerwG-Nachtrag zum 07.05.-Eingang mit Forderungsspiegel, stärkt den SGP-AOK-Nachtrag um eine klare Überlänge-/Verzugsachse, legt eine Tonentschärfung für den riskanten SGP-AOK-Absatz an und bevorzugt vorhandene `SGP-EILT-AOK_FINAL_PRINT*.docx` als aktive Versandfassung.
- Spiegel liegen in `runtime/forgejo_repo/` und `linixserveredition/`.

- `toolbox/legal/gesamtvorgang_qm_audit.py`
## QM-Klassifikation korrigiert 2026-05-09

- Tonentschärfungs- und Korrekturpaketdateien werden als Prüfberichte statt als Haupt-SGP-Schriftsätze bewertet, damit keine falschen Pflichtachsenwarnungen entstehen.

- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- `00_META/CODEX_FREIGABE_PROMPTS_REGEL.md`
## Arbeitsregel 2026-05-09 für Codex-Freigabeanfragen

- `Ja alle`-/Dauerfreigaben sollen als anpassbare Werkzeug-/Dateitypklasse formuliert werden, besonders bei DOCX/XLSX/PDF-/Formatarbeiten; breite Regeln bleiben für destruktive oder secretnahe Aktionen gesperrt.

- `toolbox/legal/language_stack_audit.py`
## Sprachstack-Audit 2026-05-09 für OCR/Windows/Server/RAG/Codex

- prüft Tesseract, Tessdata, User-Words/User-Patterns, PyMuPDF/Poppler-Fallbacks, Hunspell/Aspell, Ollama, Codex CLI und Jurabibliothek-FTS.
- Server und Windows erzeugen JSON/Markdown-Reports unter `reports/language_stack_audit_2026-05-09_*`.

- `toolbox/legal/config/language_packs/`
  Azubi42-Jura-Sprachprofil mit Tesseract-Wortliste, Patternliste und `legal_de_language_profile.json` für deutsches Amts-/Jura-/Sozial-/Medizin-Vokabular, Fraktur/Alt-OCR und RAG-Normalisierungsregeln. Stand 2026-05-13: Toolbox- und Paperless-Dictionaries sind als Union synchronisiert, 226 User-Words und 27 konservative Patterns; zusätzlich enthalten sind Akteneingang, Sichtbarkeitswiderspruch, Beiladung, Rechtsschutzgleichheit und 21/23-Punkte-/AZ42-Kuerzel.

- `runtime/language_packs/tessdata/`
  Lokale Windows-Tessdata-Ablage mit `deu`, `eng`, `osd`, `frk`, `Latin` und `Fraktur`; wird nicht als Repo-Rohdaten versioniert, aber vom OCR-Hook über `AZUBI42_PAPERLESS_TESSDATA`/Projektfallback genutzt.

- `reports/language_stack_audit_2026-05-09.md`
  Kurzbericht zur Sprachstack-Härtung inklusive Serverpaketen, Windows-Projekt-Tessdata, OCR-Smokes und Auditstatus.

- `40_INTEGRATIONS/fach-azubis/kinderrechte-fachazubi/SCENARIOS.json`
## Nachladbare Mini-Szenarien für Kinderrechte

- Taschengeld-Check, Bildrechte-Check, Schul-/Jugendhilfe-Wegweiser und Azubi-Arbeitsschutz-Check mit Altersbereich, Eingaben, Ampeloutputs, Rechtsankern und nächstem sicheren Schritt.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`
  Fachazubi-Katalog rendert jetzt `mini_scenarios` im App-Popup und als ausklappbares Kartenpanel; Kinderrechte kann dadurch als echtes Modul mit Alltagsszenarien geladen werden, statt nur als Beschreibungstext zu erscheinen.

- `20_EDITIONS/azubi42-de/website/js/detail.js`
  Öffentliche Detailseiten rendern `mini_scenarios` als eigene Szenarien-Sektion mit Navigationsanker; Installer-Spiegel ist synchronisiert.

- `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md`
## Erweitert 2026-05-17

- empfängerlogische Tabellenanlagen, gerichtsfeste Wortwahl, deutsches sichtbares Datumsformat und saubere Beiziehungs-/Aktenhinweise für Schriftsatz-/RAG-Ausgaben.

- `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/website/css/site.css`
## UI-Fix 2026-05-24 (Startseite, rechts oben)

- `.hero-patch figcaption` ist nun im Patch-Bild verankert (absolute Position), mit responsivem Font/Padding und Wrap-Schutz.
- Verhindert Überlappung und Auslaufen des Textcontainers unterhalb des Mission-Patch-Bildes.

- `20_EDITIONS/azubi42-de/website/css/site.css`
  Spiegelung des identischen Mission-Patch-Layoutfixes für die Editionsquelle, damit kein Drift zwischen Installersite und Editionsstand entsteht.

- `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/website/assets/malicious-compliance-rebels-follow-rules-patch-transparent.png`
## Asset-Fix 2026-05-24

- transparente/maskierte Patch-Variante durch Original-Patch ausgetauscht (ohne Schaetzmaske), um weisse Social-Preview-Hintergründe zu vermeiden.

- `20_EDITIONS/azubi42-de/website/assets/malicious-compliance-rebels-follow-rules-patch-transparent.png`
  Editionsspiegel des identischen Patch-Asset-Fixes für konsistente Darstellung auf Website und Social-Vorschau.

- `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/website/index.html`
  `og:image` um Cache-Buster `?v=20260524a` erweitert, damit Social-Crawler die aktualisierte Patch-Grafik neu laden.

- `20_EDITIONS/azubi42-de/website/index.html`
  Editionsspiegel des identischen `og:image`-Cache-Busters.

- `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/website/index.html`
  Hero-Patch-Textblock (`figcaption`) entfernt (2026-05-24), damit im rechten Startseiten-Patch nur das Bild ohne Overlay-Text dargestellt wird.

- `20_EDITIONS/azubi42-de/website/index.html`
  Editionsspiegel der Entfernung des Hero-Patch-Textblocks.

- `toolbox/legal/config/language_packs/legal_de_language_profile.json`
## Sprachprofil erweitert 2026-05-17 um `court_facing_language`

- eigene Seite vermeidet "Behauptung", Datumsanzeige `17.Mai.2026`, Empfängerlogik für Gerichte/Patientenstelle/Aufsicht und kanonisches Aktenbeiziehungsmuster.

- `toolbox/legal/config/hw3d_knowledge_layers.json`
## WH3D-/RAG-Charaktervertrag erweitert 2026-05-17 um `recipient_hin_her_axis`

- aktueller Anschlussbezug zuerst, kompletter Empfänger-Schriftwechsel 2020-2026 laufend bleibt aktiv, vertikaler Hin-Her-Zeitstrahl als UI-/Datenvertrag mit User-/Empfänger-Spur, Originalanker, Früchten und nächstem Anschluss.

- `00_META/AZUBI42_BAUSTELLEN_2026-04-30.md`
## UI-Bookmark 2026-05-17 für späteres Frontend-Bauteil `Hin-Her-Zeitstrahl` je Empfänger

- vertikale abwechselnde Korrespondenzansicht mit Original-PDF/Textlayer/Seitenbild, Früchten/Fruechtchen, Antwortstatus und Mahnstatus.

- `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md`
## Erweitert 2026-05-17 um den Weiterleitungs-/Meldepflicht-Kopfblock

- bei gerichtlicher oder behördlicher Kenntnisnahme werden Weiterleitung, Abgabe, Beiziehung und Meldung nach einschlaegiger Pflicht als Druckfront geführt; blosse Rueckgabe an den Antragsteller ersetzt die Weiterleitung nicht.

- `toolbox/legal/config/language_packs/legal_de_language_profile.json`
  Legal-Sprachprofil erweitert 2026-05-17 um `forwarding_pressure_rule`, `knowledge_notice_header_block`, `temporal_jurisdiction_rule` und `support_office_payment_boundary_rule` für Schriftsatz-, Tabellen- und RAG-Ausgaben.

- `toolbox/legal/config/hw3d_knowledge_layers.json`
  WH3D-/RAG-Charaktervertrag erweitert 2026-05-17 um `forwarding_and_notice_pressure` und `temporal_jurisdiction_first`, damit Blickwinkel, RAG und Schriftsatzbau den Kopfhinweis und die damalige Zuständigkeit einheitlich führen.

- `toolbox/legal/config/private_schriftsatz_notice_blocks.json`
## Privater Schriftsatz-Hinweisblock `private_provisorische_einordnung` erweitert 2026-05-17

- provisorischer, nicht anwaltlich verfasster Selbsthilfe-Schriftsatz ohne Rechtsbeistand, Azubi42-Beta-Software als verfahrensbedingter Mehraufwand/Folgeschaeden-/Forderungsachse, sachdienliche Auslegung statt anwaltlicher Qualitaetsanforderung, positive Verfahrensbeschleunigung und barrierefreier eRV-Kanal.

- `toolbox/legal/config/language_packs/legal_de_language_profile.json`
  Legal-Sprachprofil erweitert 2026-05-17 um `software_self_help_claim_rule`, `layperson_sachdienliche_auslegung_rule` und `barrier_free_erv_rule`; Root-, Linixserveredition- und Installer-Spiegel sind synchronisiert.

- `toolbox/legal/config/hw3d_knowledge_layers.json`
  WH3D-/RAG-Charaktervertrag erweitert 2026-05-17 um `azubi42_self_help_claim_axis` und `barrier_free_erv_channel`, damit Blickwinkel, RAG, Schriftsatzbau und Forderungslogik Azubi42-Selbsthilfe sowie barrierefreien elektronischen Zugang als eigene Achsen führen.

- `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md`
## Dauerregel 2026-05-17 für Azubi42-Selbsthilfe-/Beschleunigungsblock nachgeschaerft

- Nutzer/Kläger muss keine anwaltliche Qualitaet und keine gerichtliche Sortier-/Aktenbeiziehungsarbeit leisten; auslegungsbeduerftige nicht anwaltliche Fassung loest Hinweis, Ergänzungsmöglichkeit, PKH-/Beiordnungsprüfung und sachdienliche Auslegung aus.

- `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md`
## Debug-/Neuproduktionssperre 2026-05-17

- während grobe Denk-, Format-, Empfängerlogik-, Quellen-, Anker- oder Tabellenfehler gesucht werden, sind aktuelle Schriftsätze/Tabellen/Regeln/WH3D-/RAG-Ableitungen nur Prüf-/Debugfassungen.
- Danach ist ein kompletter Neulauf aus frisch gezaehltem Bestand Pflicht.

- `toolbox/legal/config/hw3d_knowledge_layers.json`
  Core-Prinzip `debug_before_full_rebuild` ergänzt, damit WH3D/RAG/Blickwinkeltests im Fehlerdebug keine reparierten Einzelfassungen als finalen Gesamtstand behandeln.

- `toolbox/legal/config/hw3d_knowledge_layers.json`
## Core-Prinzip `identity_anchor_first` ergänzt

- Parteiname, Vorname, Rolle und Schreibweise kommen aus dem kanonischen Originalanker; OCR-/Modellvarianten und stille Namenskorrekturen sind gesperrt.

- `toolbox/legal/config/language_packs/legal_de_language_profile.json`
  `identity_anchor_rule` ergänzt, damit RAG/Schriftsatz-/Tabellen-Ausgaben abweichende Namensvarianten nur noch als belegte Fremd-/Fehlschreibweise führen.

- `toolbox/legal/config/hw3d_knowledge_layers.json`
## `recipient_hin_her_axis` um `multi_lane_ui_model` erweitert

- `Hin-Her-Zeitstrahl Mehrspur` führt alle Verfahrens-/Vorgangsbeteiligten als nebeneinanderliegende vertikale Beteiligten-Lanes mit aktuellem Datum oben, erstem aktenkundigen Kontakt unten, Ein-/Ausblenden, Zoom/Drag/Pan/Fullscreen, klickbaren Früchten/Fruechtchen, Original-PDF, Textlayer, markierbarem Text und Sidecar-/Seitenbildansicht.

- `00_META/AZUBI42_BAUSTELLEN_2026-04-30.md`
## UI-Bookmark `Hin-Her-Zeitstrahl Mehrspur` ergänzt

- JCB/JCZ/JCM/SGF/SGP/LSG/BSG/StA/GenStA/VG-VwG/BVerwG/BVerfG/EGMR/Patientenstelle als Beteiligten-Lanes; nach Paperless-Import, OCR-/Sidecar-Lauf, Atomindex oder Dokumentfreigabe neu bauen oder sichtbar als veraltet markieren.

- `toolbox/legal/realfall_hin_her_zeitstrahl_mehrspur.py`
## Datenquellenpflichtiger Generator für den `Hin-Her-Zeitstrahl Mehrspur`

- liest nur eine explizit übergebene aktuelle CSV, verarbeitet Human-Sync-/Gate-Tabellen ebenso wie Paperless-/Sidecar-Manifeste, erzeugt JSON/HTML/Nodes-CSV, gruppiert Tabellenzeilen zu Schriftverkehrs-/Dokumentpunkten, führt Beteiligten-Lanes mit Drag-Sortierung, Ein-/Ausblenden, Pan/Zoom/Fullscreen, Klickdetails und Quellen-Hash und sperrt implizite `latest`-/Altbestands-Fallbacks.
- Ausgabeziele in AMT-/A-amt-Originalordnern werden verweigert.
- Die HTML-Ansicht besitzt zusätzlich die `Fokusspur`: linke Beteiligtenliste als sortierbare Steuerliste, mittige aktuelle Schriftverkehrsachse mit `Aktueller Schriftsatz in Bearbeitung`, links/rechts gesetzten User-/Gegenstellenkarten und anklickbaren Frucht-/Fruechtchen-Markern aus den Tabellenzeilen.
- Der Statistikblock rechnet aus Gesamtbestand, sichtbarer Mehrfachauswahl oder aktiver Fokusspur und zeigt Dokument-Scope, Tabellenzeilen/Früchte, Spuren, Seiten, Beginn, letzten Tag und undatierte Dokumentpunkte statt technischer Zeichenzahl, doppelter Ereignis-/Zeilenbegriffe oder ungeprüfter Schriftsatzanzahl.
- Seit 22.Mai.2026 kann der Generator über `--doc-link-index-csv` eine aktuelle Join-Tabelle mit `fullread_paperless_id` laden; Rechtsmittel-Hin-Her führt dadurch `1353` Einzelpunkte mit `1353` echten Paperless-URLs und `262` eindeutigen Paperless-Dokumenten, ohne Punkte durch Dokumentgruppierung zu verlieren.

- `70_TESTS_AND_SMOKE/legal/test_realfall_hin_her_zeitstrahl_mehrspur.py`
## Smoke für den Mehrspur-Zeitstrahl

- prüft explizite Eingabequelle, Dokumentgruppierung, Lane-Erkennung, Output-Dateien und den Schutzvertrag `no_implicit_latest_fallback`/`no_private_default_input_path`.

| `toolbox/legal/normketten_normalizer.py` | PPKn-/Normketten-Normalisierer für RAG, Bundesanker-Join, Antwortdeckung, WH3D-Früchte und Gerichtstabellen; bewahrt Gesetzeskuerzel, Basisnorm, i.V.m., analog/a.F./n.F. und liefert Satzfenster mit Offsets | 2026-05-21 |

| `toolbox/legal/normketten_service.py` | Privater localhost-HTTP-/MCP-Anschluss für PPKn-/Normketten-Normalisierung mit `POST /normalize`, Satzgrenzen, strukturierten Referenzen und Loopback-Schutz | 2026-05-21 |

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_2_Navigation.js`
## View-Routing-Fix 2026-05-24

- `communication` ist kein Canvas-Alias mehr; `switchView('communication')` zeigt wieder die eigene `#view-communication` statt versehentlich `#view-org`.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_2_Navigation.js`
  Installer-Spiegel des View-Routing-Fixes für `communication` (dedizierte Communication-Ansicht statt Canvas-Missrouting).

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`
## Legacy-Template-Härtung 2026-05-24

- Alt-Templates ohne `instanceId`/`serviceId` werden beim Laden normalisiert; Actions `Login/Web/+ Neu/X` und Notiz-Inputs binden robust über `templateId` plus `templateIndex`-Fallback. v27.2.170 erzeugt `Login`/`Web` direkt als BrowserGateway im vorhandenen Communication-Knoten; die Webconnect-Infokarte ist nur noch Fallback, wenn das Gateway-Modul nicht geladen werden kann.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`
  Installer-Spiegel der Legacy-Template-Härtung für Communication inklusive `templateIndex`-Fallback und direktem BrowserGateway-Renderpfad ab v27.2.170.

- `toolbox/legal/realfall_amt_vi_table_answerdeckung_cleanup.py`
## AMT-VI-Tabellenbereinigung 2026-05-24

- zeilentreuer Cleanup für `33_GERICHTE_DOCX_XLSX_MENSCHENSPALTEN_BSG_HISTORY_FIX_2026-05-20`; liest QA-Traces, Fullread-Gegenstückmapping und Antwortdeckungs-Sync, ersetzt gerichtssichtbare Plan-/Techniktexte in `Stand`, `Gegenprobe`, `Frist/Mahnung`, `Rechtliche Anker` und `Oeffentliches Interesse/Ueberlaenge` durch konkrete Nachfolgeabgleichtexte, dedupliziert überlappende Originalauszüge und hält Zeilen-/Spaltenzahlen stabil.

- `toolbox/legal/paperless_detailpunkt_erledigung_audit.py`
## Server-/Paperless-Audit 2026-05-25

- liest die explizite 1508-Zeilen-Punktliste und den aktuellen Paperless-Sidecar-Bestand direkt aus dem Paperless-Serverbestand, klassifiziert Antwortkandidaten nur als spätere `eingang_gericht_behoerde`-Dokumente und erzwingt Hard-Anchor-Antwortdeckung.
- Optionaler Parameter `--extra-answer-candidates-csv` nimmt konservativ klassifizierte echte Antwort-/Entscheidungsdokumente aus dem Scope-Gap zusätzlich auf; der gültige erweiterte Lauf nutzt 156+121=277 Antwortkandidaten.
- Generierte Antragssaetze, Folge-/Beschwer-Spalten, Gegenprobe, Stand- und Weiterleitungstexte bleiben aus dem Matchtext draussen; jeder mögliche Treffer braucht Aktenzeichen, Datum, Nummer, Seiten-/Absatz-/Zeilenbezug, seltenen Eigenbegriff, Normkette oder Original-/Gegenstücksbezug.
- Ausgabe ist Audit-only mit Manifest, Dokument-zu-Detailpunkt-Coverage (`0/1/mehrere`), Detailpunkten, Antwortdeckungs-CSV, Summary, Zusatzkandidatenregister und Markdown; Gerichtstabellen werden nicht veraendert.

- `toolbox/legal/paperless_incoming_violation_flag_audit.py`
## Eingangskontakt-Prüfflag-Audit 2026-05-25

- prüft den breiten Paperless-Eingangskontakt-Scope auf Rechtsbruch-/Verstoß-Prüffelder, unterscheidet dabei Paperless-Datensatz, Seite und grobe Schriftstueckgruppe und erzeugt nur Prüfflags ohne Rechtsbehauptung oder Tabellenmutation.

- `toolbox/legal/paperless_scope_gap_candidate_classifier.py`
## Scope-Gap-Klassifizierer 2026-05-25

- klassifiziert die 535 aus Antwortdeckung ausgeschlossenen Reviewkandidaten in echte Antwort/Entscheidung, Beleg/Formular, Seitenfragment, Stellenbezug ohne Antwortfunktion oder Ausschluss.
- Rollen wie Anlage, Vollmacht, Klage, Beschwerde, Schriftsatz und Ruege sperren Antwortdeckung trotz Entscheidungswoertern; Ergebnis v4: 121 Zusatzkandidaten für den erweiterten Audit.

- `toolbox/legal/paperless_detailpunkt_residual_report.py`
## Residual-/Verify-Helfer 2026-05-25

- erzeugt aus einem Detailpunkt-Auditordner offene Punkte, Antwortdeckungs-Reviewqueue, unscharfe externe Modellqueue, Lane/Achsen-Status, Seitenzahl-Plausibilitaetsalarm, SHA256-Register und Markdown-QM, ohne Gerichtstabellen zu veraendern.
- Erweiterter Auditstand: 747 offene Punkte, 761 Antwortdeckungs-Reviewpunkte, 11 unscharfe externe Modellqueue.

- `toolbox/legal/paperless_answerdeckung_review_blockcheck.py`
## Antwortdeckungs-Review-Blockcheck 2026-05-25

- liest die 761 möglichen Antwortdeckungen, joined das Paperless-Manifest, prüft gleiche Spur, Querbezug, Kandidatenrolle, Achsenmatch, Score/Overlap/harte Anker und Kandidatendokument-Massenverwendung.
- Erzeugt Reviewblock-CSV, Klassenqueues, Lane/Achsen-Statistik, Kandidatendokumentliste, Summary und Markdown; alle Ausgaben sind audit-only ohne Gerichtstabellenmutation.

- `toolbox/legal/paperless_answerdeckung_same_lane_sentence_review.py`
## Same-Lane-Satzfenster-Review 2026-05-25

- liest die 44 gleiche-Spur-Spitzenqueues, extrahiert Satzfenster aus Paperless-Sidecars, klassifiziert Kandidatenrolle, Selbsttreffer und Satzdeckungsrisiko.
- Ergebnisqueue trennt `gedeckt`, `teilweise_gedeckt`, `offen_lassen` und `falscher_treffer`; aktueller Lauf: 44/44 falscher Treffer, keine Tabellenmutation.

- `toolbox/legal/paperless_answerdeckung_open33_final_sentence_review.py`
## Open33-Endprüfung 2026-05-25

- joined die 33er Restbasis mit den offenen Satzfensterqueues, schreibt Ursprungspunkt und Originalantwortsatzfenster je Zeile und trennt audit-only in `offen_endgueltig` und `teilweise_beantwortet_pruefen`; aktueller Lauf: 30/3, keine Tabellenmutation.

- `toolbox/legal/paperless_answerdeckung_open_basis_builder.py`
## Open30-Basisbuilder 2026-05-25

- baut aus Open33 die menschenlesbare offene Schriftsatz-/Tabellenbasis und die getrennte Teilantwort-Mini-Reviewqueue mit HTML/Export; aktueller v2-Lauf: 30 offene Basiszeilen, 3 Mini-Reviewzeilen, zusätzliche Sinnsatz-/Spur-/Rechtsprüffelder und erweiterte Entscheidungscodes, keine Tabellenmutation.

- `toolbox/legal/paperless_answerdeckung_mini_review_sync.py`
## Mini-Review-Sync 2026-05-25

- liest Open30-Basis und 3er-Mini-Reviewqueue, erzeugt ohne Review-Export ein Entscheidungstemplate plus Pending-Bericht und validiert spätere JSON-/CSV-Review-Exporte auf Punkt-ID, Entscheidungscode und Vollstaendigkeit, bevor eine abgeleitete offene Basis oder Teilantwort-Restbasis geschrieben wird; aktueller Serverstand v2 BSG-Rechtsprüfung apply: 33 offene Basiszeilen, 0 Teilantwort-Restbasis, keine Tabellenmutation.

- `[lokaler Pfad]`
## Meistertext-Arbeitskopie 2026-05-25 inline ergänzt

- Abschnitt `VI.a PKH-Versagen No.
- 1, Suder-Beschluss und Jobcenter Barnim` fuehrt fruehes PKH-/Beiordnungsversagen, spaetere PKH-Bestaetigungswirkung, offene Barnim-Kenntnisfrage zum Beschluss vom 21.Mai.2022 und vierjaehrige Leistungsversagens-/Folgeschadensachse.

- `[lokaler Pfad]`
## Meistertext-Arbeitskopie 2026-05-25 inline ergänzt

- Abschnitt `Orientierung zum Akten- und Tabellenpaket` führt PDF/A+XLSX-Arbeitsvereinfachung, Jan.2023-Zuständigkeitsanker, Rechtsbeistandsluecke, 09er-Altakte/21-Punkte-Spur, Diktat-/Druckmetadaten und LSG-6-Monats-Ruege.

- `[lokaler Pfad]`
## Struktur-QA für die beiden Inline-Ergänzungen

- DOCX-ZIP lesbar, erwartete Kernanker vorhanden, keine internen Antwortdeckungs-/Generatorstatusbegriffe und keine ungeprüfte harte Verhandlungsnummer.

- `[lokaler Pfad]`
## Meistertext-Arbeitskopie 2026-05-26 inline ergänzt

- `II.a Existenzgründung und SGB-II-Leistungsanspruch` plus 09er-Altakte/Existenzgründer-Strukturspur.
- Stellt klar, dass Existenzgründung/selbstaendige Taetigkeit kein SGB-II-Ausschlussgrund ist und medizinische Frageboegen/pauschale Schweigepflichtentbindungen keine rechtmaessige Einzelfallprüfung ersetzen.
- Leseführung `621` korrigiert.

- `[lokaler Pfad]`
## Meistertext-Arbeitskopie 2026-05-26 inline ergänzt

- `Existenzgründung, SGB-II-Leistungsanspruch und Strukturversagen` mit SGB-II-Zugang, Mitwirkungs-/Sozialdatengrenzen, 30-Prozent-Achse, EU-Grenzverkehrs-/Gesundheitsdatenbezug und 09er-Akten-/Strukturspur.

- `[lokaler Pfad]`
## Struktur-QA für die Existenzgründer-/SGB-II-Ergänzungen

- DOCX-ZIP lesbar, Kernanker vorhanden, SGP-Leseführungszahl korrigiert, XLSX-Zähler unveraendert.

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`
## Geführter Paperless-/Forgejo-Vorgangslauf 2026-05-26

- neue API `/api/legal/case/workflow` und `/api/legal/case/workflow/action`[private Angabe entfernt]`runtime/case_workflow_requests`; echte Ausgaben entstehen nur durch vorhandene Bauteile.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js`
## Bibliothek-Paperless-Panel 2026-05-26

- zeigt Paperless-, Forgejo-, Zielpfad- und Aktenaliasstatus, führt Standardaktionen als Workflow-Buttons und synchronisiert Ergebnisse in Fall-Lernen, AZ/Helix und Mahnwesen.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`
  Layout-Anker `data-paperless-role="case-workflow"` für die geführte Vorgangsschiene im bestehenden Paperless/OCR-Panel.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/view_start_menus/bibliothek_menu.js`
  Toolbox-Menü `Fallauswertung` erweitert um Profil sichern, Fall lernen, AZ/Helix bauen, Mahnwesen, Hinweisblock und Tabellenlauf vormerken.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/...`
  Installer-Spiegel der geführten Paperless-/Forgejo-Vorgangsschiene synchronisiert.

- `toolbox/legal/config/hw3d_knowledge_layers.json`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/paperless_task_rules.json`
## Digitalzugangs-/Haftungsverschiebungs-Regel verankert

- eBO, MJP, BundID, Online-Ausweis/eID, AusweisApp, EGVP, E-Post, § 65a SGG, § 130a ZPO, § 55a VwGO, Zustellung und Frist erzeugen einen Prüfpunkt für Zurechnung, Beweisrisiko, Barrierefreiheit, Ersatzweg, Geheimnummer-/Geraete-/Sperrpflichten und Missbrauchsrisiko; keine automatische Haftungs- oder Strafbehauptung.
- Installer- und Paperless-Dictionary-Spiegel synchron.

- `toolbox/legal/config/hw3d_knowledge_layers.json`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/paperless_task_rules.json`
## Hochrisiko-/Betreiberpflicht-Regelanker `high_risk_digital_access_operator_*`

- trennt MJP/eBO als Zugangssystem vom AI-Act-Hochrisiko-KI-Pfad und setzt bei digitalem Zugangsmonopol, eID-Zurechnung, Frist-/Zugangswirkung oder KI-gestuetzter Tatsachen-/Rechtsanwendung ein Betreiberpflicht-Gate.

- `toolbox/legal/config/*`, `toolbox/legal/jurabibliothek/config/sources.json` und Installer-/Paperless-Spiegel
  Regelanker `azubi42_operator_audit_local_runtime_*`, `erv_accessibility_separation_*` und OCR-Human-loop; Bibliothek-Quellen zu AI Act, eIDAS, EU-eID-Schemes und BITV.

- `[lokaler Pfad]`
## BVerfG-/EGMR-Lesepaket 2026-06-03 bereinigt

- sichtbare Arbeitsnotizen mit internen Begriffen in `00_INTERN_QA_NICHT_DRUCKEN` verschoben, BVerfG-Schriftsatz neu als gerichtssichtbarer Entwurf aufgebaut, EGMR-Begründung/Prüfbogen/LSG-URL-Anlage neutral ersetzt und sichtbarer Sperrwortscan bestanden.

- `40_INTEGRATIONS/paperless/hooks/azubi42_paperless_legal_ocr.py`
## Paperless-Inlinebild-Vertrag 2026-06-04

- DOCX-/PDF-Inlinebilder erzeugen `inline_visuals`, jedes Bild traegt eine `inline_visual_fruit` mit Bild-, Dokument-, Anker-, Folgen-, Fristen- und Mahnwesen-Clicktargets; dieselben Früchte werden zusätzlich in `fruits[]` gespiegelt, damit alte und neue WH3D-/Ansichtsbauteile nicht an verschachtelten Bilddaten vorbeilaufen.

- `toolbox/legal/paperless_inline_visuals_backfill.py`
## Resume-Backfill 2026-06-04 für bestehende Paperless-Sidecars

- liest echte Paperless-Originalpfade über `--path-map`, schreibt `inline_visuals_audit`, extrahiert Inlinebilder kontrolliert und synchronisiert den top-level Bildfruchtspiegel ohne Tabellen- oder Schriftsatzmutation.

- `toolbox/legal/paperless_inline_visuals_vision_gate.py`
## Vision-Gate 2026-06-04 für bestehende `vision_blocked`-Inlinebilder

- klassifiziert blockweise mit lokalem Vision-Modell oder konservativer Review-Heuristik, schreibt `vision_review`, aktualisiert Bildfruchttexte und lässt unklare/große Bilder als Review offen statt sie als verstanden zu behaupten.
- Wiederholte Modellfehler öffnen im Batch einen Circuit Breaker, damit der Lauf stabil weiter in die Review-Schiene geht.

- `toolbox/legal/paperless_atom_indexer.py`, `toolbox/legal/paperless_sidecar_text.py`, `10_SHARED_CORE/app_v27_multimedia/js/10_PAPERLESS_RAG/10_1_PaperlessBridge.js`
## RAG-/Viewer-Anbindung für `vision_review`

- Inlinebild-Kategorie, Kurzbeschreibung, sichtbarer Text, Konfidenz und Human-Review-Bedarf werden lesbar, ohne interne Bildhash-/OCR-Arbeitsnotizen in gerichtssichtbare Texte zu übernehmen.

- `40_INTEGRATIONS/legal-jura/zugangsbau/`
  Zugangsbau-Defaking-SSOT für digitale Jura-Zugänge. Führt offizielle Quellen, Roadmap und `zugangsbau_operator_registry.json` für BundID/eID, MJP/eBO/EGVP/OSCI, XJustiz, FIT-Connect/ZBP sowie Berufs-/Sonderpostfaecher. Sperrt Provider-Login-Fakes, iframes, Screenshottransport, Frontend-Secrets, Provider-UI-Klone, fachfremde Jura-Menüs und Sendebereitschaft ohne belegten Betreiber-/SDK-/API-/Bridge-/Drittproduktvertrag.

- `toolbox/deploy/deploy_live_winscp.ps1`
## Deploy-Vertrag 2026-06-06

- packt `40_INTEGRATIONS/legal-jura/zugangsbau/` mit Registry, README, Roadmap und offizieller Quellenliste in das Live-/PrepareOnly-Artefakt.
- Der Ubuntu-Installer-Spiegel führt dieselbe Paketregel.

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`
## Zugangsbau-API 2026-06-06

- `/api/legal/zugangsbau/status?module=jura` liest die Operator-Registry, redigiert Secrets und absolute Pfade, liefert Modulscope, offizielle Quellen, Betreiber, Gates und gesperrt bis zum Nachweis-Zähler ohne Produktivbehauptung.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`
## Bibliothek-Panel `Zugangsbau / Originalanschluesse`

- Status-/Quellen-/gesperrt bis zum Nachweis-Fläche ohne Login-nicht belegter Zustand, Provider-Klon oder fachfremde Jura-Menüs.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js`
## Zugangsbau-Frontend 2026-06-06

- Status laden, offizielle Quellen als externe Links, Modulscope/Zähler/Gates anzeigen und Login-Freshness-Refresh mitlaufen lassen.

- `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py`
  Registry-/Server-Vertragstest für No-nicht belegter Zustand-Policy, Jura-Modulscope, gesperrt bis zum Nachweis-Status, offizielle Quellen und Secret-/Pfad-Redaktion.

- `70_TESTS_AND_SMOKE/ui/audit_zugangsbau_frontend.mjs`
  Statischer Frontend-Smoke für Zugangsbau-Panel, Endpoint, Renderer, Refresh-Hook und Serverroute.

- `70_TESTS_AND_SMOKE/ui/clicktest_zugangsbau_blickwinkel_userflow.mjs`
  Echter Browser-Userflow für Bibliothek/Zugangsbau und Blickwinkel-Kern/Gegenüberstellung gegen laufende Azubi42-UI.

- `10_SHARED_CORE/app_v27_multimedia/js/00_STATE/destructiveConfirm.js`
  Zentraler roter Pflichtbestätigungsdialog für irreversible Aktionen; verlangt `wirklich loeschen` und normalisiert deutsche Umlaut-Eingaben.

- `10_SHARED_CORE/app_v27_multimedia/js/07_DATA_VAULT/07_4_WorkspaceSessions.js`
  Workspace-Löschen setzt vor Reset/Entfernen den zentralen roten Löschdialog voraus.

- `10_SHARED_CORE/app_v27_multimedia/js/07_DATA_VAULT/07_6_CommunicationSpaces.js`
  Communication-Space-Löschen setzt vor Reset/Entfernen den zentralen roten Löschdialog voraus.

- `10_SHARED_CORE/app_v27_multimedia/js/07_DATA_VAULT/07_5_PerspectiveSpaces.js`
  Blickwinkel-/Perspektiv-Space-Löschen setzt vor Reset/Entfernen den zentralen roten Löschdialog voraus.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`
  Theme-Löschen und Zugang-Löschantrag nutzen den roten Pflichtbestätigungsdialog statt einfacher Prompts.

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_6_BrowserGateway.js`
  Browserprofil-/Sessiondaten-Leerung ist als destructive action geschützt.

- `10_SHARED_CORE/app_v27_multimedia/css/style.css`
  CSS für roten Löschdialog, Warnkopf, Zielanzeige, Pflichtfeld und Abbruch-/Löschbuttons.

- `70_TESTS_AND_SMOKE/ui/audit_destructive_delete_confirm.mjs`
  Statischer Audit für rote Pflichtbestätigung, Importpflichten und Entfernung alter einfacher Löschprompts.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`
## Communication-Accountprofil-Race geschlossen

- Beim Wechsel in die Communication-Ansicht wird das Account-Matrix-Profil bei Bedarf nachgeladen, damit dev/jura das eigene Matrix-Webtemplate im Userfluss identisch anlegen.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`
  Installer-Spiegel des Communication-Accountprofil-Race-Fixes.

- `toolbox/communication/provider_contracts_apply.py`
## Communication-Provider-Vertragsaudit 2026-06-06

- `--audit`[private Angabe entfernt]`--write` bleibt nur für bewusst gelieferte private Vertragswerte zulaessig.

- `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_contracts_apply.py`
  Ubuntu-Installer-Spiegel des Communication-Provider-Vertragsaudits.

- `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py`
## Server-GUI-Smoke für Communication erweitert

- injiziert stale Matrix-/Provider-Raumkataloge in die Browser-Session und prüft, dass ohne explizites Laden, Userbindung und echte Bridge keine alten Räume, Provider-Webapps, externen Tabs oder Bild-/iframe-/BrowserGateway-Fakes sichtbar werden.

- `00_META/QA_ECHTER_KLICKTEST_UND_BIDIREKTIONALER_ABGLEICH.md`
## Harte QA-Regel für echte Klicktests

- angemeldeter User, DevTools/F12-Console bis Monitormitte, sichtbare UI-/Console-Prüfung, New-Tab-/App-Handoff-Sperre in der Server-App, echte Smartphone-/SDK-Pflicht für Mobile und bidirektionaler azubi42.de-/Server-Abgleich.

- `70_TESTS_AND_SMOKE/ui/audit_azubi42_de_server_bidirectional.py`
## Bidirektionaler Audit `azubi42.de -> Server` und `Server -> azubi42.de`

- extrahiert Website-Überschriften, Kacheln, Aktionen und Datenpunkte, mappt gegen echte Server-Bauteile, führt Login-/Nachweiswege als `fail_closed` wenn kein Betreiber-/Secret-/Tokenvertrag belegt ist, erkennt New-Tab-Ausbrueche/Console-/Overflow-Kandidaten im optionalen Browserlauf und schreibt JSON-Reports.

- `40_INTEGRATIONS/qa/systemd/azubi42-bidirectional-audit.service`
  Serverseitiger One-Shot für den bidirektionalen Website-/Server-Audit unter `[Serverpfad]` mit redigiertem Runtime-QA-Output.

- `40_INTEGRATIONS/qa/systemd/azubi42-bidirectional-audit.timer`
  72h-Gegenprobe für den bidirektionalen Audit; ersetzt keinen manuellen F12-Klicktest, hält aber Gaps und Rueckfaelle automatisch sichtbar.

- `[lokaler Pfad]`
## EGMR-Druckpaket 2026-06-08 bereinigt

- falsche Druckanlagen `A04a`, `A09a` und `A10c` entfernt, A08 von Seitenfragment auf vollständige `Ablehnung_2025-11-22.pdf` umgestellt, Anlagenverzeichnis korrigiert, Suder-Beschluss als `zurueckinpotsdam_2022-05-21.pdf` sichtbar und in `A03` ausdruecklich benannt; Tabellen-/Nachweisverweise auf konkrete Anlagen/Zeilen (`A06b lfd.
- Nr.
- 1-1511`, `A11a-A11d`, USB-Manifest lfd.
- Nr.
- 1-53) konkretisiert.

- `[lokaler Pfad]`
## EGMR-USB-Digitalpaket 2026-06-08

- 53 SHA256-eindeutige Korrespondenzdateien ab Oktober 2025 mit beibehaltenem Originaldateinamen plus Metadatum, keine Paperless-Stagingnamen, keine kuenstlichen A-/U-Prefixe, keine bekannten Varianten-/Seitenfragment-Stapel; Manifest `USB_Anlagenmanifest_Korrespondenz_ab_2025-10.csv` und zweizeiliger USB-Aufklebertext für Umfang/eRV-Ersatzeinreichung.

- `[lokaler Pfad]`
## EGMR-Einreichungsspiegel synchron zum Druckpaket

- derselbe 53er USB-Anlagenbestand, dasselbe Manifest, dieselbe Suder-Benennung und dieselbe Sperre gegen Arbeitsnamen, alte Varianten und nicht-originale sichtbare Anlagenkopien.

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`
## Zugangsbau-Live-Readiness 2026-06-08

- `/api/legal/zugangsbau/test?module=jura` führt vorhandene SDK-/Bridge-Prüfungen und offizielle Betreiberquellen-Probes read-only aus, zaehlt `sdk_passed`, `activation_ready` und `fail_closed`, redigiert Pfade/Secrets und schaltet ohne Betreibervertrag nichts frei.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`
  Bibliothek-Zugangsbau-Panel mit eigenem `Testlauf`-Button neben `Neu lesen`, ohne neue Provider-Oberfläche.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js`
## Zugangsbau-Testlauf-Frontend

- ruft den read-only Live-Test auf, rendert Belege, Blocker, Aktivierungszähler und Operatorreihen im bestehenden Panel.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/...`
  Ubuntu-Installer-Spiegel für Zugangsbau-API, Layout und Bibliothek-Testlauf synchronisiert.

- `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py`, `70_TESTS_AND_SMOKE/ui/audit_zugangsbau_frontend.mjs`, `70_TESTS_AND_SMOKE/ui/clicktest_zugangsbau_blickwinkel_userflow.mjs`
  Zugangsbau-Smokes prüfen jetzt Status plus Live-Readiness-Test, read-only-Vertrag, Aktivierungsblocker und keine Produktiv-Freischaltung ohne belegten Vertrag.

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`
## Zugangsbau-Status/Testlauf-Trennung 2026-06-11

- Status laeuft ohne Betreiber-Netzprobe; nur der explizite Testlauf ruft amtliche Quellen read-only ab und protokolliert Methode, URL, HTTP-Status, Content-Type und Bytes.

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`
## Zugangsbau-Secret-Contract-Gate 2026-06-11

- liest Betreiber-/Sandbox-Vertragsdaten nur serverseitig aus `[private Angabe entfernt]`, Runtime-Secretpfaden oder `[private Angabe entfernt]`; Status/Testlauf geben nur Gruppenstatus, Zähler und fehlende Gruppen aus, keine Secrets, Zertifikate, Token oder Pfade.

- `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py`
## Zugangsbau-Secret-Contract-Regression 2026-06-11

- injiziert einen privaten Fixture-Vertrag für BundID/eID, MJP/eBO/EGVP/OSCI, XJustiz und FIT-Connect, erwartet 4/4 konfigurierte Operatoren und sperrt Secret-, Token- und Pfad-Leaks im Status-, Test- und Login-Ping-Payload.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js`
  Zugangsbau-Testlauf zeigt offizielle Probe-Ergebnisse je Operator als sichtbare Belegzeilen; keine Umdeutung in Produktivbereitschaft, Aktivierung bleibt gesperrt bis zum Nachweis.

- `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json`
  Amtliche Test-/Quellenpfade für XJustiz und FIT-Connect auf erreichbare Betreiberseiten korrigiert; Registry bleibt SSOT für Betreiberstatus, Quellen und Blocker.

- `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py`, `70_TESTS_AND_SMOKE/ui/audit_zugangsbau_frontend.mjs`, `70_TESTS_AND_SMOKE/ui/clicktest_zugangsbau_blickwinkel_userflow.mjs`
## Smokes sichern die neue Trennung

- Status nur ein lokaler BundID-Readiness-Test, Live-Test vier Operatoren mit offiziellen Probe-Belegen, `activation_ready=0` und `fail_closed=4`.

- `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`
## Communication-Mailclient-Vertrag 2026-06-11

- eigener Provider `mailclient` für Webmail, IMAP, SMTP, Defaultordner, Secret-Dateien und explizite SMTP-Sendefreigabe; kein eRV-/EGVP-/OSCI-Ersatz.

- `toolbox/communication/provider_contracts_bootstrap.py`, `toolbox/communication/provider_contracts_apply.py`, `toolbox/communication/provider_contracts_fixture.py`
  Provider-Contract-Tools kennen jetzt 12 Dienste inklusive Mailclient. Bootstrap zieht Felder nach, Apply übernimmt private Werte nur serverseitig und Fixture erzeugt smoke-only Secretdateien für vollständige Readiness-Tests ohne Produktivbehauptung.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` und Spiegeldateien unter `30_INSTALLERS/ubuntu24/azubi42-server/`
  Ubuntu-Serveredition synchron zu Zugangsbau-Secret-Contracts, Mailclient-Vertrag, Provider-Tools, Auth-Template, Registry und Funktionsinventar v27.2.241.

- `70_TESTS_AND_SMOKE/integrations/test_communication_connectors_contract.py`
  Contract-Smoke prüft Mailclient als eigene IMAP/SMTP/Webmail-Rolle, secretfreie Readiness, `mailclient_imap_smtp`-Backend und SMTP-Sendefreigabe ohne Provider-nicht belegter Zustand.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`
## Communication-Dienstklick-Fix 2026-06-12

- Der alte Connector-/API-Dienstklick wurde am selben Tag durch WebView-Strict überholt.
- Normale Provider-Dienstwahl öffnet nur noch echte Native-WebViews oder bleibt ohne Native-Host geschlossen; Connector-/API-Knoten bleiben expliziter Admin-/Bridgepfad.

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`
## Loginseite v27.2.247

- Hauptansicht auf Closed-Beta-/Invite-Status, kurze Rollen-/Loginart-Erklaerung und dezente Nachweiswege reduziert; sichtbarer Betreiber-Ping-Terminalblock und BundID-Debugprotokoll aus der Hauptansicht entfernt.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`
## Communication/Mail-Trennung v27.2.247

- Messenger-Dienste und SnappyMail/Mailclient werden in getrennten Sidebar-Sektionen geführt; Mailtexte nutzen Postfach/Ordner statt Raum/Chat und bleiben von eRV-/OSCI-/EGVP-Transport getrennt.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`
## Communication-Startansicht v27.2.247

- erklaert Messenger und Mail als getrennte Bauteile, damit Dienst-, Mail- und eRV-Zugänge nicht vermischt werden.

- `10_SHARED_CORE/app_v27_multimedia/css/style.css`
## Communication-Sidebar-Sections v27.2.247

- visuelle Trennung für Dienst- und Mailblock.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/...`
## Ubuntu-Installer-Spiegel v27.2.247

- Login, Communication/Mail-Trennung, Layout, CSS und Manifest synchron zum Shared-Core.

- `10_SHARED_CORE/app_v27_multimedia/azubi42_version.json`
## Statischer Live-Marker v27.2.247

- `version_number`, `version_code` und `[private Angabe entfernt]` synchron zum Manifest, damit nginx/static und Backend denselben Stand melden.

- `40_INTEGRATIONS/legal-jura/zugangsbau/BETRIEBSFAEHIGKEIT_ERV_72H_2026-06-12.md`
## 72h-eRV-Betriebsschicht

- trennt kurzfristig nutzbare offizielle Betreiberwege `MJP/BundID` für Buerger und `beA` für Anwalt/Kanzlei von der eigenen OSCI-/EGVP-Drittproduktstrecke.
- Azubi42 liefert Paketbau, PDF/A-/XJustiz-/Manifest-Preflight und Nachweisablage, aber kein Provider-Login-Klon.

- `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json`
## Registry um `operational_72h_lane` für `mjp_ebo_egvp_osci` und `bea` erweitert

- offizieller Web-MVP darf betriebsfähig werden, direkter OSCI-/beA-Ersatzclient bleibt gesperrt ohne Vertrag, Rolle, Zertifikat und Receipt-Smoke.

- `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py`
## Zugangsbau-Login-Regression auf den aktuellen Clean-Login angepasst

- Public-Ping bleibt im Codepfad vorhanden, sichtbarer Betreiber-Debugbutton bleibt aus der Login-Hauptansicht heraus.

- `20_EDITIONS/azubi42-de/website/index.html`
  Public-Site Script-Cachevertrag auf `azubi42de-20260613-browserfix` gesetzt und statischen externen CBTC-Link mit `target="_blank"`/`rel="noopener noreferrer"` abgesichert.

- `20_EDITIONS/azubi42-de/website/js/site.js`
  Dynamische externe Links in Fachazubi-/Berufsatlas-Templates nutzen durchgehend den zentralen `externalLinkAttrs`-Vertrag.

- `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/website/`
  Ubuntu-Installer-Spiegel der Public-Site-Link- und Cachetoken-Korrektur.

- `70_TESTS_AND_SMOKE/ui/audit_azubi42_domain_site.mjs`
  Public-Site-Audit prüft Deep-Thought-/Buerokratie-Chaos-Satz, statische externe HTML-Anker und dynamische Linktemplates gegen target-blank/noopener/noreferrer.

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`
  Native-/Server-GUI-Smoke wartet auf echte Communication-Servicebuttons und prüft Matrix, Telegram, WhatsApp, Slack, Discord, LinkedIn, Facebook, Instagram, TikTok, Signal, Mailclient/SnappyMail, Teams und Google Chat als echte Electron-`webview`-Knoten.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`
## Communication-Provider-Webapp-Renderer v27.2.253

- Native-Host bevorzugt für alle Provider inklusive Mailclient echte `webview`-Sessions; normaler Browser nutzt nur für SnappyMail den gleiche-Origin-HTML-Include und bleibt bei externen Diensten geschlossen.

- `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py`
  All-Service-Web-Smoke prüft alle Communication-Dienste, zaehlt linke Sidebar-Scrollbereiche, validiert SnappyMail und dokumentiert headless Snappy-`ERR_ABORTED` ohne daraus einen nicht belegter Zustand-Erfolg zu machen.

- `00_META/COMMUNICATION_PROVIDER_PRIVATE_CONTRACTS_2026-06-14.md`
## Communication-Provider-Testzugangs-Runbook

- offizielle Betreiberwege, lokale private Secret-/Contract-Dateien, Apply-/Audit-Befehle und dienstweise Smoke-Reihenfolge für Matrix, Telegram, WhatsApp, Slack und Mailclient.

- `00_META/COMMUNICATION_PROVIDER_ACCOUNT_AUDIT_2026-06-17.md`
## Communication-Provider-Account-Audit

- echter Azubi42Tester-Anker, Live-Harness-Status, fehlende Betreiberwerte und dienstweise echte Account-/Token-/Smoke-Schritte für Telegram, Slack, WhatsApp und Mailclient; keine nicht belegter Zustand-Zugangsdaten.

- `10_SHARED_CORE/app_v27_multimedia/css/style.css`
  Communication-Sidebar-Dienstbuttons umbrechen ab 2026-06-15 in einer zweizeiligen Struktur aus Dienstname und Status-Badge; der Browser-Fit-Smoke sperrt Textüberlauf im linken Communication-Menü.

- `70_TESTS_AND_SMOKE/ui/audit_zugangsbau_frontend.mjs`
  Zugangsbau-Frontend-Smoke erwartet den Zugangsbau in der Aktenhaltung statt in der Bibliothek; Bibliothek bleibt für Gesetze, Formulare, Vordrucke, Dienstanweisungen und Nachschlagewerke reserviert.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css`
  Ubuntu-Installer-Spiegel der Communication-Sidebar-Fit-Regeln.

- `00_META/sidebar_menu_audit_2026-06-16.md`
  Sidebar-Menü-Prüfliste für alle linken Bereiche; dokumentiert Soll-Zweck, fachliche Zuordnung und offene Communication-Provider-Beobachtung.

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_1_ToolManager.js`
## Toolbox-/Schnellnavigation v27.2.244+

- Paperless/OCR, FixIt/Paperless-Kontrolle und Mahnwesen springen über `focusAktenhaltungTarget` in die Aktenhaltung; Bibliothek bleibt Quellenraum.

- `70_TESTS_AND_SMOKE/ui/audit_tool_navigation_routing.mjs`
## Guard gegen falsches Tool-Routing

- sperrt Paperless-, FixIt- und Mahnwesen-Ziele in der Bibliothek für Shared-Core und Ubuntu-Installer-Spiegel.

- `toolbox/legal/zugangsbau_operator_reply_intake.py`
## Zugangsbau-OSCI/EGVP-Betreiberantwort-Intake 2026-06-18

- übernimmt Zertifikat, Postfach-/Testpostfachdaten, Intermediaer-/Drittproduktdaten, adresslose Kompatibilitaetsbestätigung und Send-/Empfangs-Smoke nur aus dem privaten Server-Watch-Ordner in den privaten Contract; Status bleibt secretfrei und ohne Vollpfade.

- `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/zugangsbau_operator_reply_intake.py`
  Ubuntu-Installer-Spiegel des Betreiberantwort-Intake-Tools.

- `60_RUNTIME_TEMPLATES/systemd/azubi42-zugangsbau-reply-intake.path`, `60_RUNTIME_TEMPLATES/systemd/azubi42-zugangsbau-reply-intake.service`
  Systemd-Watch für Betreiberantworten unter `/var/lib/azubi42/private/zugangsbau/operator-replies`; startet den Intake als root mit `UMask=0077`.

- `70_TESTS_AND_SMOKE/legal/test_zugangsbau_operator_reply_intake.py`
  Regressionstest für Contract-Update, Zertifikat-/Smoke-Kopie und Secret-Leak-Sperre in stdout.

- `40_INTEGRATIONS/legal-jura/zugangsbau/EBO_PERSONALAUSWEIS_WOHNSITZLOSEN_ZUGANG_FEASIBILITY_2026-06-19.md`
## Geprüfter Architekturentscheid für `eBO-Personalausweis`

- Online-Ausweis-DKK/restricted identifier nur als interner HMAC-/Hash-Anker; SAFE/eBO/OSCI/XJustiz bleiben getrennte Betreiber- und Transportgates.

- `40_INTEGRATIONS/legal-jura/zugangsbau/EID_TESTGATE_RUNBOOK_2026-06-19.md`
## Serverprüfstand für private eID/OSCI-Pfade

- HMAC-Pepper, Evidence-Ordner und Operator-Reply-Watch-Ordner sind vorbereitet; die erneute Kandidatensuche fand keine echte Betreiberantwort, keinen PersoSim-/AusweisApp-Callback und keine serverseitige AusweisApp-/PersoSim-Installation, daher bleiben Readiness und Transport gesperrt bis zum Nachweis.

- `[private Angabe entfernt]`
  Privater serverseitiger HMAC-Pepper für das eID-Subject-Gate; Wert wird nie in Repo, Matrix, Logs oder Statusausgaben gespiegelt.

- `/var/lib/azubi42/evidence/eid`, `/var/lib/azubi42/evidence/osci`, `/var/lib/azubi42/private/zugangsbau/operator-replies`
  Private Serverpfade für echte eID-Callback-, OSCI-Smoke- und Betreiberantwort-Artefakte; leere Ordner erzeugen roten Gate-Status statt Produktivfreigabe.

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`
## Zugangsbau-Operator-Reply-API 2026-06-19

- `/api/legal/zugangsbau/operator-reply-intake` startet das bestehende Intake-Tool gegen private Reply-/Cert-/Smoke-Pfade, schreibt nur in private Contracts und liefert secretfreie Zähler/Statusfelder ans Frontend.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js`
## Zugangsbau-Frontendbutton `Antworten einlesen`

- ruft den Operator-Reply-Intake aus dem Userflow heraus auf und zeigt verarbeitete JSON-/Cert-/Smoke-Kandidaten, geaenderte Felder und verbleibende Gate-Gruppen ohne private Werte.

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`
## Mailclient-Audit-BCC 2026-06-19

- ausgehende Hilfsmails können private `audit_bcc_recipients`/Env-Werte als SMTP-Envelope-Empfänger nutzen; kein sichtbarer `Bcc`-Header und keine hardcodierte private Adresse im Repo.

- `40_INTEGRATIONS/legal-jura/zugangsbau/ZUGANGSBAU_LOGINWEGE_PROJEKTDATEI_2026-06-19.docx`
## Word-Projektdatei für Loginwege und Betreiber-Gates

- Matrix, SnappyMail, eID, BundID, eBO/EGVP/OSCI/XJustiz, beA/Gericht, Communication-Provider, Paperless/TOC und Abnahmechecklisten.

- `toolbox/communication/provider_contracts_apply.py`, `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`
## Mailclient-Private-Contract-Erweiterung 2026-06-19

- Audit-BCC- und Incoming-Forward-Felder sind als erlaubte Vertragswerte und Bootstrap-Templatefelder enthalten; echte Adressen bleiben private Serverwerte.

- `40_INTEGRATIONS/forgejo/apply_forgejo_frame_headers_nginx_site.sh`
## Forgejo/Nginx-Frame-Header-Härtung

- patcht Root, `azubi42-dev` und `azubi42-jura` auf `X-Frame-Options: SAMEORIGIN` und `Content-Security-Policy: frame-ancestors 'self'`; verweigert `ALLOWALL` und Wildcard-Frame-Ancestors.

- `toolbox/deploy/run_server_smoke_harness.sh`
## Deploybarer Server-Smoke für Live-Instanzen

- prüft Runtime, Systemd-Kernunits, Forgejo-Header, Zugangsbau-Readiness, XJustiz-Validator, OSCI/EGVP-Transport und Communication-Provider secretfrei.

- `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/deploy/run_server_smoke_harness.sh`
  Ubuntu-Installer-Spiegel des Server-Smoke-Harness für reproduzierbare Serveredition.

- `00_META/SERVER_SMOKE_HARNESS_2026-06-17.md`
  Runbook und Ergebnisanker für die Live-Smokes auf `azubi42-jura` und `azubi42-dev`; dokumentiert erwartete gesperrt bis zum Nachweis-Gates für OSCI/EGVP und Provider ohne echte Betreiberwerte.

- `toolbox/communication/mailclient_provision_local_user.py`
## Mailclient-Kontoanlage 2026-06-17

- legt pro Azubi42-User serverseitig Passwort-Secret, Maildir und optional Linux-Systemuser/-Gruppe an; stdout bleibt secretfrei und ohne Passwort.

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`
  Mailclient-Status trennt `[private Angabe entfernt]`, IMAP-Konfiguration und echten IMAP-Transport. `canLogin` wird erst wahr, wenn Secret und lokaler IMAP/Dovecot-Port zusammen bereit sind.

- `/etc/systemd/system/azubi42-dovecot-local.service`
  Live-Server-Bauteil für lokalen SnappyMail-/Azubi42-IMAP-Transport auf `127.0.0.1:1143`; wird vom Mailclient-Status als `azubi42_dovecot_local` erkannt und bleibt vom generischen System-Dovecot getrennt.

- `/etc/azubi42/dovecot-local/dovecot.conf`
  Live-Server-Konfiguration für lokalen IMAP gegen die provisionierten Linux-Maildirs; erlaubt Full-Email-Login über `auth_username_format = %Ln`, nutzt keine externe IMAP-Freigabe und darf seit `v27.2.300` nur `[private Angabe entfernt]`/`prefetch` ohne `pam`-/`passwd`-Fallback enthalten.

- `/opt/snappymail/data/_data_/_default_/domains/{default,forgejo,buschitut.eu}.json`
  Live-SnappyMail-Domainvertrag auf lokalen IMAP-Port `1143` und lokalen SMTP-Port `25`; dadurch kann der SnappyMail-Webclient den durch Azubi42 angelegten User direkt anmelden.

- `runtime/qa/mailclient_account_button_20260617_183835_a035fa.json`
## Echter Server-GUI-Button-Smoke

- Accountstatus nach Provisioning `login_ready`, Secret/IMAP/SMTP/Transport grün, keine fehlenden Gates.

- `runtime/qa/snappy_login_20260617_210617.json`
## Echter SnappyMail-Weblogin-Smoke

- Formularlogin mit provisioniertem Account, Inbox sichtbar, keine Login- oder Netzwerkfehler.

- `toolbox/deploy/deploy_live_winscp.ps1`
  Live-Deploy-Whitelist enthält den Mailclient-Provisioner, damit der Server-App-Root den Button `Mailkonto pruefen/anlegen` wirklich ausführen kann.

- `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/mailclient_provision_local_user.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/deploy/deploy_live_winscp.ps1`
  Ubuntu-Installer-Spiegel für Mailclient-Provisioner und Deploy-Whitelist.

- `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`
  Regression für Secret-/Maildir-Provisioning, fehlenden IMAP-Transport und gesperrt bis zum Nachweis `canLogin`.

- `toolbox/communication/azubi42_tester_bootstrap.py`
## Azubi42Tester-Bootstrap 2026-06-18

- migriert alte Klartext-Testpasswoerter aus privaten Contract-JSONs in referenzierte Secretdateien mit restriktiven Dateirechten; JSON bleibt ohne Passwortwert.

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`
## Mailclient-Sessionauswahl 2026-06-18

- `mailclient_effective_config` waehlt bei Accountlisten nur explizit angeforderte oder zur eingeloggten Session passende Konten; Status/Sync/Send erhalten denselben echten IMAP-/SMTP-Vertrag.

- `70_TESTS_AND_SMOKE/integrations/test_azubi42_tester_bootstrap.py`
  Regression für Secretdatei-Migration, Passwortfeld-Entfernung und keine Klartext-Passwortwerte im Bootstrap-Contract.

- `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`
## Regression für sessionpassende Accountlisten

- Testuser bekommt seinen IMAP/SMTP-Account, fremde User erben keinen Default-Testaccount.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`
## SnappyMail-Header-Ready-Guard 2026-06-18

- Mailclient-Knoten erzeugen fehlende Header-Tools nach, beobachten wiederhergestellte SnappyMail-Knoten per DOM-Observer, starten die serverseitige Accountprüfung automatisch und laden den SnappyMail-Include erst nach loginbereitem Konto mit Ready-Parameter neu.

- `70_TESTS_AND_SMOKE/integrations/test_snappymail_proxy_contract.py`
  Regression sperrt SnappyMail-Escape-/Koordinaten-Workarounds und verlangt echten Header-/Provisioning-/Reload-Vertrag.

- `10_SHARED_CORE/app_v27_multimedia/{index.html,azubi42_version.json,version_manifest.json}`
  Build-Token `v27.2.254 / 27279` für den SnappyMail-Header-Ready-Deploy, damit Browser-/Server-GUI-Smokes keine alte Communication-JS aus dem Cache prüfen.

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`
## Mailclient-Paperless-Ingest 2026-06-21

- eingehende Mailanhaenge werden mit `ensure_paperless_folder_tags(...)` aus dem User-Servicekontext an `paperless_upload_document(...)` übergeben.
- Dadurch landen SnappyMail-/Mailclient-Anhaenge in der Paperless-Ablage mit echten Tag-Dicts statt mit rohen Ordnernamenstrings.

- `toolbox/communication/provider_contracts_apply.py`
  Provider-Apply erlaubt browser-direkte Vertragsfelder (`provider_webapp_url`, `login_url`, OAuth-/App-URLs und Relay-Policy-Flags), damit externe Dienste über den User-Browser laufen können, ohne Provider-Traffic über Azubi42-Serverrelay zu behaupten.

- `toolbox/communication/provider_contracts_bootstrap.py`
## Bootstrap repariert stale Communication-Vertraege

- leere Browserfelder werden aus dem Template befuellt, alte Bot-/Bridge-/Systemservice-Werte für Telegram/WhatsApp/Slack werden auf `per_user_browser_session`, `provider_native`, `system_service_allowed=false` und `Sende-Freigabe=false` zurückgesetzt.

- `toolbox/communication/provider_contracts_smoke.py`
  Provider-Smoke redigiert Secretdatei-Referenzen als `<file-ref>` und trennt externe Provider-Policy-Smokes vom dedizierten Mailclient-Smoke mit echtem Userkontext.

- `70_TESTS_AND_SMOKE/integrations/test_mailclient_paperless_ingest.py`
## Regression für RFC822-Anhang-Ingest aus Mailclient/SnappyMail in Paperless

- prüft User `b@azubi42.de`, Folder-Tag-Dicts, Secretfreiheit und IMAP-Close/Logout.

- `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py`
## Live-Communication-Audit 2026-06-21

- Login-Fallback nutzt echte Tastatureingabe, klickt 12 Dienste als User, prüft einen linken Sidebar-Scrollbarbereich und sperrt Provider-URLs im falschen Kontext.

- `70_TESTS_AND_SMOKE/ui/audit_sidebar_bibliothek_server_playwright.py`
## Live-Sidebar-/Bibliothek-Audit 2026-06-21

- startet `azubi42_server.py`, meldet einen Smoke-User an, klickt linke Hauptbereiche plus sichere Unterfunktionen, schließt Startscreen-/Update-Overlays und prüft Bibliothek fachlich auf Quellen/Formulare/Gesetze statt Aktenhaltung-/Paperless-/FixIt-Fremdkontrollen.

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_9_ErrorFixList.js`
## FixIt-API-Routing 2026-06-21

- `buildFixitEndpoint(...)` haengt FixIt-Report, Reorder und Autofix an den aktiven App-Basispfad, damit `azubi42-dev`/`azubi42-jura` keine Root-`/api/fixit/...`-404 mehr erzeugen.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_9_ErrorFixList.js`
  Ubuntu-Installer-Spiegel des FixIt-API-Routings mit App-Basispfad.

- `10_SHARED_CORE/app_v27_multimedia/css/style.css`
## Sidebar-Scrollfix 2026-06-21

- `.azubi-fixit-list` ist im linken Menü nicht mehr selbst scrollbar; der Hauptscroll bleibt bei `#sidebar-nav`.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css`
  Ubuntu-Installer-Spiegel des Sidebar-Scrollfixes für die FixIt-Liste.

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_6_BrowserGateway.js`
## BrowserGateway-Prefix-Resolver 2026-06-21

- API-Aufrufe respektieren aktive App-Pfade wie `/azubi42-dev` und `/azubi42-jura`; Bootlog nur bei Debug-Flag.
- Verhindert Root-`/api/browser/...`-Fehlrouten und reduziert Console-Laerm.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_6_BrowserGateway.js`
  Ubuntu-Installer-Spiegel des BrowserGateway-Prefix-Resolvers.

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_3_WebScraper.js`
## WebScraper-Prefix-Resolver 2026-06-21

- Web-Fetch nutzt den aktiven App-Basispfad statt Domainwurzel-`/api/web/fetch`; Bootlog nur bei Debug-Flag.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_3_WebScraper.js`
  Ubuntu-Installer-Spiegel des WebScraper-Prefix-Resolvers.

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js`
## Bibliothek-Paperless-Browserpfad 2026-06-21

- `open-paperless` erzeugt einen Azubi-BrowserGateway-Knoten im aktuellen Space statt `window.open`; Login-Freshness-Logs sind debug-gated.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js`
  Ubuntu-Installer-Spiegel des Bibliothek-Paperless-Browserpfads.

- `70_TESTS_AND_SMOKE/ui/audit_sidebar_bibliothek_server_playwright.py`
## Haerterer Sidebar-/Bibliothek-Serveraudit 2026-06-21

- sichere Klickziele müssen geklickt sein, `#btn-org` ersetzt den alten Workspace-Selector, nicht geklickte Safe-Clicks erzeugen Audit-Failures.

- `/etc/azubi42/private/communication-provider-values.private.json`
## Private Live-Providerpolitik 2026-06-22

- Telegram, WhatsApp und Slack auf browser-direkte User-Session-Führung ohne Server-Relay und ohne Systemservice-Sendebereitschaft korrigiert; Secrets bleiben ausschließlich serverprivat.

- `toolbox/communication/provider_contracts_smoke.py`
## Server-Smoke 2026-06-22

- Nicht-Mail-Dienste werden als Policy-/Webapp-Vertraege getrennt vom Mailclient geprüft; Mailclient braucht expliziten Userkontext (`--mail-user`, `--mail-domain`) für echtes Grün.

- `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`, `70_TESTS_AND_SMOKE/integrations/test_mailclient_dispatch_evidence.py`, `70_TESTS_AND_SMOKE/integrations/test_mailclient_followup_draft.py`, `70_TESTS_AND_SMOKE/integrations/test_mailclient_paperless_ingest.py`, `70_TESTS_AND_SMOKE/integrations/test_snappymail_proxy_contract.py`, `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py`
  Regressionsblock 2026-06-22 für Mailclient, SnappyMail, Provider-Vertraege und Browser-Webapp-Vertrag; alle genannten Testgruppen liefen grün.

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js`
## SHOT-Fullpage-Bauteil 2026-06-23

- erkennt aktive Native-/Provider-WebViews, nutzt im Native-Host bevorzugt Electron/CDP `Page.captureScreenshot` aus dem WebView-WebContents und speichert echte `native_webview_cdp_fullpage`-Belege.
- Renderer-Scroll-Stitching bleibt nur als Fallback.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js`
  Ubuntu-Installer-Spiegel des Native-/WebView-SHOT-Fullpage-Fixes.

- `40_INTEGRATIONS/provider-webapp-browser/main.js`
  Native-Host-IPCHaendler `azubi42:native-capture-webview-fullpage`: greift ein WebView per `webContentsId`, liest Layoutmetriken und erzeugt Fullpage-PNG über Chromium DevTools Protocol. Keine iframes, kein Screenshot-Transport, kein Provider-UI-Nachbau.

- `40_INTEGRATIONS/provider-webapp-browser/preload.js`
  Exponiert den Native-Capture-Kanal als `azubi42NativeProviderWebapp.captureWebViewFullpage(...)` und `azubi42NativeHost.captureWebViewFullpage(...)` für den Azubi42-Renderer.

- `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_7_ModelInstructionProfiles.js`
## User-Modellregelprofile 2026-06-23

- globale Userregeln und automatisch pro Modell erzeugte Spezialregeln in der Modellauswahl; Prompt-Komposition mit modellspezifisch niedrigerer Prioritaet und global höherer Prioritaet.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/06_API_ROUTER/06_7_ModelInstructionProfiles.js`
  Ubuntu-Installer-Spiegel der User-/Modellregelprofile.

- `10_SHARED_CORE/app_v27_multimedia/js/main.js`
  Initialisiert Modellregelprofile direkt nach der Modellauswahl, damit neue Modelle ihre Regel-Eingabefelder automatisch erhalten.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/main.js`
  Ubuntu-Installer-Spiegel der Modellregelprofil-Initialisierung.

- `10_SHARED_CORE/app_v27_multimedia/js/02_CHAT/02_1_ChatWindow.js`
  ChatWindow wendet User-/Modellregeln nach BrowserAssist-/Kontextaufbau und vor dem eigentlichen Modell-Dispatch an.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/02_CHAT/02_1_ChatWindow.js`
  Ubuntu-Installer-Spiegel der ChatWindow-Regelanbindung.

- `70_TESTS_AND_SMOKE/integrations/test_model_instruction_profiles_contract.py`
## Contract-Test für Modellregelprofile

- Shared-/Installer-Sync, Defaultregel-Schutz, automatische Modellfelder, Prompt-Reihenfolge und ChatWindow-Anbindung.

- `10_SHARED_CORE/app_v27_multimedia/{index.html,azubi42_version.json,version_manifest.json}`
  Build-Token `v27.2.279 / 27304` für cachefreien Native-CDP-SHOT-/Modellregel-/Provider-Loginpfad-/Electron-39-Deploy ohne 150px-/1800px-Fakehöhen.

- `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/{index.html,azubi42_version.json,version_manifest.json}`
  Ubuntu-Installer-Spiegel des Build-Tokens `v27.2.279 / 27304`.

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`
## Provider-WebView-Smoke-Harness 2026-06-24

- erzwingt im QA-Lauf Hardwarebeschleunigung/GPU aus, `disable-dev-shm-usage` und SwiftShader, damit Electron 39 unter Xvfb einen Report schreibt statt vor dem Provider-Gate an EGL/X11 zu kippen.

- `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`
  Ubuntu-Installer-Spiegel des Xvfb-/Electron-39-Smoke-Hardening.

- `40_INTEGRATIONS/provider-webapp-browser/main.js`
## Provider-WebView-Diagnostik 2026-06-29

- BrowserView-Ereignisse für Console, Load, Fail und Render-Prozess laufen in Native-Host-Inspect/Capture-Antworten ein.
- WebViews starten mit JavaScript und ohne Background-Throttling, damit echte Anbieter-Loginflächen im Server-GUI-Userflow statt 150px-/Spinner-Fakepositives geprüft werden.

- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`
## Provider-WebView-SHOT-Hardgate 2026-06-29

- Smoke trennt Screenshot-/Viewport-Coverage von echter Provider-Login-Coverage.
- Telegram wird rot, wenn der echte BrowserView JavaScript-Blockade oder keine interaktive Loginfläche meldet; WhatsApp/Slack duerfen nur mit Host, Viewport, DOM-Signalen und Anbieteraktion grün werden.
- GPU-Abschaltung ist jetzt ein Env-Gate und nicht mehr pauschaler Default.

- `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js`
  Azubi-SHOT-Beleg bleibt der Frontend-Ausloeser für Provider-WebView-Fullpage-Captures; der neue BrowserView-Ankerpfad erzeugt echte Native-Host-CDP-Screenshots und führt rote Diagnostik statt grüner Placebos.

- `10_SHARED_CORE/app_v27_multimedia/{azubi42_version.json,version_manifest.json}`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/{azubi42_version.json,version_manifest.json}`, `00_META/version_manifest.json`
  Build-/Manifeststand `v27.2.297 / 27322` für den Provider-WebView-/SHOT-Hardgate-Deploy.

- `70_TESTS_AND_SMOKE/ui/audit_sidebar_sections.mjs`
## Sidebar-Vertragsaudit 2026-06-29

- Sektionen werden wieder entlang der aktuellen linken Menü-Reihenfolge geschnitten (`Ansichten -> Toolbox -> Aktenhaltung -> ... -> Modelle -> Tresor`).
- Dadurch bleiben echte Mix-Fehler sichtbar, während veraltete Abschnittsgrenzen keine falschen Toolbox-/Modell-Failures mehr erzeugen.

## Codex-Arbeitsdisziplin-RAG/WH3D-Spiegel 2026-06-30


- Bauteil: Codex-Slice-/Userflow-/Evidence-Gate für Azubi42-RAG, WH3D und Modell-Charaktersets.
- Dateien: `40_INTEGRATIONS/paperless/dictionaries/legal_de_language_profile.json`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/hw3d_knowledge_layers.json`, `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_7_ModelInstructionProfiles.js` und vorhandene Ubuntu-Installer-Spiegel.
- Funktion: Wiederholungsfehler wie falsche Testposition, nicht belegter Zustand-Grün, WinSCP-/Localhost-Ausweichwege, Dirty-Tree-Verwischung, Dienstvermischung und Plantext statt Funktion werden als aktive Regeln in RAG/WH3D/Modellprompt-Kaskade geführt.
- Gate: Grün nur bei echtem eingeloggtem Server-Userflow im richtigen View, mit Console-/SHOT-/WebView-Evidence wo fachlich erforderlich; fehlende Betreiberantworten, Secrets oder Provider-Consent bleiben gesperrt bis zum Nachweis.

## DTC/walt.id Bridge-Hardgate 2026-07-01


- Bauteil: DTC/walt.id-Bridge-Status für Zugangsbau.
- Dateien: `toolbox/legal/dtc_waltid_bridge.py`, `70_TESTS_AND_SMOKE/legal/test_dtc_waltid_bridge.py`, `40_INTEGRATIONS/legal-jura/zugangsbau/DTC_WALTID_TESTMATERIAL_MATRIX_2026-06-30.md` und vorhandene Ubuntu-Installer-Spiegel.
- Funktion: Gepinnten walt.id-Originalquellbaum für mdoc/OID4VP/Wallethandoff verifizieren, native ICAO-DTC-Marker mit stabilem 45s-Scanner suchen und bei Timeout/Scannerfehler gesperrt bis zum Nachweis bleiben.
- Gate: Kein DTC-Grün ohne nativen upstream-DTC-Nachweis oder echtes privates DTC-Testkit; walt.id bleibt Adapterziel, nicht hoheitlicher DTC-Aussteller.

## walt.id/DTC-Upstream-Contribution 2026-07-01


- Bauteil: Maintainer-Issue-/PR-Plan für native ICAO-DTC-Zuarbeit an walt.id.
- Dateien: `40_INTEGRATIONS/legal-jura/zugangsbau/WALTID_DTC_UPSTREAM_CONTRIBUTION_PLAN_2026-07-01.md`, Matrix/README und Ubuntu-Installer-Spiegel.
- Funktion: Trennt belegten walt.id-mdoc/OID4VP-/ISO-Photo-ID-Stand von nicht belegter nativer ICAO-DTC-Unterstuetzung und beschreibt einen kleinen upstream-fähigen DTC-Core plus Trust-Gate-Bridge.
- Gate: Nur synthetische Tests und secretfreie Handoffs in GitHub; echte DTC-/PKD-/Betreiber-Testkits bleiben privat und öffnen keine eRV-/OSCI-/EGVP-Sendebereitschaft.

## Next-Slice-Stack und DTC-Herkunft/Connect 2026-07-01


- Bauteil: Getrennter Arbeitsstack für Provider/Communication, SnappyMail/Usermail, KartOO/Kart00/Websuche, Sidebar und DTC/walt.id/Trustmaterial plus abgearbeiteter DTC-Herkunftsslice.
- Dateien: `00_META/NEXT_SLICE_STACK_2026-07-01.md`, `40_INTEGRATIONS/legal-jura/zugangsbau/DTC_OBTAINING_AND_CONNECT_MATRIX_2026-07-01.md`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/legal-jura/zugangsbau/DTC_OBTAINING_AND_CONNECT_MATRIX_2026-07-01.md`, `70_TESTS_AND_SMOKE/legal/test_dtc_obtaining_connect_matrix.py` und die Zugangsbau-README-/Matrix-Spiegel.
- Funktion: Dokumentiert die internationale DTC-Herkunft ohne walt.id-Issuer-Behauptung: ICAO Type 1 aus eMRTD, Type 2/3 aus Issuer-/Passport-Authority-Prozess, EU Digital Travel App/eu-LISA, Member-State-Issuer, Third-country Passport Authority und Betreiber-/Border-Pilots.
- Gate: walt.id bleibt mdoc/OID4VP-Anschluss nach grüner DTC-Trustprüfung; ohne echtes Testkit/Betreiberantwort bleiben DTC-Ausgabe, native walt.id-ICAO-DTC-Behauptung und OSCI/EGVP/eBO/XJustiz-Sendegates geschlossen.

---

# Inventarverzeichnis

# Azubi42 v27 Inventarverzeichnis

## Jurabibliothek-Public-Normanker-Alias

- Ist inventarisiert: `toolbox/legal/jurabibliothek_public_api.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek_public_api.py` und `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_public_api.py`.
- Inventarstatus 2026-07-03: `law::bgb::839` und `law::sgg::65a` sind stabile öffentliche Aliasanker für Public-API-`document`, `fragments` und `search`.
- Direkte Dokumente gewinnen; sonst wird nur auf öffentliche breite Gesetzes- oder `law_anchor_*`-Dokumente mit passendem Gesetz+Norm-Fragment aufgeloest.
- Alias-Fallbacks geben `doc_key` als angefragten stabilen Anker und `resolved_doc_key` als tatsaechliche Dokumentquelle aus; fragmentbasierte Antworten werden bei breiten Gesetzesfallbacks auf die angefragte Norm gefiltert.
- Lokale Regression prüft direkten Dokumentabruf, Fragmentabruf und Suchboost für ein breites `law::sgg`-Fragment mit vorgeschaltetem Fremdfragment; Syntax- und Diff-Gates gehören zum Slice.
- Serverstatus: `[Serverpfad]` und `[Serverpfad]` sind für `jurabibliothek_public_api.py` hashgleich (`93db3d4ee5d863324b7a10b36ce6a8b4cba19a70e0d575c7e03f75220faace72`), `azubi42-jurabibliothek-public-api.service` ist active.
- Live-Proben: `search` für `Richterschutz §839 BGB` und `SGG §65a elektronisches Dokument` liefern die Aliasanker zuerst; `document`/`fragments` liefern zuerst `§ 839` bzw. `§ 65a`.
- Nicht inventarisiert als erlaubt: private Paperless-Dokumente, lokale Dateipfade, Adminlinks, Rohtexte oder Secretwerte.

## Matrix-Provider-Seed-Partition-Gate

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und `30_INSTALLERS/ubuntu24/azubi42-server/70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py`.
- Inventarstatus 2026-07-03: Die Serverkopien sind hashgleich (`smoke-provider-webviews.js` SHA256 `c098e42ac6fb913c2bd99006b2404a062f34aee8d763ecd1cdff678ae8f958ed`, Contract-Test SHA256 `a9a671d8a17e7cae291183f21fa28902d6fcd45f0feee162d2f1346f5935fde0`).
- Lokale Gates: beide `node --check`, `test_provider_webapp_browser_contract.py`, `test_communication_service_node_ui_contract.py`, `test_provider_native_session_sync.py`, `test_communication_provider_contracts_smoke.py` zusammen `28 passed`, `audit_communication_space.mjs` `ok=true`, `git diff --check` OK.
- Live-Provider-Gate `[Serverpfad]`: `ok=true`, `providerSessionCoverage=true`, `requireAuthenticatedSession=true`, `matrixSessionPartition=persist:azubi42-azubi42tester-42-chat-matrix`, `seedOk=true`, `iframeCount=0`, `imageLikeCount=0`.
- Live-Azubi-Vierer `[Serverpfad]`: `ok=true`, `providerSurfaceCount=8`, `browserViewAnchorCount=8`, `multiNodeProbeCoverage=true`, `providerSessionCoverage=false`, Matrix Welcome/Login, Telegram/WhatsApp QR/Phone, Slack Login.
- Nicht inventarisiert als fertig: Azubi-UI-Matrix-Auth-Gate `[Serverpfad]` bleibt `ok=false`/`providerSessionCoverage=false`; Seed-Azubi-Versuch erzeugt weiter Electron-`SIGTRAP` mit Teilbeleg `provider_webview_smoke_azubi_20260703T021943Z_azubi_shot.json`; externe Provider-`Sende-Freigabe` bleibt false.

## Provider/Communication-Native-Host-Evidence-Refresh

- Ist inventarisiert: `toolbox/communication/provider_test_account_workbench.py`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs`, `70_TESTS_AND_SMOKE/integrations/test_communication_service_node_ui_contract.py`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py`, `70_TESTS_AND_SMOKE/integrations/test_provider_native_session_sync.py`, `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py` und die Runtime-QA-Reports unter `[Serverpfad]`.
- Inventarstatus 2026-07-03: Die lokalen Contracts stehen auf `28 passed`, `audit_communication_space.mjs` ist `ok=true`.
- Serverseitig wurde `azubi42tester` gegen die private Login-Datei in `[Serverpfad]` synchronisiert; Backup `[private Angabe entfernt]`, `verify_after=True`, `stored_plaintext=False`.
- Provider-only Report `[Serverpfad]`: `ok=true`, `activeProviderCount=4`, `webviewCount=4`, `iframeCount=0`, `imageLikeCount=0`, `multiNodeProbeCoverage=true`, `providerSessionCoverage=false`.
- Azubi-UI Report `[Serverpfad]`: `ok=true`, `activeProviderCount=4`, `testedProviderCount=4`, `providerSurfaceCount=8`, `browserViewAnchorCount=8`, `providerCoverage=true`, `providerScreenshotCoverage=true`, `providerDiagnosticScreenshotCoverage=true`, `azubiShotCoverage=true`, `multiNodeProbeCoverage=true`, `providerSessionCoverage=false`.
- Matrix-Seed-only Report `[Serverpfad]`: `ok=true`[private Angabe entfernt]`[Serverpfad]` bleibt `ok=false`, `requireAuthenticatedSession=true`, `providerSessionCoverage=false`; Matrix-only Azubi-Seed-Versuch erzeugte Electron `SIGTRAP` mit Teilbeleg `provider_webview_smoke_azubi_20260703T015914Z_azubi_shot.json`.
- Telegram/WhatsApp/Slack haben keine echte QR/Phone/Workspace-Session, keinen Zielkontakt/Zielraum und keine Provider-Sendefreigabe.

## Jurabibliothek-Public-Export-Leitfall-Metadaten sind inventarisiert

- `toolbox/legal/jurabibliothek_public_export.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek_public_export.py`, `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_public_export.py`, `toolbox/legal/README.md`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/README.md`, `toolbox/legal/jurabibliothek/README.md` und `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/README.md`.
- Inventarstatus 2026-07-03: Der statische Export schreibt `source_id`, `source_kind`, `topic_tags` und ein sanitiztes `pinned_lead_case` in `azubi42-jurabibliothek-public-catalog.json`, `azubi42-jurabibliothek-public-documents.jsonl.gz` und das GPT-Briefing.
- Serverseitig neu geschrieben: `public_docs=92323`, `public_fragments=1107510`, `private_excluded=1463`; Katalogsample und JSONL enthalten `egmr_hudoc::001-58920` mit `source_id=egmr_hudoc_article13_judgments_eng`, Tags `EGMR,HUDOC,JUDGMENT,ART_13_EMRK,EFFECTIVE_REMEDY` und Pin `001-58920`.
- `jsonl_raw_meta_leak=False`, `briefing_mentions_pinned=True`.
- Nicht öffentlich exportiert werden `meta_json`, `body_url`, `body_sha256`, Rohpfade, Normalized-Pfade, private Paperless-Dokumente, Tokens, DB-Zugangsdaten oder Adminlinks.

## EGMR-HUDOC-Entscheidungs-API

- Ist inventarisiert: `toolbox/legal/jurabibliothek/egmr_hudoc_decisions.py`, `toolbox/legal/jurabibliothek/config/egmr_hudoc_decision_sources.json`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/egmr_hudoc_decisions.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/config/egmr_hudoc_decision_sources.json`, `toolbox/legal/jurabibliothek/config/focus_topics_richterschutz.json`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/config/focus_topics_richterschutz.json`, `toolbox/legal/README.md`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/README.md`, `toolbox/legal/jurabibliothek/README.md`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/README.md` und `70_TESTS_AND_SMOKE/legal/test_egmr_hudoc_decisions.py`.
- Inventarstatus 2026-07-03: HUDOC ist als eigener Entscheidungs-Slice aktiv und nicht mit dem ECHR-KS-Guide-Direktabruf vermischt.
- `[Serverpfad]` und `[Serverpfad]` sind hashgleich für Loader und Manifest; beide DBs enthalten 30 `egmr_decision`-Dokumente, 532 Entscheidungsfragmente, 532 `azubi42-lexical-hash-v1`-Vektoren und 0 offene `egmr_decision`-Vektoren.
- Importquellen: aktuelle englische EGMR-Urteile, Deutschland-Urteile, Art. 6, Art. 13, Art. 35/Zulaessigkeit-Rechtswegerschoepfung, Deutschland/Verfahrensdauer und P1-1/Social-Security über HUDOC-JSON plus Conversion-Body.
- `pinned_itemids` markieren Leitfaelle in `hudoc_pinned_lead_case`; serverseitig bestaetigt für `egmr_hudoc::001-58920`, `egmr_hudoc::001-142199`, `egmr_hudoc::001-75689` und `egmr_hudoc::001-73198`.
- Public-Export `https://azubi42.de/bibliothek/` ist neu geschrieben: `public_docs=92323`, `public_fragments=1107510`, `private_excluded=1463`; API-Suchen und direkte Dokument-/Fragmentabrufe liefern u.a. `KUDLA`, `VUČKOVIĆ`, `SÜRMELI` und `STEC`, jeweils Typ `egmr_decision`, Quelle `https://hudoc.echr.coe.int/?i=<itemid>`, Fragmentabruf 200.
- Nicht inventarisiert als Entscheidung: ECHR-KS-Guides, HUDOC-`003-...`-/Pressetreffer, leere Conversion-Bodies, UI-/Archiv-/404-Seiten oder bodylose Metadaten.

## Jurabibliothek-Public-Read-only-API v1

- Ist inventarisiert: `toolbox/legal/jurabibliothek_public_api.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek_public_api.py`, `toolbox/legal/jurabibliothek_public_export.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek_public_export.py`, `toolbox/legal/systemd/azubi42-jurabibliothek-public-api.service`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/systemd/azubi42-jurabibliothek-public-api.service`, `toolbox/legal/nginx/azubi42-jurabibliothek-public-api-rate.conf`, `toolbox/legal/nginx/azubi42.de-bibliothek-api.location.conf`, die Ubuntu-Installer-Spiegel, `20_EDITIONS/azubi42-de/website/robots.txt`, `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/website/robots.txt`, `toolbox/legal/README.md`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/README.md`, `toolbox/legal/jurabibliothek/README.md`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/README.md` und `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_public_api.py`.
- Inventarstatus 2026-07-03: Der öffentliche Read-only-Layer laeuft serverseitig als `azubi42-jurabibliothek-public-api.service` active/enabled auf `127.0.0.1:18046`; Nginx proxyt `/bibliothek/api/` GET/HEAD-only mit Rate-Limit `30r/m`[private Angabe entfernt]`HUDOC`-DocKey-Falschranking und liefert in `search`/`document` die Felder `source_id`, `source_kind`, `topic_tags` und `pinned_lead_case`.
- `https://azubi42.de/bibliothek/ping.txt` meldet `build=2026-07-03`, `public_docs=92323`, `public_fragments=1107510`, `private_excluded=1463`, `api=/bibliothek/api/v1/`; Live-Probe `KUDLA POLAND Article 13 HUDOC` liefert `egmr_hudoc::001-58920` mit `source_id=egmr_hudoc_article13_judgments_eng`, Tags `EGMR,HUDOC,JUDGMENT,ART_13_EMRK,EFFECTIVE_REMEDY`, Pin `001-58920` und `RAW_META_LEAK=False`.
- `robots.txt` erlaubt `/bibliothek/` und `/bibliothek/api/v1/` bewusst.
- SHA256 lokal == `[Serverpfad]` == `[Serverpfad]`[private Angabe entfernt]`source_url` die Zitierquelle.

## EGMR-KS-Guide-Direktabruf

- Ist inventarisiert: `toolbox/legal/jurabibliothek/config/egmr_bverfg_sources.json`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/config/egmr_bverfg_sources.json`, `toolbox/legal/jurabibliothek/egmr_bverfg_materials.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/egmr_bverfg_materials.py`, `toolbox/legal/jurabibliothek/README.md`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/README.md`, `toolbox/legal/README.md`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/README.md` und `70_TESTS_AND_SMOKE/legal/test_egmr_bverfg_materials.py`.
- Inventarstatus 2026-07-03: Die lokalen Runtime-/Installer-Dateien sind JSON-/Syntax-geprüft und per SHA256 hashgleich nach `[Serverpfad]` und `[Serverpfad]` gespiegelt.
- Das EGMR/BVerfG-Spezialmanifest enthält 61 Quellen, davon 41 neue offizielle ECHR-KS-Case-Law-Guides mit Direktdokumentpfad `https://ks.echr.coe.int/documents/d/echr-ks/<guide_slug>` und `expected_format=pdf`.
- Serverimport Dev: 41/41 Downloads, 0 Fehler, 159 Quellen, 93756 Dokumente, 1147611 Fragmente, `egmr_guidance` 46, KS-Guide-Fragmente 5875, Vector `egmr_guidance` 6123/6123 offen 0.
- Serverimport Jura: 41/41 Downloads, 0 Fehler, 707 Dokumente, 8533 Fragmente, `egmr_guidance` 41, KS-Guide-Fragmente 5875, Vector 5875/5875 offen 0.
- Public-Export `https://azubi42.de/bibliothek/`[private Angabe entfernt]`/web/echr-ks/`-Seiten oder 403-Antworten; diese sind nur Listing-/Fehlerbefund, kein RAG-Quellnachweis.

## Jurabibliothek-Quellen-Ausbau für duenne Regale

- Ist inventarisiert: `toolbox/legal/jurabibliothek/config/sources.json`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/config/sources.json`, `toolbox/legal/jurabibliothek/jurabibliothek.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/jurabibliothek.py`, `toolbox/legal/README.md`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/README.md`, `toolbox/legal/jurabibliothek/README.md`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/README.md` und `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_coverage_and_case_toc.py`.
- Inventarstatus 2026-07-03: Die Serverkopien auf `[Serverpfad]` und `[Serverpfad]` sind hashgleich.
- Der Timer-sichtbare Quellenbestand enthält 51 aktive Quellen, darunter 11 EU-AI, 7 EU-eID/EUDI, 6 amtliche Bekanntmachungs-/Verkuendungsportale, 5 neue BVerfG-Verfahrensarten sowie NRW-LJPA-/KMK-/BIBB-Ausbildungsquellen.
- Nach Server-Seed und `run-once --limit 90` meldet `[Serverpfad]`: 118 Quellen, 93715 Dokumente, 96030 Versionen, 1141736 Fragmente, 136452 offene Embeddings, Jobs `done=353523` und `pending=90743`.
- Aktivierte Quellen ohne Dokumente: 0.
- Regale: `eu_ai_regulation` 11, `eu_digital_identity` 7, `bverfg_guidance` 12, `official_notice` 6, `legal_education_juristenausbildung` 3, `legal_education_richteramt` 3, `legal_education_training_curriculum` 3.
- Der alte Pending-Watchjob für den früheren EU-AI-Act-404-Pfad ist gelöscht; `pending_high_risk_jobs=[]`.
- Public-Export: 92252 öffentliche Dokument-Metadaten, 1101103 öffentliche Fragmentreferenzen, 1463 private Paperless-Dokumente ausgeschlossen.
- Nicht als erweitert inventarisiert: neue EGMR-KS-/ECHR-Guide-Quellen, weil die Probeabrufe 403 lieferten; der bestehende EGMR-Bestand bleibt erhalten, aber nicht als frisch gewachsen behauptet.

## Jurabibliothek-Leerregal-Scheduler

- Ist inventarisiert: `toolbox/legal/jurabibliothek/jurabibliothek.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/jurabibliothek.py`, `toolbox/legal/jurabibliothek/config/sources.json`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/config/sources.json`, `toolbox/legal/README.md`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/README.md` und `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_coverage_and_case_toc.py`.
- Inventarstatus 2026-07-03: Der produktive Worker auf `[Serverpfad]` und `[Serverpfad]` ist hashgleich nachgezogen.
- `fetch_case_zip`-Batchverarbeitung kann den gesamten `run-once`-Lauf nicht mehr vor priorisierten Quellen belegen, weil `case_zip_batch_run_percent=50` standardmaessig Slots für normale Queue-Prioritaet freihält.
- `law_page` wird geseedet, der EU-AI-Act-Service-Desk-Watch zeigt nicht mehr auf die 404-Startseite.
- Live-Stand nach Deploy, Seed und Kurzlauf: 87 Quellen, 93684 Dokumente, 1141616 Fragmente, 136332 offene Embeddings, Jobs `done=353433` und `pending=90803`; aktivierte Quellen ohne Dokumente 0.
- Der öffentliche Export unter `https://azubi42.de/bibliothek/` meldet 92221 öffentliche Dokument-Metadaten, 1100983 öffentliche Fragmentreferenzen und 1463 ausgeschlossene private Paperless-Dokumente.
- Nicht als erledigt inventarisiert: inhaltlich duenne Doc-Types mit nur 1 bis 7 Dokumenten, insbesondere EU-AI/eID, Legal-Education, EGMR/BVerfG-Hinweise und `official_notice`; diese gehören in den nächsten Quellen-Ausbauslice.

## Jurabibliothek-Bibliothekswachstum und GPT-Public-Export sind inventarisiert

- `toolbox/legal/disk_guard.sh`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/disk_guard.sh`, `toolbox/legal/systemd/azubi42-jurabibliothek-sync.timer`, `toolbox/legal/systemd/azubi42-jurabibliothek-vector.timer`, `toolbox/legal/systemd/azubi42-paperless-atom-index.timer`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/systemd/azubi42-jurabibliothek-sync.timer`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/systemd/azubi42-jurabibliothek-vector.timer`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/systemd/azubi42-paperless-atom-index.timer`, `toolbox/legal/jurabibliothek_public_export.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek_public_export.py`, `70_TESTS_AND_SMOKE/legal/test_disk_guard_timer_liveness.py` und `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_public_export.py`.
- Inventarstatus 2026-07-03: Die vier produktiven Bibliotheks-/Paperless-Timer waren seit 2026-06-20 ohne nächsten Lauf, weil der Disk-Guard bei hoher Belegung nicht nur den aktuellen Fuelllauf abbrach, sondern Timer stoppte.
- Der Live-Fix ist nach `[Serverpfad]`, `[Serverpfad]` und `/etc/systemd/system` gespiegelt; Timer sind wieder enabled/active und die Kalender-Timer sind `Persistent=true`.
- Nach Catch-up meldet `[Serverpfad]`: 87 Quellen, 93679 Dokumente, 1141498 Fragmente, 1005284 Vektoren, 136214 offene Vektoren.
- Der öffentliche GPT-Zugang liegt unter `https://azubi42.de/bibliothek/`: `index.html`, `azubi42-jurabibliothek-gpt-briefing.md`, `azubi42-jurabibliothek-public-catalog.json` und `azubi42-jurabibliothek-public-documents.jsonl.gz`.
- Der Export enthält 92216 öffentliche Dokument-Metadaten und 1100865 öffentliche Fragmentreferenzen; 1463 private Paperless-Dokumente sind ausgeschlossen.
- Nicht inventarisiert als öffentlich: Paperless-/Vorgangsdokumente, Rohtexte, Fragmente, Dateipfade, Tokens oder Passwörter.

## SnappyMail-Userlogin-Session-Gate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `70_TESTS_AND_SMOKE/ui/audit_snappymail_user_login_server_playwright.py`, `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`, `30_INSTALLERS/ubuntu24/azubi42-server/70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`, `toolbox/deploy/azubi42_release_integrity_gate.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/deploy/azubi42_release_integrity_gate.py` und `00_META/AZUBI42_CURRENT_RELEASE_GATES_2026-07-01.json`.
- Inventarstatus 2026-07-02: Die Azubi-App liest auf Jura/Dev die echte serviceprivate Mailclient-Konfiguration (`[private Angabe entfernt]` mit Owner `azubi42:azubi42`, Mode `0600`) und fällt nicht mehr auf ein falsches `local`[private Angabe entfernt]`azubi42tester` als Account-ID und prüft `Mailkonto loginbereit` ohne False-Green auf `nicht loginbereit`.
- Aktuelle Live-Belege: Jura `[Serverpfad]` plus Screenshots `_azubi.png`/`_snappymail.png`; Dev `[Serverpfad]` plus Screenshots `_azubi.png`/`_snappymail.png`.
- Beide Reports stehen auf `ok=true`, `selectedAccountId=azubi42tester`, `hasMailclientNode=true`, `hasSnappyMailInclude=true`, `headerToolCount=0`, SnappyMail-Mailboxmarker sichtbar und `credentials_exposed=false`.
- Sidebar-Open-All ist neu grün unter Jura `[Serverpfad]` und Dev `[Serverpfad]`; Kontext-, Communication- und Bibliothek-Smokes sind ebenfalls auf Jura/Dev erneuert.
- Nicht inventarisiert als fertig: Telegram-/WhatsApp-QR/Phone, Slack-Workspace-Login, Zielkontakt/Zielraum und Provider-`Sende-Freigabe`.

## Provider-Smoke-Produktalias-Gate

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und der Installer-Testspiegel.
- Inventarstatus 2026-07-02: Die bisherige Wiederholungsschleife war ein Steuerfehler im Smoke: Produktaufrufe mit `--open-providers=...`, `--azubi-username` und `[private Angabe entfernt]` wurden ignoriert.
- Der reparierte Smoke belegt mit denselben Alias-Flags Matrix-only `ok=true` unter `[Serverpfad]` und den Vierer Matrix/Telegram/WhatsApp/Slack `ok=true` unter `[Serverpfad]`.
- Inventarisiert sind damit die echten browserdirekten Webknoten, Mehrfachknoten, Loginoberflächen, Screenshots und Azubi-SHOTs.
- Nicht inventarisiert bleiben Telegram-/WhatsApp-/Slack-Auth und Provider-`Sende-Freigabe`; der harte Auth-Gate `[Serverpfad]` steht korrekt auf `providerSessionCoverage=false`.

## Communication-Browserknoten-Readiness

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs`.
- Inventarstatus 2026-07-02: Die UI führt browserdirekte Provider als eigene Original-Webapp-Knoten und dokumentiert im Native-Host-Wartefall die No-nicht belegter Zustand-Regel.
- Jura/Dev-Auth-Configs enthalten die private Native-Session-Evidence-Referenz; Telegram/WhatsApp/Slack sind als Browser-Entrypoints bereit, aber ohne authentifizierte Native-WebView-Session, Zielkontakt und Sendefreigabe nicht als `Sende-Freigabe` inventarisiert.

## Provider-Session-Evidence-Aktualisierung

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py`.
- Inventarstatus 2026-07-02: Matrix ist mit privater Evidence und Zielanker aktuell `sessionAuthenticated=true`; Telegram und WhatsApp stehen auf `qr_or_phone_required`, Slack auf `login_prompt`.
- Der sichtbare Native-Host auf `DISPLAY=:0` startet und öffnet Matrix/Telegram/WhatsApp/Slack; parallele Shared-Profil-Smokes duerfen nicht laufen, weil Chromium-Locks sonst falsche Runtimefehler erzeugen.
- `Sende-Freigabe` bleibt für externe Provider nicht inventarisiert.

## Provider-Session-Evidence-Merge

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py`.
- Inventarstatus: private Native-Session-Evidence wird bei Einzelprovider-Smokes nicht mehr komplett ersetzt, sondern dienstweise gemerged; vorhandene Zielkontakte bleiben erhalten, wenn ein aktueller Lauf kein neues Target liefern kann.
- Das stabilisiert Matrix-/Zielraum-Evidence, ohne Telegram/WhatsApp/Slack oder `Sende-Freigabe` grün zu setzen.

## Matrix-Native-Session-Persistenz

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und der Installer-Testspiegel.
- Inventarstatus: Die private Matrix-Session von `azubi42tester` wurde per `seed-matrix-session` in die produktive Native-Host-Partition `persist:azubi42-local-matrix`[private Angabe entfernt]`[Serverpfad]` `ok=true`; `[Serverpfad]` `ok=true`, `providerSessionCoverage=true`, Matrix `authenticated_or_session_visible`, private Zielraum-Evidence vorhanden.
- Der Vierer-Gate `[Serverpfad]` bleibt `ok=false`, weil Telegram/WhatsApp/Slack keine authentifizierte private Browser-Session und keinen Zielkontakt/Zielraum belegen.
- Provider-Sendegates bleiben nicht inventarisiert.

## Provider-Session-Persistenz/Auth-Evidence-Gate

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und der Installer-Testspiegel.
- Inventarstatus: Native-BrowserView-Auth wird aus der echten Anbieter-DOM-/BrowserView-Inspektion klassifiziert und bleibt gesperrt bis zum Nachweis, solange nur Login, QR, Phone-Pairing oder Workspace-Signin sichtbar sind.
- Aktueller Serverstand: `[Serverpfad]`, `ok=false`, `providerSessionCoverage=false`, `requireAuthenticatedSession=true`, Matrix `login_prompt`, Telegram `qr_or_phone_required`, WhatsApp `qr_or_phone_required`, Slack `login_prompt`; private Session-Evidence wurde serverseitig aktualisiert und mit `0600` gesichert.
- Keine authentifizierte Provider-Session, kein Zielkontakt/Zielraum und keine Provider-Sendefreigabe sind inventarisiert.

## Native-Provider-Meebo-Mehrfachknoten-Smoke

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/integrations/test_communication_service_node_ui_contract.py`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und die Installer-Testspiegel.
- Inventarstatus: Der Native-Host-Smoke belegt parallele Original-Browserknoten für Matrix, Telegram, WhatsApp und Slack über echte BrowserView-Anker statt Serverrelay oder nicht belegter Zustand-Provider.
- Serverstand: `[Serverpfad]`, `ok=true`, `activeProviderCount=4`, `providerSurfaceCount=8`, `browserViewAnchorCount=8`, `providerCoverage=true`, `providerLoginCoverage=true`, `providerScreenshotCoverage=true`, `azubiShotCoverage=true`, `multiNodeProbeCoverage=true`, `providerSessionCoverage=false`.
- Matrix/Telegram/WhatsApp/Slack sind damit als browserdirekte Webknoten- und Mehrfachknotenfunktion grün inventarisiert; authentifizierte Provider-Session, Zielkontakt und Provider-Sendefreigabe sind nicht inventarisiert.

## Communication-Meebo-Mehrfachknoten sind inventarisiert

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `70_TESTS_AND_SMOKE/integrations/test_communication_service_node_ui_contract.py`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py`.
- Inventarstatus: Browserdirekte Communication-Dienste verwenden keine serviceweiten Webapp-Singletons mehr.
- Dienstklicks können mehrere Original-Browserknoten desselben Dienstes parallel erzeugen; Kontakt-/Raum-Untermenüs öffnen je Gespraech einen eigenen Webapp-Knoten oder fokussieren den vorhandenen.
- BrowserView-IDs sind node-spezifisch, Session-Partitionen bleiben user+service-spezifisch.
- Browserdirekte Provider-Webapp-Knoten enthalten keine serverseitigen Status-/Sync-/Send-Headerbuttons.
- Authentifizierte Anbieter-Session, Zielkontakt-Evidence und Sendegates bleiben separat und nicht inventarisiert.

## Native-Provider-Sessionprofil-Gate

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py`.
- Inventarstatus: Der Native-Smoke kann für Sessionprüfungen per `--share-browser-profile` denselben persistenten Electron-Store `ProviderWebappBrowser` verwenden wie der produktive Native-Provider-Host; ohne Schalter bleibt `ProviderWebappSmoke` als isolierter Teststore aktiv.
- Serverbefund am 2026-07-01: Shared-Profil-Smoke gegen `azubi42-dev` mit `--require-authenticated-session` ist rot für Matrix, Telegram, WhatsApp und Slack, weil die vorhandenen Browserprofildaten keine gültigen Provider-Sessions mehr enthalten und die privaten Provider-Testaccountnotizen für diese Dienste weiter `Status: offen` mit fehlenden Secretdateien/Zielraum-/Zielchat-Eintraegen melden.
- Webknoten/Loginoberflächen sind grün, authentifizierte Session und Sendegates bleiben nicht inventarisiert.

## Provider-Mail-KartOO-Sidebar-Stack

- Ist inventarisiert: `00_META/NEXT_SLICE_STACK_2026-07-01.md`, `00_META/STACK_EXECUTION_PROVIDER_MAIL_KARTOO_SIDEBAR_2026-07-01.md`, `[private Angabe entfernt]`, `[private Angabe entfernt]`, `toolbox/communication/provider_contracts_smoke.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_contracts_smoke.py`, `[private Angabe entfernt]`, `[private Angabe entfernt]`, `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py` und `30_INSTALLERS/ubuntu24/azubi42-server/70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py`.
- Inventarstatus: Provider/Communication-Startpfade sind als ehrliche UI-/Browser-Entry-Point-Evidence geführt, aber echte Provider-Sessions bleiben ohne QR/MFA/Consent, Zielkontakt und privaten Sessionbeleg rot.
- Mailclient/SnappyMail ist für lokale Testuser über Webmail, IMAP, SMTP-Login und Content-Encryption grün; der Dovecot-Prozess liest keine privaten Mailclient-Secretdateien, sondern den synchronisierten Hash-Shadow.
- KartOO/Websuche und Sidebar-Sektionierung sind statisch grün geprüft.
- Keine eRV-, eBO-, OSCI/EGVP-, XJustiz-, DTC-Trust- oder Provider-Sendefreigabe wird daraus inventarisiert.

## Codex-Skill-/Handoff-/Trust-Gate

- Ist inventarisiert: `00_META/CODEX_PROMPT_EVALUATION_BLOCK_2026-06-30.md`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/config/language_packs/legal_de_language_profile.json`, `40_INTEGRATIONS/paperless/dictionaries/legal_de_language_profile.json`, `toolbox/legal/config/hw3d_knowledge_layers.json`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/config/hw3d_knowledge_layers.json`, `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_7_ModelInstructionProfiles.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/06_API_ROUTER/06_7_ModelInstructionProfiles.js` und `70_TESTS_AND_SMOKE/integrations/test_codex_guardrail_profiles.py`.
- Inventarstatus: Der Bauteil ist ein Meta-/Arbeitsdisziplin-Gate.
- Er verlangt Skills, Handoff, Repo-Root, Serverpfad, Userflow-Evidence und DTC-Schichtentrennung vor breiten Arbeiten; fehlendes Trust-/Betreiber-/Sessionmaterial bleibt rot/gesperrt bis zum Nachweis.
- Persoenliche Codex-Skills liegen ausserhalb des Git unter `C:\Users\User\.codex\skills\...` und wurden parallel aktualisiert, aber nicht als Repo-Artefakt committet.

## DTC-walt.id-Upstream-Contribution-Plan

- Ist inventarisiert: `40_INTEGRATIONS/legal-jura/zugangsbau/WALTID_DTC_UPSTREAM_CONTRIBUTION_PLAN_2026-07-01.md`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/legal-jura/zugangsbau/WALTID_DTC_UPSTREAM_CONTRIBUTION_PLAN_2026-07-01.md`, Matrix, README, Changelog und Bauteileliste.
- Inventarstatus: Der Plan belegt den aktuellen Stand als mdoc/OID4VP-/Wallet-/ISO-Photo-ID-Anker mit fehlender nativer ICAO-DTC-Unterstuetzung, bereitet ein Maintainer-Issue und einen secretfreien DTC-Core-/Bridge-PR vor und lässt eRV/eBO/OSCI/EGVP/XJustiz-Sendegates unveraendert gesperrt bis zum Nachweis.

## Third-Party-Source-Watchdog

- Ist inventarisiert: `toolbox/legal/third_party_source_watchdog.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/third_party_source_watchdog.py`, `40_INTEGRATIONS/legal-jura/zugangsbau/third_party_source_watchdog_targets.json`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/legal-jura/zugangsbau/third_party_source_watchdog_targets.json`, `toolbox/legal/systemd/azubi42-third-party-source-watchdog.service`, `toolbox/legal/systemd/azubi42-third-party-source-watchdog.timer` und `70_TESTS_AND_SMOKE/legal/test_third_party_source_watchdog.py`.
- Inventarstatus: täglicher Linux-Server-Watchdog für Betreiber-/Standardquellen, Paperless-ngx, Discourse und Ubuntu-Security-Updates; Reports liegen unter `/var/lib/azubi42/source-watchdog`.
- Der Watchdog ist beobachtend, nicht freischaltend: Security-/Update-/Pin-Drift erzeugt Report/Alert, aber keine Provider-, DTC-, XJustiz- oder OSCI/EGVP-Sendebereitschaft.

## Current-Release-Integrity-Gate

- Ist inventarisiert: `00_META/AZUBI42_CURRENT_RELEASE_GATES_2026-07-01.json`, `toolbox/deploy/azubi42_release_integrity_gate.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/deploy/azubi42_release_integrity_gate.py`, `70_TESTS_AND_SMOKE/integrations/test_azubi42_release_integrity_gate.py` und der Deploy-Spiegel.
- Inventarstatus: Jede aktive Modulgruppe führt einen aktuellen Gate-Zustand.
- `green_current` ist nur mit aktueller Evidence erlaubt; statische Contracts, alte Runtime-QA-Reports und Teil-Smokes bleiben historisch oder blockiert.
- Ab `v27.2.300` ist der normale SnappyMail-/IMAP-/SMTP-Pfad inklusive Browserlogin für lokale PBKDF2-Passwortuser ein All-Users-Gate; `yellow_needs_live_user` gilt nicht mehr für normale lokale Azubi42-User, sondern nur für nicht lokale oder nicht belegte Identitaetsarten.

## SnappyMail-/Account-Login-Hardening

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py`, `toolbox/communication/mailclient_provision_local_user.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/mailclient_provision_local_user.py`, `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`, `30_INSTALLERS/ubuntu24/azubi42-server/70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py` und `70_TESTS_AND_SMOKE/legal/test_user_account_lifecycle_contract.py`[private Angabe entfernt]`ready`, wenn `verified_users` oder `provisioned_users` gesetzt sind; reine Links bleiben unverifiziert.
- Der frühere Live-Jura-Hinweis zum normalen User-Kontext ist ab v27.2.299 nur historisch und kein aktuelles Release-Grün ohne Current-Release-Gate und echten SnappyMail-Browserlogin.

## DTC-walt.id-QR-/International-/Vergabe-Matrix

- Ist inventarisiert: `40_INTEGRATIONS/legal-jura/zugangsbau/DTC_WALTID_TESTMATERIAL_MATRIX_2026-06-30.md`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/legal-jura/zugangsbau/DTC_WALTID_TESTMATERIAL_MATRIX_2026-06-30.md`, Zugangsbau-README, Todo-Intake, Changelog und Bauteileliste.
- Inventarstatus: Die Matrix setzt die ODT-Hinweise zu QR-Pass-Token, internationalem DTC und Vergabestelle auf belegbare Quellen/Gates ab.
- QR/OID4VP ist nur Praesentations-/Webflow-Kanal, ICAO PKD/EUDI bleiben internationale Vertrauens-/Relying-Party-Pfade, BVA-/Personalausweisportal-Berechtigungszertifikate bleiben getrennte eID-Schiene, walt.id bleibt mdoc/OID4VP-Adapterziel hinter dem Azubi42-DTC-Trust-Gate.
- Keine DTC-Ausgabe, keine hoheitliche Wallet-Behauptung und keine OSCI/EGVP-Sendefreigabe sind inventarisiert.

## DTC-walt.id-Bridge

- Ist inventarisiert: `toolbox/legal/dtc_waltid_bridge.py`, `70_TESTS_AND_SMOKE/legal/test_dtc_waltid_bridge.py`, Zugangsbau-README/Todo und die Ubuntu-Installer-Spiegel.
- Inventarstatus: Der Bauteil verifiziert den gepinnten walt.id-Commit, prüft mdoc/OID4VP-/Wallet-Anker und meldet native ICAO-DTC-Unterstuetzung nur bei strengen Quellmarkern.
- Fehlt dieser Nachweis, bleibt `adapter_required=true`; die erzeugbare Fixture ist synthetisch, adresslos, ohne Roh-DKK/rID, ohne Token/Key/Passwort und ohne OSCI/EGVP-Sendebereitschaft.

## Zugangsbau-Operator-Source-Materializer

- Ist inventarisiert: `40_INTEGRATIONS/legal-jura/zugangsbau/operator_source_lock.json`, `toolbox/legal/operator_source_materializer.py`, `70_TESTS_AND_SMOKE/legal/test_operator_source_materializer.py`, `40_INTEGRATIONS/legal-jura/zugangsbau/README.md`, `40_INTEGRATIONS/legal-jura/zugangsbau/TODO_SOURCE_INTAKE_XJUSTIZ_SNAPPY_WALLET_2026-06-30.md` und die Ubuntu-Installer-Spiegel unter `30_INSTALLERS/ubuntu24/azubi42-server/...`.
- Inventarstatus: Der Lock enthält keine privaten Werte und führt nur offizielle oder primaer massgebliche Quellen.
- Offline-Status nach Materialisierung ist grün für XJustiz XSD/SCH, OSCI Source, OSCI Maven, AusweisApp, EUDI-ARF und `walt.id` `v0.21.2` / `ac78640a21571d453355d19535ab49099b838268`; `walt.id` ist nur Wallet-/DTC-Kandidat ohne normative OSCI/EGVP-Sendegate-Wirkung.
- OSCI/EGVP-Transport bleibt bis Betreiberantwort, Zertifikat/Key, Postfach, Intermediaer und Send-/Empfangs-Smoke gesperrt bis zum Nachweis.

## XJustiz-Snappy-Wallet-Source-Intake

- Ist inventarisiert: `40_INTEGRATIONS/legal-jura/zugangsbau/TODO_SOURCE_INTAKE_XJUSTIZ_SNAPPY_WALLET_2026-06-30.md`, `toolbox/legal/xjustiz_baukasten.py`, `toolbox/legal/zugangsbau_operator_reply_intake.py`, `70_TESTS_AND_SMOKE/legal/test_xjustiz_baukasten_contract.py` und `70_TESTS_AND_SMOKE/legal/test_zugangsbau_operator_reply_intake.py`.
- Inventarstatus: Die ODT-Quellen `Snappy-todo.odt` und `_Roadmap_raw.odt` sind mit SHA256 erfasst; SnappyMail wird nicht als eRV-Transport geführt; Wallet/EUDI/DTC wird nicht mit OSCI/EGVP-Sendefreigabe vermischt.
- Betreiberantwort-Smokes duerfen Aliasfelder nutzen, werden aber nur installiert, wenn alle Transportpflichtgruppen vorhanden sind.
- Das Transportgate bleibt ohne echte private Betreiberantwort weiter gesperrt bis zum Nachweis.

## XJustiz-Snappy-Wallet-ODT-Reaudit

- Ist inventarisiert: Die ODT-Struktur wurde erneut gegen Volltext, Hyperlinks, Metadaten und eingebettete Objekte geprüft.
- Ergebnis: `Snappy-todo.odt` enthält 0 externe Hyperlinks, keine eingebetteten Objekte und 22 Textknoten; `_Roadmap_raw.odt` enthält 22 Hyperlinks, keine eingebetteten Objekte und 192 Textknoten.
- Nachgezogen wurden Test-/Prod-Root-CA-Trennung, Enterprise-beA/beBPo-Pfad, DTC/ICAO, EUDI-Relying-Party, Device-Trust/HSM-Fallback, Zero-Trust-Servervalidierung, Pflichtangriffe, Zugriffsschutz und Quarantaene für Prototype-/Drittlink-Inhalte.


## Provider-/Communication-Evidence-Slice 2026-06-30

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `70_TESTS_AND_SMOKE/ui/audit_toolbox_special_views.mjs`.
- Inventarstatus: Provider-WebViews laufen ohne Electron-`minheight`/`maxheight`; der Smoke akzeptiert WebContents-Crops nur mit Provider-DOM, 820px-Fläche, Ink-Beleg und Login-/QR-/Phone-/Workspace-Signalen.
- Fehlende Native-Anchor-Proben duerfen gute WebContents-Audits nicht mehr überschreiben.
- `audit_toolbox_special_views.mjs` prüft jetzt den echten `nav-tools`-Abschnitt, sodass Aktenhaltung/Rechtsmittel nicht mehr als Toolbox-Inhalt fehlklassifiziert werden.
- Historischer Live-Beleg: `[Serverpfad]`, `providerLoginCoverage=true`, `providerScreenshotCoverage=true`, `providerSessionCoverage=false`.
- Seit v27.2.299 gilt dieser Beleg nicht als aktuelles Release-Grün ohne Current-Release-Integrity-Gate.


## Codex-Arbeitsdisziplin-Skillset

- Ist inventarisiert: `00_META/CODEX_WIEDERHOLUNGSANALYSE_2026-06-29.md`, `C:\Users\User\.codex\skills\azubi42-server-ssh\SKILL.md`, `C:\Users\User\.codex\skills\azubi42-userflow-smoke\SKILL.md`, `C:\Users\User\.codex\skills\azubi42-clean-slice\SKILL.md` und `C:\Users\User\.codex\skills\azubi42-clean-slice\scripts\normalize_failure_patterns.py`.
- Inventarstatus: Die persoenlichen Skills liegen ausserhalb des Repo und steuern Codex-Arbeitsverhalten, nicht die Azubi42-Laufzeit.
- Sie sind als Gegenregeln für falsche Testorte, WinSCP-/SSH-Drift, nicht belegter Zustand-Grün, Screenshot-Falschpositive, Dirty-Tree-Verwischung und fehlende Userflow-Belege geführt.
- Der lokale Skill-Validator ist wegen fehlendem `PyYAML` blockiert; Minimalvalidierung der Frontmatter war erfolgreich.


## Native-Provider-Azubi-Smoke-Timeout-Gate

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`.
- Inventarstatus: Der Native-/Server-GUI-Azubi-Smoke darf bei haengendem Provider-Screenshot-Batch oder Azubi-SHOT nicht mehr ohne Report blockieren.
- `AZUBI42_PROVIDER_SCREENSHOT_TOTAL_TIMEOUT_MS` und `AZUBI42_AZUBI_SHOT_TIMEOUT_MS` erzeugen rote Timeout-Belege, ohne Provider-Sessions, QR/MFA/Consent oder Sendegates zu behaupten.


## Paperless-User-TOC-Reconcile-Execute-Gate

- Ist inventarisiert: `toolbox/legal/run_paperless_user_toc_reconcile.sh` und `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/run_paperless_user_toc_reconcile.sh`.
- Inventarstatus: Die Skripte sind als ausführbare Timer-Ziele geführt.
- Der zuvor rote `azubi42-paperless-user-toc.service` scheiterte an fehlendem Execute-Bit; nach Server-Chmod und Git-Mode-Fix lief der Service einmal manuell sauber durch: Exitcode 0, `files_seen=2960`, `documents_indexed=2`, `chunks_indexed=29`, `skipped_unchanged=2937`, `failures=[]`.


## Communication-Server-Smoke-Accordion-Gate

- Ist inventarisiert: `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py`.
- Inventarstatus: Der Server-Smoke erkennt eine bereits eingeloggte App über `#app-sidebar` und `#nav-views`, öffnet vor dem Dienstklick die Sidebar-Sektion `nav-communication` und prüft danach die Communication-Dienstknoten gegen ehrliche Providerzustandsmarker.
- Historische Live-Belege: Jura `[Serverpfad]`, Dev `[Serverpfad]`; beide `ok=true`, `serviceCount=12`, ohne nicht belegter Zustand-Visuals, ohne SnappyMail-/Communication-Mix und mit genau einem Sidebar-Scrolltraeger.
- Seit v27.2.299 zaehlen sie nur noch über das Current-Release-Integrity-Gate als aktuelle Freigabe.
- Authentifizierte Provider-Sessions sind nicht inventarisiert und bleiben korrekt rot, bis QR/MFA/Consent wirklich abgeschlossen sind.


## Sidebar-Open-All-Hardgate

- Ist inventarisiert: `70_TESTS_AND_SMOKE/ui/audit_sidebar_open_all_server_playwright.py`.
- Inventarstatus: Der Smoke prüft im echten Server-Userflow den Worst-Case "alle linken Accordions offen" gegen fachliche Abschnittsgrenzen, Pflichtmarker, Verbotsmarker, genau einen Sidebar-Scrolltraeger, keine verschachtelten Sidebar-Scroller und keine Console-/Pagefehler.
- Der aktuelle Testvertrag nutzt stabile App-IDs/-Klassen statt abgeleiteter Textmarker: `#communication-service-menu`, `#communication-sidebar-services`, `#flag-color`, `#flag-label`, `.vault-action-grid`, `#vault-service`, `#mailclient-sidebar-menu`, `#vorgang3d-sidebar-menu`.
- Live-Belege: Jura `[Serverpfad]`, Dev `[Serverpfad]`; beide `ok=true`, `failure_count=0`.


## Native-Provider-Login-Audit-Waitgate

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`.
- Inventarstatus: Login-Audits für Native-/BrowserView-Provider verwenden die wartende Login-Surface-Prüfung und speichern `nativeLoginWait`, damit kurze Startzustaende wie Element-NoJS nicht mehr als endgültiger Providerfehler zaehlen.
- Aktueller Serverbeleg: `[Serverpfad]`; `ok=true`, `providerLoginCoverage=true`, `providerScreenshotCoverage=true`, `azubiShotCoverage=true`, `iframeCount=0`, `imageLikeCount=0`.
- Authentifizierte Sessions bleiben getrennt und aktuell rot: `providerSessionCoverage=false`.


## Sidebar-Kontext-Allviews-Hardgate

- Ist inventarisiert: `70_TESTS_AND_SMOKE/ui/audit_sidebar_contexts_server_playwright.py`.
- Inventarstatus: Der Smoke prüft im echten Server-Userflow alle linken Hauptbereiche gegen aktive View, sichtbaren Root, erwartete offene Sidebar-Sektionen, fehlende Fremdsektionen, einen einzelnen vertikalen Sidebar-Scrolltraeger, sichtbare Control-Overflows sowie Console-/Pagefehler.
- Live-Belege: Jura `[Serverpfad]`, Dev `[Serverpfad]`; beide `ok=true`, alle geprüften Views ohne Failure.


## Sidebar-Kontextsicht-Hardgate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js` und `70_TESTS_AND_SMOKE/ui/audit_sidebar_bibliothek_server_playwright.py`.
- Inventarstatus: Der linke Sidebar-Abschnittsvertrag steht auf `single-scroll-v4`; alte lokale Abschnitts-Offenstaende werden migriert; Viewwechsel lassen nur fachlich passende Hauptsektionen offen.
- Der Bibliothek-Audit dokumentiert `openSidebarSections` und blockiert `noisyOpenSections`, damit gemischte Fachbereichskoerper nicht mehr als sauberer Bibliothek-Userflow durchgehen.


## Telegram-Provider-Web-K-Pfad

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `40_INTEGRATIONS/provider-webapp-browser/main.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/main.js`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`.
- Inventarstatus: Telegram nutzt im Communication-Dienstknoten und im Native-Smoke `https://web.telegram.org/k/`.
- Der direkte Server-Electron-Probelauf belegt dort echte Anbieter-Scriptausführung, QR-Logintext, Buttons und Canvas-Signale.
- NoJS-Telegramseiten bleiben als `javascript_blocked` rot.
- Zerstoerte BrowserViews nach Retry werden ohne stderr-Exception als `ok=false`/`retryable=true` gemeldet.
- Aktueller Beleg: `/tmp/azubi42_provider_shot_userflow_20260629_182303_telegram_webk_clean/provider_webview_smoke_azubi_20260629T162304Z.json`, `providerLoginCoverage=true`, `azubiShotCoverage=true`, `iframeCount=0`, `imageLikeCount=0`.


## Aktenhaltung-Paperless-Sidecar

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/10_PAPERLESS_RAG/10_1_PaperlessBridge.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/10_PAPERLESS_RAG/10_1_PaperlessBridge.js`, `10_SHARED_CORE/app_v27_multimedia/js/main.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/main.js`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_2_Navigation.js` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_2_Navigation.js`.
- Inventarstatus: Aktenhaltung besitzt den registrierten Paperless-Sidecar-Host, die Bridge startet beim App-Boot, `/api/paperless/...` wird vom Server bedient, und Sidebar-Aktionen für Human-Review/FixIt zielen auf den Aktenhaltung-View.


## Sidebar-Mischseiten-Gate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_9_ErrorFixList.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_9_ErrorFixList.js` und `70_TESTS_AND_SMOKE/ui/audit_sidebar_bibliothek_server_playwright.py`.
- Inventarstatus: Toolbox/KartOO und Calculator stehen im linken Menü direkt unter `Ansichten`; FixIt wird in Human-Kontrolle/Aktenhaltung eingehaengt und nicht mehr in der Toolbox angezeigt; Aktenhaltung bleibt Aktenhaltung, Mail bleibt Mail, Communication bleibt Messenger-/Providerbereich.
- Mail- und Communication-Untermenüs starten geschlossen.
- Der globale Eingabe-Dock ist in nicht-chatartigen Fachansichten ausgeblendet.
- Der Audit sperrt die alten Falschgrünsignale: Toolbox nicht above fold, FixIt in der Toolbox, mehr als ein Paperless-Aktenhaltung-Sidecar-Host, offene Mail-/Communication-Details oder sichtbare globale Bibliothek-Eingabeleiste.


## Provider-BrowserView-SHOT-Hardgate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js`, `40_INTEGRATIONS/provider-webapp-browser/main.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/main.js`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`.
- Inventarstatus: aktive BrowserView-Anker mit Vertrag `azubi42.provider_webapp_browser.v2` werden vom Azubi-SHOT als Native-Provider-Fläche erkannt und per Native-Host-CDP-Fullpage aufgenommen.
- Server-GUI-Beleg: `/tmp/azubi42_provider_shot_userflow_20260629_172953_strict/provider_webview_smoke_azubi_20260629T152953Z.json`; `providerScreenshotCoverage=true`, `azubiShotCoverage=true`, `providerLoginCoverage=false`, weil Telegram im echten BrowserView `provider_reports_javascript_disabled` meldet.
- Screenshot-Sichtbarkeit, Loginbereitschaft, authentifizierte Session und Sendefreigabe bleiben getrennte Inventargates.


## Provider-WebView-Guest-Resize-Hardgate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_12_NativeWebViewNode.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_12_NativeWebViewNode.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs`.
- Inventarstatus: Provider-/Workspace-WebViews rendern ohne `disableguestresize` und ohne Electron-`minheight`/`maxheight`; SHOT-/Smoke-Resize entfernt diese Attribute auch von alten Live-Knoten.
- Falls der Electron-Guest intern trotzdem 300x150 bzw. 150px Innenhöhe meldet, nutzt der Capturepfad kontrolliert CDP-DeviceMetrics und weist das im Report aus.
- Google Chat ist als eigener Dienstknoten auf `https://chat.google.com/`[private Angabe entfernt]`v27.2.296 / 27321`.


## Sidebar-Single-Scroll-Hardgate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css`, `70_TESTS_AND_SMOKE/ui/audit_sidebar_sections.mjs`, `70_TESTS_AND_SMOKE/ui/audit_sidebar_accordion_browser.mjs` und `70_TESTS_AND_SMOKE/ui/audit_light_theme_resize.mjs`.
- Inventarstatus: Linke Seitenleisten-Abschnitte haben keinen Höhenziehgriff und keine eigenen vertikalen Body-Scroller mehr; alte lokale Abschnittshöhen werden beim Start gelöscht.
- Der Breitenziehgriff bleibt erhalten.
- Der prüfbare Vertrag heisst `single-scroll-v3`; `#sidebar-nav`[private Angabe entfernt]`v27.2.295 / 27320`.


## Workspace-Startscreen-Entdopplung

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_10_ViewStartScreens.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_10_ViewStartScreens.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css`.
- Inventarstatus: Workspace benutzt Sidebar/Header als primaere Navigation; der Startscreen enthält keine zweite Menüspalte, kein rechtes `Startsetup` und keinen zweiten Ansichten-Wechselblock.
- Live-Beleg: `/tmp/azubi42_workspace_startscreen_live2/rect.json` auf dem Server und lokaler Screenshot `runtime/qa/workspace_startscreen_live_20260629/workspace_startscreen_rect.png`, `ok=true`[private Angabe entfernt]`v27.2.294 / 27319`.


## Native-Provider-WebView-Compare-Hardgate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_12_NativeWebViewNode.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_12_NativeWebViewNode.js`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`.
- Inventarstatus: Workspace-URL-Knoten mit Native-Host zeigen `WebView` und rendern Provider-WebViews nicht mehr als fehlenden Host.
- Der Server-Native-Compare-Smoke schreibt sichtbare Communication-/Workspace-Belege und bewertet diese mit Pixelqualitaet.
- Historischer Live-Beleg: `[Serverpfad]`, `ok=true`, `webviewCount=8`, `iframeCount=0`, `imageLikeCount=0`[private Angabe entfernt]`v27.2.293 / 27318`.
- Seit v27.2.299 ist das kein aktuelles Release-Grün ohne Current-Release-Integrity-Gate.


## Sidebar-/Communication-Nutzertext-Entstörung

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_9_ErrorFixList.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_9_ErrorFixList.js`, `10_SHARED_CORE/app_v27_multimedia/js/11_AUTH_MANAGER/11_3_MatrixBridge.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/11_AUTH_MANAGER/11_3_MatrixBridge.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`.
- Inventarstatus: Sichtbare Sidebar-/Tresor-/Communication-Texte verwenden keine `Todo`-, `Bridge`- oder `Connector-Vertrag`-Beschriftung als Bedienoberfläche mehr.
- Die technische Gate-Logik bleibt gesperrt bis zum Nachweis und intern benannt, aber nicht mehr als Hauptinhalt in Nutzerknoten ausgespielt.


## Echte-Login-Browser-Smoke-Hardgate

- Ist inventarisiert: `70_TESTS_AND_SMOKE/ui/audit_sidebar_accordion_browser.mjs`, `70_TESTS_AND_SMOKE/ui/audit_view_start_screens_browser.mjs`, `70_TESTS_AND_SMOKE/ui/clicktest_toolbox_links_and_connectors.mjs` und `70_TESTS_AND_SMOKE/ui/clicktest_zugangsbau_blickwinkel_userflow.mjs`.
- Inventarstatus: Live-Smokes gegen geschützte Serverinstanzen behandeln die Loginmaske explizit und blockieren ohne Smoke-Credentials.
- Sidebar-Reports können isoliert unter Runtime-/QA-Pfaden liegen.
- Zugangsbau-Quellen werden als App-internes BrowserGateway-Routing geprüft; `_blank` ist für diese Quellen verboten.
- Live-Beleg jura `runtime/qa/live_smoke_27316`: Sidebar ok, ViewStart ok, Toolbox ok, Zugangsbau/Blickwinkel ok; keine Console- oder Pagefehler im ausgewerteten Userflow.


## Logo-Lightbox-/MediaParser-App-Tab-Gate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/index.html`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/index.html`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_4_MediaParser.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_4_MediaParser.js` und `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs`.
- Inventarstatus: Logo-/Partneraktionen verlassen den App-Tab nicht mehr per `_blank`, sondern werden als BrowserGateway-Aktion gemeldet.
- MediaParser-PDFs öffnen lokale Blob-PDFs nicht extern, sondern zeigen das PDF-Objekt im Knoten und führen nur einen Download-Fallback.
- Der BrowserGateway-Audit sperrt neue `_blank`-Rueckfaelle in `index.html`[private Angabe entfernt]`v27.2.291 / 27316`.


## JuraBibliothek-AppBrowser-Linkgate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` und `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs`.
- Inventarstatus: Bibliothek-/Zugangsbau-/Aktenzeitstrahl-/Bundesanker-Ziele sind keine `_blank`-Anker mehr, sondern AppBrowser-/BrowserGateway-Buttons oder `data-tool-link`-Buttons.
- Der Audit sperrt neue `_blank`[private Angabe entfernt]`v27.2.290 / 27315`.


## ChatLayoutAccount-AppBrowser-Linkgate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/02_CHAT/02_1_ChatWindow.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, die Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs`.
- Inventarstatus: Chat-Trefferquellen und Account-Direktlinks sind AppBrowser-/BrowserGateway-Buttons; FixIt-JSON und Rechtsmittel-3D nutzen den vorhandenen `data-tool-link`-Pfad.
- Der Audit sperrt neue `_blank`[private Angabe entfernt]`v27.2.289 / 27314`.


## WebSearch-AppBrowser-Linkgate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_6_WebSearch.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/06_API_ROUTER/06_6_WebSearch.js` und `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs`.
- Inventarstatus: Web-, Bild- und Videotreffer sind keine `_blank`-Anker mehr, sondern AppBrowser-/BrowserGateway-Buttons.
- Der Audit sperrt neue `_blank`[private Angabe entfernt]`v27.2.288 / 27313`.


## PaperlessBridge-AppBrowser-Linkgate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/10_PAPERLESS_RAG/10_1_PaperlessBridge.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/10_PAPERLESS_RAG/10_1_PaperlessBridge.js` und `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs`.
- Inventarstatus: Paperless-Dokument-, Paperless-Such- und Inlinebild-Review-Ziele sind keine `_blank`-Anker mehr, sondern AppBrowser-/BrowserGateway-Buttons.
- Der Audit sperrt neue `_blank`[private Angabe entfernt]`v27.2.287 / 27312`.


## WebScraper-AppBrowser-Linkgate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_3_WebScraper.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_3_WebScraper.js` und `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs`.
- Inventarstatus: Webimporte zeigen im Snapshot keine zusätzliche `Open`-Aktion mit `target="_blank"` mehr.
- Die Live-/Pixelansicht bleibt über den internen `Browser`-Knoten erreichbar; der Snapshot ist nur Lesekontext.
- Der Audit sperrt neue `_blank`[private Angabe entfernt]`v27.2.286 / 27311`.


## Communication-Fachazubi-AppBrowser-Linkgate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css` und `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs`.
- Inventarstatus: Fachazubi-Forgejo-/Modulpfadziele sind im Popup und in den Karten App-interne Action-Buttons statt `_blank`-Anker.
- Der Communication-Audit verbietet `target="_blank"` im Communication-Code.
- Live-Status nach Deploy: `azubi42-jura` und `azubi42-dev` laufen mit `v27.2.285 / 27310`; der Communication-Server-Smoke meldete pro Instanz `ok=true`, 12 Dienste geprüft, keine alte Zentrale, keine nicht belegter Zustand-Visuals, keine Mail-/SnappyMail-Vermischung und einen einzelnen Sidebar-Scrolltraeger.


## Sidebar-Viewwechsel-Restore-Hardgate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/04_NODE/04_1_Builder.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/04_NODE/04_1_Builder.js` und `70_TESTS_AND_SMOKE/ui/audit_sidebar_bibliothek_server_playwright.py`.
- Inventarstatus: Wiederhergestellte Workspace-Knoten duerfen nicht mehr heimlich den Org-View aktivieren.
- Neue echte Org-/Workspace-Knoten behalten den bisherigen Zielbuttonpfad.
- Der Serveraudit prüft erwartete Zielansichten für sichere Sidebar-Klicks und führt falsche Views als eigene Failure-Klasse.
- Live-Reports nach Deploy: `[Serverpfad]` und `[Serverpfad]`; beide melden `ok=true`, keine Failures, keine falschen Klickviews, keine Consolefehler und keine Pagefehler.


## BuschCode-Fachentmischung

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_5_BuschCode.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_10_ViewStartScreens.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/view_start_menus/buschcode_menu.js`, `10_SHARED_CORE/app_v27_multimedia/js/10_PAPERLESS_RAG/10_1_PaperlessBridge.js`, die jeweiligen Ubuntu-Installer-Spiegel sowie `70_TESTS_AND_SMOKE/ui/audit_view_start_screens.mjs` und `70_TESTS_AND_SMOKE/ui/audit_buschcode_project_world.mjs`.
- Inventarstatus: BuschCode führt nur Modell-/Projektwelt-/Fach-Azubi-Funktionen.
- Jurabibliothek-/Paperless-/Sidecar-, Blickwinkel-, Tresor-/Vault-, Weblogin- und Workspace-Handoff-Rueckfaelle sind aus Startscreen, Layout, Binder und Paperless-Injektion entfernt.
- Die Audits prüfen die verbotenen alten Marker und verhindern erneuten Mischseiten-Aufbau.


## BuschCode-Live-Mixfilter

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_5_BuschCode.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und die Ubuntu-Installer-Spiegel filtern sichtbare Akten-/Paperless-/Jurabibliothek-/OCR-/Sidecar-Spuren aus der BuschCode-Projektwelt und neutralisieren den sichtbaren Jura-Fachazubi-Text im BuschCode-Kontext.
- Inventarstatus: echte Module bleiben unveraendert, sichtbare BuschCode-Flache bleibt Code-/Server-/FixIt-bezogen.


## Server-View-Smoke-Hardgate

- Ist inventarisiert: `70_TESTS_AND_SMOKE/ui/audit_sidebar_accordion_browser.mjs`, `70_TESTS_AND_SMOKE/ui/clicktest_toolbox_links_and_connectors.mjs`, `70_TESTS_AND_SMOKE/ui/clicktest_zugangsbau_blickwinkel_userflow.mjs`, `10_SHARED_CORE/app_v27_multimedia/js/07_DATA_VAULT/07_5_PerspectiveSpaces.js`, `10_SHARED_CORE/app_v27_multimedia/js/07_DATA_VAULT/07_6_CommunicationSpaces.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_2_Navigation.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und die beiden Data-Vault-Spiegeldateien.
- Inventarstatus: Die lokalen 8142-Defaults sind aus den UI-Smokes entfernt; Tests laufen gegen `azubi42-jura`, sofern kein expliziter URL-Override gesetzt wird.
- Zugangsbau/Blickwinkel meldet `ok=true` nur bei sichtbarem Aktenhaltung-View, realer Operatorenzahl und sichtbaren Perspektiven-Waffe-Aktionen.
- Sidebar-Accordion, Toolbox-Links, Sidebar-Sections, Toolbox-Spezialansichten und KartOO-Contract liefen mit Exit 0.
- Der Installer-Spiegel besitzt den Mail-Hauptpunkt und die Mailrouting-Logik wieder, damit Paketbuilds nicht hinter Shared-Core zurückfallen.


## Sidebar-Mail-Human-Hardgate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_2_Navigation.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_2_Navigation.js` und `70_TESTS_AND_SMOKE/ui/audit_sidebar_bibliothek_server_playwright.py`.
- Inventarstatus: Viewwechsel sind über `data-current-view` für echte Browser-Smokes sichtbar.
- Der Serveraudit prüft Mail-Unteraktionen und Human-Kontrolle gegen erwartete Ziel-DOM-Knoten, nicht nur gegen Klickbarkeit.
- Live-Belege liegen auf `azubi42-jura` unter `[Serverpfad]` und auf `azubi42-dev` unter `[Serverpfad]`; beide Laeufe meldeten keine Failures, Consolefehler oder Pagefehler.


## Sidebar-Mail-Human-Split

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_2_Navigation.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_10_ViewStartScreens.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `70_TESTS_AND_SMOKE/ui/audit_sidebar_sections.mjs`, `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs`, `70_TESTS_AND_SMOKE/ui/audit_light_theme_resize.mjs`, `70_TESTS_AND_SMOKE/ui/audit_sidebar_bibliothek_server_playwright.py`, `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py` und `70_TESTS_AND_SMOKE/integrations/test_snappymail_proxy_contract.py`.
- Inventarstatus: `mail` ist eigene Canvas-View mit Sidebar-Hauptpunkt `Mail`, Startkarte `Postfach starten` und SnappyMail-/Nachweisaktionen.
- `communication` enthält keine Mailclient-/SnappyMail-Pfade mehr als Messenger-Inhalt.
- `Aktenhaltung` führt `Human-Kontrolle` mit Vision-Review, FixIt, Antwortdeckung und Rechtsmittel.
- Der Browser-Theme-Smoke und der echte Server-Sidebar-Smoke prüfen die neue Mail-Section; Mailclient-`account-status` liefert bei nicht lesbarem privatem Secretpfad einen strukturierten gesperrt bis zum Nachweis Status statt 502.
- Der SnappyMail-Proxyvertrag bleibt unveraendert same-origin.


## Sidebar-Modellregeln-Autosize und Server-Bibliothek-Smoke sind inventarisiert

- `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_7_ModelInstructionProfiles.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/06_API_ROUTER/06_7_ModelInstructionProfiles.js` und `70_TESTS_AND_SMOKE/ui/audit_sidebar_bibliothek_server_playwright.py`.
- Inventarstatus: Die Modellregel-Textareas im linken Menü tragen `data-model-rule-autosize="1"`, nutzen `resize-none overflow-hidden` und werden beim Rendern sowie bei Eingabe automatisch in der Höhe angepasst.
- Der Server-Bibliothek-Smoke erkennt bereits geladene App-Shells, wartet andernfalls auf die Loginmaske und prüft danach Bibliothek gegen Aktenhaltungs-Mix sowie sichtbare Zusatzscrollbars.


## Bibliothek-Aktenhaltung-Startscreen-Split

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/view_start_menus/bibliothek_menu.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/view_start_menus/aktenhaltung_menu.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_10_ViewStartScreens.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/view_start_menus/bibliothek_menu.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/view_start_menus/aktenhaltung_menu.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_10_ViewStartScreens.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `70_TESTS_AND_SMOKE/ui/audit_view_start_screens.mjs`, `70_TESTS_AND_SMOKE/ui/audit_toolbox_special_views.mjs`, `70_TESTS_AND_SMOKE/ui/audit_mahnwesen_ui.mjs`, `70_TESTS_AND_SMOKE/ui/audit_observatorium_ui.mjs` und `70_TESTS_AND_SMOKE/ui/audit_aktenzeichen_timeline.mjs`.
- Inventarstatus: Bibliothek enthält keine Aktenhaltung-/Vorgang3D-/AMT-VI-/Rechtsmittel-/Mahnwesen-/Observatorium-Menüpunkte mehr.
- Aktenhaltung liegt als eigenes Startmenü und eigener Sidebarbereich vor; das früher automatisch aufgeklappte Speziallink-Dropdown startet geschlossen.
- Shared-Core und Ubuntu-Installer-Spiegel sind synchron.


## Provider-WebView-SHOT-Hardgate

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/native-capture-ipc.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/native-capture-ipc.js`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js`.
- Inventarstatus: Die aktuelle 150px-Ursache ist als eingefrorener Electron-Guest-Viewport durch `disableguestresize` und Electron-`minheight`/`maxheight` nachgezogen; diese Attribute sind im Render-/Resize-/Smoke-Pfad verboten.
- Der Resize-IPC bleibt gegen `Object has been destroyed` abgesichert, wenn ein Provider-WebView während Reload/Smoke geschlossen wird.
- Aeltere Serverbelege unter `[Serverpfad]`, `[Serverpfad]` und `[Serverpfad]` werden durch neue v27.2.296-Livebelege ersetzt.
- `providerSessionCoverage=false` bleibt als rotes Auth-/QR-/MFA-Gate erhalten.


## Native-Provider-SHOT-Evidence-Smoke

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `40_INTEGRATIONS/provider-webapp-browser/main.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/main.js`, `40_INTEGRATIONS/provider-webapp-browser/native-capture-ipc.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/native-capture-ipc.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_12_NativeWebViewNode.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_12_NativeWebViewNode.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und `30_INSTALLERS/ubuntu24/azubi42-server/70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py`.
- Inventarstatus: Der Live-Smoke nutzt die Azubi42-interne SHOT-Funktion als eigenen Evidence-Pfad.
- Native-/Provider-WebViews laufen im Native-Host über den gemeinsamen Electron/CDP-Fullpage-Capture `native-capture-ipc.js`; Provider-Einzelbilder und AZUBI42-SHOT verwenden damit denselben Beweisweg statt des alten 150px-`webview.capturePage`-Rueckfalls.
- Die Provider-Capture-Schiene misst erst den natuerlichen Inhalt und erzeugt keine 1800px-Wiederholungsbelege.
- Nicht authentifizierte geplante Dienste starten im Anbieter-Loginpfad; Slack geht nicht mehr direkt auf den App-Client.
- Telegram/WhatsApp sind nur als echte Anbieter-Login-/QR-/Phone-WebViews belegt, nicht als authentifizierte Sessions oder Sendebereitschaft.


## Native-Provider-Electron-Runtime

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/package.json`, `40_INTEGRATIONS/provider-webapp-browser/package-lock.json`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/package.json` und `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/package-lock.json`.
- Inventarstatus: Electron `39.8.10` ist der aktive Native-WebView-Host-Stand für Server-Deploys mit Node 18; Electron 42 bleibt bis zu einem separaten Node-22-Upgrade ausgespart.


## Native-Provider-WebView-Paritaetsvergleich

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `40_INTEGRATIONS/provider-webapp-browser/package.json`, `40_INTEGRATIONS/provider-webapp-browser/README.md` und `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py`.
- Inventarstatus: `smoke:compare` prüft im echten Azubi42-Userflow Communication-Dienstknoten gegen normale Workspace-URL-Knoten, schreibt je Dienst Communication-/Workspace-Screenshots und lässt nur echte `webview`-Tags mit gleicher URL, Hosttreffer und ohne iframe-/Bild-/BrowserGateway-Fallback als paritaetserfuellt gelten.
- Unterschiedliche WebView-Partitions bleiben dokumentierte Scope-Trennung zwischen User-/Dienst-Session und allgemeinem Workspace-Browser.


## Native-Provider-Smoke-CLI-gesperrt bis zum Nachweis

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und `30_INSTALLERS/ubuntu24/azubi42-server/70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py`.
- Inventarstatus: Der Server-GUI-Smoke liest private Pfade und Zielraumdaten aus beiden CLI-Formen und verhindert, dass `--session-evidence-path /pfad` als leerer Wert behandelt wird.
- Provider-Startseiten werden nicht als Zielkontakte inventarisiert; Zielraum/Zielkontakt muss aus expliziter Zielzuordnung oder echter dienstspezifischer Ziel-URL kommen.
- Damit arbeitet der Contract-Sync gegen die aktuelle rote oder grüne Evidence, nicht gegen alte Nebenprodukte oder generische Startseiten.


## Native-Provider-Session-Sync

- Ist inventarisiert: `toolbox/communication/provider_native_session_sync.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_native_session_sync.py`, `70_TESTS_AND_SMOKE/integrations/test_provider_native_session_sync.py` und `30_INSTALLERS/ubuntu24/azubi42-server/70_TESTS_AND_SMOKE/integrations/test_provider_native_session_sync.py`.
- Inventarstatus: Nach echtem QR-/MFA-/Consent-Abschluss im Native-/Server-GUI-WebView kann der private Evidence-Beleg in die private Provider-Contract-JSON und optional in Dev/Jura `[private Angabe entfernt]` übernommen werden.
- Der Bauteil schreibt keine Secrets in Reports, gibt Zielkontakte nicht im Summary aus, lehnt unauthentifizierte Login-/QR-Zustaende und Provider-Startseiten als Zielkontakt ab und öffnet keine Sendegates.


## Provider-Webapp-Browser-Deployruntime

- Ist inventarisiert: `toolbox/deploy/deploy_live_winscp.ps1`, `40_INTEGRATIONS/provider-webapp-browser/package.json`, `40_INTEGRATIONS/provider-webapp-browser/package-lock.json` und `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py`.
- Inventarstatus: Der Native-Provider-Webapp-Browser wird im Live-Deploy mit ausgeliefert und bei `-EnsureProviderWebappRuntime` in den beiden App-Instanzen sowie im kanonischen Server-GUI-Pfad `[Serverpfad]` per `npm ci` installiert.
- Lokale `node_modules` und `runtime` werden nicht ins Paket kopiert.
- Der aktuelle Serverbeleg meldet `PROVIDER_WEBAPP_NATIVE_READY`; Matrix/Telegram/WhatsApp/Slack laden als echte Electron-`webview`-Providerseiten, während `providerSessionCoverage=false` korrekt echte User-Login-/QR-/MFA-Aktion verlangt.


## Provider-Return-NativeWebView-Vertrag

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_8_ProviderReturnBridge.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_8_ProviderReturnBridge.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_13_AppBrowserRoute.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_13_AppBrowserRoute.js` und `70_TESTS_AND_SMOKE/ui/audit_input_routine_modes.mjs`.
- Inventarstatus: Provider-Weblogin-Starts aus Modellblock, Tresor und Logo-Aktionen erzeugen einen Communication-Workspace-Knoten mit Native-WebView-Vertrag.
- BrowserGateway-/Screenshotpfade, iframe, Popup und neuer Provider-Tab sind in diesem Pfad Regression.
- Ohne Native-/Server-GUI-Host bleibt der Knoten ehrlich im Host-fehlt-Zustand.
- `10_SHARED_CORE/app_v27_multimedia/index.html`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/index.html` und `00_META/version_manifest.json` sind für `v27.2.270` / `27295` synchron.


## Blickwinkelkanone-Startartenvertrag

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_9_LegalPerspectives.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_9_LegalPerspectives.js` und `70_TESTS_AND_SMOKE/ui/audit_perspective_bundle.mjs`.
- Inventarstatus: Die Blickwinkelkanone unterscheidet vorhandene Ausgangsknoten und neue freie Lagen.
- Ohne `sourceNodeId` entsteht ein echter `Laufende Ausgangslage`-Knoten als Quelle; die Reaktionslinien werden daraus erzeugt und nicht nur textlich angekuendigt.
- `unzul_sanktion` ist als eigener Gefahr-/Rotbereich für Todesstrafe/Hinrichtung geführt.
- Entzerrte BWB-Anker sichern klickbare Griffe bei mehreren Signalbuendeln.
- Der Audit enthält einen Neustart-Fall, prüft Signallinien und Drag derselben Bundle-ID und sperrt damit den alten stillen `scheduleEmotionRefresh()`-Rueckfall.


## Native-Provider-Webapp-Browser-Autostart

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/main.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/main.js` und `40_INTEGRATIONS/provider-webapp-browser/README.md`.
- Inventarstatus: Der Server-GUI-Native-Host kann einen echten Azubi42-Userflow aus privater Passwortdatei vorbereiten und Communication plus ausgewählte Providerknoten öffnen.
- Der Pfad ist ein Bedienstart, kein Provider-Erfolg: QR-/MFA-/Consent-Abschluss, Zielraum/Zielkontakt und Send-Smoke bleiben gesperrt bis zum Nachweis, bis echte Anbieter-Session und private Evidence vorliegen.


## Native-Provider-Session-Evidence-Export

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und der Ubuntu-Installer-Testspiegel.
- Inventarstatus: Der Native-Smoke kann aus echten Provider-WebView-Login-Audits eine private Evidence-Datei für `provider_contracts_smoke.py` schreiben.
- Der Export ist ohne expliziten privaten Pfad aus; Zielkontakte werden nicht geraten.
- Reportausgaben bleiben secretfrei und enthalten nur Schreibstatus/Pfad.


## Communication-Provider-Native-Session-Evidence-Gate

- Ist inventarisiert: `toolbox/communication/provider_contracts_bootstrap.py`, `toolbox/communication/provider_contracts_apply.py`, `toolbox/communication/provider_contracts_smoke.py`, `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_bootstrap.py`, `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_apply.py`, `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py`[private Angabe entfernt]`__delete_keys__` entfernen und speichert diesen Marker nicht in der Zielkonfiguration.
- Dieser Beleg schließt die Userflow-Luecke, aber keine Sendefreigabe: `Sende-Freigabe` bleibt ohne echten Provider-/Bridge-/Systemdienstvertrag und explizites Sendegate geschlossen.


## Native-Provider-Session-Gate

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und `30_INSTALLERS/ubuntu24/azubi42-server/70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py`.
- Inventarstatus: Der Native-Smoke meldet getrennt, ob eine Anbieter-Webapp echt im Electron-`webview` geladen wurde und ob dort eine authentifizierte User-Session sichtbar ist.
- `--require-authenticated-session` macht diese Session-Coverage zum harten Gate.
- QR-/Phone-/MFA-/Loginprompt-Zustaende bleiben bewusst rot und werden als User-Aktion ausgewiesen, statt als fertiger Providervertrag oder Sendebereitschaft zu zaehlen.


## Native-Provider-Smoke-Mailtrennung

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs`.
- Inventarstatus: Der Server-GUI-Smoke kann Matrix, Telegram, WhatsApp, Slack und Mailclient gemeinsam anfordern; im Azubi-UI-Flow werden nur die vier Communication-Provider als Dienstknoten getestet, während `mailclient` dokumentiert als eigener Mailbereich übersprungen wird.
- Der separate Provider-Smoke prüft SnappyMail weiter als echten WebView mit eigenem Screenshot- und Login-Coverage-Gate.


## Communication-Provider-No-Handoff-Gate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und `30_INSTALLERS/ubuntu24/azubi42-server/70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py`.
- Inventarstatus: Provider-Webapp-Knoten duerfen im normalen Browser nicht per `_self`, Launchlink, BrowserGateway, Screenshottransport, iframe oder externer App-Flucht als Login-Ersatz starten.
- Der echte Anbieter-Login bleibt dem Native-/Server-GUI-WebView vorbehalten.
- Mailclient/SnappyMail ist kein Messenger-Provider und bleibt als eigener Dienstknoten erhalten; Cleanup entfernt ihn nur ohne belegten SnappyMail-/WebView-Inhalt.


## AZUBI42.de Public-Schutztexte sind inventarisiert

- `20_EDITIONS/azubi42-de/website/index.html`, `20_EDITIONS/azubi42-de/website/css/site.css`, `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/website/index.html`, `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/website/css/site.css` und `70_TESTS_AND_SMOKE/ui/audit_azubi42_domain_site.mjs`.
- Inventarstatus: Public-Seite und Installer-Spiegel enthalten die entschärfte Jura-/Enterprise-Kommunikation, die CBTC-Karte und die AI-Act-/DSGVO-Matrix.
- Die Website grenzt sichtbar gegen Rechtsberatung, automatische Entscheidung und Fristgarantie ab.
- Der Audit prüft diese Texte und verhindert Rueckfall auf die alte pauschale Rechtssicherheitsaussage.


## Communication-Provider-WebView-Userpartition

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs`.
- Inventarstatus: Provider-WebViews im Native-/Server-GUI-Host nutzen user- und dienstgebundene Electron-Partitionen.
- Der User-Scope stammt aus Account-/Loginprofil; Dienst-ID und User werden normalisiert und ergeben `persist:azubi42-<user>-<service>`.
- Dadurch ist derselbe Providerdienst zwischen verschiedenen Azubi42-Usern getrennt, ohne Traffic über den Azubi42-Server zu werfen. iframe bleibt verboten und wird nur als Audit-/Smoke-Negativsignal gezaehlt.


## Native-Provider-WebView-Einzelsmoke

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und `40_INTEGRATIONS/provider-webapp-browser/README.md`.
- Inventarstatus: Der Native-Smoke kann einzelne Anbieter mit `--provider` oder mehrere mit `--providers` prüfen, ohne alle Provider-WebViews gleichzeitig zu starten.
- Unbekannte IDs brechen mit Exitcode `2` ab; ausgewählte fehlende Webapp-/Host-Vertraege und leere Providerlaeufe bleiben rot.
- Lokal und auf dem Server-GUI-Native-Host sind `telegram`, `matrix`, `whatsapp` und `slack` einzeln mit je 1 Electron-`webview`, 0 iframes und 0 Bild-/Screenshot-Ersatz belegt.
- Der Bauteil prüft nur echte Anbieter-Webapp-/Login-Oberflächen im Electron-`webview`; Zielraum, Zielkontakt, Bridge-/Relayvertrag und Senden bleiben weiter beim gesperrt bis zum Nachweis Userflow-Gate.


## Communication-Provider-Userflow-Gate

- Ist inventarisiert: `toolbox/communication/provider_contracts_smoke.py`, `toolbox/communication/provider_test_account_workbench.py`, `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py` und `70_TESTS_AND_SMOKE/integrations/test_communication_provider_test_account_workbench.py`[private Angabe entfernt]`Sende-Freigabe=false`.
- Die Workbench führt Userflow-Gates, Blocker, Readiness, private Serverpfade und Live-/Send-Smoke-Befehle pro Dienst secretfrei auf.


## Communication-Provider-Live-Auth-Resolver

- Ist inventarisiert: `toolbox/communication/provider_contracts_smoke.py` und `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py`.
- Inventarstatus: Die Provider-Workbench und der Provider-Smoke suchen die Auth-Konfiguration nicht mehr nur im Repo-Shared-Core, sondern zuerst über `AZUBI42_AUTH_CONFIG`, dann Shared-Core, dann lokales Server-App-Layout und danach die Live-Instanzen `[Serverpfad]` und `[Serverpfad]`.
- Dadurch bleiben echte Serverinstanzen mit `[private Angabe entfernt]` belegbar, ohne falsche `missing_contract`-Reports.
- Der Resolver ist ein Lesepfad-/Testpfad-Bauteil; er schreibt keine privaten Werte und setzt kein `Sende-Freigabe`.


## Frontend-Shell-Assetloader

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/index.html`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/index.html`, `10_SHARED_CORE/app_v27_multimedia/css/tailwind-runtime.css`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/tailwind-runtime.css`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css`, `10_SHARED_CORE/app_v27_multimedia/css/mobile-smart.css` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/mobile-smart.css`[private Angabe entfernt]`ERR_ABORTED`-Stylesheet-Fehler mehr melden.


## App-Browserroute für Tool-/Connect-/Quellenlinks

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_13_AppBrowserRoute.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_13_AppBrowserRoute.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_1_ToolManager.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_1_ToolManager.js`, `10_SHARED_CORE/app_v27_multimedia/js/11_AUTH_MANAGER/11_5_FachConnectBridge.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/11_AUTH_MANAGER/11_5_FachConnectBridge.js`, `10_SHARED_CORE/app_v27_multimedia/js/11_AUTH_MANAGER/11_4_ForgejoBridge.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/11_AUTH_MANAGER/11_4_ForgejoBridge.js` und `70_TESTS_AND_SMOKE/ui/clicktest_toolbox_links_and_connectors.mjs`.
- Inventarstatus: Tool-, FachConnect-, Forgejo-Version- und Alt-Quellenlinks routen in einen App-Browser-Knoten mit NativeWebView-Vertrag.
- Der Klicktest erkennt diese Knoten über `data-app-browser-route`; `audit_tool_navigation_routing.mjs` prüft Import, Boot-Aufruf sowie Click-/Auxclick-Capture der globalen Link-Wache.
- Provider-Contracts bleiben davon getrennt: Ohne echte private Betreiberwerte wird kein Sendegate geöffnet.


## App-Fluchtstellen-Hardening

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_8_ProviderReturnBridge.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_8_ProviderReturnBridge.js`, `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_12_NativeWebViewNode.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_12_NativeWebViewNode.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_2_Navigation.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_2_Navigation.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_10_ViewStartScreens.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_10_ViewStartScreens.js`, `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_1_ModelSelector.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/06_API_ROUTER/06_1_ModelSelector.js`, `10_SHARED_CORE/app_v27_multimedia/js/11_AUTH_MANAGER/11_1_VaultDB.js` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/11_AUTH_MANAGER/11_1_VaultDB.js`.
- Inventarstatus: Provider-Rueckkehr, Startscreen-Webziele und Spatial-Jura-Start erzeugen sichtbare Azubi42-BrowserGateway-Knoten; NativeWebView bleibt ein eigener Native-Host-Bauteil mit ehrlichem Host-fehlt-Fallback.
- Diese Pfade duerfen keine externen Tabs, keine neuen Browserfenster und keine Anbieter-/Webseiten-Fakeinhalte erzeugen.


## View-Startscreen-Scrollbar-Hardening

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/css/style.css` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css`.
- Inventarstatus: Der redundante Startscreen-Footer ist aus dem sichtbaren Stage-Layout entfernt, damit Startkarten keine zweite vertikale Scrollfläche erzeugen.
- Primary-Actions, Space-Menü und Setup-Spalte bleiben die führenden Bedienwege.


## Communication-Provider-Direktbrowser-Anker

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py` und `30_INSTALLERS/ubuntu24/azubi42-server/70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py`.
- Inventarstatus: Externe Provider-Knoten mit `data-real-content-probe="provider-direct-browser-ready"` bleiben als dienstspezifische Provider-Webapp-Knoten erhalten.
- Der Live-Smoke prüft Matrix/Telegram/WhatsApp/Slack als Communication-Kern, sperrt `mailclient` in Communication und akzeptiert keinen Provider-Rueckfall in BrowserGateway, nicht belegter Zustand-Visuals, iframe, Screenshottransport oder externe Tabs.


## Communication-Dienstknotenkopf

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css`, `70_TESTS_AND_SMOKE/integrations/test_communication_service_node_ui_contract.py` und `30_INSTALLERS/ubuntu24/azubi42-server/70_TESTS_AND_SMOKE/integrations/test_communication_service_node_ui_contract.py`.
- Inventarstatus: Dienstfunktionen liegen im Knotenheader des jeweiligen Dienstknotens.
- Matrix-, Provider-, Webapp- und Mailclient-Aktionen sind getrennt attributiert; Knotenbodies duerfen keine generischen Aktionsleisten für Matrix/Provider und keine Provider-WebView-/iframe-/Screenshot-Erklaertexte mehr rendern.
- SnappyMail darf seine zusätzliche Mail-/Nachfrageleiste behalten, ohne den Serviceheader zu entfernen.


## Communication-Provider-Trafficgrenze

- Ist inventarisiert: `toolbox/communication/provider_contracts_bootstrap.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_contracts_bootstrap.py`, `toolbox/communication/provider_contracts_apply.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_contracts_apply.py`, `toolbox/communication/provider_contracts_smoke.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_contracts_smoke.py`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py`, `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`, `30_INSTALLERS/ubuntu24/azubi42-server/60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`, `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_apply.py`, `30_INSTALLERS/ubuntu24/azubi42-server/70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_apply.py`, `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py`, `30_INSTALLERS/ubuntu24/azubi42-server/70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py`, `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_bootstrap.py` und `70_TESTS_AND_SMOKE/integrations/test_communication_connectors_contract.py`.
- Inventarstatus: Externe Provider werden als Browser-/User-Session vermittelt, nicht als Azubi42-Servertraffic.
- `browser_direct_ready` kann Provider-Webapp-/Loginpfade grün melden; `Sende-Freigabe`[private Angabe entfernt]`Sende-Freigabe` bei per-User-/Browser-Diensten.


## Communication-Provider-Webapp-Heal

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py` und `30_INSTALLERS/ubuntu24/azubi42-server/70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py`.
- Inventarstatus: Externe Provider-Knoten ohne Native-WebView-Host werden nicht gelöscht und nicht als BrowserGateway/Screenshot/Bildinhalt geführt, sondern bleiben als dienstspezifischer Knoten mit neutralem Dienstzielbereich erhalten.
- Der Test sperrt Rueckfall in pauschales Knotenloeschen, nicht belegter Zustand-Providerdarstellung, iframe, Screenshottransport oder externe Tab-Handoffs.


## Communication-Provider-Onboarding-Workbench

- Ist inventarisiert: `toolbox/communication/provider_contracts_bootstrap.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_contracts_bootstrap.py`, `toolbox/communication/provider_test_account_workbench.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_test_account_workbench.py`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py`, `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_bootstrap.py` und `test_communication_provider_test_account_workbench.py`.
- Inventarstatus: Jeder Runtime-Provider hat eine secretfreie offizielle Betreiber-/OAuth-/Bridge-Anleitung mit Pflichtfeldern, Secret-Dateizielen und Smoke-Befehl.
- Die Workbench legt keine externen Konten an, akzeptiert keine Providerbedingungen per Script und umgeht keine Captchas/MFA; sie erzeugt nur nachvollziehbare private Arbeitsplaene für echte Testaccounts.


## Sidebar-Live-Userflow-Audit

- Ist inventarisiert: `70_TESTS_AND_SMOKE/ui/audit_sidebar_accordion_browser.mjs` und `reports/sidebar_accordion_audit/sidebar_accordion_open.png`.
- Inventarstatus: Der Browseraudit nutzt private Login-Umgebung statt Wegwerf-User, prüft alle 13 linken Hauptsektionen auf echten Accordion-Wechsel, Single-Scroll, stabile Sidebar-Breite, fehlende alte Section-Breitenkeys und keine verschachtelten Zusatzscrollbars.
- Der Screenshot dient als aktueller Live-Beleg des geöffneten Sidebar-Zustands.


## Communication-Provider-Smoke-Abdeckung

- Ist inventarisiert: `toolbox/communication/provider_contracts_smoke.py` und `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py`.
- Inventarstatus: Der Smoke kennt den vollständigen Runtime-Providerkatalog aus `provider_contracts_bootstrap.PROVIDERS`.
- Telegram, Slack und WhatsApp prüfen direkte Betreiberendpunkte; weitere Messenger-/Providerdienste ausser `mailclient` prüfen bei vorhandenen privaten Bridge-Werten echte Azubi42-Bridge-Endpunkte `status`, `sync` und nur mit `--allow-send` plus Sendefreigabe `send`[private Angabe entfernt]`mailclient` bleibt getrennt bei Webmail, SnappyMail, IMAP, SMTP, Content-Encryption und optionalem SMTP-Sendegate; ohne Passwortquelle oder Sendegate gibt es keinen Login-/Send-Smoke.


## Mailclient-Userkontext-Smoke

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py`, `toolbox/communication/provider_contracts_smoke.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_contracts_smoke.py`, `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py` und `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py`.
- Inventarstatus: Der Mailclient-Smoke kann mit `--mail-user`, `--mail-domain` und `[private Angabe entfernt]` im konkreten Userkontext laufen.
- Per-User-Secrets unter `[private Angabe entfernt]` ersetzen nur fehlende/unerreichbare Default-Passwortpfade; Secretwerte werden nicht ausgegeben.
- Normale Mailuser duerfen dadurch grün werden, wenn Webmail, IMAP, SMTP und das Mail-Gate belegt sind; Messenger-Provider bleiben ohne eigene private Werte rot.


## Sidebar-Fachgrenzenvertrag

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js` und `70_TESTS_AND_SMOKE/ui/audit_sidebar_sections.mjs`.
- Inventarstatus: Die linken Hauptsektionen führen ihre eigenen statischen Hilfetexte und werden im Audit blockweise gegen fachfremde Inhalte geprüft.
- Communication bleibt Messenger-/Dienstbereich; Blickwinkel bleibt Perspektivenbereich; Legende bleibt Filter-/Flagbereich; KI/API bleibt Modell-/Authbereich; Tresor bleibt Zugangsdatenbereich; Chatverlaeufe und Workspace-Staende bleiben getrennt; Therapiekatzen bleibt eigener Generatorbereich.


## Sidebar-Arbeitsstand-Split

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css`, `70_TESTS_AND_SMOKE/ui/audit_sidebar_sections.mjs`, `audit_sidebar_accordion_browser.mjs` und `audit_light_theme_resize.mjs`.
- Inventarstatus: Chat-Sessions und Workspace-Staende sind fachlich getrennt.
- `#nav-history` enthält nur Chatverlaeufe; `#nav-workspace-tools` enthält Workspace-Sessions, Workspace-Antwortverlauf, Panelzugang und Verlauf-leeren.
- Beide Bereiche folgen dem bestehenden Sidebar-Single-Scroll-, Accordion- und Resize-Vertrag.


## Sidebar-Formularlesbarkeit

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_1_ModelSelector.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/06_API_ROUTER/06_1_ModelSelector.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css`.
- Inventarstatus: Modell-/Tresor-Formfelder bleiben im linken Menü einspaltig und lesbar; sichtbare Platzhalter sind kurz, Textareas für Listen höher, und der Live-Audit kann echte Overflows wieder von normalen Feldinhalten trennen.


## Login-Statusvertrag

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py`.
- Inventarstatus: HTML-Loginseiten werden für echte Browserfluesse mit `200 OK` ausgeliefert; API-Routen ohne Sitzung bleiben bei `401 Unauthorized`.
- Der Browser-Smoke kann damit echte Frontendfehler von der erwarteten Login-Maske trennen.


## Soundscape-/Bidirectional-QA

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_10_Soundscape.js`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, die entsprechenden Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/ui/audit_azubi42_de_server_bidirectional.py`.
- Inventarstatus: WebAudio wird erst nach echter User-Geste freigeschaltet; automatische UI- und Login-Intro-Ereignisse vor der ersten Geste können keine Autoplay-Warnung mehr auslösen.
- Der bidirektionale Audit ist für Live-Server nicht mehr auf lokale Testnutzer angewiesen, sondern nutzt private Login-Umgebung und schreibt lokale Auth nur bei localhost.
- Reports enthalten keine Secrets und führen Gaps/gesperrt bis zum Nachweis-Zugänge getrennt von kritischen UI-Fluchten.


## User-Darstellungsprefs sind inventarisiert

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css`, `10_SHARED_CORE/app_v27_multimedia/css/mobile-smart.css`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/mobile-smart.css`, die Theme-Dateien `theme-legal-light.css`, `theme-legal-paper.css`, `theme-white-runtz.css` in Shared-Core und Ubuntu-Spiegel sowie `70_TESTS_AND_SMOKE/ui/audit_user_theme_preferences.mjs`.
- Inventarstatus: User-Farbziele decken Textstufen, Auswahl, Erfolg/Fehler, Canvas-Linien, Flächen und Frage-/Antwort-/Systemdialoge ab; `--azubi-muted`[private Angabe entfernt]`audit_sidebar_accordion_browser.mjs` ist als authentifizierbarer Live-Sidebar-Smoke inventarisiert.


## Frontend-Shell-Tailwind-Runtime

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/index.html`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/index.html`, `10_SHARED_CORE/app_v27_multimedia/css/tailwind-runtime.css`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/tailwind-runtime.css` und `70_TESTS_AND_SMOKE/ui/audit_frontend_shell_assets.mjs`.
- Inventarstatus: Tailwind wird nicht mehr aus `cdn.tailwindcss.com`[private Angabe entfernt]`css/tailwind.config.js`-Stubs sind entfernt.
- Der Audit sperrt CDN-Rueckfall, fehlendes CSS, falschen Titel, falschen Buildtoken, verdaechtig kleine CSS-Artefakte und Stub-Rueckfall.


## Sidebar-Aktenhaltung-Hauptsektion

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/js/07_DATA_VAULT/07_6_CommunicationSpaces.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css` und die jeweiligen Ubuntu-Installer-Spiegel.
- Inventarstatus: `#nav-aktenhaltung-tools` ist eigener Sidebar-Bereich mit dem sichtbar als `Aktenfunktionen` beschrifteten `#btn-aktenhaltung` und `#vorgang3d-sidebar-menu`; `#nav-views` führt keine Aktenhaltungs-/Vorgang3D-Unterstruktur mehr.
- `mailclient` bleibt im Providerkatalog für SnappyMail/Mail, wird aber aus Communication-Dienstpalette, linker Messenger-Dienstliste, Communication-Templates und restaurierten Communication-Sessions herausgefiltert.


## Jurabibliothek-Rohcache-Retention

- Ist inventarisiert: `toolbox/legal/jurabibliothek/jurabibliothek.py`, `toolbox/legal/jurabibliothek/config/sources.json` und die Ubuntu-Installer-Spiegel führen `case_toc_raw_keep_latest`, `raw_retention` und den CLI-Befehl `prune-raw-cache`.
- Inventarstatus: Der Server darf wiederkehrende RII-TOC-Snapshots nicht unbegrenzt sammeln; bereinigt werden ausschließlich `raw/cases/toc/rii_toc_*.xml` und `raw/cases/toc/rii-toc_*.xml` nach Keep-Latest-Regel.
- Der Sicherheitsvertrag hält Löschungen unterhalb von `root/raw` und lässt Jurabibliothek-State, Normalisierung, XMLZIP-Rohdaten, Paperless-Originale und private Evidence unberuehrt.


## Deploy-Toolbox-Sync

- Ist inventarisiert: `toolbox/deploy/deploy_live_winscp.ps1` und `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/deploy/deploy_live_winscp.ps1` kopieren `toolbox/` nach dem App-Deploy zusätzlich in den jeweiligen Instanzroot.
- Inventarstatus: Der Sync ist update-only ohne `--delete`, damit produktive Runtime-, Jurabibliothek- und private Serverdaten nicht durch ein Teilpaket entfernt werden.
- Dadurch erreichen Guard-/Zugangsbau-/XJustiz-/Communication-Tooling-Aenderungen die Livepfade `[Serverpfad]` und `[Serverpfad]`.
- Die Whitelist führt `disk_guard.sh` und die Guard-Env-Dateien, damit der Fuellstopp nicht nur im Git, sondern auch in produktiven Timerpfaden ankommt.


## Disk-Guard-Fuellstopp

- Ist inventarisiert: `toolbox/legal/disk_guard.sh`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/disk_guard.sh`, die Beispiel-Env-Dateien `toolbox/legal/config/jurabibliothek-sync.example.env`, `paperless-atom-index.example.env`, `jurabibliothek-vector.example.env` und die Ubuntu-Installer-Spiegel führen `AZUBI42_DISK_PAUSE_PCT=92`.
- Inventarstatus: Bei 92% oder mehr Mount-Belegung werden die konfigurierten Fuell-/Download-/Index-Timer pausiert und der Lauf endet mit Exit `75`; Default-Pause stoppt Atom-Index, Jurabibliothek-Sync, Jurabibliothek-Vector und Sidecar-Sync.
- Der aktuelle Serverbefund `/` 92% darf dadurch nicht weiter ungehemmt Jurabibliothek-/Paperless-Rohdaten nachfuellen.


## Zugangsbau-Betreiberantwort-Intake

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js`, Spiegeldatei `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js`, Serverroute `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, Tooling `toolbox/legal/zugangsbau_readiness.py` und Test `70_TESTS_AND_SMOKE/legal/test_zugangsbau_operator_reply_intake.py`.
- Inventarstatus: Der UI-Button liest nur vorhandene Betreiberantwort-Artefakte ein, schreibt keine Fantasiewerte, sendet nichts und öffnet kein Transport-Grün ohne echten Contract- und Smoke-Beleg.


## Communication-Dienstknotenvertrag

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, Spiegeldatei `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, Audit `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs` und Server-GUI-Audit `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py`.
- Betriebsregel: `mailclient` ist Mail/SnappyMail; Messenger/Webprovider sind eigene Dienstknoten und duerfen nicht in SnappyMail, iframe, Screenshottransport oder nachgebaute Provider-UI fallen.
- Ohne Native-WebView-Host ist nur der belegte Wartezustand `native-webview-required` zulaessig.


## KartOO-Toolbox-Suchknoten

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_1_ToolManager.js`, Spiegeldatei `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_1_ToolManager.js`, Audit `70_TESTS_AND_SMOKE/ui/audit_tool_navigation_routing.mjs` und bestehender Contract-Audit `70_TESTS_AND_SMOKE/ui/audit_kartoo_websearch_contract.mjs`.
- Betriebsregel: Toolbox-Suche startet leer, erzeugt einen echten Workspace-Knoten und zeigt nur Search-Contract-Antworten.


## Stand

- 2026-06-20

## Version

- Gelonade v27.2.260

## Quellpfad im Repo

- `10_SHARED_CORE/app_v27_multimedia`; Zielbetrieb: Azubi42-Server/Web/Paperless pro User.


## Workspace-NativeWebView-Knoten

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_12_NativeWebViewNode.js`, `10_SHARED_CORE/app_v27_multimedia/js/04_NODE/04_1_Builder.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_12_NativeWebViewNode.js` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/04_NODE/04_1_Builder.js`.
- Inventarstatus: URL-only-Workspace-Knoten werden als native WebView-Knoten geführt; im normalen Browser wird kein nicht belegter Zustand-Inhalt gebaut, sondern gesperrt bis zum Nachweis auf den fehlenden Native-WebView-Host hingewiesen.
- Knotenbody bleibt für die echte Webseite reserviert, Knotenheader führt Browserfunktionen.


## AusweisApp-SDK-Preflight

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py`, `40_INTEGRATIONS/legal-jura/zugangsbau/OFFIZIELLE_QUELLEN_2026-06-06.md`, `40_INTEGRATIONS/legal-jura/zugangsbau/EID_TESTGATE_RUNBOOK_2026-06-19.md`, `40_INTEGRATIONS/legal-jura/zugangsbau/EBO_PERSONALAUSWEIS_WOHNSITZLOSEN_ZUGANG_FEASIBILITY_2026-06-19.md` und `70_TESTS_AND_SMOKE/legal/test_bundid_oidc_connector.py`.
- Inventarstatus: Der lokale eID-Preflight kennt offiziellen AusweisApp-Statuspfad, SDK-WebSocket, Origin-Gate und User-Agent-Pflicht, bleibt read-only und öffnet weder BundID/OIDC noch eBO/SAFE/OSCI/EGVP.
- Keine Ausweisrohwerte, keine PIN, kein DKK werden gelesen.


## Sleepmode-/c-base-Handoff

- Ist inventarisiert: `00_META/HANDOFF_SLEEPMODE_CBASE_2026-06-19.md` hält den aktuellen Zugangsbau-/SnappyMail-/eID-/OSCI-Stand, nächste Aufwachschritte, Dirty-Tree-Grenzen und die Hackspace-Sicherheitsregel fest.
- Inventarstatus: kein Codebauteil, sondern Übergabeartefakt für Netzwechsel/Standby; keine privaten Daten, keine Secrets, keine Betreiberwerte.


## EUDI-Wallet-/EAA-/QEAA-Rollengrenze

- Ist inventarisiert: `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json`, `40_INTEGRATIONS/legal-jura/zugangsbau/OFFIZIELLE_QUELLEN_2026-06-06.md`, `40_INTEGRATIONS/legal-jura/zugangsbau/EBO_PERSONALAUSWEIS_WOHNSITZLOSEN_ZUGANG_FEASIBILITY_2026-06-19.md` und `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py`.
- Inventarstatus: `wallet_attribute_policy` erlaubt Azubi42 nur eigene, belegbare, nicht qualifizierte Attribute und sperrt QEAA-, qTSP-, staatliche Primaerquellen-, SAFE-/eBO- und OSCI/EGVP-Transportbehauptungen.
- Wallet-/EAA-Attribute öffnen kein `Sende-Freigabe`.


## Zugangsbau-Contract-Placeholder-Gate

- Ist inventarisiert: `toolbox/legal/xjustiz_baukasten.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/xjustiz_baukasten.py`, `toolbox/legal/zugangsbau_readiness.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/zugangsbau_readiness.py`, `70_TESTS_AND_SMOKE/legal/test_xjustiz_baukasten_contract.py` und `70_TESTS_AND_SMOKE/legal/test_zugangsbau_readiness_contract.py`.
- Inventarstatus: Templatewerte wie `BETREIBERWERT`, `TODO`, `DUMMY`, `${...}` oder `<...>` werden als fehlend behandelt.
- Dadurch bleiben OSCI/EGVP-Transportstatus und Betreiber-Readiness rot, bis echte Postfach-/Intermediaer-/Zertifikat-/Key-/Smoke-Belege in privaten Serverpfaden vorliegen.


## Zugangsbau-eID-Subject-Testgate

- Ist inventarisiert: `toolbox/legal/eid_subject_gate.py`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json`, `40_INTEGRATIONS/legal-jura/zugangsbau/EID_TESTGATE_RUNBOOK_2026-06-19.md`, `40_INTEGRATIONS/legal-jura/zugangsbau/PRIVATE_CONTRACT_TEMPLATE_EID_OSCI_EGVP.local.example.json`, `70_TESTS_AND_SMOKE/legal/test_eid_subject_gate.py`, `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py` und `70_TESTS_AND_SMOKE/legal/test_zugangsbau_readiness_contract.py`.
- Inventarstatus: Das Gate akzeptiert AusweisApp-/PersoSim-/Testkarten-Payloads nur als private Eingabe und gibt nur HMAC-Subject, Redaktionshash, Missing-Groups und Privacy-Flags aus.
- Roh-DKK, restricted identifier und Adress-/Wohnsitzfelder duerfen nicht ausgegeben oder geloggt werden.
- `bundid_eid.eid_subject_gate_status` bleibt rot, solange Gate-Datei, Pepper und Privacy-Prüfung nicht belegt sind.


## Zugangsbau-wohnungs-/adressloser eBO-/SAFE-Betreiberpfad

- Ist inventarisiert: `40_INTEGRATIONS/legal-jura/zugangsbau/BETREIBER_ANTRAG_OSCI_EGVP_TESTZUGANG_2026-06-12.md`, `40_INTEGRATIONS/legal-jura/zugangsbau/BETREIBER_CERT_VERTRAGSPLAN_2026-06-17.md` und `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_application_steps_2026-06-17.json`.
- Inventarstatus: Der Betreiberkontakt muss Testpostfach/Testmailbox, Zertifikat/Key, OSCI-/EGVP-Intermediaer, c/o-/Zustelladresspfad, SAFE-/eBO-Pfad für Nutzer ohne feste Strassenanschrift und das Vertretungs-/Drittsendermodell schriftlich klaeren.
- Ohne diese Betreiberantwort und ohne echten Send-/Empfangs-Smoke bleibt OSCI/EGVP `Sende-Freigabe=false`.


## SnappyMail-Mailkonto-Ready-Flow

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und `70_TESTS_AND_SMOKE/integrations/test_snappymail_proxy_contract.py` führen den Startvertrag für Mailclient-Knoten.
- Inventarstatus: Beim Rendern eines SnappyMail-Knotens startet automatisch `mailclient/account-status`; wenn der private Serververtrag es erlaubt, folgt `mailclient/provision-account`.
- Nach erfolgreichem Status wird die SnappyMail-Leinwand mit `azubi42_mail_ready` neu geladen.
- Der Knotenbody bleibt frei von Hilfsbuttons; keine Escape-/Koordinaten- oder Modal-Workarounds gelten als Produktloesung.


## SnappyMail-X-SM-Token-Proxyheader

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` und `70_TESTS_AND_SMOKE/integrations/test_snappymail_proxy_contract.py` führen `[private Angabe entfernt]` als SnappyMail-Loginheader.
- Inventarstatus: Der same-origin-Proxy darf SnappyMail-Loginrequests nur dann als echt loginfähig behaupten, wenn `[private Angabe entfernt]` zusammen mit dem Formularfeld `[private Angabe entfernt]` beim Upstream ankommt.
- Testanker: `test_snappymail_proxy_contract.py`.


## SnappyMail-Maildir-Standardordner sind inventarisiert

- `toolbox/communication/mailclient_provision_local_user.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/mailclient_provision_local_user.py` und `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py` führen die Maildir-Ordner `.Sent`, `.Drafts`, `.Spam`, `.Trash` und `.Archive` sowie `Maildir/subscriptions`.
- Inventarstatus: Neue und erneut provisionierte SnappyMail-Userpostfaecher erhalten die benoetigten Spezialordner serverseitig, damit der erste echte Versand keine User-Konfigurationsmaske für Gesendet/Entwürfe/Spam/Papierkorb/Archiv erzwingt.
- Bestehende Subscriptions bleiben erhalten.


## System-Audit 2026-06-17

- Ist inventarisiert: `00_META/SYSTEM_AUDIT_2026-06-17.md` dokumentiert den konservativen Gesamtcheck für Zugangsbau/XJustiz/OSCI/EGVP, Communication-Provider, SnappyMail-/Proxy-Vertraege, Security-Smokes, TLS-/Header-Sicht, Serverdienste, Disk und Paperless-TOC.
- Inventarstatus: XJustiz-Validatorgates sind grün, OSCI/EGVP-Transport ist mangels Betreibervertrag/Postfach/Zertifikat/Intermediaer/Smoke bewusst gesperrt, Communication-Provider bleiben ohne echte private Werte gesperrt bis zum Nachweis.
- `azubi42-paperless-user-toc.service` wurde im Audit repariert und erfolgreich ausgeführt.
- Audit-Restposten: Forgejo-CSP/XFO begrenzen, Server-Smoke-Harness nachziehen, Diskdruck senken, Provider-Vertraege dienstweise abschließen.


## Sidebar-Single-Scroll und KartOO-3D-Vorgangskarte sind inventarisiert

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js` und die Ubuntu-Installer-Spiegel.
- Inventarstatus: Die linke Seitenleiste besitzt einen Scrolltraeger (`#sidebar-nav`); innere Sidebar-Listen laufen im gleichen Scrollfluss.
- Die alte sichtbare Helix ist als KartOO-3D-Vorgangskarte beschriftet und zeigt nur Vertragssignale aus dem vorhandenen Payload: `summary.kartoo3d_contract`, Edge-`source_anchors`, `label_source`, `state`, Reviewstatus und unguarded-edge-Zähler.
- Testvertrag: `70_TESTS_AND_SMOKE/ui/audit_sidebar_sections.mjs`, `70_TESTS_AND_SMOKE/ui/audit_kartoo_websearch_contract.mjs`, `70_TESTS_AND_SMOKE/legal/test_spatial_jura_world.py`.


## KartOO-3D-Helix-Vertrag

- Ist inventarisiert: `00_META/AZUBI42_KARTOO_3D_HELIX_VERTRAG_2026-06-16.md` ist der verbindliche Spezifikationsanker für die nächste Vorgang3D-/Helix-Generation.
- Inventarstatus: `toolbox/legal/spatial_jura_world.py` schreibt seit 2026-06-16 den ersten `azubi42.spatial_jura_world.v2`-Datenvertrag; der Ubuntu-Installer-Spiegel ist synchron.
- Kanten führen `id`, `label`, `label_source`, `source_anchors`, `state`, `confidence`, `flags`, `day_counter`, `semantic`, `opens` und Reviewgrund; Knoten/Früchte führen `source_anchors`, `opens`, `flags` und `review_state`.
- `70_TESTS_AND_SMOKE/legal/test_spatial_jura_world.py` prüft diesen Vertrag und sperrt unguarded edges.
- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` bleibt Frontend-Ausgangspunkt; `70_TESTS_AND_SMOKE/ui/audit_aktenzeichen_timeline.mjs` bleibt der nächste Frontend-Vertragsanker.
- Keine KartOO-artige Linie, kein Label und keine Frucht darf ohne belegten Paperless-/Sidecar-/RAG-/WH3D-/Bibliothek-Anker als sichere Beziehung erscheinen.


## KartOO-Websuche

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_6_WebSearch.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js` und die Ubuntu-Installer-Spiegel führen `azubi42.websearch.kartoo3d.v1` als Verbraucher von `azubi42.spatial_jura_world.v2`.
- Inventarstatus: Websuche-Providerdaten werden als echte Query-/Treffer-/Domainkarte mit Quellenankern, Linienlabelquellen, Review-Gates und klickbaren Azubi-Knoten gerendert.
- Snippet-Beziehungen bleiben prüfpflichtig; es gibt keine Demo-Treffer und keine eigene nicht belegter Zustand-Beziehungskarte.
- Testvertrag: `70_TESTS_AND_SMOKE/ui/audit_kartoo_websearch_contract.mjs`.


## Bibliothek-/Aktenhaltung-Trennung

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js` und `01_2_Navigation.js` führen getrennte DOM-Views `view-bibliothek` und `view-aktenhaltung`; `01_10_ViewStartScreens.js` trennt Bibliothek-Startkarte und Aktenhaltung-Startkarte; `01_8_JuraBibliothek.js` und `azubi42_server.py` halten den Quellenraum frei von `Paperless-Akte`; `view_start_menus/bibliothek_menu.js` enthält `BIBLIOTHEK_SPACE_MENU` für Quellen und `AKTENHALTUNG_SPACE_MENU` für Paperless/OCR/Human-Review/Vorgang3D/Mahnwesen.
- Inventarstatus: Bibliothek darf keine Aktenhaltungs-, Zugangsbau- oder Human-Review-Alltagsaktionen als sichtbaren Inhalt führen; Aktenhaltung ist der Ort für Originale, Upload, OCR, Fristen, Mahnwesen, Fallauswertung und menschliche Kontrollqueues.
- Ubuntu-Installer-Spiegel ist synchron.


## Aktenhaltung-FixIt-Umzug

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_1_Layout.js` und `view_start_menus/bibliothek_menu.js` platzieren das vorhandene FixIt-/Human-Kontrollpanel sowie Antwortdeckung/Bestandsdelta in Aktenhaltung statt in Bibliothek.
- Inventarstatus: Bibliothek zeigt keine aktenbezogene Kontrollqueue und keinen Fallauswertungsdelta mehr; Aktenhaltung führt Aktenfehler, Review-Jobs, Team-Signal, Import-/Kontrolljobs, Antwortdeckung, Bestandsdelta und bestehende FixIt-Endpunkte.
- Die `data-bibliothek-fixit-*` Attribute bleiben als Handlervertrag erhalten, sind aber semantisch Aktenhaltung.


## Toolbox-/Aktenhaltung-Seitentrennung

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `70_TESTS_AND_SMOKE/ui/audit_sidebar_sections.mjs`, `70_TESTS_AND_SMOKE/ui/audit_toolbox_special_views.mjs` und `70_TESTS_AND_SMOKE/ui/clicktest_toolbox_links_and_connectors.mjs`.
- Inventarstatus: Die generische `Azubi42 Toolbox` führt nur allgemeine Werkzeuge; AMT-VI, Antwortdeckung, Rechtsmittel, Alt-Hin-Her, Human-Review und Template-Baum sind Aktenhaltung-/Vorgang3D-Funktionen und duerfen nicht mehr als Toolbox-Dopplung erscheinen.


## Aktenhaltung-Menü-Entdoppelung

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/view_start_menus/bibliothek_menu.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/view_start_menus/bibliothek_menu.js` und `70_TESTS_AND_SMOKE/ui/audit_toolbox_special_views.mjs`.
- Inventarstatus: Der Aktenhaltungs-Startbereich führt Vollseiten-/Reviewartefakte nur im Block `Spezialansichten / Vollseite`; der Block `Vorgang3D / Aktenansichten` bleibt bei Aktenauswahl- und Analyseaktionen.
- Interne Human-/Confused-/Template-Spruenge duerfen nicht im Vollseitenblock liegen, und `Server verbinden` darf nicht im Upload/OCR-Block gedoppelt werden.


## Communication-/Mail-Begriffstrennung

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/view_start_menus/communication_menu.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_10_ViewStartScreens.js`, die jeweiligen Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/ui/audit_view_start_screens.mjs`.
- Inventarstatus: Communication führt Messenger-/Provider-Dienste und Versandfreigabe; Mail/eRV/SnappyMail bleibt getrennt und darf nicht als Communication-Diensttext in Menü oder Startkarte zurückkehren.


## SnappyMail-Mailkonto-Gate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `toolbox/communication/mailclient_provision_local_user.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/mailclient_provision_local_user.py`, `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`, `30_INSTALLERS/ubuntu24/azubi42-server/60_RUNTIME_TEMPLATES/auth/communication-providers.template.json` und `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`.
- Inventarstatus: SnappyMail-Webmail kann sichtbar laufen, aber User-Login ist erst loginbereit, wenn IMAP/SMTP, Postfachidentitaet und serverseitige Secretdateien vorhanden sind.
- Das Anlegen eines Mailkontos ist kein Frontend-nicht belegter Zustand: es bleibt gesperrt, bis ein privater serverseitiger Provisioning-Befehl gesetzt ist; der lokale Provisioner kann Passwort-Secret, Maildir und optional Linux-Mailuser erzeugen, gibt Secrets aber nie aus.


## SnappyMail-Sessionvertrag

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` und `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`.
- Inventarstatus: `mailclient_effective_config()`[private Angabe entfernt]`account-status`, IMAP-Lesen und SMTP-Senden verwenden dadurch dieselbe userbezogene Konfiguration; leere oder globale Mailclient-Vertraege duerfen nicht mehr unbemerkt den späteren Zugriff übernehmen.


## SnappyMail-Multiaccount-Grenze

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` und `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`.
- Inventarstatus: Hinterlegte `mail_accounts` werden nur bei expliziter Userauswahl (`mail_account_id`) aktiviert.
- Ohne Auswahl gilt die Session-Mailbox des eingeloggten Users; ein globaler Testaccount darf normale Userflows nicht mehr überschreiben.


## SnappyMail-Send-Gate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` und `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`.
- Inventarstatus: Das Send-Gate für `mailclient` prüft denselben sessionbezogenen effektiven Vertrag wie der spätere SMTP-Sendepfad.
- Dadurch bleiben TLS-/Verschlüsselungs-/Secret-Gates hart, aber normale User werden nicht mehr durch globale Provider-Defaults blockiert.


## SnappyMail-Matrix-ID-Normalisierung

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` und `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`.
- Inventarstatus: Matrix-IDs wie `@b:42.chat` werden für den Mailclient als `b@azubi42.de` abgeleitet; Anzeigenamen werden ignoriert, damit keine falschen Mailboxnamen aus UI-Labels entstehen.


## SnappyMail-Provisioner-Auth-Grenze

- Ist inventarisiert: `toolbox/communication/mailclient_provision_local_user.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/mailclient_provision_local_user.py` und `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`[private Angabe entfernt]`invalid_linux_username` geblockt.
- Kurze Usernamen und Matrix-ID-Ableitungen wie `b@azubi42.de` sind durch Live-IMAP-/SMTP-Smokes belegt.


## SnappyMail-Secret-Rechtevertrag

- Ist inventarisiert: `toolbox/communication/mailclient_provision_local_user.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/mailclient_provision_local_user.py`, `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`[private Angabe entfernt]`/etc/azubi42/secrets/mailclient-users/*.password`[private Angabe entfernt]`0750`[private Angabe entfernt]`root:azubi42 0640`) oder ohne Servicegruppe `0600`.
- Frontend, Statuspayloads und Logs duerfen keinen Klartext ausgeben.


## SnappyMail-Multiaccount-Vertrag

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css`, `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`, `30_INSTALLERS/ubuntu24/azubi42-server/60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`, `30_INSTALLERS/ubuntu24/config-templates/communication-providers.example.json` und `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py`.
- Inventarstatus: `mail_accounts` ist eine secretfreie Liste echter Postfach-/Identitaetsvertraege; das Frontend speichert nur die Account-ID, der Server merged die ausgewählte Identitaet in den effektiven Mailclient-Vertrag und sperrt unbekannte Konto-IDs.
- Keine Rollenumschaltung, keine frei erfundene Mailidentitaet.


## SnappyMail-Sidebarvertrag

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css` führen `renderSnappyMailSidebarTools`, `ensureSnappyMailToolbarForSidebar` und `syncCommunicationNodeHeaderTools`.
- Inventarstatus: Mailkonto-, Nachfrage- und Versandnachweis-Aktionen liegen als Untermenüs im linken Mail-/SnappyMail-Bereich; der `mailclient`-Knotenheader bleibt frei von SnappyMail-Hilfsbuttons und der Body enthält nur die originale SnappyMail-Webmail-Leinwand.


## Dovecot-Azubi-Hash-Auth

- Ist inventarisiert: `[private Angabe entfernt]`, `[private Angabe entfernt]`, `60_RUNTIME_TEMPLATES/dovecot/azubi42-dovecot-local.conf`, `30_INSTALLERS/ubuntu24/azubi42-server/60_RUNTIME_TEMPLATES/dovecot/azubi42-dovecot-local.conf`, `toolbox/deploy/deploy_live_winscp.ps1` und `[private Angabe entfernt]`.
- Inventarstatus: Dovecot nutzt lokale Azubi42-`[private Angabe entfernt]`-PBKDF2-Hashes als IMAP-/SMTP-Auth-Quelle und erhält per Checkpassword-Prefetch `userdb_uid`, `userdb_gid`, `userdb_home` und `userdb_mail`.
- Das Dovecot-Template verbietet `pam`-/`passwd`-Fallbacks, damit normale Azubi42-User nicht in alte Linux-Mailhomes fallen.
- Matrix-only ohne lokales Passwort bleibt kein behaupteter SnappyMail-Login.


## Mailtrust-DNS-Audit

- Ist inventarisiert: `toolbox/communication/mailtrust_check.py` und `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/mailtrust_check.py`[private Angabe entfernt]`azubi42.de`.
- Inventarstatus 2026-06-18: A/MX/SPF/DKIM/DMARC/HELO sind sichtbar; harter Blocker bleibt PTR/rDNS, weil die Mail-VM-IP `213.202.208.164` auf `srv10212.epyc.fastwebserver.de` zeigt und dieser Name öffentlich auf die Proxmox-/Host-IP `146.0.35.77` vorwaertsaufloest.
- Report: `reports/mailtrust_dns_audit_2026-06-18.md`.


## Zugangsbau-Betreiber-Readiness-Matrix

- Ist inventarisiert: `toolbox/legal/zugangsbau_readiness.py`, `40_INTEGRATIONS/legal-jura/zugangsbau/BETREIBER_READINESS_MATRIX_2026-06-16.md`, `70_TESTS_AND_SMOKE/legal/test_zugangsbau_readiness_contract.py`[private Angabe entfernt]`Sende-Freigabe` bleibt gesperrt bis zum Nachweis, solange Betreibervertrag, Zertifikat/Key, Postfach, Intermediaer, PDF/A-/XJustiz-Validierung und Send-/Empfangs-Smoke nicht belegt sind; Secrets und absolute Pfade werden nicht ausgegeben.


## Zugangsbau-Betreiber-/Zertifikatsplan

- Ist inventarisiert: `40_INTEGRATIONS/legal-jura/zugangsbau/BETREIBER_CERT_VERTRAGSPLAN_2026-06-17.md` und `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_application_steps_2026-06-17.json` führen den operativen Anschlussfahrplan.
- Inventarstatus: offizielle Quellen, Antragsschritte, private Vertragsgruppen, Zertifikat-/Key-/Smoke-Anforderungen und Morgen-Ablauf sind dokumentiert; keine echten Secrets, keine Tokens und keine Sendefreigabe im Repository.


## Zugangsbau-Morgen-Runbook

- Ist inventarisiert: `40_INTEGRATIONS/legal-jura/zugangsbau/MORGEN_RUNBOOK_OSCI_EGVP_XJUSTIZ_2026-06-18.md` führt die konkrete Ausführungsreihenfolge für private Contract-Prüfung, EGVP/OSCI-Drittprodukt-/Enterprise-Klaerung, FIT-Connect-Test-SSP, BundID/eID, beA, Zertifikat-/Key-Ablage und Smoke-Evidence.
- Inventarstatus: Ablaufplan/Stop-Gate, keine Betreiberwerte, keine Sendefreigabe.


## Zugangsbau-OSCI/EGVP-Private-Prework

- Ist inventarisiert: `40_INTEGRATIONS/legal-jura/zugangsbau/OSCI_EGVP_PRIVATE_PREWORK_STATUS_2026-06-18.md`, `toolbox/legal/zugangsbau_readiness.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/zugangsbau_readiness.py` und `70_TESTS_AND_SMOKE/legal/test_zugangsbau_readiness_contract.py`[private Angabe entfernt]`*_file`-Felder gelten erst als vorhanden, wenn die Datei wirklich existiert.
- Ohne Betreiberzertifikat, Postfach/Testpostfach, Intermediaer, adresslosen SAFE-/Postfachpfad und Send-/Empfangs-Smoke bleibt `Sende-Freigabe=false`.


## Zugangsbau-OSCI/EGVP-Dispatch-Evidence-Gate

- Ist inventarisiert: `toolbox/legal/zugangsbau_operator_dispatch_evidence.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/zugangsbau_operator_dispatch_evidence.py`, `toolbox/deploy/run_server_smoke_harness.sh`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/deploy/run_server_smoke_harness.sh` und `70_TESTS_AND_SMOKE/legal/test_zugangsbau_operator_dispatch_evidence.py` führen den Nachweisvertrag für Betreiberanfragen.
- Inventarstatus: lokaler `sendmail`-/MTA-Handoff, auch mit `sendmail_exit=0`, ist nur technische Übergabe und kein Zustell-, Empfangs- oder Lesenachweis.
- Grün wird der Gate erst bei user-sichtbarem Versandbeleg plus Message-ID, Empfänger, Betreff, Zeitstempel und gesicherter gesendeter Kopie; Delivery braucht Zustellnachweis, Betreiberantwort oder Providerbeleg; Strict-Mode braucht zusätzlich Lesebestätigung.
- Jura-One-Shot-Regel: eine bereits versandte Betreiberanfrage wird wegen schwacher Nachweislage nicht erneut gesendet; der Gate gibt `resend_allowed=false` aus und nennt nur Belegimport, Nachweis-Sicherung und Warten auf Betreiberantwort als zulaessige Folgeaktionen.
- Der Server-Smoke-Harness kann diesen Gate mit `AZUBI42_EXPECT_OPERATOR_DISPATCH_RECEIPT=1` als harte Bedingung fahren.


## SnappyMail-Userflow-Versandnachweis

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css` und `70_TESTS_AND_SMOKE/integrations/test_mailclient_dispatch_evidence.py`.
- Inventarstatus: `mailclient/dispatch-evidence` ist ein Userflow-Belegspeicher für bereits in SnappyMail sichtbar vorbereiteten/gesendeten Versand; er verlangt Empfänger, Betreff, Sendedatum, Message-ID/Versandbeleg, Screenshot-/Belegreferenz, Inhalt-geprüft, Wichtig-Markierung, angeforderten Übermittlungsstatus, angeforderten Lesestatus und Gesendet-Kopie.
- Ablage erfolgt userbezogen unter `runtime/communication/mailclient_dispatch_evidence/<user>/`, ohne Secrets oder absolute Pfade ins Frontend zu geben.
- Keine Sendefunktion, kein automatischer Resend, kein Delivery-/Read-Grün ohne echte Rueckmeldung.


## Zugangsbau-OSCI/EGVP-Betreiberantwort-Intake

- Ist inventarisiert: `toolbox/legal/zugangsbau_operator_reply_intake.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/zugangsbau_operator_reply_intake.py`, `60_RUNTIME_TEMPLATES/systemd/azubi42-zugangsbau-reply-intake.service`, `60_RUNTIME_TEMPLATES/systemd/azubi42-zugangsbau-reply-intake.path` und `70_TESTS_AND_SMOKE/legal/test_zugangsbau_operator_reply_intake.py` führen den Rueckkanal für echte Betreiberantworten.
- Inventarstatus: Watch-Ordner, Zertifikatkopie, Send-/Empfangs-Smoke und Contract-Feldübernahme laufen nur serverseitig in private Pfade; stdout und Statusdatei bleiben redigiert und geben keine Postfachkennung, Zertifikatinhalte, Tokens oder Vollpfade aus.


## Codex-Matrix-FixIt-Bruecke

- Ist inventarisiert: `toolbox/communication/codex_matrix_inbox_to_fixit.py`, `60_RUNTIME_TEMPLATES/systemd/azubi42-codex-matrix-to-fixit.service`, `60_RUNTIME_TEMPLATES/systemd/azubi42-codex-matrix-to-fixit.path` und `70_TESTS_AND_SMOKE/integrations/test_codex_matrix_inbox_to_fixit.py`.
- Inventarstatus: Matrix-DM-Handoff wird in normale FixIt-/Autofix-Eintraege überführt, damit die vorhandenen `azubi42_fixit_codex_worker.py`[private Angabe entfernt]`0600`.


## Azubi42Tester-Testaccount-Bootstrap

- Ist inventarisiert: `toolbox/communication/azubi42_tester_bootstrap.py` und `70_TESTS_AND_SMOKE/integrations/test_azubi42_tester_bootstrap.py`[private Angabe entfernt]`provider-test-accounts.azubi42tester.local.md` wird unter POSIX mit `0600` geschrieben.


## Codex-Matrix-Server-Fallback

- Ist inventarisiert: `toolbox/communication/codex_matrix_handoff.py` erzwingt für neue POSIX-Inbox-/State-Dateien `0600`; `60_RUNTIME_TEMPLATES/systemd/azubi42-codex-matrix-listener.service` nutzt `UMask=0077`.
- Serverstatus 2026-06-15: Session-Datei liegt geschützt unter `/etc/azubi42/private/communication/`, Runtime-Inbox unter `/var/lib/azubi42/private/communication/`, Unit `azubi42-codex-matrix-listener.service` ist aktiv und schreibt neue Fremd-Events aus der echten 1:1-DM in die Server-Inbox.
- Inventargrenze: Die Inbox ist Rueckkanal-/Handoff-Speicher; eine direkte Codex-Thread-Steuerung braucht weiterhin eine explizite Heartbeat- oder Thread-Bruecke.


## Deploy-Inventar 2026-06-15

- `toolbox/deploy/deploy_live_winscp.ps1` und `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/deploy/deploy_live_winscp.ps1` nehmen die aktuellen Communication-/Codex-Handoff-Werkzeuge in das Live-Artefakt auf: `toolbox/communication/codex_matrix_handoff.py`, `toolbox/communication/provider_contracts_smoke.py`, `toolbox/communication/start_codex_matrix_listener_windows.ps1` und `60_RUNTIME_TEMPLATES/systemd/azubi42-codex-matrix-listener.service`.
- Inventarstatus: lokale Funktion, Installer-Spiegel und Serverpaket folgen wieder demselben Bauteilstand; Deploy-Version und Live-Check-Expectation werden im Standard aus `azubi42_version.json` gelesen und können nur noch bewusst per Parameter übersteuert werden.


## Codex-Matrix-Listener

- Ist inventarisiert: `toolbox/communication/codex_matrix_handoff.py`, `toolbox/communication/start_codex_matrix_listener_windows.ps1`, `60_RUNTIME_TEMPLATES/systemd/azubi42-codex-matrix-listener.service`, `00_META/CODEX_MATRIX_HANDOFF_RUNBOOK_2026-06-15.md` und `70_TESTS_AND_SMOKE/integrations/test_codex_matrix_handoff_listener.py`.
- Inventarstatus: Der Handoff-Bauteil kann Matrix-Sessiondateien oder `[private Angabe entfernt]` nutzen, schreibt neue Fremd-Events als JSONL-Inbox in `runtime/private/communication/`, führt State mit gesehenen Event-IDs und filtert eigene Listener-Nachrichten.
- Lokaler Windows-Listener laeuft als hidden Python-Prozess; der Serverbetrieb nutzt dieselbe Logik per systemd-Schablone.
- Codex-Heartbeat `matrix-handoff-inbox-watch` liest die Inbox sparsam in diesen Thread zurück, ohne Status-Spam zu erzeugen.


## Communication-Provider-Betreiber-Smoke

- Ist inventarisiert: `toolbox/communication/provider_contracts_smoke.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_contracts_smoke.py`, `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_smoke.py`, `toolbox/communication/provider_contracts_apply.py` und `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`.
- Inventarstatus: Der Smoke liest `[private Angabe entfernt]` plus optionale private Werte, redigiert Secretfelder, prüft Telegram `getMe/getUpdates`, Slack `auth.test/conversations.list` und WhatsApp Graph-Phone-Number-Status.
- Sendesmokes sind hart getrennt und brauchen `--allow-send`, Systemdienstfreigabe, Ziel und `provider_send_enabled`; ohne private Betreiberwerte entsteht kein Netzsendepfad.
- WhatsApp-Vertraege können `graph_api_version` führen.

## 2026-06-15

- Die Operator-Hinweise in `provider_contracts_bootstrap.py` und `azubi42_server.py` zeigen `--auth-config` statt des falschen `--auth`; `test_communication_connectors_contract.py` sichert den Hinweis ab.


## Communication-Provider-Login-Fix

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py`.
- Inventarstatus: `resolveCommunicationOpenModeForService` lässt SnappyMail same-origin laufen, Matrix als eigenen Matrix-Knoten und externe Provider nur im Native-WebView-Pfad.
- Ohne Native-WebView-Host erzeugen Telegram, WhatsApp, Slack und weitere externe Provider keinen API-/Dienstvertragsknoten als Login-Ersatz.


## SnappyMail-XToken-/Dienstklick-Fix

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und `70_TESTS_AND_SMOKE/integrations/test_snappymail_proxy_contract.py`[private Angabe entfernt]`resolveCommunicationOpenModeForService`: SnappyMail rendert same-origin, Matrix bleibt eigener Matrix-Knoten, externe Anbieter-Webapps bleiben im normalen Browser gesperrt und werden nicht durch API-/Dienstvertragsknoten ersetzt.


## Communication-Server-GUI-Audit

- Ist inventarisiert: `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py` prüft denselben Vertrag live gegen `azubi42-jura` mit temporaer freigeschaltetem User.
- Inventarstatus: Der Audit akzeptiert SnappyMail nur als `snappymail-include`, Matrix nur als Matrix-Knoten und externe Provider im normalen Browser nur dann als Knoten, wenn ein echter Native-WebView-Host vorhanden ist; ohne Native-Host ist kein Providerknoten der korrekte Zustand.
- Bilder, Canvas, iframe, BrowserGateway, externe Tabs und Missing-WebView-Stubs bleiben rot.
- Live-Nachweis 2026-06-15: `azubi42tester`-Login, SnappyMail-Knoten sichtbar, Telegram/WhatsApp/Slack ohne Native-Host ohne Ersatzknoten, genau ein Sidebar-Scrollbereich.


## Communication-Dienstraum-/Providervertrag

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py`, `toolbox/communication/provider_contracts_bootstrap.py`, `toolbox/communication/provider_contracts_apply.py`, `toolbox/communication/provider_contracts_fixture.py`, `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json` und die Ubuntu-Installer-Spiegel halten Matrix als eigenen Dienst und nicht als Sammeltransport für externe Provider.
- Inventarstatus: aktive Raumfelder heissen `telegram_rooms`, `whatsapp_rooms`, `slack_rooms`, `mailclient_rooms` beziehungsweise `<dienst>_rooms`; `provider_send_enabled` ist primaer.
- `bridge_rooms`, `bridge_send_enabled` und `matrix_bridge_ready` sind nur Legacy-/Regression-Guard und öffnen bei Telegram, WhatsApp, Slack, Mailclient und weiteren externen Providern keine Konfiguration, kein Ziel und keinen Sendepfad.
- Erlaubt bleiben Original-Webclient, offizielle API/OAuth/Bot-Pfade oder pro User autorisierte Provider-Session; Matrix-`send/m.room.message` wird nicht als Telegram-/WhatsApp-/Slack-Versandweg verwendet.


## Azubi42Tester-Provider-Testpfad

- Ist inventarisiert: `toolbox/communication/azubi42_tester_bootstrap.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/azubi42_tester_bootstrap.py`, `70_TESTS_AND_SMOKE/integrations/test_azubi42_tester_bootstrap.py` und `30_INSTALLERS/ubuntu24/azubi42-server/70_TESTS_AND_SMOKE/integrations/test_azubi42_tester_bootstrap.py` führen den lokalen technischen Testnutzer `azubi42tester`; `toolbox/deploy/deploy_live_winscp.ps1` nimmt das Werkzeug in das Live-Deploypaket auf.
- Inventarstatus: Das Werkzeug schreibt nur explizit angegebene Auth-Config, wiederholte Auth-Configs oder `--live-defaults` und git-ignorierte Runtime-Dateien wie `runtime/private/communication/azubi42tester.credentials.local.json`, `runtime/private/communication/provider-contracts.azubi42tester.local.json` und `runtime/private/communication/provider-test-accounts.azubi42tester.local.md`.
- Live-Ziele leiten den privaten Root aus der jeweiligen Instanz-Runtime ab.
- Matrix-Freigabe `@azubi42tester:42.chat` wird lokal angelegt; Matrix, Telegram, WhatsApp, Slack, Mailclient/SnappyMail, Signal, Discord, LinkedIn, Facebook, Instagram, TikTok, Teams und Google Chat erhalten jeweils einen eigenen Testpfad-Eintrag.
- Ohne echte Betreiber-/Bridge-/OAuth-/QR-/Device-/Mailwerte bleiben diese Provider gesperrt bis zum Nachweis.
- Testanker: `test_azubi42_tester_bootstrap.py` prüft Idempotenz, Secretfreiheit, Mehrzielbetrieb, Live-App-Root-Layout und Installer-Layout.


## Provider-Vertragsabschluss-Gate

- Ist inventarisiert: `toolbox/communication/provider_contracts_bootstrap.py`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_contracts_bootstrap.py` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` führen `contract_groups`, `missing_contract_groups`, `next_missing_fields` und `contract_closure_level` für Communication-Provider.
- Inventarstatus: Der direkte Providerstatus und der Sammelstatus `/api/communication/connectors/status`[private Angabe entfernt]`Sende-Freigabe` bleibt geschlossen, bis Bridge/API/OAuth/QR/Device-/Mailvertrag, Zielmapping und Sendefreigabe echt belegt sind.
- Testanker: `70_TESTS_AND_SMOKE/integrations/test_communication_connectors_contract.py`.


## Provider-WebView-Einzelbild-Audit

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` führt `providerScreenshotDir`, `captureProviderScreenshots`, `captureProviderScreenshotFromWindow` und `providerScreenshotCoverage`.
- Jeder Native-Smoke legt pro aktivem Dienst ein PNG unter `provider_webview_smoke_<mode>_<stamp>_providers/<dienst>.png` ab und protokolliert `provider`, `name`, `filePath`, `url`, `title`, `hostOk`, `captureSource` und `fileSize`.
- Inventarstatus: Die Einzeldienstbilder sind nur QA-Belege aus echten Electron-WebViews; 0-Byte-Dateien sind Fehler; Azubi42 darf sie nicht als Provider-UI anzeigen.
- Vertragsdoku: `40_INTEGRATIONS/provider-webapp-browser/PROVIDER_VISUAL_AND_TEST_CONTRACTS_2026-06-14.md`.
- Testanker: `70_TESTS_AND_SMOKE/integrations/test_provider_webapp_browser_contract.py`.


## SnappyMail-Proxy/Asset-Gate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` führen `SNAPPYMAIL_PROXY_PREFIX=/snappymail`, `DEFAULT_SNAPPYMAIL_UPSTREAM_URL=http://127.0.0.1:49080`, `rewrite_snappymail_text_body`, `rewrite_snappymail_location` und `rewrite_snappymail_set_cookie`.
- Inventarstatus: Die originale SnappyMail-Oberfläche laeuft same-origin unter `https://forgejo.buschitut.eu/azubi42-jura/snappymail/` beziehungsweise `https://forgejo.buschitut.eu/azubi42-dev/snappymail/`; Adminzugang über `.../snappymail/?admin`.
- Der Server-Smoke `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py` ist um Snappy-Response-Fehler, Page-Errors und Request-Failures als harte Gatekriterien erweitert.
- Live-Report Jura: `runtime/qa/communication_sidebar_provider_nodes_20260613_054014_c03a9a.json`, `ok=true`, Snappy-Session `200`, `response_errors=[]`, `page_errors=[]`, `request_failures=[]`.
- Dev-Smoke am selben Stand: `ok=true`, Snappy-Session `200`, keine Snappy-HTTP-/Page-/Requestfehler.
- Systemdienst: `azubi42-snappymail.service`, `ExecStart=/usr/bin/php -S 127.0.0.1:49080 -t /opt/snappymail`, HTTP `Server: SnappyMail`.


## SnappyMail-Webapp-Pfad

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js` führen `mailclient`/SnappyMail mit `loginUrl: './snappymail/'` und `appUrl: './snappymail/'`.
- Inventarstatus: Die linke SnappyMail-Dienstwahl hat einen echten Webapp-Zielpfad und fällt nicht mehr in den generischen Mail-Vertragsknoten.
- SnappyMail wird als interne gleiche-Origin-Webmail-Leinwand mit `data-provider-snappymail-include` gerendert; externe Provider bleiben ohne Native-WebView-Host gesperrt.
- `azubi42_server.py`, `communication-providers.template.json`, `[private Angabe entfernt]` und die Installer-Spiegel kennen `webmail_admin_url` und `snappymail_admin_url` als Admin-/Setup-Felder; Secrets, IMAP/SMTP und eRV-/OSCI-Freigaben bleiben getrennt.


## Communication-Worktree-Guard

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_1_Layout.js` enthalten keinen aktiven `#view-communication`-Host mehr.
- `01_10_ViewStartScreens.js` und `view_start_menus/communication_menu.js` nutzen `#btn-communication-sidebar-clear`; `01_7_Communication.js` enthält keinen aktiven Listener auf `#btn-communication-clear`.
- Die Audits `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs` und `70_TESTS_AND_SMOKE/ui/audit_communication_browser_layout.mjs` prüfen diesen Vertrag und melden Rueckfall auf die alte Communication-Fläche als Fehler.
- Detailnotiz: `00_META/COMMUNICATION_WORKTREE_AUDIT_2026-06-13.md`.


## Zugangsbau-72h-Bedienfluss

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` enthalten die UI-Verbindung zu den vorhandenen Backend-Routen `/api/legal/zugangsbau/preflight-package` und `/api/legal/zugangsbau/receipt-record`.
- Inventarstatus: Das Frontend erzeugt keinen eigenen Justizclient und keinen Mail-eRV, sondern führt den User über Paket-Preflight, amtliche MJP-/beA-Handoff-URL und gehashte Nachweisablage.
- Laufdaten bleiben userbezogen in `app_v27_multimedia/runtime/legal-jura/zugangsbau/packages/<user>/` und `.../receipts/<user>/`.
- Auditstatus: `70_TESTS_AND_SMOKE/ui/audit_zugangsbau_frontend.mjs` prüft Endpunkte, Buttons, Paperless-ID-Feld und Nachweistextfeld.


## Zugangsbau-beA-Anwalts-eRV-Handoff

- Ist inventarisiert: `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json`, `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` und `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py`[private Angabe entfernt]`official_bea_pages_reachable_role_contract_required`, wenn BRAK/beA/EGVP/Support erreichbar sind.
- Aktivierung bleibt gesperrt bis zum Nachweis, bis Rolle/Kanzleiautorisierung, offizieller beA-Zugang, userseitige Karte oder Softwarezertifikat und Send-/Receipt-Smoke belegt sind.
- Live-Deploy-Nachweis: `30_INSTALLERS/ubuntu24/azubi42-server/runtime/deploy_artifacts/winscp_targeted_erv_bea_20260613_001909.log`; Live-Ping `azubi42-jura`: 4 beA-Pongs, Gesamtping 6 Betreiber/15 Pongs/0 activation_ready/6 fail_closed.


## Zugangsbau-eRV-72h-Betriebswege sind inventarisiert

- `zugangsbau_operator_registry.json` und der Ubuntu-Installer-Spiegel enthalten `operational_72h_lane` für MJP/BundID als Buerger-eRV und beA als Anwalts-eRV.
- `azubi42_server.py` sanitizt diese Lane secretfrei; die Jura-Bibliothek/Zugangsbau-Ansicht zeigt Rolle, Betriebsweg, Ziel und Ready-Kriterien.
- Inventarstatus: kurzfristig betriebsfähig wird der amtliche Web-/App-Weg plus Azubi42-Paketbau, PDF/A-/XJustiz-/Manifest-Prüfung und Nachweisablage; direkter OSCI/EGVP-Drittproduktversand bleibt ohne privaten Betreibervertrag, Zertifikat, Postfach, Intermediaer und Receipt-Smoke geschlossen.


## Zugangsbau-eRV-Paket-/Nachweis-API

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` und der Ubuntu-Installer-Spiegel führen `build_zugangsbau_package_preflight_payload`, `normalize_zugangsbau_package_payload`, `collect_zugangsbau_package_attachments`, `build_zugangsbau_receipt_record_payload` und die Login-geschützten Routen `/api/legal/zugangsbau/preflight-package` sowie `/api/legal/zugangsbau/receipt-record`.
- Runtime-Speicher: `app_v27_multimedia/runtime/legal-jura/zugangsbau/packages/<user>/<run_id>/` für Paket, Manifest, Report, ZIP und Paperless-Staging; `.../receipts/<user>/` für Sende-/Fehler-/Receipt-Nachweise.
- Inventarstatus: Paperless-Anlagen werden über Dokument-ID geladen; freie Serverpfade sind ohne `AZUBI42_ZUGANGSBAU_ALLOW_SERVER_PATH_ATTACHMENTS=1`[private Angabe entfernt]`70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py`.


## Codex-Matrix-Handoff

- Ist inventarisiert: `toolbox/communication/codex_matrix_handoff.py` nutzt den bestehenden Matrix-/GPU-Vertrag aus `[private Angabe entfernt]`, erkennt den echten Homeserver per Well-Known, sendet Nachrichten und pollt Raumereignisse secret-sicher.
- Live-Nachweis auf `forgejo.buschitut.eu`: GPU-User `@gpu:42.chat` hat eine echte Matrix-DM zu `@b:42.chat` erzeugt und Event `$_Hf47YCK-zh9H6X7ahTfhr0amjosgS6F8so0_jJo0w0` in Raum `!GiuogWmgStWiceVZSx:42.chat` gesendet.
- Rueckkanal in den Codex-Desktop-Thread bleibt ohne geladenes Codex-Thread-API nicht automatisch; Matrix ist damit Handoff-/Sidechannel, kein nicht belegter Zustand-Sync.


## XJustiz-OSCI/EGVP-Smoke-Evidence-Gate

- Ist inventarisiert: `toolbox/legal/xjustiz_baukasten.py` und der Ubuntu-Installer-Spiegel führen `validate_smoke_evidence` sowie den Cache-Fallback für Repo-Layout und App-Root-Layout.
- Inventarstatus: Der private Transportvertrag verlangt weiter Postfach/Testpostfach, Zertifikat, privaten Schlüssel und Intermediaer; zusätzlich muss `send_receive_smoke_file` oder `receipt_smoke_file` ein JSON-Beleg mit Zeitpunkt, Endpoint, Message-ID, Request-/Receipt-Hashes und Send-/Empfangsstatus sein.
- `70_TESTS_AND_SMOKE/legal/test_xjustiz_baukasten_contract.py` prüft schwache Smoke-Dateien als rot und vollständige Evidence als grün.
- Live auf `azubi42-jura` und `azubi42-dev`: XJustiz-Cache liegt unter `runtime/legal-jura/zugangsbau/official_cache/xjustiz`, Python-Validatoren sind installiert, `verapdf` ist als Server-CLI verfügbar, `validator-status` ist grün bis auf den absichtlich fehlenden privaten OSCI/EGVP-Transportvertrag.


## SnappyMail-/Mail-Hardening-Profil

- Ist inventarisiert: `40_INTEGRATIONS/legal-jura/zugangsbau/SNAPPYMAIL_HARDENING_PROFILE_2026-06-12.md` und der Ubuntu-Installer-Spiegel halten die harte SnappyMail-Konfiguration.
- `PRIVATE_CONTRACT_TEMPLATE_MAILCLIENT.local.example.json`[private Angabe entfernt]`70_TESTS_AND_SMOKE/integrations/test_communication_connectors_contract.py` prüft direkt `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`: `mail_kind=normal_mail_only`, `erv_transport_allowed=false`, TLS an, Inhaltsverschlüsselung an, Klartext aus, SMTP-/Provider-Sendefreigabe aus und Paperless-Anlagenfluss usergebunden.
- Inventarstatus: Profil ist prüfbarer Bauteil, nicht nur Doku.


## SnappyMail-/Mail-Paperless-Encryption-Gate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt `mailclient_tls_state`, `mailclient_content_encryption_state`, `mailclient_build_encrypted_mime`, `mailclient_paperless_attachment_records` und `ingest_mailclient_attachments_to_paperless`.
- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` führt Subject-/Paperless-Dokument-ID-Felder und die Aktion `Eingang -> Paperless`.
- `toolbox/communication/provider_contracts_bootstrap.py`[private Angabe entfernt]`provider_contracts_fixture.py` erzeugt für Tests einen Verschlüsselungsdienst-Vertrag statt falscher Klartextfreigabe.
- Inventarstatus: Mail bleibt Hilfskommunikation, kein eRV; `Sende-Freigabe` verlangt TLS plus echten Verschlüsselungsdienst oder explizite Smoke-Entsperrung.


## Communication-Credential-/Provider-Contract

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `[private Angabe entfernt]`, `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`, `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` und die Ubuntu-Installer-Spiegel führen den aktuellen Stand.
- Provider-Setup ist in Template und Runtime aktiv sichtbar; `Sende-Freigabe`[private Angabe entfernt]`provider_webapp_url`/`webmail_url`[private Angabe entfernt]`v27.2.246` / `27266`.


## Notiz 2026-05-17 (Modellrouting/Antwortsystem)

- Transparenz-Repairplan liegt unter `../reports/azubi42_modellrouting_reparaturplan_2026-05-17.md` (Delta zu 2026-05-16); Regelwerk unter `AZUBI42_MODELLROUTING_REGELWERK.md`.


## Communication-Userfluss/WebView-Strict

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und der Ubuntu-Installer-Spiegel führen `getCommunicationUserOpenMode`, `openCommunicationServiceFromUserClick`, `renderCommunicationRoomActions` und `handleCommunicationRoomNodeClick`.
- Normale Provider-Dienstwahl laeuft in den Native-WebView-Pfad; ohne Native-Host wird kein Anbieterinhalt vorgetaeuscht.
- API-/Bridge-Knoten bleiben expliziter Admin-/Connectorpfad.
- `10_SHARED_CORE/app_v27_multimedia/css/style.css` und der Installer-Spiegel inventarisieren die Raumaktionsleiste.
- QA-Inventar: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` prüft sichtbare Azubi-Dienstbuttons; aktueller Native-Report `provider_webview_smoke_azubi_20260612T081557Z.json`.


## Communication-Admintext-Gate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und der Ubuntu-Installer-Spiegel führen `shouldRenderCommunicationAdminDetails`.
- Inventarstatus: interne Connector-/Schutzdetails bleiben für Diagnose zuschaltbar, erscheinen aber im normalen Userfluss nicht mehr als SnappyMail-/Provider-Knoteninhalt.


## Communication-Sidebar-/Healing-Fix

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und der Ubuntu-Installer-Spiegel führen `handleCommunicationSidebarServiceClick`, `bindCommunicationSidebarEvents` und `isRealCommunicationApiNode`.
- Inventarstatus: echte API-/Bridge-Knoten bleiben im Communication-Space erhalten; nur alte Browsergateway-/Screenshot-/Native-WebView-Ersatzknoten werden bereinigt.
- Der Account-/Matrixkontext wird vor der ersten Sidebar-Renderung geladen.


## Communication-Mailclient-Frontend

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und der Ubuntu-Installer-Spiegel führen `mailclient` in `COMMUNICATION_PROVIDER_SERVICES`, `DEFAULT_CHANNELS` und `COMMUNICATION_SERVICE_FUNCTIONS`.
- Sichtbarer Name: SnappyMail; Backendvertrag: `/api/communication/mailclient/status|rooms|sync|send` über serverseitige Webmail-/IMAP-/SMTP-Konfiguration.
- Inventarstatus: Hilfskommunikation, keine eRV-/EGVP-/OSCI-Freigabe; Provider-Webapp-Userfluss siehe WebView-Strict-Eintrag.


## Zugangsbau-Bank-ID-/Bank-KYC-Zusatzanker

- Ist inventarisiert: `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json` und der Ubuntu-Installer-Spiegel führen `bank_kyc_provider.bank_identity_policy` mit Quellen, Verbotsflächen und Gates.
- Inventarstatus: Bank-ID/KYC ist nur ein möglicher Zusatzanker für Identitaetsbelege; ohne Providervertrag, Assurance, Betreiberakzeptanz und adresslosen Nutzerpfad ersetzt er weder BundID/MJP noch OSCI/EGVP und setzt kein `Sende-Freigabe`.
- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`[private Angabe entfernt]`/api/legal/zugangsbau/status`, `/api/legal/zugangsbau/test` und `/api/public/zugangsbau/login-ping` aus.
- Git enthält nur `PRIVATE_CONTRACT_TEMPLATE_BANK_ID.local.example.json`, keine echten Bank- oder Provider-Secrets.


## Zugangsbau-SAFE-/Identitaetsanker-Regel

- Ist inventarisiert: `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json` und der Ubuntu-Installer-Spiegel führen globale SAFE-Anker-Flags, `bundid_eid.identity_anchor_policy`, `mjp_ebo_egvp_osci.address_dependency_policy` und die neue Vertragsgruppe `addressless_user_compatibility`.
- Inventarstatus: BundID/eID darf nur technische Provider-Subject-ID oder betreiberbestaetigte Pflichtclaims als Identitaetsanker nutzen; MJP/eBO/EGVP darf fehlende Strasse, Anschrift, Meldeadresse oder SAFE-Verzeichnisadresse nicht durch nicht belegter Zustand-Daten umgehen und bleibt ohne bestaetigten Ersatzpfad gesperrt bis zum Nachweis.
- `azubi42_server.py`[private Angabe entfernt]`70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py`.


## Zugangsbau-OSCI/EGVP-Testanschlussunterlagen sind inventarisiert

- `40_INTEGRATIONS/legal-jura/zugangsbau/PRIVATE_CONTRACT_TEMPLATE_OSCI_EGVP.local.example.json`, `BETREIBER_ANTRAG_OSCI_EGVP_TESTZUGANG_2026-06-12.md`, `ANSCHLUSS_CHECKLISTE_OSCI_EGVP_XJUSTIZ_2026-06-12.md` und `SNAPPYMAIL_HILFSKOMMUNIKATION_POLICY_2026-06-12.md` bilden den aktuellen fakefreien Anschlussblock.
- Echte Betreiberwerte duerfen nur in private Serverpfade wie `[private Angabe entfernt]` oder `[private Angabe entfernt]`; Git enthält nur Struktur, Anfrage und Gate-Regeln.
- Der Ubuntu-Installer-Spiegel ist synchron zu halten.


## Zugangsbau-OSCI/EGVP-Servertransportstatus

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` und der Ubuntu-Installer-Spiegel führen `build_osci_egvp_transport_gate_status`, `first_present_contract_field` und `safe_transport_file_evidence`.
- Der Status wird für `mjp_ebo_egvp_osci` in `/api/legal/zugangsbau/status`, `/api/legal/zugangsbau/test` und `/api/public/zugangsbau/login-ping` sichtbar und nutzt dieselben Gruppen wie der XJustiz-Baukasten: `mailbox_or_test_mailbox`, `certificate_and_key`, `egvp_intermediary_contract`, `send_receive_receipt_smoke`.
- Inventarisiert werden keine Secret-Inhalte und keine Vollpfade, sondern nur Feldnamen, Dateinamen, Größe und SHA256.


## Zugangsbau-Anschlussplan und ERVB-Dateinamengate sind inventarisiert

- `40_INTEGRATIONS/legal-jura/zugangsbau/ANSCHLUSSPLAN_OSCI_EGVP_XJUSTIZ_2026-06-12.md` und der Ubuntu-Spiegel beschreiben die echte Anschlussreihenfolge bis zum belegten Sende-/Empfangs-Smoke.
- `toolbox/legal/xjustiz_baukasten.py` und der Spiegel führen `sanitize_ervb_attachment_filename` mit `ERVB_ATTACHMENT_FILENAME_MAX_LENGTH=90`; `process_attachments` schreibt `file_name_policy` und `file_name_policy_ok`, `build_package` blockiert bei `ervb_attachment_filename_gate_not_passed`.


## Zugangsbau-ERV-OSCI-Vertrag

- Ist inventarisiert: `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json` und der Ubuntu-Installer-Spiegel führen für `mjp_ebo_egvp_osci` den `component_contract` mit `transport_engine=OSCI 1.2 via EGVP intermediary`, `normal_mail_client_allowed=false`, SnappyMail nur als Hilfskommunikation und Server-Backend-Schritten für Metadaten, PDF/A, XJustiz, `strukturierte_daten.xml`, OSCI-Signatur/Transport und Smoke-Evidence.
- `xjustiz_validation` führt den `builder_contract` für `xjustiz_nachricht.xml`, `strukturierte_daten.xml`, PDF/A-Anlagen, XSD-/Schematron-/Codelist-Validierung und Hash-/Manifestbeleg.
- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` und der Ubuntu-Installer-Spiegel führen `sanitize_zugangsbau_contract`, `probe_zugangsbau_executable` und `build_erv_osci_toolchain_smoke`; der Login-Preflight gibt Java, Ghostscript, ocrmypdf und Tesseract als `[tool]`-Terminalzeilen aus.
- Serverinventar nach Live-Deploy: `default-jre-headless`/OpenJDK 21.0.11 ist auf `forgejo.buschitut.eu` installiert; Dev und Jura melden zusätzlich Ghostscript 10.02.1, ocrmypdf 15.2.0 und Tesseract 5.3.4.
- Dokumentiert ist der Bauteil in `40_INTEGRATIONS/legal-jura/zugangsbau/ADMIN_GUIDE_ERV_OSCI_XJUSTIZ_PDFA_2026-06-11.md`, `README.md`, `ROADMAP_ZUGANGSBAU_ORIGINALANSCHLUESSE_2026-06-06.md` und `OFFIZIELLE_QUELLEN_2026-06-06.md`.
- Testvertrag: `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py`; Produktiv-/Sandbox-Aktivierung bleibt ohne Betreibervertrag, Zertifikat/Secret, Destination/Service-ID und echten Sende-/Empfangs-Smoke gesperrt.


## Zugangsbau-OSCI-Maven-Smoke

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt `build_osci_official_library_smoke`, `download_zugangsbau_official_text_artifact`, `build_maven_artifact_url` und `normalize_sha256_sidecar`.
- Die Registry führt für `mjp_ebo_egvp_osci.official_test_profile.maven_artifacts` das Artefakt `de.osci:osci-bibliothek` mit Repository `https://repo.maven.apache.org/maven2`.
- Der Smoke liest Metadata, POM, JAR und die `.sha256`-Sidecars in `runtime/legal-jura/zugangsbau/official_cache/osci/`, vergleicht die Hashes und gibt im Login-Ping `[artifact]`-Zeilen aus.
- Inventarstatus: Der belegte Zwischenstatus heisst `official_osci_library_hash_verified_contract_required`; er aktiviert keinen Versand und ersetzt keine Userpostfach-, Zertifikats-, Zielkennungs- oder Intermediaer-Konfiguration.


## Zugangsbau-XJustiz-Schemainventar

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt `inspect_xjustiz_schema_zip_inventory` und `cached_zugangsbau_artifact_path`.
- Der Smoke nutzt die bestehenden XJustiz-Downloadpakete im Cache `runtime/legal-jura/zugangsbau/official_cache/xjustiz/`, parst alle XSD-/SCH-Dateien als XML, zaehlt Codelist-XSDs und prüft die Pflichtanker Grunddatensatz, Nachrichten und eEB.
- Ausgabe: `artifact_smoke.schema_inventory` plus `[schema]` im Login-Ping; keine Sendefreigabe ohne dokumentbezogene Validatorlaeufe.


## XJustiz-Baukasten

- Ist inventarisiert: `toolbox/legal/xjustiz_baukasten.py` und der Ubuntu-Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/xjustiz_baukasten.py` bauen aus serverseitigem JSON ein lokales ERV-XJustiz-Prüfpaket mit `xjustiz_nachricht.xml`, `strukturierte_daten.xml`, Anlagenkopien, `manifest.json`, `validation_report.json` und `xjustiz_package.zip`.
- Der Baustein nutzt die amtlichen Cache-ZIPs unter `runtime/legal-jura/zugangsbau/official_cache/xjustiz/`, erzeugt den Basisnachricht-Root `nachricht.gds.basisnachricht.0005006`, setzt `xjustizVersion="3.6.2"` und sperrt Sendefreigabe, wenn XSD, Schematron, Codelisten, PDF/A-Anlagen oder OSCI/EGVP-Transport nicht belegt sind.
- `validator-status` ist der inventarisierte Preflight für `xmlschema`, `lxml.etree`, `elementpath`, XSD-/Schematron-Cache, Codelist-XSDs, PDF/A-Validatorstatus und `send_possible=false` bis zum Transportgate; Temp-Entpackung und Selftest liegen unter `runtime/tmp/xjustiz_baukasten/`, damit lokale Windows-Steuerlaeufe nicht am System-Temp scheitern.
- PDF/A ist lokal über Temurin JRE 21.0.11, VeraPDF 1.30.2 und `C:\Users\User\.azubi42\tools\verapdf-1.30.2\azubi42-verapdf.bat` belegt; der veraPDF-Corpus-Smoke trennt positives und negatives PDF/A korrekt.
- Transport-Preflight-Vertraege kommen aus Payload-`transport_contract` oder `AZUBI42_OSCI_EGVP_CONTRACT_JSON` und verlangen Postfach, Zertifikat, Schlüssel, Intermediaer und Smoke-Beleg.
- Dependencies: `toolbox/legal/requirements-xjustiz.txt`.
- Testvertrag: `70_TESTS_AND_SMOKE/legal/test_xjustiz_baukasten_contract.py`.


## XJustiz-Transportgate

- Ist inventarisiert: `validate_transport_contract()` in `toolbox/legal/xjustiz_baukasten.py`[private Angabe entfernt]`transport_contract` und die serverseitige JSON-Datei aus `AZUBI42_OSCI_EGVP_CONTRACT_JSON`.
- Inventarisiert werden nur ausgewählte Feldnamen, Dateinamen, Größe und SHA256 von Zertifikat, Schlüssel und Sende-/Empfangs-Smoke; fehlende Gruppen halten `Sende-Freigabe` und `send_possible` geschlossen.


## XJustiz-Transportstatus

- Ist inventarisiert: `transport-status --contract-json <private-osci-egvp-contract.local.json>` prüft private OSCI/EGVP-Vertragsdateien mit demselben Gate wie Paketbau und `validator-status`.
- Die Ausgabe bleibt secret-sicher und enthält nur Feldnamen, Dateinamen, Größen und SHA256-Werte.


## Zugangsbau-FIT-Connect-SDK-Smoke

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt `build_fit_connect_sdk_smoke`; die Registry führt für `fit_connect_zbp.official_test_profile.maven_artifacts` das Artefakt `dev.fitko.fitconnect.sdk:client`.
- Cache: `runtime/legal-jura/zugangsbau/official_cache/fit-connect/`.
- Ausgabe: `sdk_smoke` plus `[sdk]` im Login-Ping.
- Der belegte Zwischenstatus `official_test_environment_and_sdk_verified_contract_required` ersetzt keinen Betreibervertrag, keine BPKI-/Zertifikatsdatei und keinen Destination-/Eventlog-Smoke.


## Zugangsbau-Provider-Smokes sind inventarisiert

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` und der Ubuntu-Installer-Spiegel führen `download_zugangsbau_official_artifact`, `resolve_zugangsbau_cache_dir`, `build_xjustiz_official_artifact_smoke`, `fetch_zugangsbau_json_probe` und `build_fit_connect_test_environment_smoke`.
- XJustiz-Pakete werden in `runtime/legal-jura/zugangsbau/official_cache/xjustiz/` oder bei fehlender Schreibberechtigung im System-Temp-Cache abgelegt, per SHA256 und ZIP-Inhaltszaehlung belegt und im Login-Preflight als `[artifact]`[private Angabe entfernt]`[json]` mit SHA256, Key- und KID-Zählern ausgegeben.
- `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py` akzeptiert nur diese belegten Zwischenzustaende: `official_packages_hash_pinned_validator_ready` und `official_test_environment_jwks_verified_contract_required`; `activation_ready` bleibt ohne Betreibervertrag/Secrets/Zertifikate/Destination bewusst aus.


## Zugangsbau-Login-Preflight

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` und der Ubuntu-Installer-Spiegel führen `build_zugangsbau_login_ping_payload` und den öffentlichen Handler `/api/public/zugangsbau/login-ping?module=jura`.
- Der Login-HTML-Block `data-zugangsbau-login-preflight` ruft diesen Endpoint ohne Websession ab und zeigt `terminal_lines` in `data-zugangsbau-login-terminal`[private Angabe entfernt]`70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py`.


## AZUBI42.de-Live-Sync

- Ist inventarisiert: `runtime/live_backups/azubi42_de_live_20260611_124057` ist der aktuelle gesicherte Serverstand von `/var/www/azubi42.de/current`; `runtime/local_backups/azubi42_de_repo_before_live_sync_20260611_124217` ist der lokale Vorher-Stand.
- `20_EDITIONS/azubi42-de/website/` und `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/website/` enthalten denselben Hashbestand wie das Live-Backup.
- Neue Live-Assets wie `therapiekatzen.png`, `helix_00.png`, `helix_01.png`, `blickwinkelwaffe.png`, `baum0.png`, `baum1.png` und `baumfruchtgiftig.png` sind Teil des Public-Site-Bestands.
- Testvertrag: `audit_azubi42_domain_site.mjs`, `audit_azubi42_domain_mobile.mjs`, Hash-Spiegelabgleich Live->Repo->Installer.


## Zugangsbau-Betreiber-Testprofile sind inventarisiert

- `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json` und der Ubuntu-Installer-Spiegel führen offizielle Test-/SDK-/Paketanker für BundID/eID, MJP/eBO/EGVP/OSCI, XJustiz und FIT-Connect/ZBP.
- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt `build_zugangsbau_operator_test_evidence`, `build_zugangsbau_official_probe_evidence` und `probe_zugangsbau_official_url`; der Payload `/api/legal/zugangsbau/test?module=jura` enthält je Betreiber `sdk_test`[private Angabe entfernt]`01_8_JuraBibliothek.js` rendert diese Belege; `test_zugangsbau_registry_contract.py` und `audit_zugangsbau_frontend.mjs` sperren nicht belegter Zustand-Positive.


## Neu-User-Busch-Guide-Durchrutscher

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` führen die sichtbaren Guide-Haertegrade `konservativ`, `normal`, `scharf` und `review` als gültige Serverwerte.
- Der User-Kontext darf diese Werte dadurch serverseitig speichern und in RAG/WH3D/Fachazubi-Kontext weitergeben; kein stiller Fallback auf `konservativ`.
- Testvertrag: `70_TESTS_AND_SMOKE/legal/test_user_account_lifecycle_contract.py`; UI-Vertrag: `70_TESTS_AND_SMOKE/ui/audit_new_user_busch_guide.mjs`.


## Durchrutscher-Audit

- Ist inventarisiert: `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py`[private Angabe entfernt]`operator_registry_backed`, `partial_registry_gap`, `registry_gap`, `team_path`, `manual_admin_review`[private Angabe entfernt]`10_SHARED_CORE/app_v27_multimedia/runtime/fach-azubis/catalog.json`, `40_INTEGRATIONS/fach-azubis/catalog.json`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/runtime/fach-azubis/catalog.json` sowie der Communication-Fachazubi-Seed in `01_7_Communication.js` führen Provider-WebView/API-Bridge statt BrowserGateway-Web-Messenger.
- Der bidirektionale Audit ignoriert `.git`, `__pycache__`, `.pytest_cache`, `node_modules`, `dist` und `build` als Fremd-/Buildkorpus.


## Zugangskarten-Registry-Gate

- Ist inventarisiert: Der Login-/Nachweisbereich in `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`[private Angabe entfernt]`40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json`.
- Der bidirektionale Audit `70_TESTS_AND_SMOKE/ui/audit_azubi42_de_server_bidirectional.py` schreibt dieselben Operator-IDs, Coverage-Werte, Quellen- und Gatezähler in JSON/Markdown und trennt `operator_registry_backed`, `partial_registry_gap`, `registry_gap`, `team_path` und `manual_admin_review`.
- Kein Status wird dadurch produktiv; `bank_kyc_provider` ist jetzt als BaFin-/GwG-basierter Operator mit Verbot von Bank-Login-Nachbau, Rohcredentials, iframe und Screenshottransport erfasst und bleibt `contract_required`.


## Bidirektionaler Gap-Audit Detailmarker-/Jurabibliothek-Deployfix

- Ist inventarisiert: Der Audit schließt `detailseite/detailseiten`[private Angabe entfernt]`toolbox/legal/jurabibliothek/config/`, damit der Serverlauf dieselben offiziellen Jurabibliothek-/Ausbildungsquellen wie der lokale Audit sieht und echte Quellenpunkte nicht als fehlende Serverfunktion oder lokale Scheinabdeckung erscheinen.


## Paperless-Pre-Consume-Deployfix

- Ist inventarisiert: `toolbox/legal/paperless_preconsume_content_triage.py` gehört zum Server-Live-Artefakt und wird über `toolbox/deploy/deploy_live_winscp.ps1` sowie den Ubuntu-Installer-Spiegel nach `toolbox/legal/` auf dem Server kopiert.
- Der Upload-Endpunkt `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt blockierte Dateien als `blocked_by_preconsume_triage` und liefert dafür einen roten Blockade-/Reviewstatus statt eines OCR-Erfolgstextes.
- Zielvertrag: kein Paperless-Import ohne Pre-Consume-Freigabe, aber auch kein falscher Frontend-Erfolg bei fehlendem oder blockierendem Triagepfad.
- Serverbeleg: `[Serverpfad]`, lokaler Spiegel unter `reports/`, Doc `2311`, TOC `b` = `1478`.


## Paperless-Originaltext-FTS

- Ist inventarisiert: `toolbox/legal/paperless_original_text_index.py` baut pro User den SQLite-FTS5-Index `paperless_original_text_fts.sqlite3` im bestehenden TOC-Runtimebaum.
- Inventarierter Datenfluss: Sidecar-Text und Inlinebild-OCR zuerst, PDF-Textlayer/TXT/MD nur als Fallback, geaenderte Quellen über SHA256/mtime inkrementell, Suchantwort mit Originalpfad, Paperless-ID, Seite, Chunk und Snippet.
- Serverbruecke: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` mit `POST /api/paperless/original-search`; `/api/paperless/toc/status` meldet denselben Indexstand, `/api/paperless/toc/reconcile` aktualisiert ihn für den User, und `/api/paperless/webhook/document` aktualisiert nach einem neuen Paperless-Dokument gezielt die passende Sidecar-/Originalspur oder meldet `sidecar_pending`.
- Index-Roots kommen aus Session/Tresor und serverseitiger Env `AZUBI42_PAPERLESS_ORIGINAL_TEXT_ROOTS`, nicht aus frei übergebenen User-Payload-Pfaden.
- Konfigurationsanker: `toolbox/legal/config/paperless-user-toc.example.env` und `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/config/paperless-user-toc.example.env` enthalten die serverseitigen Originaltext-Roots.
- Reconcile-/Ops-Pfad: `toolbox/legal/run_paperless_user_toc_reconcile.sh` ruft den Indexer pro User mit denselben Roots auf; der fachliche Primaerpfad bleibt Post-Consume/Webhook.
- Deployvertrag: `toolbox/deploy/deploy_live_winscp.ps1` und der Installer-Spiegel kopieren `paperless_original_text_index.py` nach `toolbox/legal/` in Dev/Jura.
- Frontendbruecke: `01_1_Layout.js`, `01_8_JuraBibliothek.js` und `10_1_PaperlessBridge.js` zeigen Originaltextsuche und Indexstatus direkt im Paperless-/Bibliothek-Panel und rufen nur Query, Limit und Service-Kontext ab.
- Ubuntu-Installer-Spiegel führt denselben Server-, Toolbox- und Frontendstand.
- Testvertrag: `py_compile`, `paperless_original_text_index.py selftest-kapust` und `70_TESTS_AND_SMOKE/legal/test_paperless_original_text_index.py`; belegter Suchlauf: Kapust-Protokollfund in `9.7 ms`.


## Bidirektionaler Gap-Audit Server-Scope

- Ist inventarisiert: Der Audit erkennt `app_v27_multimedia` im Deploy direkt als `APP_DIR`; der lokale Repo-Pfad bleibt `10_SHARED_CORE/app_v27_multimedia`.
- Das Deploy-Inventar enthält nun auch `40_INTEGRATIONS/fach-azubis/` und `40_INTEGRATIONS/legal-jura/bundid-eid/`, damit der 72h-Serverlauf keine P1-Gaps durch fehlende mitdeployte Korpusordner erzeugt.


## Bidirektionaler Gap-Audit Prioritaetsqueue

- Ist inventarisiert: `70_TESTS_AND_SMOKE/ui/audit_azubi42_de_server_bidirectional.py` erzeugt neben dem JSON-Bericht jetzt auch einen Markdown-Bericht und führt `gap_priority` mit `gap_priorities`, `access_fail_closed_priorities`, `priority_queue`, `priority_counts` und `workstream_counts`.
- Der Bauteil klassifiziert Website->Server-Gaps nach P0/P1/P2/P3 und hebt gesperrt bis zum Nachweis Login-/Zugangskarten als `access_contract`-Arbeitsitems hervor, ohne sie als funktionsbereit zu markieren.
- Server-/Daemon-Nutzung bleibt dieselbe systemd-Schiene `azubi42-bidirectional-audit.service/.timer`; der neue Output ist rueckwaertskompatibel für vorhandene JSON-Auswerter.


## Communication-Provider-Room-Gate

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und die Ubuntu-Installer-Spiegel verhindern den nicht belegter Zustand-Positive, dass ein Provider ohne echte Räume/Chats als bereit gilt.
- `rooms`/`sync` geben Readiness, `roomsReady/syncReady`[private Angabe entfernt]`test_communication_connectors_contract.py`.


## Communication-Matrix-Raummapping ist als historisch aufgehobener Inventareintrag markiert

- Externe Provider werden seit 2026-06-14 nicht mehr über Matrix-Räume konfiguriert, synchronisiert oder gesendet.
- `bridge_rooms`/`bridge_send_enabled` bleiben nur Legacy-/Regression-Guard; gültig sind dienstspezifische `<dienst>_rooms`, `provider_send_enabled` und echte Provider-/OAuth-/Sessionpfade.
- Testvertrag: `70_TESTS_AND_SMOKE/integrations/test_communication_connectors_contract.py`.


## Bidirektionaler Gap-Audit-Korpusfix

- Ist inventarisiert: `70_TESTS_AND_SMOKE/ui/audit_azubi42_de_server_bidirectional.py` nimmt die Fachazubi-Kataloge und das BundID/eID-Antragspaket in den Serverkorpus auf.
- Inventarierte Quellen: `10_SHARED_CORE/app_v27_multimedia/runtime/fach-azubis/catalog.json`, `40_INTEGRATIONS/fach-azubis/` und `40_INTEGRATIONS/legal-jura/bundid-eid/`.
- Ziel: echte vorhandene Bauteile werden im Website-/Server-Abgleich belegt, ohne P1-Gaps durch neue Dummy-Funktionen oder Website-Textabsenkung zu kaschieren.
- Der Matcher führt kurze Mehrwortlabels als exakte Phrase, damit Katalogmarker wie `Jura Gold` nicht durch die Einzelwort-Sperre verloren gehen.
- Inventarstatus nach statischem Nachlauf: 16 Website-Gaps, 6 gesperrt bis zum Nachweis Zugangskarten, 0 kritische Fehler.


## Inventarabgleich


Das Inventar wurde gegen den aktuellen Produktionsordner abgeglichen. Die Zähler und Modulgruppen entsprechen dem realen Dateistand. Laufzeitdateien unter `runtime/` und Python-Caches unter `__pycache__/` sind nicht Teil dieses Produktionsinventars.


## Private Arbeitsdaten


Private Amts-, Schriftsatz-, OCR-, Versand- und Zwischenarbeitsstaende werden nicht in Forgejo, Matrix, Discourse oder öffentlichen Reports dokumentiert. Öffentliche Inventare nennen nur repo-taugliche Bauteile, neutrale Env-Namen und die zugehoerigen Schutzregeln.


Legal-PDFs aus privaten AMT-Beständen sind OCR-Sidecar-first inventarisiert. Direkte PDF-Textlayer-Auswertung ist für diese Werkzeuge standardmaessig aus und nur über `AZUBI42_ENABLE_PDF_DIRECT_TEXT=1` erlaubt. Dadurch bleiben Re-OCR-Wellen reproduzierbar und alte Scan-/OCR-Ableitungen werden bis zum Neuaufbau nicht als belastbarer Tabellenstand behandelt.


## BVerfG-Lesefassung 2026-06-03

- Ist inventarisiert: `[lokaler Pfad]` enthält die ergänzte 09er-Altakten-/Aktenbeiziehungsachse.
- Geaendert wurden nur der Beschwerdegegenstand, ein Kernpunkt des Schutzbedarfs, der Anlagenhinweis, die Klarstellung `Beschwerde`, die formneutrale Kontaktzeile und der LSG-URL-Abschnitt als eigener Beschwerde-/Zugangspunkt; Dokumenttextscan auf interne Arbeitsbegriffe ohne Treffer.


## Paperless-Inlinebild-Pipeline

- Ist inventarisiert: `40_INTEGRATIONS/paperless/hooks/azubi42_paperless_legal_ocr.py` schreibt `inline_visuals` für DOCX-/PDF-Bilder mit Originalbild, Bildhash, Position, Rolle, OCR, Analysezusammenfassung, `vision_blocked` und Frucht-Clicktargets.
- Dieselben Bildfrüchte werden als `type=inline_visual_fruit` in `fruits[]` gespiegelt; diese Top-Level-Liste ist der gemeinsame Join für Viewer, Baum, Helix/3D-Welt und Gegenüberstellung.
- Der Backfill `toolbox/legal/paperless_inline_visuals_backfill.py` ergänzt bestehende Sidecars kontrolliert und resumefest; Langdokumente erhalten `inline_visuals_audit`, erwartete Bildkandidatenzahl, Limitstatus, Laufdauerwarnung und unvollständige Statuswerte, damit kein abgeschnittener Lauf als fertig gilt.
- `40_INTEGRATIONS/paperless/RUNBOOK_INLINE_VISUALS_BACKFILL_2026-06-04.md` dokumentiert den Serverlauf mit Resume-Log, Stopkriterien und `fruits[]`-Joinprüfung.
- RAG- und Suchpfad: `toolbox/legal/paperless_atom_indexer.py`, `toolbox/legal/paperless_sidecar_text.py`.
- Frontend-/Ansichtspfad: `azubi42_server.py` mit `/api/paperless/inline-visual`, `/api/paperless/vision-review` und `/api/paperless/vision-review/update`, `10_1_PaperlessBridge.js`, `style.css`, `aktenzeichen_timeline.py`, `spatial_jura_world.py`, `realfall_hin_her_zeitstrahl_mehrspur.py`.
- Die Vision-Review-Queue ist dedupliziert und macht offene Bildreviews abarbeitbar, statt `vision_blocked` nur als Zähler liegenzulassen.
- Testvertrag: `py_compile`, Sidecar-Schema, `node --check`, `70_TESTS_AND_SMOKE/legal/test_paperless_inline_visuals.py`.

## Paperless-DOCX-Relationship-Fix

- Ist inventarisiert: `40_INTEGRATIONS/paperless/hooks/azubi42_paperless_legal_ocr.py` und der Ubuntu-Installer-Spiegel lesen OOXML-Relationship-Attribute jetzt über den lokalen XML-Namen statt über rohe Attributkeys.
- Damit funktionieren `word/_rels/document.xml.rels` auch mit Namespace-Praefixen oder namespaceten Attributen und DOCX-Bilder werden wieder als `inline_visuals` in Sidecar und `fruits[]` geschrieben.
- Repro-/Testvertrag: `70_TESTS_AND_SMOKE/legal/test_paperless_inline_visuals.py`.

## Paperless-User-Inhaltsverzeichnis

- Ist inventarisiert: `toolbox/legal/paperless_user_document_toc.py` schreibt pro Paperless-User im Serverbetrieb unter `runtime/paperless_user_toc/<user>/` die Dateien `paperless_document_toc_state.json`, `paperless_document_toc.csv` und `paperless_document_toc_events.jsonl`.
- Erfasst werden Paperless-ID, Titel, Originaldateiname, Created/Added/Modified, Korrespondent, Dokumenttyp, Storage-Pfad, Tags, Seitenzahl, Archivnummer, Quelle, Fingerprint und Status (`active`, `missing_from_reconcile`, `reappeared`).
- Post-Consume-Pfad: `40_INTEGRATIONS/paperless/hooks/azubi42_paperless_legal_ocr.py` ruft das TOC-Modul nach jedem neuen Paperless-Dokument direkt auf und akzeptiert `AZUBI42_PAPERLESS_TOC_OUTPUT_ROOT` oder `AZUBI42_PAPERLESS_USER_TOC_ROOT`.
- Serverpfad: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` mit `/api/paperless/toc/status`, `/api/paperless/toc/reconcile` und `/api/paperless/webhook/document`; die Routen beziehen Paperless-Service-Daten aus Request/Tresor, serverseitigem `auth_providers.paperless`[private Angabe entfernt]`toolbox/legal/run_paperless_user_toc_reconcile.sh`, `toolbox/legal/config/paperless-user-toc.example.env`, `toolbox/legal/systemd/azubi42-paperless-user-toc.service` und `.timer`; diese Schiene ist nur Fallback/Gegenprobe.
- Der TOC ist die User-/Paperless-Quelle für RAG, WH3D, Zähler und Anlagen; Clientpfade und alte Arbeitsordner sind kein Scope.
- Installer-Spiegel unter `30_INSTALLERS/ubuntu24/azubi42-server/` ist synchron.
- Testvertrag: `py_compile`, JSON-Regelcheck und `70_TESTS_AND_SMOKE/legal/test_paperless_user_document_toc.py` plus `test_paperless_legal_ocr_hook.py`.

## Paperless-User-TOC Server-Smoke

- Ist inventarisiert: Der echte Lauf auf `azubi42-jura` nutzte User `b` / `@b:42.chat`, Paperless-Dokument `2300` und einen Bestand von `1467` Dokumenten.
- Webhook/Post-Consume, Reconcile `limit=25` und Vollbestand-Reconcile sind als OK dokumentiert.
- Der nachgezogene Session-Smoke meldete sich mit temporaerem Smoke-User am laufenden Server an und prüfte `POST /azubi42-jura/api/paperless/toc/status` mit echtem Cookie: `200`, `ok=true`, `document_count=1467`.
- Der neue Vertrag behandelt Timer/Service nur als Reconcile-Fallback; der fachliche Hauptpfad bleibt Paperless-Post-Consume/Webhook bei neuem Dokument.
- Fallback-Installation ist inventarisiert: `/etc/azubi42/paperless-user-toc.env`[private Angabe entfernt]`azubi42-paperless-user-toc.timer` enabled/active, manueller Service-Start `RECONCILE_SERVICE_RC=0`, `events_written=0`.
- Runtime-Artefakte liegen unter `[Serverpfad]`; Report: `reports/paperless_user_toc_server_smoke_2026-06-05.md`.


## Paperless-Frontend-Upload-Smoke

- Ist inventarisiert: `70_TESTS_AND_SMOKE/integrations/smoke_paperless_frontend_upload_live.py` prüft als realer Frontend-Klicktest den Userfluss von Login über Bibliothek/Paperless bis Upload.
- Der belegte Serverlauf wurde als Linux-User `azubi42` gegen `https://forgejo.buschitut.eu/azubi42-jura` ausgeführt und klickte Upload-Kontext, Ordner-/Taganlage, Dateiauswahl und Upload.
- Ergebnis: Paperless-Dokument `2308`, Titel `SGP_Eilrechtsschutz_Paperless_Uploadtest_20260605_212012_4d1e1248`, `upload_http_status=200`.
- Der Post-Consume-Hook schrieb sofort für User `b` die TOC-Eventzeile mit `event=created`, `source=paperless_post_consume` in `paperless_document_toc_events.jsonl` und die CSV-Zeile in `paperless_document_toc.csv`.
- Serverbericht und Screenshot liegen unter `[Serverpfad]` und `.png`; der zusammenfassende Nachweis steht in `reports/paperless_user_toc_server_smoke_2026-06-05.md`.
- Der Finalevent ist nicht timergetrieben.

## Paperless-User-TOC Frontend-Status

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js` stellt im Bibliothek-/Paperless-Bereich den Slot `data-paperless-role="toc-status"` bereit.
- `01_8_JuraBibliothek.js` ruft `/api/paperless/toc/status` mit dem echten Paperless-Servicekontext ab, rendert User, Dokumentzahl, letzte Aktualisierung, letzte Eventquelle und Dateistatus, aktualisiert nach Upload automatisch und bietet einen manuellen Refresh.
- `10_1_PaperlessBridge.js` zeigt denselben Status im Paperless-Bridge-Panel und hoert auf `paperlessTocStatusChanged`.
- `style.css` führt den kompakten Statusblock.
- `toolbox/legal/paperless_user_document_toc.py` liefert dazu `last_event` sowie Statusdaten für State, CSV und Events.
- Der Live-Smoke `smoke_paperless_frontend_upload_live.py` prüft sichtbaren TOC-Status und API-Antwort.

## Paperless-User-TOC Session-Fallback-Fix

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` führt für den TOC-Status die Reihenfolge `expliziter Payload-User -> konfigurierte TOC-User aus auth_providers.paperless/Env -> Sessionuser`.
- Dadurch zeigen Upload-Smokes und normale Frontend-Sessions nach Upload den echten Paperless-TOC des konfigurierten Users statt eines leeren temporaeren Session-TOC.
- Belegter Live-Zustand auf `azubi42-jura`: `User: b`, `1.477 Dokumente`, letzter Event `created · Doc 2310 · paperless_post_consume`; API `200`, `ok=true`, `document_count=1477`.

## Vision-Gate-Windows-Smoke

- Ist inventarisiert: `toolbox/legal/paperless_inline_visuals_vision_gate.py` erzeugt beim Schreiben fehlende Sidecar-Elternordner erneut, damit lokale Subprozess-Smokes unter Windows nicht an kurzlebigen Temp-ACL-/Cleanup-Effekten scheitern.
- `70_TESTS_AND_SMOKE/legal/test_paperless_inline_visuals_vision_gate.py` nutzt dafür bewusst einen festen Workspace-Tempordner unter `.tmp` statt des hostseitig unzuverlässigen `pytest-of-User`-Baums.
- Der fachliche Vertrag des Vision-Gates bleibt unveraendert: kein produktiver Serverlauf lokal, nur kleine Smoke-Verifikation.

## Paperless-Inlinebild-Backfill-Hostmapping

- Ist inventarisiert: Sidecars duerfen Paperless-Containerpfade wie `/usr/src/paperless/media/...` behalten; der Backfill öffnet die echten Originale über `--path-map`/`AZUBI42_PAPERLESS_PATH_MAPS`, z.B.
- `/usr/src/paperless/media=/var/lib/docker/volumes/paperless_media/_data`.
- `inline_visuals_audit.declared_source` bleibt der aktenkundige Paperless-Pfad, `inline_visuals_audit.source` ist der tatsaechlich gelesene Hostpfad.
- Auf dem Paperless-Quellhost kann der Hook mit `--hook-path /opt/paperless/azubi42-hooks/azubi42_paperless_legal_ocr.py` geladen werden.


## Paperless-Inlinebild-Hostabhaengigkeit und Vektorformat-Vertrag sind inventarisiert

- Der direkte Quellhostlauf benoetigt `python3-pil`, `tesseract-ocr`, `tesseract-ocr-deu` und `tesseract-ocr-eng`; Container-OCR-Pakete ersetzen diese Hostpakete nicht.
- WMF/EMF werden nicht als PNG beschriftet.
- Ohne lokalen Rasterizer bleiben sie als Originalformat mit `normalization=original_unrendered`, `source_sha256`, `skipped_reason=unsupported_vector_image_requires_rasterizer` und `vision_blocked=true` im Sidecar.


## Mobile-Realbrowser-Härtung

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/css/mobile-smart.css`, `css/style.css`, `js/01_CORE/01_4_InterfaceChrome.js`, `70_TESTS_AND_SMOKE/ui/audit_azubi42_app_mobile_browser.mjs` und der Ubuntu-Installer-Spiegel führen den Mobile-Stand `v27.2.239` / `27259`.
- Die Sidebar ist auf schmalen Touchgeraeten eine 48px-Rail mit fixed Overlay, der Eingabe-Dock wird an die echte Viewportbreite gebunden, Header-Actions werden reduziert, Communication-Dienstkarten sind zweizeilig bedienbar und BuschCode/Toolbox/Vault/Modelle besitzen mobile Breiten- und Touch-Gates.
- Der neue Browser-Smoke startet einen frischen lokalen Server auf Zufallsport und prüft Chrome/Edge per CDP in Pixel-8-Portrait, Sidebar-offen, Communication und Landscape gegen sichtbaren Überlauf, Docklage und Zielgrößen; Report unter `reports/azubi42_app_mobile_browser.json/.png`.


## Jurabibliothek-Profiregal

- Ist inventarisiert: `toolbox/legal/jurabibliothek/config/profi_jura_sources.json` führt den Jura-Profi-Schnellbestand für Kern-Gesetzbuecher, Sozial-/Gesundheits-/Existenzrecht, Digitalzugang/Barrierefreiheit, amtliche PKH-/Beratungshilfe-Formularseiten sowie BVerfG-/EGMR-Richterprofil-Lehrgaenge.
- `toolbox/legal/jurabibliothek/egmr_bverfg_materials.py` erzeugt aus `training_outline` ein eigenes Fragment `Azubi42-Lehrgang` und nimmt `legal_reference_*`, `legal_form` und `legal_training_program` in die DB-Zähler auf.
- `toolbox/legal/jurabibliothek/config/legal_education_sources.json` führt die neuen Lern-Lanes `bverfg_richterprofil` und `egmr_deutschland_richterprofil`.
- Echte Einlagerung am 2.Jun.2026: 73 Quellen, 0 Fehler, 746 Fragmente, davon 32 `legal_reference_law`, 5 `legal_form` und 2 `legal_training_program`; Report `reports/egmr_bverfg_quellenpaket_2026-06-02.json/.md`.
- Ubuntu-Installer-Spiegel unter `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/` ist synchron; Testvertrag: `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_profi_sources.py`, `test_legal_education_sources.py`, `test_egmr_bverfg_materials.py`.


## Codex-/AI-Dev-Toolchain

- Ist inventarisiert: `00_META/CODEX_TOOLCHAIN_INVENTAR_2026-06-02.md` dokumentiert die aktivierten lokalen Codex-Plugins und deren Einsatzvertrag.
- `openai-developers@openai-curated` ist in `C:\Users\User\.codex\config.toml` aktiviert und liegt unter `C:\Users\User\.codex\plugins\cache\openai-curated\openai-developers\90718987`; enthalten sind Agents SDK, ChatGPT-App-Aufbau, App-Submission, OpenAI-API-Troubleshooting und API-Key-Helfer.
- Inventarentscheidung: keine weitere generische AI-Dev-Plugin-Installation; vorhandene Tools werden als Pflicht-Gate vor neuen Implementationsideen genutzt.


## Git-Arbeitsstand-Audit

- Ist inventarisiert: `00_META/GIT_ARBEITSSTAND_AUDIT_2026-06-02.md` führt den lokalen Dirty-Worktree als geordnete Arbeitsakte.
- Inventarstatus: vier Pakete, naemlich Mobile-/Smartphone-Härtung, Jurabibliothek-Profiregal, Native-Provider-Webapp-Browser-Windows-/OAuth-Härtung und Codex-/AI-Dev-Toolchain; untracked Smokes/Reports sind fachlich zugeordnet.
- Schutzregel: keine neue Welle auf losem Dirty-Stand ohne Commit, bewusste Offenmarkierung oder Scope-Ausschluss.


## Native-Provider-Webapp-Browser Windows-/OAuth-Härtung

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/main.js` setzt App-Name, App-ID und `userData` auf `%APPDATA%\Azubi42\ProviderWebappBrowser`; `smoke-provider-webviews.js` nutzt getrennt `%APPDATA%\Azubi42\ProviderWebappSmoke`.
- Der Bauteil akzeptiert als Azubi42-Startziel nur vertrauenswuerdige `http(s)`-URLs und blockiert nicht-webfähige Provider-Callbacks/Deep-Links in Navigation, Redirect, Fensterstart und zweiter Instanz.
- Ziel: kein `oauth_callback?...` und kein Anbieter-Deep-Link darf als Electron-Apppfad oder `Cannot find module`-Pfad starten.
- Lokale Alt-Smoke-Partitionen wurden nicht gelöscht, sondern nach `runtime/local_handoff/windows_electron_cleanup_20260602_azubi42/` verschoben; Manifest `moved_azubi42_electron_partitions.json`.
- Testvertrag: `npm run check` im Provider-Webapp-Browser.


## Native-Azubi-Provider-WebView-Smoke

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` prüft den eingeloggten Azubi42-Userfluss gegen den echten Server-GUI-Host.
- Der Smoke legt einen temporaeren User an, wechselt über den sichtbaren Communication-Button, klickt alle 12 Dienst-Buttons und verlangt je Dienst ein echtes Electron-`webview` mit Anbieter-URL, Hostsignal und Login-/Pairing-Signal.
- Die Diagnose `collectAzubiWebviewState` schreibt pro Dienstklick vorhandene/fehlende WebViews in den Fehlerreport; zerstoerte Electron-WebContents werden nicht mehr als harter Script-Crash behandelt, sondern als fehlendes/unguenstiges Provider-Audit.
- Serverlauf 2.Jun.2026: `provider_webview_smoke_azubi_20260602T114112Z.json`, Ergebnis `ok=true`, 12/12 WebViews für Matrix, Telegram, WhatsApp, Slack, Discord, LinkedIn, Facebook, Instagram, TikTok, Signal, Teams und Google Chat, `iframe=0`, Bild-/Canvas-Ersatz `0`, Provider-Coverage `true`, Login-Coverage `true`; Testuser wurde nach dem Lauf entfernt.


## Server-Cleanup 2026-05-30

- Ist inventarisiert: Root auf `forgejo.buschitut.eu` wurde nach dem Communication-Deploy von 91% auf 89% entlastet.
- Bereinigt wurden nur alte `/tmp/azubi42*`-Stagingverzeichnisse, ungenutzte Docker-Images, Apt-Cache und alte Journald-Anteile; produktive Jurabibliothek-/Paperless-/Azubi42-Daten blieben unangetastet.
- Serverlog: `/root/azubi42_cleanup_20260530_115439.log`; Repo-Report: `reports/server_cleanup_2026-05-30.md`.
- Nachtest: `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py` gegen `azubi42-jura` grün für 12 BrowserGateway-Dienste.


## Communication-Provider-Webconnect-Härtung

- Ist inventarisiert: `09_8_ProviderReturnBridge.js` führt für externe Provider-Weblogins einen expliziten Rueckkehrrecord mit `manualReturnUrl`, `returnMode=manual_gate_no_provider_callback`, Provider-ID, Quellenhinweis und URL-Parameter `azubi42_provider_return=1`.
- Der Bauteil behauptet keinen automatischen OAuth-Callback, sondern dokumentiert den echten manuellen Rueckweg aus Provider-Weblogin zurück in Azubi42.
- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js`[private Angabe entfernt]`v27.2.235` / `27255`.


## Communication-Provider-Webapp-Fallback-Sperre

- Ist inventarisiert: Der normale Webclient rendert ohne Native-WebView keinen Provider-Webapp-Knoten mehr und startet keinen externen Tab-/App-Handoff.
- Alte wartende Provider-Webapp-Knoten werden als Altlast erkannt und entfernt.
- Echte Anbieterinhalte im Azubi-Knoten sind nur im Native-/Electron-Host per Chromium-`webview`[private Angabe entfernt]`v27.2.234` / `27254`.


## Communication-Raumlisten-Gate

- Ist inventarisiert: `01_7_Communication.js` führt pro User-Session und Dienst ein Sichtbarkeitsgate für Raum-/Chatlisten.
- Vor `Raeume laden`, Sync oder echter Dienstanbindung bleiben Matrix-/Bridge-/Provider-Kataloge in Sidebar, Dashboard, Matrix-Chips und Provider-Knoten unsichtbar, auch wenn sie aus früheren System-/GPU-/Bridge-Laeufen lokal vorhanden sind.
- Provider-Hintergrundsync laeuft nur für Dienste, die im Userfluss freigegeben wurden.
- `audit_communication_server_playwright.py`[private Angabe entfernt]`v27.2.232` / `27252`.


## Communication-Dienstfluss-Korrektur

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und `10_SHARED_CORE/app_v27_multimedia/js/07_DATA_VAULT/07_6_CommunicationSpaces.js` entfernen alte `Communication Zentrale`-/azubimeebo-/Matrix-API-/Provider-API-/BrowserGateway-/Screenshot-Knoten beim Laden, Wiederherstellen und Heilen der Communication-Arbeitsfläche, solange es keine echten Raum-/Chatknoten sind.
- `ensureAccountMatrixTemplate` öffnet beim Login/Workspace-Wechsel keinen alten Matrix-Kartenknoten mehr automatisch; die Dienstnavigation bleibt in der linken Seitenleiste.
- Ein Dienstklick erzeugt einen Provider-Webapp-Vertragsknoten.
- Originalanbieter-Oberflächen sind nur im Native-Host über Chromium-`webview` zulaessig; in normalen Browsern erscheint nur der Native-Host-Hinweis.
- Inventarstatus: kein iframe, kein Bild-/Screenshottransport, kein BrowserGateway-Providerersatz, keine sichtbare Provider-UI-Nachbildung.
- MatrixBridge/API bleibt Admin-/Backendbauteil.
- Live-Inventarcheck: Usermanagement-Smoke bestaetigt `auto_matrix_api_nodes=0`, `central_dashboards=0`, Communication-Sidebar bereit; Server-Audit `communication_sidebar_provider_nodes_20260601_192830_b7fcfe.json` bestaetigt 12 Dienste, 0 Alt-Dashboard, 0 nicht belegter Zustand-Visuals; Native-Smoke `provider_webview_smoke_providers_20260601T192944Z.json`[private Angabe entfernt]`v27.2.231` / `27251`; Testvertrag: `audit_communication_space.mjs`.


## Communication-Canvas-Entfakeisierung

- Ist inventarisiert: `01_7_Communication.js` erzeugt kein altes `Communication Zentrale`-Dienstsammlungsdashboard mehr und entfernt vorhandene Alt-Knoten beim Öffnen.
- Die Communication-Leinwand ist Arbeitsfläche; Dienstwahl und Raum-/Chatlisten liegen in der linken Communication-Seitenleiste.
- Ein Dienstklick öffnet direkt einen Provider-/Webapp-Knoten, ein Raum-/Chatklick öffnet einen eigenen `data-communication-room-node` mit `communicationRoomId`, `communicationRoomName`, Nachrichtenbereich, Eingabe und Sync.
- `style.css` führt die reduzierte Canvas-Guide-Geometrie; `azubi42_server.py` nutzt für Communication Login/Freigabe/Anbindung statt `Koppeln`[private Angabe entfernt]`v27.2.228` / `27248`; Testvertrag: `audit_communication_space.mjs`, `audit_communication_server_playwright.py`.


## Communication-Native-Providerfluss

- Ist inventarisiert: `40_INTEGRATIONS/provider-webapp-browser/` führt den Electron-/Chromium-`webview`-Pfad für originale Anbieter-Webapps.
- Der Provider-Smoke deckt alle 12 Communication-Dienste ab, prüft Host-/Login-Signale, verbietet iframe-/Bild-/Canvas-/BrowserGateway-Ersatz und klickt sichtbare Recovery-/Passwortpfade, soweit sie im Anbieter-Login vorhanden sind.
- QR-/Device-Pairing-Dienste bleiben als echte Anbieter-Pairingfaelle geführt.
- `01_7_Communication.js` erkennt und entfernt alte Dienstsammlungs-Knoten in gespeicherten Arbeitsflächen über Dataset und Inhaltssignatur, damit Dienst-/Raumknoten im User-Fluss nicht überdeckt werden.
- Serverbestand: `[Serverpfad]` ist aus dem Repo-Stand aktualisiert; dort gilt `npm install`, weil Electron die Native-Host-Laufzeit ist.
- Server-GUI-Smoke vom 2026-06-01 bestaetigt 12 Provider, 12 echte WebViews, 0 iframe, 0 Bild-/Canvas-Ersatz, 12 Login-Audits ohne Failure und 5 geklickte Anbieter-Recoverypfade; Report `[Serverpfad]`[private Angabe entfernt]`v27.2.229` / `27249`; Testvertrag: `test_provider_webapp_browser_contract.py`, `audit_communication_space.mjs`, `audit_new_user_busch_guide.mjs`, Native-Smoke `npm run smoke:providers`.


## Communication-Userfluss

- Ist inventarisiert: `70_TESTS_AND_SMOKE/integrations/smoke_usermanagement_lifecycle_live.mjs` prüft Zugangsanfrage, Freigabe, Login, Profil-Links, Guide-Settings, Bibliothek-Falllauf und Communication-Matrix-Knoten wieder über den sichtbaren Nutzerpfad.
- Der Wechsel in Communication laeuft im Smoke über den echten View-Button `#btn-communication`; `01_7_Communication.js`[private Angabe entfernt]`v27.2.230` / `27250`.


## Deploy-Smoke-Pfad

- Ist inventarisiert: `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/deploy/deploy_live_winscp.ps1` prüft den mutierenden Usermanagement-Smoke jetzt über Kandidatenpfade im Installer-Baum und im Repo-root.
- Der Bauteil verhindert, dass ein erfolgreicher Live-Deploy wegen einer fehlenden Testkopie im Installer-Unterordner nachträglich als fehlgeschlagen endet.


## Communication-Provider-Scope

- Ist inventarisiert: `auth_providers.<dienst>` führt `credential_scope`, `user_binding_required`, `user_session_required`, `user_tresor_required`, `system_service_allowed` und `account_binding_hint`.
- Normale Provider stehen auf Per-User-Kopplung; direkte Telegram-Bot-, WhatsApp-Cloud- und Slack-Bot-Pfade sind nur noch Systemdienstpfade und werden ohne explizite Systemfreigabe nicht als `configured/Sende-Freigabe` gezaehlt.
- Betroffene Bauteile: `toolbox/communication/provider_contracts_bootstrap.py`, `provider_contracts_apply.py`, `provider_contracts_fixture.py`, `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`[private Angabe entfernt]`v27.2.226` / `27246`.


## Communication-Provider-Fixture

- Ist inventarisiert: `toolbox/communication/provider_contracts_fixture.py`[private Angabe entfernt]`test_communication_provider_contracts_fixture.py`[private Angabe entfernt]`v27.2.225` / `27245`.


## Communication-Provider-Bootstrap

- Ist inventarisiert: `toolbox/communication/provider_contracts_bootstrap.py` und der Ubuntu-Installer-Spiegel ziehen fehlende Provider-Vertragsfelder aus `communication-providers.template.json` in `[private Angabe entfernt]`, ohne bestehende Werte zu überschreiben.
- Das Werkzeug legt Secret-Verzeichnis-Elternpfade bei Bedarf an, schreibt Backups vor Mutationen und gibt nur secretfreie Readiness-Zähler aus.
- `deploy_live_winscp.ps1` kopiert Werkzeug und Vorlage in `toolbox/communication/`[private Angabe entfernt]`v27.2.223` / `27243`; Testvertrag: `test_communication_provider_contracts_bootstrap.py`.


## Communication-Provider-Apply

- Ist inventarisiert: `toolbox/communication/provider_contracts_apply.py` und der Ubuntu-Installer-Spiegel übernehmen private Providerwerte aus einer nicht öffentlichen JSON-Datei in `[private Angabe entfernt]`.
- Zulassung erfolgt feldweise je Dienst, Inline-Secrets sind ohne ausdruecklichen Schalter gesperrt, Backups werden vor Mutationen geschrieben und Ausgaben bleiben secretfrei.
- Die kanonische Vorlage ist im Installer-Spiegel unter `30_INSTALLERS/ubuntu24/azubi42-server/60_RUNTIME_TEMPLATES/auth/communication-providers.template.json` abgelegt, damit der Deploy den Live-Sibling unter `toolbox/communication/` erzeugt.
- Seit 2026-06-14 schreibt und prüft der Pfad dienstspezifische Raumfelder (`telegram_rooms`, `whatsapp_rooms`, `slack_rooms`, `<dienst>_rooms`) und `provider_send_enabled`[private Angabe entfernt]`v27.2.224` / `27244`; Testvertrag: `test_communication_provider_contracts_apply.py`.


## Communication-Provider-Privatewerte sind inventarisiert

- `/etc/azubi42/private/communication-provider-values.private.json`[private Angabe entfernt]`provider_send_enabled` bewertet; Matrix-Räume öffnen keinen externen Providertransport.


## Communication-Provider-Gleichzug

- Ist inventarisiert: `azubi42_server.py`[private Angabe entfernt]`provider_send_enabled` verbindlich; `bridge_*` ist nur Legacy-Alias.
- `01_7_Communication.js` führt alle Dienste in `COMMUNICATION_PROVIDER_SERVICES` mit denselben Status-/Rooms-/Sync-/Sendefunktionen; `communication-providers.template.json`[private Angabe entfernt]`v27.2.222` / `27242`.


## Therapiekatzen

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_11_Therapiekatzen.js` ist der neue lokale Canvas-Synthesizer für den Sidebar-Punkt `Therapiekatzen`.
- Der Bauteil besitzt keine eigene Server-App und keine Fremdassets; er nutzt `requestAnimationFrame`, High-DPI-Canvas, lokale Presets, Theme-/Mood-Vertraege, DNA-Regler, Tempo, Glow/Streifen/Winken, PNG-Download und Clipboard-/JSON-Preset-Aktionen.
- `01_1_Layout.js` führt den vorletzten Sidebar-Abschnitt, `view-therapiekatzen`, `therapy-cat-canvas` und alle Steuerfelder; `01_2_Navigation.js` führt View-ID und Startaliasse; `01_4_InterfaceChrome.js` führt Sidebar-Accordion und Tooltips; `main.js` bootet den Bauteil.
- `css/style.css`, `mobile-smart.css`, `theme-legal-paper.css` und `theme-white-runtz.css` enthalten die responsive Shell, Stage, Controls und Light-Theme-Anbindung.
- Testvertrag: `70_TESTS_AND_SMOKE/ui/audit_therapiekatzen.mjs`[private Angabe entfernt]`v27.2.210` / `27230`.


## Server-Umzug-Readiness 2026-05-31

- Ist inventarisiert: `runtime/readiness/azubi42_readiness_20260531_codex_server_move_after_scopeguard.json/.md` dokumentiert den aktuellen Live-Check für den Codex-Serverarbeitsplatz mit 41 OK, 0 Warnungen und 0 Fehlern.
- Inventarstatus: `azubi42-jura.service`, FixIt-Codex-Path/Timer, Paperless-Atom-Index und Jurabibliothek-Sync aktiv; Codex CLI, Ollama, Playwright-Chromium, Matrix/Element, Forgejo und Paperless erreichbar; Runtime-Inboxen vorhanden, FixIt-Inbox leer.
- `toolbox/codex/azubi42_codex_scope_guard.py` und die Spiegel unter `40_INTEGRATIONS/codex/` sowie `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/codex/` führen den haerteren Strong-Scope-Abgleich gegen fachfremde Auftraege.
- Testvertrag: `test_server_fixit_scope_gate.py`, `test_content_safety_guard.py`, `audit_new_user_busch_guide.mjs`, `audit_error_fixit_list.mjs`.


## Communication-Nutzeransicht

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` und der Ubuntu-Installer-Spiegel zeigen normale Nutzertexte für Dienst, Raum/Chat, Gespraech, Ziel, Nachricht, Verbindung und Freigabe.
- Die Meebo-Zentrale ist Roster/Verteiler; Raum-/Chatklicks aus Dashboard oder linker Dienstliste erzeugen eigene `data-communication-room-node`-Knoten mit Nachrichtenbereich, Eingabe und Sync.
- Sendepfade kommen seit 2026-06-14 nur aus dem jeweiligen Provider-/OAuth-/Sessionvertrag; Matrix-Räume sind nur für den Dienst Matrix.
- Admin-/Provider-/Diagnosedetails bleiben für Schutzregeln in `details[data-communication-admin-details]`, sind aber nicht Hauptinhalt der Communication-Knoten.
- Live-Server-Smoke gegen `azubi42-jura`[private Angabe entfernt]`v27.2.215` / `27235`; Testvertrag: `node --check` Shared-Core und Installer-Spiegel.


## Communication-Provider-Rooms/Sync

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` und `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` liefern Telegram/WhatsApp/Slack nicht mehr nur als Status-/Sendekarten, sondern als serverseitige Provider-Vertraege für `status`, `rooms`, `sync` und `send`.
- Seit 2026-06-14 kommen Bedien-/Zielräume aus `telegram_rooms`, `whatsapp_rooms`, `slack_rooms` beziehungsweise `<dienst>_rooms`[private Angabe entfernt]`v27.2.216` / `27236`; Testvertrag: `py_compile`, `node --check`, Provider-Smoke leer/default/Provider-only.


## Communication-Matrix-Login-Cache

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` und der Ubuntu-Installer-Spiegel führen `MATRIX_NOTIFIER_SESSION_CACHE`[private Angabe entfernt]`v27.2.217` / `27237`; Testvertrag: `test_communication_connectors_contract.py`.


## Communication-Account-/Bridge-Trennung

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` führt `communicationAccountProfile`, Account-/Bridge-Labeling und Fokus-Z-Index für Raum-/Chatknoten.
- Profil-/Userkontakt und sendender Matrix-Bridge-Account werden getrennt angezeigt: `@b:42.chat` bleibt Userkontext, der GPU-/Azubi-Matrix-Account bleibt als System-Bridge erhalten.
- `11_AUTH_MANAGER/11_3_MatrixBridge.js` gibt `userId`[private Angabe entfernt]`v27.2.218` / `27238`; Testvertrag: `node --check`, `audit_communication_space.mjs`, `test_communication_connectors_contract.py`.


## Communication-Beeper-Quellenvertrag

- Ist inventarisiert: `COMMUNICATION_BEEPER_BRIDGE_SOURCE`[private Angabe entfernt]`bridge-manager`[private Angabe entfernt]`v27.2.221` / `27241`; Testvertrag: `test_communication_connectors_contract.py`.


## Communication-Provider-Secret-/Backend-Vertraege sind inventarisiert

- `auth_providers.telegram`, `auth_providers.whatsapp` und `auth_providers.slack` akzeptieren serverseitige `*_file`[private Angabe entfernt]`provider_send_enabled=true` plus passenden Dienst-/Zielvertrag freigegeben; `bridge_send_enabled`[private Angabe entfernt]`credentials_exposed=false`; neue Vorlage `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json`[private Angabe entfernt]`v27.2.220` / `27240`.


## Communication-Dienstfunktionen sind inventarisiert

- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` führt `COMMUNICATION_SERVICE_FUNCTIONS`, `renderServiceFunctionButtons`, Provider-Raumchips, Dashboard-Raumwahl und synchronisierte Conversation-Vorschau.
- Matrix nutzt den Matrix-API-Pfad.
- Telegram, WhatsApp, Slack, Signal, Discord, LinkedIn, Facebook, Instagram, TikTok, Teams und Google Chat nutzen je Dienst eigene Status-/Rooms-/Sync-/Send-Vertraege; dienstspezifische Räume sind Bedien-/Zielräume und ersetzen keinen Provider-Transport.
- Ohne echten Provider-/OAuth-/Sessionvertrag werden keine Nachrichten oder Sendungen behauptet.
- `css/style.css`[private Angabe entfernt]`v27.2.222` / `27242`; Testvertrag: `node --check`, `audit_communication_space.mjs`, `test_communication_connectors_contract.py`.


## Ansichten-/Fruchtblock

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` und der Ubuntu-Installer-Spiegel führen klickbare Frucht-Chips mit Nutzlast, Detailmodal, Paperless-Aktion und neuem `+N`[private Angabe entfernt]`v27.2.212` / `27232`; Testvertrag: `audit_aktenzeichen_timeline.mjs`.


## Screenshot-/Exporter-Suite

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` und die Ubuntu-Installer-Spiegel führen Topbar-`Shot`[private Angabe entfernt]`POST /api/export/workspace`: Der Endpunkt baut aus Workspace-Knoten, Verbindungen und Text serverseitig `package`-ZIP, `htmlzip`, `docx`, `pdf` und `svg`; Paketexporte enthalten `manifest.json`, `HASHES.sha256`, `.state.json`, HTML, SVG, PDF und DOCX, Einzelantworten tragen SHA256-/Manifest-Header.
- Seit `v27.2.215` führt der Frontend-Exporter zusätzlich einen Workspace-JSON-Zwischenablagepfad.
- Live-Exporter-Smoke auf `[Serverpfad]`[private Angabe entfernt]`v27.2.215` / `27235`; Testvertrag: `audit_screen_capture_exporter.mjs`, `audit_screen_capture_exporter_browser.mjs`, `audit_workspace_export_suite.py`.


## Communication-Connectorvertrag

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_2_Navigation.js` und der Ubuntu-Installer-Spiegel behandeln `communication` als Canvas-Space.
- `01_7_Communication.js` erzeugt für linke Dienstklicks, `Login` und `Web` echte Connector-Statusflächen statt BrowserGateway-Screenshot-Knoten.
- Matrix ist über `11_AUTH_MANAGER/11_3_MatrixBridge.js` als Matrix-API-DOM mit Raumwahl, Sync und Senden angebunden; Element-/Provider-Weboberflächen werden nicht nachgebaut.
- Serverseitiger Matrix-Connector laeuft über `/api/communication/matrix/*`[private Angabe entfernt]`/api/communication/connectors/status`.
- Telegram/WhatsApp/Slack/OAuth-/QR-Dienste bleiben bis zum echten API-/Bridge-Connector Ziel-/Statusanker (inkl.
- Connector-Details).
- `auth_providers.telegram`, `auth_providers.whatsapp` und `auth_providers.slack` werden serverseitig normalisiert, aber die Status-API gibt daraus nur Readiness-Booleans, `server_only=true` und `credentials_exposed=false`[private Angabe entfernt]`40_INTEGRATIONS/provider-webapp-browser/`: eine Electron-Native-Shell mit `webviewTag`, Preload-Marker `azubi42NativeProviderWebapp` und getrenntem Provider-Webapp-Knoten.
- Nur dieser Native-Host rendert echte Chromium-`webview`-Providerseiten; normale Webbrowser zeigen `Native Host fehlt` und keinen Provider-nicht belegter Zustand.
- Externe App-/Tab-Handoffs, Fremd-iframes, Webstart-Karten, BrowserGateway-Bilder und falsche Browser-Wortwahl sind im Communication-Standardflow gesperrt.
- Persistierte alte BrowserGateway-/Screenshot-Knoten werden beim Laden zu Connector-Knoten migriert.
- `css/style.css` sichert markierbaren Text, stabile Sidebar-Badges, scrollbare Connector-Flächen und WebView-Geometrie.
- `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` prüft Server-GUI/Nativhost mit vier echten WebViews, null iframes und null Bild-/Canvas-/BrowserGateway-Ersatz; `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs`, `audit_communication_server_playwright.py`, `test_communication_connectors_contract.py` und `test_provider_webapp_browser_contract.py` prüfen denselben Vertrag.


## Communication-Bridge-/Meebo-Leinwand

- Ist inventarisiert: `/api/communication/connectors/status` liefert neben den Providervertraegen jetzt `bridge_architecture`/`bridgeArchitecture` mit Matrix als Bus, Provider-Bridges, Meebo-artigem Roster/Floating-Node-UI und nicht belegter Zustand-Sperren.
- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js` führt `communication-architecture-panel`, `01_7_Communication.js` rendert den Bridge-/Rostervertrag und `css/style.css` hält Panel, Chips und Umbrueche stabil.
- Inventarstatus: Matrix ist `matrix_root_bus`, Telegram/WhatsApp/Slack sind `provider_bridge_candidate`[private Angabe entfernt]`v27.2.197` / `27217`.


## Communication-Provider-Sendepfade sind inventarisiert

- `/api/communication/{telegram|whatsapp|slack}/{status|send}` laeuft über denselben Login-gated Communication-Handler.
- `auth_providers.telegram`, `auth_providers.whatsapp` und `auth_providers.slack`[private Angabe entfernt]`chat.postMessage`[private Angabe entfernt]`v27.2.198` / `27218`.

## Zugangsbau-OSCI/EGVP-Ein-Contract-Schiene

- Ist inventarisiert: `toolbox/legal/zugangsbau_readiness.py` reicht den privaten `operators.mjp_ebo_egvp_osci`-Block an `toolbox/legal/xjustiz_baukasten.py transport-status` durch.
- Der Transportstatus liest zusätzlich die Serverpfade `[private Angabe entfernt]`, `[private Angabe entfernt]` und `[private Angabe entfernt]`.
- Auf dem Server sind `/etc/azubi42/private`, `[private Angabe entfernt]`, `/var/lib/azubi42/evidence/osci` und das nicht aktive Template `[private Angabe entfernt]` vorbereitet; ohne echte Betreiberwerte bleibt alles gesperrt bis zum Nachweis.


## Communication-Meebo-Gespraechsinhalte sind inventarisiert

- `01_7_Communication.js` nutzt die Meebo-Leinwand nicht mehr als Techkartenablage, sondern als getrennte Bedienfläche für Accounts/Connectoren, Räume/Chats und Gespraechsfenster.
- Historische Matrix-/Beeper-/mautrix-Filter für Telegram/WhatsApp/Slack sind seit 2026-06-14 aufgehoben.
- Gültig sind je Dienst eigene Raumfelder (`<dienst>_rooms`) und Provider-/OAuth-/Session-Sync; das Frontend darf Provider-Webapps nicht nachbauen und keine Matrix-Ereignisse als Telegram-/WhatsApp-/Slack-Ereignisse ausgeben.
- `css/style.css` führt `.communication-meebo-room-list`, `.communication-meebo-room`, `.communication-meebo-conversation`[private Angabe entfernt]`v27.2.208` / `27228`.


## Communication-Bridge-Raum-Vertraege sind als historisch aufgehoben inventarisiert

- `auth_providers.telegram`, `auth_providers.whatsapp` und `auth_providers.slack` nutzen nicht mehr Matrix-/Bridge-Räume als Provider-Transport.
- Seit 2026-06-14 gelten `telegram_rooms`, `whatsapp_rooms`, `slack_rooms`, `<dienst>_rooms` und `provider_send_enabled`[private Angabe entfernt]`v27.2.209` / `27229`.


## Server-first-Communication-Abnahme

- Ist inventarisiert: `00_META/ARBEITSALLTAG.md` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` verankern den echten Server-Testpfad für `azubi42-jura` unter `[Serverpfad]` mit systemd, SSH und app-eigenem Playwright-Chromium.
- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js` und der Ubuntu-Installer-Spiegel führen `communication-service-panel` und `communication-service-list-wrap`; `css/style.css` reduziert die verschachtelte Dienstlisten-Innenkante gezielt im linken Communication-Menü.
- Neuer Prüfbaustein: `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py`, der einen temporaeren Smoke-User nutzt, echte Server-Geometriedaten misst, Screenshot/Report unter `runtime/qa`[private Angabe entfernt]`v27.2.174` / `27194`.


## AZUBI42.de-Origin-Story

- Ist inventarisiert: `20_EDITIONS/azubi42-de/website/index.html` enthält `#azubi42-origin` als öffentlichen Startseitenbauteil mit Kurztext und aufklappbarem Deep-Thought-Langtext.
- `20_EDITIONS/azubi42-de/website/css/site.css` enthält die `origin-story-*`-Layoutregeln inklusive Mobile-Wrap; seit 2026-06-08 sitzt der Deep-Thought-Block im selben breiten Erklaercontainer statt in einer rechten Nachbarkachel.
- Der H2 nutzt einen festen Umbruch nach `Ein Azubi lernt zuerst.`, damit die Aussage als sauberer Zweizeiler statt als zufälliger Dreizeiler laeuft.
- `20_EDITIONS/azubi42-de/tools/build_site.mjs`, `site_manifest.json` und `website/data/public_actions.json`[private Angabe entfernt]`azubi42de-20260608-origin-wide`.
- Visual-Smoke-Bilder liegen unter `runtime/local_handoff/azubi42de_origin_visual_20260529/`.


## Communication-Workspace-Layout ist als historischer Zwischenstand inventarisiert und seit dem Worktree-Guard 2026-06-13 überholt

- `view-communication` und `communication-workspace-shell` sind keine aktiven Layoutanker mehr.
- Gültig ist die gemeinsame Workspace-Canvas `#view-org`; `#communication-sidebar-services` und `.communication-sidebar-service` bleiben die aktive einspaltige Dienstliste mit stabilen Grid-Bereichen für Icon, Namen und Badge.
- Inventarstatus: Rueckfall auf die alte Hauptfläche wird durch `audit_communication_space.mjs` und `audit_communication_browser_layout.mjs` als Fehler gemeldet; Details stehen in `00_META/COMMUNICATION_WORKTREE_AUDIT_2026-06-13.md`.


## FixIt-Codex Scope-Guard

- Ist inventarisiert: `toolbox/codex/azubi42_codex_scope_guard.py` liegt im Hauptbestand, in `40_INTEGRATIONS/codex/` und im Ubuntu-Installer-Spiegel unter `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/codex/`.
- Inventarstatus: FixIt-Autofix wird in `azubi42_server.py` vor Queue/Signal geprüft; blockierte Eintraege erhalten `autofix.status = blocked_scope_guard` und werden nicht an den Codex-Worker gegeben.
- Der Worker `toolbox/codex/azubi42_fixit_codex_worker.py` prüft vor `codex exec` erneut, schreibt `scope_guard.json` in den Jobordner und lässt nur freigegebene Azubi42-Arbeitsklassen laufen.
- Seit dem 2026-05-31-Delta trennt der Guard einfache erlaubte Woerter von starken Scope-Signalen; fachfremde Auftraege mit unrelated Hits bleiben blockiert, wenn nur generische API-/FixIt-Pfadwoerter vorkommen.
- Deploy/Installer kopieren Guard und Worker nach `/usr/local/bin`; die FixIt-UI behandelt `blocked_scope_guard` als terminalen Status.
- Fachazubi-Forks sind im Account-Runtime-Kontext als Review-Anfrage inventarisiert (`fork_request_allowed=true`, `fork_review_required=true`, `fork_allowed=false`), damit Usercode nicht ungeprüft in Forgejo-/Azubi42-Module übernommen wird.


## Content-Safety-/Anti-Missbrauchs-Guard

- Ist inventarisiert: `toolbox/codex/azubi42_content_safety_guard.py` liegt im Hauptbestand, in `40_INTEGRATIONS/codex/` und im Ubuntu-Installer-Spiegel unter `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/codex/`.
- Inventarstatus: Username-Preflight, Zugangsanfrage, Matrix-ID, Review-Passwort, Account-Profil/Guide-Settings und FixIt-Autofix laufen durch denselben lokalen Guard.
- Strenge Identitaets-/Passwortfelder blockieren eindeutige extremistische/rassistische Signale gesperrt bis zum Nachweis; normale Rechts-, Sicherheits-, Bildungs- und Anti-Kontext-Texte bleiben nutzbar.
- Passwörter werden nur vor dem Hash im Speicher geprüft; es werden weder Klartext noch Trefferliteral gespeichert.
- Blockierte FixIt-Auftraege erhalten `blocked_content_guard` und erreichen den Codex-Worker nicht; der Worker prüft zusätzlich vor `codex exec` und schreibt nur redigierte Guard-Entscheidungen.
- Deploy/Installer kopieren den Guard nach `/usr/local/bin`; die FixIt-UI behandelt `blocked_content_guard` als terminalen Status.
- Die sichtbare Meldung bleibt neutral und behauptet keine falsche Serverstörung.


## Linux-Umzug-Readiness-Gate

- Ist inventarisiert: `toolbox/deploy/linux_move_readiness.py` und der Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/deploy/linux_move_readiness.py` erzeugen JSON-/Markdown-Berichte für den Serverumzug.
- `toolbox/deploy/deploy_live_winscp.ps1` und der Installer-Spiegel packen das Tool sowie `toolbox/codex/` bei Live-Deploys in das App-Ziel.
- Inventarstatus: Live-Tool liegt auf `[Serverpfad]` und `[Serverpfad]`; `azubi42_fixit_codex_worker.py` liegt in `/usr/local/bin` und in beiden App-Zielen unter `toolbox/codex/`; systemd-Units liegen unter `/etc/systemd/system/azubi42-fixit-codex.*`; fehlende Runtime-Ordner `account_requests` und `fixit_inbox` wurden für Jura/Dev angelegt; `ripgrep` ist serverseitig installiert.
- Abschlussberichte: `runtime/local_handoff/server_readiness_2026-05-29/azubi42_linux_move_readiness_20260529_afterfix.json/.md` mit 34 OK, 0 Warnungen, 0 Fehler, `azubi42_linux_move_readiness_20260529_codexworker.json/.md` mit 38 OK, 3 Warnungen, 0 Fehler und `activate_20260529_110838/azubi42_linux_move_readiness_activated_20260529_110838.json/.md` mit 41 OK, 0 Warnungen, 0 Fehler.
- Server-`CODEX_HOME` ist vorhanden und nicht leer; `azubi42-fixit-codex.timer` und `.path` sind aktiv.


## Linux-Umzug-Lifecycle-Smoke

- Ist inventarisiert: `70_TESTS_AND_SMOKE/integrations/smoke_usermanagement_lifecycle_live.mjs` lief am 29.Mai.2026 gegen `https://forgejo.buschitut.eu/azubi42-jura` erst als Route-Probe und danach mutierend im echten Browser.
- Inventarstatus: temporärer Admin/User wurden angelegt, Zugangsanfrage wurde freigegeben, Login/Profil-Direktlinks/Guide/Bibliothek-Falllauf/Communication-Matrix-Knoten wurden geprüft und Cleanup entfernte Admin, User, Matrix-Freigabe, Matrix-Testnachricht und Request.
- Aktueller Bericht nach v27.2.171-Deploy: `runtime/local_handoff/server_readiness_2026-05-29/smoke_mutating_20260529_2324_v27_2_171/usermanagement_mutating_smoke_v27_2_171.json`.


## UI-/Communication-Resize-Welle v27.2.171

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/css/style.css` und der Ubuntu-Installer-Spiegel machen Startzentralen und leere Workspace-Hinweise manuell resizebar, scrollbar-stabil und textumbruchfest.
- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` rendert `Login`/`Web` direkt als BrowserGateway im vorhandenen Communication-Knoten; `09_6_BrowserGateway.js` stellt dafür `renderIntoNode` global bereit.
- `09_8_ProviderReturnBridge.js` bricht lange Provider-/OAuth-URLs in der Rueckkehrkarte sichtbar um, statt sie per Ellipsis abzuschneiden.
- Fallback bleibt die Webconnect-Infokarte, falls das Gateway-Modul nicht geladen werden kann.
- Der mutierende Usermanagement-Smoke nutzt den aktuellen Nachweisweg `matrix_team`[private Angabe entfernt]`v27.2.171` / `27191`; QA: `node --check`, `audit_view_start_screens.mjs`, `audit_new_user_busch_guide.mjs`, `audit_communication_space.mjs`, `audit_browser_gateway_node.mjs`, `smoke_usermanagement_lifecycle_live.mjs`.


## Startscreen-Stage-Overflow-Fix v27.2.172

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/css/style.css` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css` setzen für `.view-start-stage` `box-sizing: border-box`[private Angabe entfernt]`v27.2.172` / `27192`; QA: `audit_view_start_screens_browser.mjs`, `audit_sidebar_accordion_browser.mjs`, `audit_error_fixit_browser.mjs`, Workspace-/Toolbox-/Bibliothek-Clicktests, Live-Versioncheck und mutierender Usermanagement-Live-Smoke.


## Matrix-Bestandsalias-Sync

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` synchronisiert Matrix-Altfreigaben mit `desired_username` gegen lokale Passwortdatensätze, wenn der Bestandseintrag als volle Matrix-ID statt als kurzer Loginname gespeichert wurde.
- Inventarstatus: `sync_matrix_desired_username_aliases` erzeugt nur für bestehende freigegebene Matrix-User einen Alias, prüft die PBKDF2-Passwortform mit `[private Angabe entfernt]`, setzt `matrix_id`/`alias_of` und behält Hash/Salt unveraendert.
- Der Ubuntu-Installer-Spiegel ist synchron; der Vertrag wird in `70_TESTS_AND_SMOKE/legal/test_user_account_lifecycle_contract.py` geprüft.


## Dokumentgesamtblick-/Inline-Bildanalyse-Regel

- Ist inventarisiert: `toolbox/legal/config/hw3d_knowledge_layers.json` speichert `document_context_contract` und das Core-Prinzip `inline_visuals_before_ocr_rag`, `toolbox/legal/config/paperless_task_rules.json` speichert `unclear_page_context` und `inline_visuals_before_ocr_rag`; beide liegen im Ubuntu-Installer-Spiegel und in der Paperless-/Sprachprofil-Schiene.
- Inventarregel: Bei eingebetteten Bildern, Grafiken, Screenshots, Logos, Diagrammen oder gescannten Bildbloecken müssen zuerst Einzelbildextraktion, visuelle Beschreibung, Bild-OCR, Positions-/Rollen-/Text-/Beweis-/Risikoanker und danach erst der Volltext als Text-Bild-Verbund laufen.
- Fehlt dieser Schritt, gilt `vision_blocked`; RAG/WH3D/Paperless duerfen daraus keine Zuordnung, Frucht, Blickwinkelentscheidung, Schriftsatzwertung oder Sperre ableiten.


## Login-Frischepflicht

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/11_AUTH_MANAGER/11_4_ForgejoBridge.js` sendet nach Forgejo-Startup-/Versionscheck `azubi42:login-freshness-refresh`; `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` laedt Jurabibliothek/Bibliotek, Paperless-Ordner, Amt-Connect, Aktenzeichen-Zeitstrahl, Mahnwesen und Observatorium frisch und speichert den Status nur als lokalen Spickzettel.
- `toolbox/legal/config/hw3d_knowledge_layers.json`, `toolbox/legal/config/paperless_task_rules.json`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `00_META/ARBEITSALLTAG.md` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` halten fest: alte Laufordner, Browserstates, Exporte und ZIPs sind Archiv/Stale, bis frische Quellenzähler sie bestaetigen; neue Schriftsätze aktualisieren Kontrollspickzettel, Vorgangsliste komplett und betroffene Empfänger-/Vorgangsliste.


## Bulk-/RAM-Scope-Zähler

- Ist inventarisiert: `toolbox/legal/config/hw3d_knowledge_layers.json` enthält `bulk_scope_counter_before_ram_or_thinking`, `toolbox/legal/config/paperless_task_rules.json` enthält die Taskregel plus `require_document_scope_before_bulk_or_ram_run`, und `toolbox/legal/config/language_packs/legal_de_language_profile.json` enthält `bulk_scope_counter_rule`.
- Inventarregel: fachlicher Paperless-Dokument-Scope (Dokumentzahl, bekannte Seitenwerte, Seitensumme, laengste Datei, groesste Quelldateien, Dokumenttypen, ausgeschlossene technische Dateiarten, Zweck) wird vor Bulk-/RAM-/RAG-/WH3D-/Neulauf als Kontrollspickzettel geschrieben; technische Dateisystemwerte werden getrennt geführt und nicht als Dokument-/Schriftsatzzahl verwendet.


## Doc-563/GBA-Referenzanker-Korrektur

- Ist inventarisiert: `runtime/bverfg_egmr_20260526/apply_doc563_gba_reference_not_answer_20260527.py` erzeugt einen privacy-safe Audit- und Korrekturstand ausserhalb Forgejo.
- Inventarstatus: 64 Doc-563-Audit-Treffer, 3 P0-Hauptmatrix-Zeilen mit Doc 563 als bisherigem `bestes_gegenstueck` korrigiert, 23 Review-Kandidaten als Antwortkandidaten gesperrt.
- Die neuen Korrekturspalten setzen `doc563_antwortdeckung_zulaessig = nein` und `doc563_fristschliessung_zulaessig = nein`; Doc 563 bleibt nur Belegluecke/Nichtantwort-/Beiziehungsbedarf, keine Antwortdeckung.


## BVerwG-Top15-Gesamtstatus

- Ist inventarisiert: `runtime/bverfg_egmr_20260526/build_bverwg_p1_antwortkette_doc563_20260527.py` und `runtime/bverfg_egmr_20260526/build_bverwg_top15_gesamtstatus_doc563_p0p1_20260527.py` erzeugen privacy-safe Outputs ausserhalb Forgejo (Queue/Antwortkettenstatus/Kandidatenlisten/Summaries).
- Ergebnis: 8 P1-Zeilen, 0 harte Gegenstücke, 6 Review-Gegenstücke, 2 harte Nichtantworten; konsolidiert 15/15 Topzeilen, P0=7, P1=8, alle `nicht_versandfrei`.


## BVerwG-Originalreview-/Gliederungsblock

- Ist inventarisiert: `build_bverwg_top15_originalreview_queue_20260527.py` erzeugt `26_BVERWG_TOP15_ORIGINALREVIEW_QUEUE_2026-05-27` mit 23 Reviewzeilen und 23 Evidenztextkopien.
- `decide_bverwg_top15_originalreview_queue_20260527.py` erzeugt `27_BVERWG_TOP15_ORIGINALREVIEW_ENTSCHEID_2026-05-27`: 13 `nur_kettensignal_keine_antwortdeckung`, 10 `falscher_treffer`, 0 echte Antwortdeckung.
- `apply_bverwg_originalreview_decisions_to_top15_20260527.py` erzeugt `28_BVERWG_TOP15_BEREINIGTER_STATUS_2026-05-27`: 15/15 weiter `nicht_versandfrei`.
- `build_bverwg_nichtversandfreie_zulaessigkeitsgliederung_20260527.py` erzeugt `29_BVERWG_ZULAESSIGKEITSGLIEDERUNG_NICHTVERSANDFREI_2026-05-27` mit 6 Achsen als Arbeitsgliederung, nicht als Versandfassung.


## BVerfG/EGMR-Zulaessigkeitsregel-Mapping

- Ist inventarisiert: `runtime/bverfg_egmr_20260526/build_bverfg_egmr_zulaessigkeitsregel_mapping_20260527.py` erzeugt privacy-safe Outputs ausserhalb Forgejo (CSV/XLSX, Achsen-Summary, Quellenanker, Summary).
- Inventarstatus: 6 Achsen, 72 Gate-Zeilen, 36 BVerfG-Gates, 36 EGMR-Gates, alle `nicht_versandfrei`; 20 Gates sind `stop_offen`, 5 `offen`, 36 `teilweise`, 9 `teilweise_stark`, 2 `hart_ok_arbeitsanker`.
- Quellenanker: BVerfGG §§ 90, 92, 93, Art. 103 Abs.
- 1 GG, SGG § 178a, VwGO § 152a sowie offizielle EGMR-Konvention/Zulaessigkeitsanleitung.


## BVerfG/EGMR-DOCX-Korrekturfassung

- Ist inventarisiert: `runtime/bverfg_egmr_20260526/build_bverfg_egmr_docx_korrekturfassung_20260527.py` erzeugt privacy-safe Outputs ausserhalb Forgejo (DOCX, QA-JSON, Markdown-Zusammenfassung).
- Inventarstatus: 15 Topteilpunkte, 11 menschliche Punktkarten, 23 geprüfte spätere Antwort-/Entscheidungskandidaten, 6 Achsen, 263 Absaetze, 14 Tabellen, DIN A4 Hochkant, Pflichtbegriffe vorhanden, DOCX-ZIP intakt.
- Sichtbare Rohbegriffe/IDs im DOCX: `TAB-`, `REGMAP-`, `BVERFG_`, `EGMR_`, `BVEG-`, `ZUL-`, `gate_id`, `map_status`, `hardanchor`, `Reviewqueue`, `Sync-Lauf`, `Gate-Tabellen`, `Gegenstueck`, `Mapping`, `Antwortdeckung` jeweils 0.
- Visual-Render ist wegen fehlender/unverfügbarer Renderer-Abhängigkeit nicht gelaufen; die erzeugte Word-Datei bleibt strukturell geprüfte Inline-Korrekturfassung.


## Gerichtssichtbares Sprachlogik-Gate

- Ist inventarisiert: `toolbox/legal/court_visible_language_gate.py` scannt gerichtssichtbare DOCX/MD/TXT/CSV auf unlogische Stapel-/Superlativformeln, interne Prüf-/Generatorbegriffe und schwache Antragsformeln.
- Die Regeln sind in Sprachprofil, Paperless-Taskrules, HW3D-Wissensvertrag und Arbeitsweise-Regelwerk verankert.


## Neu-User-Busch-Guide

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js` führt im Usermenü die Tour `azubi-new-user-guide` mit Fortschritt, Guide-Settings und Absprung in Konto/Bibliothek.
- `10_SHARED_CORE/app_v27_multimedia/css/style.css` führt `azubi-guide-*`-Karten, Status, Steps und responsive Aktionen; der Ubuntu-Installer-Spiegel ist synchron.
- Welle 2: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` speichert `guide_settings` und `guide_progress` im Account-Profil und erzeugt daraus `user_runtime_context`; `01_8_JuraBibliothek.js` führt diesen Kontext in den Falllauf-Manifests mit, `01_7_Communication.js` zeigt ihn im Fachazubi-Kontext.
- Lokale Persistenz `azubi42.newUserGuide.progress.v1` und `azubi42.newUserGuide.settings.v1` bleibt Fallback, nicht führender Datenstand.
- Arbeitsliste: `00_META/NEU_USER_BUSCH_GUIDE_ARBEITSLISTE_2026-05-28.md`; Smoke: `70_TESTS_AND_SMOKE/ui/audit_new_user_busch_guide.mjs`[private Angabe entfernt]`version_manifest.json`, gesperrt bis zum Nachweis); Live-Deploy-Gate: `-RunUsermanagementSmoke`.


## Request-Review-POST-only und Matrix-Client sind inventarisiert

- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` erzeugt Review-URLs nur für geschützte Admin-Ansichten; Matrix-Benachrichtigungen enthalten keine sichtbaren Review-/Freigabe-URLs und keine HTML-Aktionslinks.
- Alte GET-Aktionslinks mit `intent` oder `execute` führen keine Freigabe aus, sondern werden auf die neutrale Review-Seite umgeleitet.
- `auth_providers.matrix.client_url` und `account_links.matrix_client` führen den eigenen Element-Web-Client; `01_7_Communication.js` nutzt diesen Link für Account-Matrix-Knoten.
- Testvertraege: `70_TESTS_AND_SMOKE/legal/test_matrix_access_request_approval_contract.py`, `70_TESTS_AND_SMOKE/legal/test_user_account_lifecycle_contract.py`, `70_TESTS_AND_SMOKE/integrations/smoke_usermanagement_lifecycle_live.mjs`.


## Usermanagement-Lifecycle

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` enthält `check_account_username_preflight`, `/api/auth/username-preflight`, Request-/Review-Preflight, Account-Direktlinks und einen expliziten `manual_or_external`-Provisionierungsstatus.
- Inventarstatus: lokale Azubi42-User, Matrix-Freigaben, Forgejo-`allowed_users`, Paperless-`users` und offene/freigegebene Access-Requests blockieren kollidierende Namen; Bestandsuser aus `users` und `auth_providers.matrix.approved_users` bekommen denselben Profil-/Accounting-Link-Nachzug wie neu freigegebene User.
- `01_4_InterfaceChrome.js`/`style.css` zeigen Providerlinks im Konto-Menü.
- `create_azubi42_user.sh`, Installer-Serverkopie und `server-auth-jura.example.json` sind synchron.
- Tests: `test_user_account_lifecycle_contract.py`, Matrix-Approval-, Confirmation- und Account-Profile-Smokes.
- Live-Smoke: `70_TESTS_AND_SMOKE/integrations/smoke_usermanagement_lifecycle_live.mjs`; Deploy-Einbindung: `toolbox/deploy/deploy_live_winscp.ps1 -RunUsermanagementSmoke`.


## Usermanagement-Smoke-Cleanup

- Ist inventarisiert: Der mutierende Live-Smoke redigiert seine Matrix-Testnachricht anhand der in der Requestakte gespeicherten `notify.event_id`, bevor die Requestakte gelöscht wird.
- Cleanup-Zähler führen `matrix_event:<event_id>` separat neben User-, Matrix- und Request-Entfernung.
- Alte Automatik-Smoke-Karten im ServerRoom wurden am 28.Mai.2026 anhand des eindeutigen Smoke-Hinweises redigiert.


## Matrix-/Communication-Account-Kontext

- Ist inventarisiert: Matrix-Zugangsanfragen führen `Matrix-Kontakt` und den `matrix.to`-Direktlink zum Antragsteller, bleiben aber POST-only für Freigabe/Ablehnung.
- Der Lifecycle-Smoke redigiert nur noch eindeutig als Smoke erkennbare Nachrichten; echte Useranfragen werden nicht automatisch gelöscht.
- `01_7_Communication.js` normalisiert Account-Matrix-Templates, persistiert `accountMatrixId`/`accountMatrixContact` und legt aus `/api/account/profile` einen Communication-Knoten mit `data-account-matrix-node` an.
- `01_4_InterfaceChrome.js` verteilt Profilupdates per `azubi42:account-profile-loaded`.
- `/api/legal/case/learn` ist inventarisiert als no-nicht belegter Zustand-fähiger Null-Lernlauf: fehlt der Paperless-Tresor, bleibt der Account-/Ordnerkontext erhalten, `warnings` dokumentiert den fehlenden Tag-Lauf und es werden 0 Dokumente behauptet.
- Testvertrag: `audit_new_user_busch_guide.mjs`, `test_matrix_access_request_approval_contract.py`, `smoke_usermanagement_lifecycle_live.mjs`.


## Paperless-Sidecar-Spiegel und leere Sidecar-Anker sind inventarisiert

- `toolbox/legal/paperless_atom_indexer.py` behandelt Sidecars ohne indizierbaren Volltext als `metadata_only`-/Sichtprüfungsfragmente.
- Der RAG-/WH3D-Index erhält damit einen zaehlbaren Dokumentanker mit Paperless-ID, Dateiname, Quelle/Archiv, Dateigrößen, Warnungen und Sichtprüfpflicht, ohne OCR-Text zu erfinden.
- Vollimporte können mit `--prune-missing` stale Paperless-Dokumente aus der Atomindex-DB entfernen; Prune mit `--limit` ist als Schutz gegen Teilfenster-Löschungen gesperrt.


## Aktenhaltung-FixIt-Jobkontrolle

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `01_8_JuraBibliothek.js` und `view_start_menus/bibliothek_menu.js` bilden die vorhandenen Serverendpunkte `/api/fixit/list`, `/api/fixit/auto/status` und `/api/fixit/auto/ping` als faltbares Aktenhaltungspanel, Startmenü-Aktionen und Login-/Bestand-Refresh ab.
- Offene FixIt-Eintraege, Auto-Signalweg und `jobs_failed`/`retry`/`running` der Jurabibliothek-Jobs sind damit sichtbar statt nur Hintergrundstatus, aber nicht mehr Teil des Bibliotheks-DOM.
- Installer-Spiegel und `70_TESTS_AND_SMOKE/ui/audit_aktenzeichen_timeline.mjs` prüfen denselben Vertrag.


## Aktenhaltung-FixIt-Jobentkopplung

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` schreibt fehlgeschlagene Jurabibliothek-Jobs über `/api/legal/jurabibliothek/retry-failed` kontrolliert von `failed` nach `pending` zurück, begrenzt pro Klick auf 500.
- `01_8_JuraBibliothek.js` zeigt dazu `Fehlerjobs neu einreihen`; Jobdiagnosen und das Aktenhaltung-FixIt-Panel tragen `data-fixit-ignore`, damit der allgemeine FixIt-Observer keine Statusduplikate erzeugt.
- `09_9_ErrorFixList.js` stellt `window.azubi42FixIt.clear()` für lokale Stale-Bereinigung bereit.


## Gerichtssprache-/Gegenüberstellungs-QA

- Ist inventarisiert: `toolbox/legal/config/hw3d_knowledge_layers.json`, `toolbox/legal/config/paperless_task_rules.json`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/private_schriftsatz_notice_blocks.json`, `toolbox/legal/realfall_amt_vi_ausblendung_court_package.py`, `toolbox/legal/sgf_row_enrichment.py`, `toolbox/legal/sgp_row_enrichment.py` und `toolbox/legal/sgf_harter_kern_prueftabelle.py` halten fest, dass `laienhaft` nicht als Eigenschaft der Kläger-/Nutzerseite erscheint, aber als belegter Vorwurf gegen Gericht/Behörde/Gegenseite bei handwerklich unzureichenden, zu kurzen, unbegründeten oder themenverfehlenden Antworten zulaessig bleibt.
- Schriftstuecksuche ab Datum oder zwischen mehreren Stellen verlangt als Abschluss eine Paperless-basierte Gegenüberstellungs-/Hin-Her-Mehrspur-QA mit getrennten Zaehlebenen für Quelle/Paperless, Schriftstuecke, Tabellenzeilen, Ansichtsevents, Lanes und Differenzen.


## Paperless-/Blickwinkel-Echtquellenpflicht

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js` enthält für `paperless-upload-actors` nur noch eine dynamisch befuellte Datalist.
- `01_8_JuraBibliothek.js` führt `PAPERLESS_ACTOR_RULES`, `getPaperlessActorCandidates` und die offene Meldung `Keine echten Vorgangsvorschläge geladen`, statt eine statische Demo-Vorschlagsliste zu behaupten.
- Datenquellen sind Upload-Kontext, Upload-Protokoll, Paperless-Ordnerbaum, AMT-Connector und letzter AZ-/Vorgangslauf.
- `01_9_LegalPerspectives.js` führt neutral-graue Basislinien, `PERSPECTIVE_SIGNAL_RULES`, `detectPerspectiveSignals` und `legalPerspectiveSignalId`, damit farbige Blickwinkelreaktionen nur aus erkannten Textsignalen entstehen und mehrere Signallinien unterscheidbar bleiben.
- `toolbox/legal/config/hw3d_knowledge_layers.json`, `toolbox/legal/config/paperless_task_rules.json` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` führen denselben Regelanker `ui_runtime_claims_must_be_data_backed`.
- Installer-Spiegel und `70_TESTS_AND_SMOKE/ui/audit_aktenzeichen_timeline.mjs` sind synchron.


## Communication-Connector-Transparenz

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` unterscheidet für alle Chat-/Messenger-Kacheln `loginMode` und `connectorStatus`.
- Matrix ist als `Matrix API`/`Echter Connector aktiv` geführt und verweist auf die MatrixBridge; alle anderen Dienste zeigen offen Webstart-, QR-/Handy- oder Desktop-Kopplung ohne behaupteten API-Login.
- Persistente Alt-Templates werden beim Laden normalisiert und bekommen denselben Status nachgezogen.
- Service-Kacheln, Template-Karten und erzeugte Webconnect-Knoten zeigen Login-Art, Status und Erwartung beim Login direkt im UI.
- Shared-Core und Ubuntu-Installer-Spiegel sind per `node --check` geprüft; `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs` sperrt den Rueckfall zu `Thin Head`-/pauschal-`Neu`-Labels.


## Terminologie-/Rollenquellen-Gate

- Ist inventarisiert: `toolbox/legal/config/legal_rule_source_contract.json` führt amtlich bzw. projektvertraglich belegte Begriffe für Akteure, Institutionen, Dokumentrollen, Vorgangs-/Rechtsfragen, Statusfelder, WH3D-Früchte und Blickwinkelwaffen-Signale.
- `hw3d_knowledge_layers.json`, `paperless_task_rules.json`, `language_packs/legal_de_language_profile.json`, `00_META/ARBEITSALLTAG.md`, `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` und `01_9_LegalPerspectives.js` nutzen denselben Gate: sichtbare Begriffe werden gegen Gesetz, Projektwoerterbuch, Bestandscode oder freigegebenen Vertrag geprüft.
- PKH/Beiordnung ist inventarisiert als Vorgangs-/Rechtsfrage, nicht als Akteur; Rechtsanwalt/Rechtsbeistand bleibt Person-/Akteursrolle.


## Blickwinkelwaffe-Hard-Anchor-Hinweis

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_9_LegalPerspectives.js` und `10_SHARED_CORE/app_v27_multimedia/docs/FUNKTIONSINVENTAR_AZUBI42.md` zeigen den Hard-Anchor-Vertrag in der Perspektiven-Waffe.
- Antwortdeckungsfarben, Ausblendungsfrüchte und Blickwinkelwaffen-Treffer verlangen harte Einzelanker; Schablonen-, Weiterleitungs- und Standwoerter erzeugen keine Erledigung.


## AMT-VI Meistertext-Delta

- Ist inventarisiert: `toolbox/legal/amt_vi_open_basis_meistertext_delta.py` liest die 33er offene Basis, inventarisiert geschützte Front-DOCX/XLSX, schreibt Meistertext-Snapshots, Empfänger-Deltas und eine Arbeitskopie.
- Gültiger lokaler Ausgabeordner: `[lokaler Pfad]`; Ergebnis: 33 offene Basiszeilen, 7 DOCX, 5 XLSX, 12 Arbeitskopien, Hashvergleich des 33er Leitbestands 0 Aenderungen.


## AMT-VI Meistertext-Delta-Inline

- Ist inventarisiert: `toolbox/legal/amt_vi_apply_meistertext_delta_inline.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/amt_vi_apply_meistertext_delta_inline.py` und QA-Reports unter `[lokaler Pfad]`.
- Gültige Arbeitskopien: SGP `SGP_Anlage_Einzelpunkte_621_Zeilen.xlsx` mit 621 Datenzeilen/15 Spalten, SGF `SGF_Anlage_Einzelpunkte_141_Zeilen.xlsx` mit 141/15, LSG `LSG_Anlage_Einzelpunkte_244_Zeilen.xlsx` mit 244/15, BSG `BSG_Anlage_Einzelpunkte_305_Zeilen.xlsx` mit 305/15 und BVerwG `BVerwG_Anlage_Einzelpunkte_1511_Zeilen.xlsx` mit 1511/17.
- AOK/Krankenkasse ist Gegenstellen-/Folgespur; `TAB-00696` ist in SGP, SGF und LSG nachgezogen, aber kein eigener AOK-Empfängerordner.


## AMT-VI Gerichtspaket-Sprachglättung

- Ist inventarisiert: Die gültige 34er Arbeitskopie unter `[lokaler Pfad]` wurde am 26.Mai.2026 nur sprachlich und inline nachbearbeitet.
- XLSX-Zähler bleiben unveraendert: SGP 621/15, SGF 141/15, LSG 244/15, BSG 305/15, BVerwG 1511/17.
- Gerichtssichtbare Restbegriffe aus interner QA-/Antwortdeckungslogik sind entfernt oder neutralisiert; die letzte normale Einzel-Empfänger-Spalte heisst nun `Gerichtlicher Entscheidungs-/Bearbeitungsbedarf`.
- DOCX-Zusatzanker: SGP `22-jährige Formfehler-, Überlängen- und Existenzgründerachse`, BSG `Anknüpfung an die bisherigen BSG-Antworten und Aufgabenabgrenzung`, LSG `Leistungsstand, Ausblendungen und LSG-Rolle`.
- Finaler sichtbarer Tabellen-Nachputz entfernte `foo`-/`FOOTER`-/Mojibake-/`gebeten`-Reste aus 39 Zellen bei unveraenderten Zählern.
- Backup und QA liegen unter `20_QA_AUDIT\pre_tabellen_sgp_bsg_lsg_nachzug_*`, `pre_final_visible_cell_cleanup_*`, `tabellen_sgp_bsg_lsg_nachzug_qa_2026-05-26.json`, `tabellen_sgp_bsg_lsg_glattung_qa_2026-05-26.json`, `docx_restjargon_glattung_qa_2026-05-26.json`, `final_structural_qa_2026-05-26.json`, `visible_forbidden_term_scan_2026-05-26.json`, `final_visible_cell_cleanup_qa_2026-05-26.json` und `final_cross_read_audit_after_cleanup_2026-05-26.json`.


## AMT-VI DOCX-TAB-ID-Bereinigung

- Ist inventarisiert: In der gültigen 34er Meistertext-Arbeitskopie wurden sichtbare interne Tabellen-/Auditkennungen `TAB-...`/`TAB.` aus SGP-, SGF-, LSG-, BSG- und BVerwG-DOCX entfernt.
- Die Nachweise verweisen jetzt auf die gerichtssichtbare XLSX-Spalte `Nr`: SGP 607..621, SGF 139..141, LSG 237..244, BSG 300..305, BVerwG 1509..1511.
- Patientenstelle und AZUBI42-Fortschritt waren bereits ohne TAB-Treffer.
- Inventarstatus: 7 DOCX strukturell lesbar, Postscan 0 TAB-Treffer, XLSX-Zähler und Spalten unveraendert.
- Backup und Report: `20_QA_AUDIT\backup_pre_docx_tab_id_cleanup_2026-05-26` und `20_QA_AUDIT\docx_tab_id_cleanup_2026-05-26.json`.


## AMT-VI DOCX-Gerichtsregister-Bereinigung

- Ist inventarisiert: In SGP, SGF, LSG, BSG und BVerwG wurden die sichtbaren Delta-/Arbeitslistenbloecke `Ergänzende offene Einzelpunkte` entfernt.
- Der Schriftsatztext wiederholt die Detailpunkte nicht mehr seitenweise, sondern verweist knapp auf die beigefügte Tabellenanlage und hält den Antrag auf aktenkundige Zuordnung und Behandlung im Rahmen der bereits gestellten Einzelpunktanträge aufrecht.
- Inventarstatus: 5 DOCX geaendert, 7 DOCX geprüft, 0 Treffer auf `Ergänzende offene Einzelpunkte`, `Anlagenpunkt Nr.`, `Weitere offene Anlagenpunkte`, `Aus dem erneuten Aktenabgleich`, `bisher ist keine konkrete Einzelbehandlung` und `TAB`; XLSX-Zähler und Spalten unveraendert.
- Backup und Report: `20_QA_AUDIT\backup_pre_docx_court_register_cleanup_2026-05-26` und `20_QA_AUDIT\docx_court_register_cleanup_2026-05-26.json`.


## AMT-VI Gericht-DOCX Aktenzeichen-/Vorgangsbetreff

- Ist inventarisiert: In der 34er Meistertext-Arbeitskopie wurden die bestehenden Betreffzeilen von SGP, SGF, LSG, BSG und BVerwG inline auf sortierfähige Zuordnung gebracht.
- Jede Gericht-DOCX enthält jetzt `Az. u.a.` sowie `und andere - Vorgang 2020-2026`; LSG hat den zuvor fehlenden Aktenzeichenanker, BVerwG führt keinen erfundenen Wert, sondern den Tabellenanlagenbezug.
- Inventarstatus: 5 DOCX geaendert, 5 DOCX geprüft, genau eine Betreffzeile je Dokument, XLSX-Zähler und Spalten unveraendert.
- Backup und Report: `20_QA_AUDIT\backup_pre_docx_az_vorgang_header_2026-05-26` und `20_QA_AUDIT\docx_az_vorgang_header_2026-05-26.json`.


## Gerichtsausgabe-/Serverregel-Gate

- Ist inventarisiert: Die Regeln für sichtbare Online-Text- und Gerichtsausgaben liegen in `toolbox/legal/config/paperless_task_rules.json`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/hw3d_knowledge_layers.json` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md`.
- Inventarstatus: `Az. u.a. ... und andere - Vorgang 2020-2026` als Pflichtanker für Gericht-DOCX, kein erfundenes Aktenzeichen ohne Quelle, keine interne Arbeits-/Debugsprache in sichtbaren DOCX/XLSX, Mahnwesen ohne `bitte ich`-/`Bitte teilen Sie`-/`Bitte pruefen Sie`-Formeln und Windows-/Office-/LibreOffice-Systemschutz als read-only/rollbackable Gate.
- Gehaertete Bauteile: `realfall_amt_vi_ausblendung_court_package.py`, `amt_court_template_builder.py`, `amt_vi_apply_meistertext_delta_inline.py`, `mahnwesen.py`, `config/mahnwesen_templates.json`; Ubuntu-Installer-Spiegel synchron.
- QA: `70_TESTS_AND_SMOKE/legal/test_court_output_release_rules.py`, JSON-Parse, py_compile, Auditreport `reports/court_output_release_rules_audit_2026-05-26.md`.


## Paperless-Detailpunkt-Antwortdeckung

- Ist inventarisiert: `toolbox/legal/paperless_detailpunkt_erledigung_audit.py` liest die explizite 1508-Zeilen-Punktliste und den aktuellen Paperless-Sidecar-Bestand serverseitig, klassifiziert Dokumente nach Lane, Richtung, Dokumentrolle und Vorgangsfrage und vergleicht Detailpunkte nur mit späteren `direction=eingang_gericht_behoerde`-Dokumenten.
- Arbeitsartefakte, Belege/Formulare, Nichtvorgänge und reine Stellenbezüge werden nicht als Antwortdeckungsdokumente verwendet.
- Der Hard-Anchor-Gate ist inventarisiert: Antwortdeckung darf nicht aus Schablonenwoertern, generierten Antragssaetzen, Beiziehungs-/Weiterleitungsformeln, Folge-/Beschwer-Spalten, Gegenprobe oder Stand-/Arbeitsanweisungen entstehen; Matchfelder sind auf Ursprung/Schriftstueck, Fundstelle, Zeitraum, Verfahrensachse, konkreten offenen Punkt und Rechtsanker beschraenkt.
- Jeder mögliche Treffer braucht mindestens einen harten Einzelanker wie Aktenzeichen, Datum, Nummer, Seiten-/Absatz-/Zeilenbezug, sehr seltenen Eigenbegriff, konkrete Normkette oder Original-/Gegenstücksbezug.
- Voll-Lauf 25.Mai.2026: 1508/1508 Punkte, 156 echte Eingangsantwortkandidaten, 119918 Vergleiche, 1053 offene/unscharfe Punkte, 455 mögliche Antwortdeckungen zur Review, 25 unscharfe Punkte als externe Modellqueue, keine Tabellenmutation.
- Batch-Kontrolllaeufe 51..75 und 76..100 sind inventarisiert: je 25 Punkte, Tabellen-Nr. exakt fortlaufend, je 25 eindeutige Punkt-IDs, je 3700 Vergleiche, Statussumme je 25, keine Tabellenmutation.
- Größeres Kontrollfenster 101..200 ist inventarisiert: 100 Punkte, Tabellen-Nr. exakt 101..200, 100 eindeutige Punkt-IDs, 13610 Vergleiche, Statussumme 100, keine Tabellenmutation.
- Größeres Kontrollfenster 201..400 ist inventarisiert: 200 Punkte, Tabellen-Nr. exakt 201..400, 200 eindeutige Punkt-IDs, 23582 Vergleiche, Statussumme 200, keine Tabellenmutation.
- Größeres Kontrollfenster 401..600 ist inventarisiert: 200 Punkte, Tabellen-Nr. exakt 401..600, 200 eindeutige Punkt-IDs, 15532 Vergleiche, Statussumme 200, keine Tabellenmutation.
- Größeres Kontrollfenster 601..800 ist inventarisiert: 200 Punkte, Tabellen-Nr. exakt 601..800, 200 eindeutige Punkt-IDs, 17506 Vergleiche, Statussumme 200, keine Tabellenmutation.
- Größeres Kontrollfenster 801..1000 ist inventarisiert: 200 Punkte, Tabellen-Nr. exakt 801..1000, 200 eindeutige Punkt-IDs, 9706 Vergleiche, Statussumme 200, keine Tabellenmutation.
- Größeres Kontrollfenster 1001..1200 ist inventarisiert: 200 Punkte, Tabellen-Nr. exakt 1001..1200, 200 eindeutige Punkt-IDs, 3810 Vergleiche, Statussumme 200, keine Tabellenmutation.
- Größeres Kontrollfenster 1201..1400 ist inventarisiert: 200 Punkte, Tabellen-Nr. exakt 1201..1400, 200 eindeutige Punkt-IDs, 10808 Vergleiche, Statussumme 200, 16 plausible `kein_spaeteres_eingangsdokument`, keine Tabellenmutation.
- `toolbox/legal/paperless_detailpunkt_residual_report.py` erzeugt Status-/Residual-/Hash-/Plausibilitaetsdateien im Auditordner.
- Paperless-Tag-/Regex-Abgleich ist als Dry-Run inventarisiert: 126 Tags, 32 Regex-Tags, 0 Regexfehler, 56 Review-Tags, keine Mutation.


## Paperless-Detailpunkt-Fenstermerge und Eingangskontakt-Prüfflags sind inventarisiert: Der frische Mergeordner `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_fenstermerge_0001_1508_hardanchor_v3_originalfields` führt alle konservativen Fenster 1..1508 zusammen, einschließlich validiertem Fenster 1..25, nachgezogenem Lückenfenster 26..50 und Restfenster 1401..1508. Merge-Stand: 1508/1508 Punkte, Nummernfolge 1..1508 geschlossen, 119918 Punkt-Dokument-Vergleiche, Statussumme 1508, keine Tabellenmutation. Neuer Audit-Baustein `toolbox/legal/paperless_incoming_violation_flag_audit.py`

- Ist inventarisiert: Er prüft breite Eingangskontakt-Datensätze auf Rechtsbruch-/Verstoß-Prüffelder, ohne daraus automatische Rechtsbehauptungen zu erzeugen.
- Zaehldisziplin: 156 ist nur der enge Antwortkandidatenkreis für Detailpunkt-Antwortdeckung; 826 sind Paperless-Datensätze im breiten Rechtsbruch-/Verstoß-Prüfflag-Scope aus Behörden-/Gerichtslanes mit `eingang_gericht_behoerde`, `stellenbezug_ohne_antwortsignal` oder `beleg_anlage_formular`, nicht die bereinigte Schriftsatzanzahl.
- Zusatzzähler sind inventarisiert: 3258 Seiten, grob 775 Schriftstueckgruppen nach Datum/Lane/normalisiertem Dateinamen und 35 Dateinamen mit Seitenfragment-Signal.


## Scope-Gap Antwortdeckung

- Ist inventarisiert: Der bisherige Detailpunkt-Antwortdeckungs-Audit ist nur für den engen 156er Antwortkandidaten-Scope als technisch valide zu verwenden.
- Die breitere Eingangskontaktprüfung zeigt 670 ausgeschlossene Eingangskontakte, davon 535 Reviewkandidaten mit Antwort-/Entscheidungs-/Substanzsignalen (300 hoch, 235 mittel).
- Output: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_fenstermerge_0001_1508_hardanchor_v3_originalfields/scope_gap_answer_candidate_review`.
- Inventarregel: Vor einer rechtlich vollständigen Antwortdeckungs- oder Finalaussage müssen diese 535 klassifiziert und echte Antwort-/Entscheidungsdokumente als zusätzliche Kandidaten nachgezogen werden.


## Scope-Gap-535-Klassifizierer

- Ist inventarisiert: `toolbox/legal/paperless_scope_gap_candidate_classifier.py` liest die 535 Reviewkandidaten aus dem Scope-Gap, den aktuellen Paperless-Sidecar-Bestand und klassifiziert audit-only in echte Antwort/Entscheidung, Beleg/Formular, Seitenfragment, Stellenbezug ohne Antwortfunktion oder Ausschluss.
- Gültiger konservativer Serverstand: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_fenstermerge_0001_1508_hardanchor_v3_originalfields/scope_gap_535_classification_v4_conservative_roles`; lokaler Pull: `runtime/local_handoff/server_audit_pull_2026-05-25_fenstermerge_0001_1508_hardanchor_v3_originalfields/scope_gap_535_classification_v4_conservative_roles`.
- Ergebnis: 535/535 klassifiziert, 121 zusätzliche Antwort-/Entscheidungskandidaten, 84 Beleg/Formular, 56 Seitenfragment, 56 Stellenbezug ohne Antwortfunktion, 218 Ausschluss.
- Rollen `Anlage`, `Vollmacht`, `Klage`, `Beschwerde`, `Schriftsatz` und `Ruege` werden nicht als Antwortdeckung verwendet, nur weil Entscheidungswoerter im Text vorkommen.


## Erweiterter Scope-Gap-Antwortdeckungs-Audit

- Ist inventarisiert: `paperless_detailpunkt_erledigung_audit.py` nimmt über `--extra-answer-candidates-csv` die 121 konservativ klassifizierten echten Antwort-/Entscheidungskandidaten in den Audit auf.
- Gültiger Serverlauf: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_extended_answers_1508_hardanchor_v3_scopegap121`; lokaler Pull: `runtime/local_handoff/server_audit_pull_2026-05-25_extended_answers_1508_hardanchor_v3_scopegap121`.
- Ergebnis: 1508/1508 Punkte, 156 enge Antwortkandidaten plus 121 Zusatzkandidaten, 277 wirksame Antwortkandidaten, 204434 Punkt-Dokument-Vergleiche, Statussumme 1508, keine Tabellenmutation.
- Residualstand: 747 streng offene Punkte, 761 mögliche Antwortdeckungen zur Review, 11 unscharfe externe Modellqueue; Seitenzahlalarm bleibt sichtbar, die drei groessten Dateien sind Arbeitsartefakt-XLSX und nicht als Antwortdokumente verwendet.


## Antwortdeckung-Review-Blockcheck

- Ist inventarisiert: `toolbox/legal/paperless_answerdeckung_review_blockcheck.py` liest die 761 Reviewzeilen aus dem erweiterten Audit, joined das Paperless-Manifest und schreibt blockweise Klassenqueues ohne Tabellenmutation.
- Gültiger Serverstand: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_answerdeckung_review_761_blockcheck_v2_classqueues`; lokaler Pull: `runtime/local_handoff/server_audit_pull_2026-05-25_answerdeckung_review_761_blockcheck_v2_classqueues`.
- Ergebnis: 8 Bloecke, 47 gleiche-Spur-Kandidatendokumente, 5 belastbare gleiche-Spur-Treffer, 39 starke gleiche-Spur-Reviews, 51 Querbezug-dominiert, 449 mittel aber nicht gedeckt, 217 schwache Treffer nicht decken; P1=95, P2=449, P3=217.
- Keine Zeile ist automatisch erledigt.


## Same-Lane-Satzfenster-Review

- Ist inventarisiert: `toolbox/legal/paperless_answerdeckung_same_lane_sentence_review.py` prüft die 44 gleiche-Spur-Spitzenqueues über echte Sidecar-Satzfenster.
- Gültiger Serverstand: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_same_lane_sentence_review_44_v1`; lokaler Pull: `runtime/local_handoff/server_audit_pull_2026-05-25_same_lane_sentence_review_44_v1`.
- Ergebnis: 44/44 `falscher_treffer`; 40 Kandidaten sind gemischte Arbeitsfassung/Zitat, 4 echte Originalantworten sind Selbsttreffer auf Antwort-/Bescheidtext.
- Keine automatische Erledigung, keine Tabellenmutation.


## Antwortdeckung-Review-Decision-Apply

- Ist inventarisiert: `toolbox/legal/paperless_answerdeckung_review_apply_decisions.py` nimmt bestaetigte Satzfensterentscheidungen audit-only aus der Reviewbasis heraus.
- Zwischenstand: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_review_basis_after_same_lane_false_717_v1`; lokaler Pull: `runtime/local_handoff/server_audit_pull_2026-05-25_review_basis_after_same_lane_false_717_v1`; 44 False-Hits entfernt, 717 Reviewzeilen bleiben.
- Endstand: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_review_basis_after_same_cross_false_666_v1`; lokaler Pull: `runtime/local_handoff/server_audit_pull_2026-05-25_review_basis_after_same_cross_false_666_v1`; 95 False-Hits entfernt, 666 Reviewzeilen bleiben, keine Tabellenmutation.


## Cross-Lane-Satzfenster-Review

- Ist inventarisiert: `toolbox/legal/paperless_answerdeckung_cross_lane_sentence_review.py` prüft die 51 Querbezug-dominierten Reviewzeilen gegen Sidecar-Satzfenster.
- Gültiger Serverstand: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_cross_lane_sentence_review_51_v1`; lokaler Pull: `runtime/local_handoff/server_audit_pull_2026-05-25_cross_lane_sentence_review_51_v1`.
- Ergebnis: 51/51 `falscher_treffer`; Querbezug, falsche Spur, Selbsttreffer, Arbeitsfassung/Zitat oder unbestimmter Kandidat werden nicht als Antwortdeckung verwendet.


## Residual-Satzfenster-Review

- Ist inventarisiert: `toolbox/legal/paperless_answerdeckung_residual_sentence_review.py` prüft Restklassen blockweise gegen Same-/Cross-Kandidat und Sidecar-Satzfenster.
- Gültige Serverstaende: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_residual_sentence_review_mittel_449_v1`, `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_residual_sentence_review_schwach_217_v1` und Apply-Endstand `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_review_basis_after_residual_false_33_v1`.
- Ergebnis: 666 Restzeilen geprüft, 633 weitere False-Hits entfernt, 33 offene Restzeilen bleiben; keine automatische Erledigung und keine Tabellenmutation.


## Open33-Endprüfung

- Ist inventarisiert: `toolbox/legal/paperless_answerdeckung_open33_final_sentence_review.py` prüft die 33 offenen Restzeilen gegen Ursprungspunkt, Same-Lane-Originalantwortsatz und Cross-Kontext.
- Gültiger Serverstand: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_open33_final_sentence_review_v1`; lokaler Pull: `runtime/local_handoff/server_audit_pull_2026-05-25_open33_final_sentence_review_v1`.
- Ergebnis: 33 eindeutige Punkt-IDs, 30 `offen_endgueltig`, 3 `teilweise_beantwortet_pruefen`; keine automatische Deckung und keine Tabellenmutation.


## Open30-Basisbuilder

- Ist inventarisiert: `toolbox/legal/paperless_answerdeckung_open_basis_builder.py` übernimmt die 30 endgültig offenen Open33-Punkte in eine menschenlesbare offene Schriftsatz-/Tabellenbasis und trennt die 3 Teilantwort-Kandidaten in eine Mini-Reviewqueue mit CSV, HTML, lokalem Entscheidungszustand und JSON-/CSV-Export.
- Gültiger Serverstand: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_open30_basis_partial3_review_v1`; lokaler Pull: `runtime/local_handoff/server_audit_pull_2026-05-25_open30_basis_partial3_review_v1`.
- Ergebnis: 30 offene Basiszeilen, 3 Mini-Reviewzeilen, Spurverteilung offene Basis SGP 14, LSG 6, BSG 4, BVerwG 3, SGF 2, AOK/Krankenkasse 1; keine Tabellenmutation.


## Open30-Sinnsatzreview

- Ist inventarisiert: Der aktuelle v2-Serverstand `/opt/paperless/azubi42-share/amt-vi/detailpunkt_audit_2026-05-25_open30_basis_partial3_review_v2_sinnpruefung` und der lokale Pull `runtime/local_handoff/server_audit_pull_2026-05-25_open30_basis_partial3_review_v2_sinnpruefung` erweitern die 3er-Mini-Reviewqueue um `Spurgleichheit`, `Quellstellen-Hinweis`, `Deutsch-/Sinnprüfung`, `Rechtsprüfung` und die Entscheidungscodes `offen_ocr_sinn_pruefen`, `offen_zustaendigkeit_rechtlich_pruefen`, `offen_az_entscheidung_anschluss_pruefen`, `offen_abwehr_verweigerung_pruefen`, `teilweise_beantwortet`, `falscher_treffer`.
- `TAB-01468` ist als BSG-Satz mit Briefkopf-/Footer-/OCR-Beifang und Zuständigkeits-/Abwimmel-Signal markiert; `TAB-01335` zeigt `Spur LSG; Quelle nennt BSG`.
- Tabellenmutation bleibt `none`.


## Paperless-Detailpunkt-In-Zeilen-Konsistenz-QM

- Ist inventarisiert: `toolbox/legal/paperless_detailpunkt_row_consistency_audit.py` ist ein eigenes Audit-only-Gate für die innere Zeilenplausibilitaet der 1508er Punktliste.
- Es prüft Pflichtfelder, eindeutige Nummern, Datum/Alter, Quelle/Rolle, Achse, Normanker, Fallbezug, sichtbare Technik-/Arbeitsartefaktbegriffe, Sprachrisiken und doppelte OCR-Auszugfragmente, ohne Gerichtstabellen zu veraendern.
- Serverlauf 25.Mai.2026: 1508/1508 Punkte, Nummern 1..1508 eindeutig, 546 ok, 481 niedrig, 465 mittel, 16 hoch; harte Reviewmenge `Nr 592..607` wegen fehlendem gesichertem Quelldatum.
- Output: `/opt/paperless/azubi42-share/amt-vi/detailpunkt_row_consistency_2026-05-25`; Repo-Report: `reports/amt_vi_detailpunkt_row_consistency_qm_2026-05-25.md`.


## Jurabibliothek-QM

- Ist inventarisiert: Sync- und Vector-Timer laufen auf `[Serverpfad]`; `azubi42-jura.service` nutzt per `AZUBI42_JURABIBLIOTHEK_DB` denselben großen Dev-DB-Bestand.
- Der 25.Mai.2026-QM-Lauf reduzierte alte `document_versions`-Duplicate-Fehler von 2199 failed auf 116 failed; uebrig sind vor allem Feed-Parse-/Netzfehler.
- Backfill bleibt offen: 71578 `fetch_case_zip`-Jobs und 559643 offene Embeddings nach einer 8000er Vector-Welle.
- Das Suchranking ist nachgezogen: `toolbox/legal/jurabibliothek_vector_worker.py` ersetzt die reine Hash-Vektor-Naehesuche im Smoke durch Hybrid-Suche mit FTS/BM25, striktem Normkern, Fachwortgewichtung, Quellenvertrauen und Hash-Vektor nur als Tie-Breaker/Fallback.
- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` verwendet denselben Reranker für die Jurabibliothek-UI.
- Live-Smoke `Rechtsbeugung`: amtliche BGH-Rechtsprechung zu `StGB § 339 Rechtsbeugung` steht vor Paperless-Arbeitsmatrizen.
- QM-Report: `reports/amt_vi_detailpunkt_bibliothek_qm_2026-05-25.md`.


## Connector-/Pfadleak-Schutz

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` redigiert absolute Windows-, `/root`, `/home`-, Server- und UNC-Pfade zentral über `redact_private_paths` und `safe_source_reference`; `01_8_JuraBibliothek.js` schützt Status-/Payloadmeldungen im Browser zusätzlich.
- `amtconnect://...`-Aliasse und Web-URLs bleiben sichtbar, interne Root-/Run-Pfade nicht.
- Nicht erreichbare Root-Aliasse deaktivieren `Als AZ-Quelle` und `AZ analysieren` sichtbar.
- Installer-Spiegel ist synchron; Smoke: `70_TESTS_AND_SMOKE/legal/test_azubi42_server_privacy_sanitizer.py`.


## Exporter-/Screenshot-/Scroll-Capture-Vertrag

- Ist inventarisiert: Block F in `10_SHARED_CORE/app_v27_multimedia/docs/AZUBI42_UI_ANSICHTEN_FUNKTIONS_BAUSTELLEN_2026-05-22.md` ist die aktuelle Sammelstelle für Top-Navigation-Screenshot, Bereich markieren, sichtbaren Bereich, ganze Seite per Scroll-Capture, offene Inline-Tabs, Workspace-Bild/PDF/DOCX, HTML-ZIP, Schriftsatzpaket, Belegkettenpaket, Clipboard/Send-to, Manifest, Hashliste, Privacy-Redaction und spätere Video-/Mikrofon-/Whiteboard-Module.
- Inventarisierte Quellvertraege: `00_META/azubi42_export_konzept.md`, `00_META/SCREENSHOT_REGEL.md` und BrowserGateway als echte Screenshot-/Fullpage-Screenshot-/Scroll-/Click-Grundlage mit Capture-Metadaten und PNG-Download.
- Windows-/Office-PDF/A-Exporter ist ausdruecklich getrenntes Desktop-Thema.


## Topbar-Screenshot-Exporter

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js` wird über `js/main.js` gebootet und über `btn-screen-capture` im Header geöffnet.
- Der Baustein nutzt echte Browserfreigabe per `getDisplayMedia`, schreibt lokale PNG-Downloads, kann die Bild-Zwischenablage bedienen, markiert Bereiche im Preview, schneidet die Auswahl zu, erzeugt Manifest-JSON mit `azubi42.screen_capture_manifest.v1`[private Angabe entfernt]`audit_screen_capture_exporter.mjs`, `audit_screen_capture_exporter_browser.mjs`; Screenshotbeleg unter `runtime/screenshots/YYYY-MM-DD/screen_capture_exporter/`.


## Matrix-Neuuser-Freigabevertrag

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` baut Matrix-Zugangsanfragen mit sichtbaren Aktionen `freigeben` und `nicht freigeben`.
- Der Server akzeptiert alte/falsche Review-Aliaswerte nur als Kompatibilitaetsbruecke, normalisiert dann aber auf `approve`/`reject`, schreibt `approved`/`rejected`, `review_status_label` und `review_action` in die Requestakte und traegt Matrix-IDs in `auth_providers.matrix.approved_users` ein.
- Der Ubuntu-Installer-Spiegel ist synchron; Smoke: `70_TESTS_AND_SMOKE/legal/test_matrix_access_request_approval_contract.py`.
- Live-Status 23.Mai.2026: bestehender Antrag `request_20260522_223406_afc1d741` für `@alice:42.chat` auf `azubi42-jura` wurde freigegeben.


## Fehler-Stop-Prozess

- Ist inventarisiert: `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` führt einen verbindlichen 9-Punkte-Stopvertrag für störungsnahe Arbeiten.
- Die Arbeitskette startet mit User-Hypothese und Minimal-Split-Test, bleibt im Single-Bug-Modus, verlangt Beleg je Schritt, begrenzt aktive Hypothesen, sperrt Breitreparaturen vor Trigger-Isolation, schließt Widerspruchszweige nach Beleg, verlangt Real-UI-Replay und persistiert bestaetigte Fehlerklassen.
- Dieselben Guards liegen als `faultstop_*` in `toolbox/legal/config/hw3d_knowledge_layers.json` und `toolbox/legal/config/paperless_task_rules.json`; die `pre_consume_policy` führt alle neun als aktive Booleans.
- Der Ubuntu-Installer-Spiegel führt die gleichen Konfigstaende.


## Faultstop-Smoke-/UI-Wrap-/Resize-Stand

- Ist inventarisiert: `70_TESTS_AND_SMOKE/legal/test_faultstop_guardrails.py` sichert Main-/Installer-Gleichlauf für alle neun `faultstop_*`-Guards in HW3D-/Task-Rules und verlangt aktive `pre_consume_policy`-Flags.
- `10_SHARED_CORE/app_v27_multimedia/css/style.css` sowie der Ubuntu-Installer-Spiegel führen den Textüberlauf-/Resize-Hotfix für Header-Buttons, Sidebar-Sektionstitel, Dropdown-Summarys, Dropdown-/Toolbox-Buttons und vertikal resizebare Sidebar-Dropdown-Panels mit Höhenlimit.


## UI-Wrap-/Resize-Welle 2

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/css/style.css` und der Ubuntu-Installer-Spiegel enthalten zusätzlich AZ-Timeline-Shell-Härtung (`box-sizing`, `min-width:0`), Session-Rename-Aktionswrap, stärker sichtbare Sidebar-Breiten-/Höhen-Resizer, `sidebar-section-body`-Wrap-Regeln für Buttongruppen (inkl.
- Toolbox/Vault) sowie Wrap-Fixes für Property-/Theme-/FixIt-Labels und FixIt-Toasttext.
- Reproduzierbare QA: `python 70_TESTS_AND_SMOKE/legal/test_faultstop_guardrails.py`, `node 70_TESTS_AND_SMOKE/ui/audit_aktenzeichen_timeline.mjs`, `node 70_TESTS_AND_SMOKE/ui/audit_sidebar_sections.mjs`; der Browser-Clicktest `clicktest_workspace_inline_views.mjs` benoetigt weiterhin einen laufenden UI-Server auf `127.0.0.1:8142`.


## Originalfundorte-read-only

- Ist inventarisiert: `toolbox/legal/config/hw3d_knowledge_layers.json`, `toolbox/legal/config/paperless_task_rules.json`, `00_META/ARBEITSALLTAG.md` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` sperren Meister-/AMT-/A-amt-Originalordner als Ausgabeziel.
- `toolbox/legal/realfall_hin_her_zeitstrahl_mehrspur.py` verweigert Ausgaben in AMT-/A-amt-Pfadsegmenten.
- Originalfundorte liefern nur Herkunfts-, Lese- und Zähleranker; Arbeitsartefakte liegen in Azubi42-Runtime oder ausdruecklicher Arbeitsablage.
- Zählervergleiche trennen Originalfundort, Paperless, Sidecar, RAG/WH3D und Ansicht.


## Legal-Regelwerk zuerst

- Ist inventarisiert: `toolbox/legal/config/hw3d_knowledge_layers.json` führt `legal_rulebook_loaded_first` als Charakter-/Guardrail-Prinzip und `60_RUNTIME_TEMPLATES/director/process-parameters.template.json` führt das Quality-Gate `legal_rulebook_loaded_first`.
- SGP/SGF/Legal-Tabellenlaeufe laden zuerst `toolbox/legal/REGELWERK_AMT_QUELLENFAMILIEN_DUBLETTEN.md` (SSOT), Standard ist quellenbereinigt (nur neueste Version je Quellenfamilie), `--include-duplicates` ist ein bewusster Ausnahmelauf.
- Projektgedaechtnis-Knoten (Checkliste): `/amt-Quellenfamilien`, `/dubletten-versionsstatus`, `/neueste-version-statt-altvarianten`, `/verlustfrei-vs-quellenbereinigt`, `/final-print-druck-export-docx-pdf-varianten`, `/include-duplicates-ausnahmelauf`, `/wiederholte-textpassagen-manuell`.


## Pre-Consume-Inhalts-/Bildtriage

- Ist inventarisiert: `toolbox/legal/paperless_preconsume_content_triage.py` mit Regelvertrag `toolbox/legal/config/paperless_task_rules.json` und WH3D-Charakteranker `toolbox/legal/config/hw3d_knowledge_layers.json`.
- Der Baustein prüft jeden Importkandidaten vor Bulk-Consume nach Text/OCR, Seitenbild, lokaler Bild-OCR und bei Bedarf lokalem Servermodell; Dateinamen sind nur schwache Hinweise.
- Ergebnisstufen sind `vorgangsrelevant`, `nicht_vorgang` und als letzte Stufe `unklar_user_review`; lange/unplausible Dateien halten den Bulk-Lauf ebenfalls vor Paperless.
- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` blockiert nicht vorgangsrelevante Uploads vor Paperless, `toolbox/legal/realfall_hin_her_zeitstrahl_mehrspur.py` entfernt triagierte `nicht_vorgang`-Altbestandsdokumente aus dem Ansichtsscope.
- Smokes: `70_TESTS_AND_SMOKE/legal/test_paperless_preconsume_content_triage.py`, `70_TESTS_AND_SMOKE/legal/test_realfall_hin_her_zeitstrahl_mehrspur.py`.


## AMT-IV-Neulauf Gerichtsausgabe

- Ist inventarisiert: `toolbox/legal/run_realfall_amt_iv_neulauf_server.sh` mit `PRECONSUME_TRIAGE_CSV`, `toolbox/legal/realfall_amt_iv_court_package.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_amt_iv_court_package.py` und Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_amt_iv_court_package.py`.
- Der Korrekturstand `C:\AMT-IV_KORR_CLEAN_2026-05-19_KORR1` erzeugt ein Gesamtregister mit 513 Zeilen und 8 Empfänger-/Prüfpaketen: SGP 296, SGF 217, LSG 188, BSG 483, BVerwG 513, BVerfG-Prüfschiene 513, EGMR-Vorstufe 503, Patientenstelle 360.
- Enthalten sind 8 DOCX-Anschreiben, 9 Empfänger-/Gesamt-XLSX-Tabellen, Hashregister und interne Rueckverfolgung in `20_QA_AUDIT`.
- Empfänger-Dateien enthalten nur 23 menschliche Gerichtsspalten; AZUBI42-/Paperless-/Sidecar-/Gate-Trace bleibt ausserhalb der Gerichtstabellen.
- Die Pakete sind als Fundstellen-, Beiziehungs- und Aktenabgleichsanlagen abgegrenzt, nicht als abschließende Beweiswuerdigung.
- 14-Tage-Formeln werden sichtbar als zeitnaher Sachstands- und Aktenabgleichsantrag geführt; BVerfG und EGMR bleiben Prüfschiene/Vorstufe mit Frist-/Formularwarnung; Patientenstelle/Ombudsstellen bleiben Sachstands-, Informations- und Weiterleitungsspur ohne behauptete bindende Einzelfallentscheidung.
- `AMT_IV_RUN_AUDIT.json` meldet 3.073 Empfänger-Tabellenzeilen, 0 Frontspalten-/Techniktreffer und 0 formaljuristische Warnbegriffe in sichtbaren Frontspalten.
- Artifact-Tool-Render erzeugte blanke PNGs; visuelle Layoutfreigabe bleibt daher Human-/Word-Prüfung, während DOCX-/XLSX-Inhalt und Struktur maschinell geprüft sind.


## AMT-VI Patientenstellen-Kurzfax

- Ist inventarisiert: `[lokaler Pfad]` ist die Frontdatei für Sachstand, Weiterleitung und Beiziehung.
- Sie führt den aktuellen Bezug `27.Feb.2026` und 7 Nachtragsschriftstuecke seitdem als Datum/Stelle/Anlass/Patientenstellenbezug.
- `99_LAGER_KORR1_NICHT_BEILEGEN` bleibt Altstand und ist nicht als Beilage inventarisiert.


## AMT-VI-Rechtsneulauf

- Ist inventarisiert: `toolbox/legal/realfall_amt_vi_ausblendung_court_package.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_amt_vi_ausblendung_court_package.py` und Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_amt_vi_ausblendung_court_package.py`.
- Der Lauf liest die AMT-V-Ausblendungs-/Joinqueue und erzeugt gerichtsfeste DOCX/XLSX/CSV-Pakete, in denen jeder Ausblendungspunkt als neuer aktueller Vorgangspunkt mit altem Ursprung, Ursprungsalter, Quelle, Seite/Absatz/Zeile, damaliger Zuständigkeit, Gegenprobe, Dienstaufsicht-/Richterschutz-Abgrenzung, LSG-Leistungsbewertung und Folgen-/Schadensprüfachse geführt wird.
- Arbeitsordner: `[lokaler Pfad]`; AMT-V liegt dort nur als Kopie unter `00_AMT_V_KOPIE_AUSBLENDUNG_ESKALATION`.
- Ausgabe: `10_GERICHTE_DOCX_XLSX` mit SGP 321, SGF 381, LSG 276, BSG 691, BVerwG 1.669 und Gesamtregister 1.669 Punkten, Einzel-Empfänger-XLSX mit 15 menschlichen Gerichtsspalten, BVerwG/Gesamtregister mit 17 Spalten, QA-Trace nur unter 20_QA_AUDIT und Hashregister.
- Patientenstelle ist als Sonderrolle `06_Patientenstelle_Bundespatientenbeauftragter` inventarisiert: Frontdatei ist nur das Kurzfax `Patientenstelle_Kurzfax_Sachstand_Weiterleitung.docx`; der alte KORR1-Stand mit 360 Tabellenzeilen/23 Spalten liegt nur unter `99_LAGER_KORR1_NICHT_BEILEGEN` als internes Arbeitsgedaechtnis und ist nicht Teil der 1.669 AMT-VI-Ausblendungsjoinqueue.
- `neu 332.txt` ist als Richterschutz-/Dienstaufsichts-Prüfachse in `private_schriftsatz_notice_blocks.json` Version `20260519k`, `legal_de_language_profile.json`, `hw3d_knowledge_layers.json`, `gesamtvorgang_table_schema_v2.json` und Tesseract-Wortlisten inventarisiert; die Always-Active-Rollenregel führt Rolle, Blickwinkel, Umgebung, aktuellen Hin-Her-Anschluss, Gesamtvorgang, damalige Zuständigkeit und zulaessige Handlung bei jedem Gedanken und jeder Aktion mit; BVerfG bleibt ohne Freigabe nur BVerwG-Mitlaufspur.
- QA: Generator 0 Technik-/Hardclaim-Treffer, sichtbarer Tech-Begriff-Scan der Gerichtsordner 0 Treffer, JSON valide, AMT-VI-Smoke 3 passed; Artifact-Tool-Render bleibt blank und ist als Render-Tool-Gap unter `20_QA_AUDIT\docx_render_qa` dokumentiert.


## AMT-VI-Antragssprache und SGF-Anschlussruege sind inventarisiert

- `toolbox/legal/realfall_amt_vi_ausblendung_court_package.py` und Installer-Spiegel erzwingen sichtbare Antragssprache statt Bettel-/Bitte-Sprache und sperren `bitte`, `gebeten`, `erbeten`, `erbitten`, `Sachstandsbitte`, `Aktenabgleichsbitte` sowie `Bedenken` in gerichtssichtbaren Frontfeldern.
- `SGF_Schriftsatz_Anschlussruege_Aktenfuehrung_Gehoer.docx` ist als echter Schriftsatz mit Gegenstand, Kurzsachverhalt/Ausblendungslage, rechtlicher Einordnung, Anträgen und Anlage als Fundstellenregister inventarisiert.
- Maschinelle DOCX-Prüfung bestaetigt: Betreff mit `Ausblendungen`, 381 SGF-Punkte, 141 Akten-/Beiziehung, 107 Zuständigkeit/Rechtsweg, 46 PKH/Rechtsbeistand, 22 Textbaustein/Formelschreiben und 20 Gesundheit/AOK/Krankenversicherung.
- Das AMT-VI-Hashregister wird als Paketordnerregister geschrieben und umfasst dadurch auch die Patientenstellen-Sonderrolle.


## AMT-VI-SGF-Current-Reference-Gate

- Ist inventarisiert: `toolbox/legal/realfall_amt_vi_ausblendung_court_package.py`, Installer-Spiegel und Smoke-Test halten für SGF den festen aktuellen Anschlussbezug auf das Schreiben des Praesidenten/Gerichtsleitung des Sozialgerichts Frankfurt (Oder) vom 13.Apr.2026, Az.
- 3132-0212, zur Dienstaufsichtsbeschwerde vom 08.Mrz.2026 gegen den Vorsitzenden der 23.
- Kammer, Verfahrensbezug u.a. S 23 SV 2/25.
- `SGF_Schriftsatz_Anschlussruege_Aktenfuehrung_Gehoer.docx` wird dadurch als Antwort/Anschlussruege/Antrag auf punktweise Ergänzung/Neubescheidung dieses Schreibens inventarisiert und nicht als neuer isolierter Antrag.
- Quellenanker: private SGF-QA-Outputs (nicht versioniert); eine eigenständige Original-PDF ist im lokalen Spiegel aktuell nicht belegt.
- Der 05.Mai.2026-Substanzblock ist inventarisiert als Antwortdeckungs-/Rechtsrahmenblock mit Betreffsverengung, Aktenbasis, Einzelpunktmatrix, Art.-97-GG-/Art.-108-LV-/§-26-DRiG-Abgrenzung, PKH/Rechtsbeistand, Akten/Kopien/Übermittlungsvermerke, Zustellung/eRV/Drittzugang, Verweisungs-/Zuständigkeitskette und AOK/medizinischer Versorgung.
- ZIP SHA256: `7D5DF0B7FA3625F061BEA8B9A28912171B0646D47894628B78AA21B01A2DBB25`.


## AMT-VI-SGP-AOK-30P-Anschlussruege

- Ist inventarisiert: `toolbox/legal/realfall_amt_vi_ausblendung_court_package.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_amt_vi_ausblendung_court_package.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_amt_vi_ausblendung_court_package.py` und Ausgabeordner `[lokaler Pfad]`.
- `SGP_Schriftsatz_Einzelpunktbehandlung_Aktenabgleich.docx` führt seit 20.Mai.2026 einen eigenen Schriftsatzkoerper mit den aktuellen Achsen 30-Prozent/Jobcenter/Existenzgründung und AOK/KK/Krankenversicherung zuerst, danach Zustellung/eRV/E-Post, geöffneter/verspaeteter Zugang, Zuständigkeit/Rechtsweg, Irrlaeufer LSG/JCZ/SGP, Rechtsbeistand/PKH/Eilstatus, Ausblendungen 2020-2021, Suder-Beschluss, alte Akte/RA Kapust/Aktenunterdrueckung und Beschwerdeverfahrensaktenzeichen je Einzelpunkt.
- Inventarisierte QA-Datei: `20_QA_AUDIT/SGP_AOK_30P_AKTUELLER_BEZUG_CHECK_2026-05-20.csv` mit 2.464 Rohfeld-Tagzeilen: 30P/Jobcenter/Existenzgründung 697, AOK/KK/Krankenversicherung 129, Zustellung/eRV/Zugang 1.629, Irrlaeufer 9; davon SGP 166/15/303/3.
- ZIP SHA256: `EDD99FEEDAD20CCA69CE9CE7A0A93FD10864661937188F4208DCE057036D327F`; Tabellenzähler unveraendert SGP 321/15, SGF 381/15, LSG 276/15, BSG 691/15, BVerwG 1.669/17; sichtbarer DOCX-Technik-/Bitte-/Bedenken-Scan 0 Treffer; Word-COM/PDF-Visual-QA SGP 4 PDF-Seiten.


## Paperless-Vollread-Ausblendung

- Ist inventarisiert: `toolbox/legal/realfall_paperless_fullread_ausblendung.py` und `toolbox/legal/realfall_paperless_fullread_compare_amt_vi.py` sind die neuen Mindestgate-Werkzeuge für den AMT-VI-Rechtsneulauf.
- Der Vollread liest den lokalen 831er Paperless-/Sidecar-Scope mit 806 Volltexten und 25 Problem34-Kurztexten, führt 1 Manifest-only-Nachfasser und schreibt Dokumentregister, Rohkandidaten, Cluster und Problem34-Nachfasser unter `[lokaler Pfad]`.
- Inventarzähler: 2.511 Seiten, laengste Datei 60 Seiten, 12.439 Rohkandidaten, 4.279 Cluster aus 534 Dokumenten.
- Der Vergleichsbaustein schreibt `[lokaler Pfad]` und markiert die aktuelle 1.669er AMT-VI-Ausgabe als nicht vollständig belegten Arbeitsstand.
- Zusätzliche Cluster vor Dubletten-/Antwortdeckungsprüfung: 2.610; besonders nachzuziehen sind Weiterleitung/Meldepflicht, Zustellung/eRV/Zugang, Frist/Mahnwesen/Überlaenge und Suder/Kapust/alte Akte.
- Versandnaehe ist erst nach Join gegen Quellspur, aktuelles Gegenstück, Antwortdeckung, Dublette und Empfängerrolle erlaubt.


## AMT-VI-BSG-2026-Guard

- Ist inventarisiert: `toolbox/legal/realfall_amt_vi_bsg_2026_guard.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_amt_vi_bsg_2026_guard.py`, aktualisierte Fullread-/Gerichtspaket-Skripte und Smokes `70_TESTS_AND_SMOKE/legal/test_realfall_paperless_fullread_ausblendung.py`, `70_TESTS_AND_SMOKE/legal/test_realfall_amt_vi_bsg_2026_guard.py`, `70_TESTS_AND_SMOKE/legal/test_realfall_amt_vi_ausblendung_court_package.py`.
- Der Guard verhindert, dass direkte BSG-2026-Kontakte durch LSG-Textnaehe oder zitierte BSG-Aktenzeichen aus der BSG-Tabelle fallen.
- Inventarisierte Korrekturausgabe: `[lokaler Pfad]`; Tabellenzähler SGP 617, SGF 147, LSG 208, BSG 101, BVerwG 1358.
- BSG-Jahresabgleich: 2022 = 15, 2023 = 6, 2024 = 23, 2025 = 42, 2026 = 15.
- QA: Generator 0 Issues; Tests 8 passed.


## AMT-VI-Empfänger-2026-Guard

- Ist inventarisiert: `toolbox/legal/realfall_amt_vi_recipient_2026_guard.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_amt_vi_recipient_2026_guard.py`, WH3D-/Paperless-Regeln `direct_recipient_year_coverage_guard` und `source_date_plausibility_guard`, sowie Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_amt_vi_recipient_2026_guard.py`.
- Der Guard schützt alle direkten 2026-Anschlusskontakte vor falscher Zielspur, zieht fehlende Reviewzeilen in den Empfängerjoin und blockiert Personen-/Formulardaten als sichtbares Vorgangsdatum.
- Inventarisierte Korrekturausgabe: `[lokaler Pfad]`; Tabellenzähler SGP 617, SGF 148, LSG 237, BSG 101, BVerwG/Gesamtregister 1388.
- QA: Generator 0 Issues, keine Quellenjahre <2000 in sichtbaren Tabellen, Word-COM/PDF-Render-QA lesbar, Tests 12 passed.


## AMT-VI-BSG-Historienkontakt-Guard

- Ist inventarisiert: `toolbox/legal/realfall_amt_vi_recipient_2026_guard.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_amt_vi_recipient_2026_guard.py`, aktualisierte Regeln `direct_recipient_year_coverage_guard` und Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_amt_vi_recipient_2026_guard.py`.
- Der Guard führt direkte BSG-Historienkontakte 2020-2026 als Zugang-/Kenntnis-/Antwortdeckungsspur, auch wenn keine Ausblendungskandidaten gezaehlt wurden; sichtbare E-Post-/Nachrichtenkopf-Auszüge deduplizieren wiederholte From-/To-Zeilen.
- Inventarisierte Korrekturausgabe: `[lokaler Pfad]`; Tabellenzähler SGP 619, SGF 148, LSG 238, BSG 299, BVerwG/Gesamtregister 1589; BSG 2022=72 inklusive alter Direktkontakte vor Suder; QA 0 Issues.
- Delta-Spickzettel 32->33: `20_QA_AUDIT\32_to_33_delta_summary.csv`, `32_to_33_added_rows.csv`, `32_to_33_removed_or_changed_rows.csv`.


## AMT-VI-33 Korrekturlese-Gate

- Ist inventarisiert: `toolbox/legal/realfall_amt_vi_ausblendung_court_package.py` und Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_amt_vi_ausblendung_court_package.py` reinigen gerichtssichtbare Quellen-/Beiziehungsfelder mit `court_clean_source()`.
- Sichtbare semikolongetrennte Platzhaltersegmente `Unklar` werden aus Front-XLSX/CSV entfernt; sie gelten nicht als menschliche Quelle, Beiziehungsstelle oder Tatsachenanker.
- Bestehender gültiger Korrekturleseordner bleibt ohne neue Kopie `[lokaler Pfad]`.
- Inventarisierte Recheck-Zähler: 5 DOCX, 6 XLSX, Gesamtregister 1589/17, SGP 619/15, SGF 148/15, LSG 238/15, BSG 299/15, BVerwG 1589/17; 0 Lesefehler, 0 verbotene Technik-/Statusspalten-Treffer, 0 sichtbare `Unklar`-Segmente.
- QA-Report: `20_QA_AUDIT\33_visible_placeholder_cleanup_2026-05-21.json`.


## AMT-VI-33 Rollen-Gate/Patientenstellen-Kurzfax

- Ist inventarisiert: `toolbox/legal/document_role_classifier.py`, `toolbox/legal/realfall_amt_vi_patientenstelle_shortfax.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/document_role_classifier.py`, `.../realfall_amt_vi_patientenstelle_shortfax.py` und Ausgabe `[lokaler Pfad]`.
- Die Patientenstelle ist hier Sonderrolle: Sachstand, Weiterleitung, Beiziehung und Gesundheits-/Krankenversicherungs-/Sozialdaten-/Folgeschädenbezug; keine Volltabelle, keine unmittelbare Zahlungsforderung und keine bindende Einzelfallentscheidung.
- Das Kurzfax führt den Bezug vom 27.Feb.2026 und erzeugt die Nachtragstabelle aus dem Vollread-Dokumentregister `paperless_fullread_documents_831.csv`: 14 sichtbare echte Schriftwechsel-/Entscheidungspunkte, 21 ausgeschlossene Rollenpunkte im QA-Register.
- `00_AMT_VI_README.md`, Hashregister und QA `20_QA_AUDIT\33_patientenstelle_shortfax_role_filter_2026-05-21.csv/.txt/.json` sind inventarisiert.
- Aktueller Korrekturleseordner umfasst 6 DOCX und 6 XLSX.


## AMT-IV/AMT-VI Tabellen-Leseführung

- Ist inventarisiert: `toolbox/legal/realfall_amt_vi_ausblendung_court_package.py`, `toolbox/legal/realfall_amt_iv_court_package.py`, ihre Installer-Spiegel und die Smokes führen eine Fronttabellen-Verdichtung.
- Einzel-Empfänger-Tabellen, BVerwG und Gesamtregister enthalten keine konstanten `Empfänger`-/`Ursprungsempfänger`-Wiederholungsspalten mehr; Herkunft steht im Ursprungsschriftstück und in der Beiziehungs-/Abgleichsspalte.
- Sichtbare Tabellen- und DOCX-Texte laufen über `visible_german_text()` mit echten Umlauten in Spaltennamen und Textkörpern.
- Gerichtssichtbare DOCX-Köpfe nennen Anlagen menschlich als beigefügte XLSX-Tabelle mit Punktzahl statt als Dateiname; ZIP-Bau schließt interne `_qa`-Ordner aus.
- Aktueller AMT-VI-Stand: SGP/SGF/LSG/BSG unveränderte Zeilenzahlen, Einzel-Empfänger-Tabellen 15 Frontspalten, BVerwG/Gesamtregister 17 Frontspalten, ZIP 24 Eintraege ohne QA-Ordner, ZIP SHA256 `7D5DF0B7FA3625F061BEA8B9A28912171B0646D47894628B78AA21B01A2DBB25`.


## Rechtsschutzziel-/Hinweislogik

- Ist inventarisiert: `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md`, `toolbox/legal/config/private_schriftsatz_notice_blocks.json`, `toolbox/legal/config/language_packs/legal_de_language_profile.json` und `toolbox/legal/config/hw3d_knowledge_layers.json` enthalten den neuen Auslegungs-/Hinweisvertrag für Laienvortrag.
- Der neue Block modelliert erkennbares Rechtsschutzziel, richterlichen Hinweis, Gelegenheit zur Klarstellung, Amtsermittlung, Aktenabgleich und Mindeststruktur je Punkt.
- Fehlende Mindestfelder erzeugen Klarstellungsfrüchte statt harter Versandbehauptungen; Rechtsmittel-, Anhoerungsruege-, Verzoegerungsruege-, Amtshaftungs- und Rechtsbeugungsachsen bleiben getrennt.
- Der Ubuntu-Installer-Spiegel der drei JSON-Konfigs ist synchron.


## AZUBI42-/WH3D-Methodikhinweis

- Ist inventarisiert: `toolbox/legal/config/private_schriftsatz_notice_blocks.json` Version `20260519c`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/hw3d_knowledge_layers.json` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` enthalten den neuen Methodikvertrag.
- Der Baustein erlaubt AZUBI42/WH3D als strukturierte Aktenabgleichs-, Fundstellen-, Fristen-, Kausalketten-, Beteiligten-Lane- und Prüfführung zur praktischen Waffengleichheit; er sperrt automatische Beweislastumkehr, automatische Rechtskraftdurchbrechung, automatische Verjaehrungshemmung, automatische Haftung und jeden Ersatz für Originalakte, Beweisaufnahme, Gericht, Anwalt oder zuständigen Rechtsweg.
- Das zugehoerige Arbeits-DOCX für den BVerwG-Footer-/Anlagenentwurf liegt in `C:\AMT-IV_KORR_CLEAN_2026-05-19_KORR1\10_EMPFAENGER_DOCX_XLSX\05_BVerwG_Bundesverwaltungsgericht\BVerwG_AZUBI42_Methodik_Baustatus_Footerbaustein_2026-05-19.docx`; Baustatus `50 % done` und `210.000 EUR` sind nur KORR2-prüfpflichtige Software-/Baustands-Forderungsachse.


## Digitalzugangs-/Testumgebungsbaustein

- Ist inventarisiert: `toolbox/legal/config/private_schriftsatz_notice_blocks.json` Version `20260519d`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/hw3d_knowledge_layers.json` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md`[private Angabe entfernt]`Ergaenzende Anlage: Digitalzugang und Testumgebung`.


## Entwicklungs-/Innovationsschadensblock

- Ist inventarisiert: `toolbox/legal/config/private_schriftsatz_notice_blocks.json` Version `20260519e`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/hw3d_knowledge_layers.json` und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` enthalten den neuen Vertrag für Working Prototype, Förder-/Skalierungsspur, Baustand, Kostenregister, Digitalzugang und Schadensminderungsarbeit.
- 831 Dokumentpunkte, 5.273 Knoten, mehr als 7.000 Kanten, 420.000 EUR Gesamtposition und 210.000 EUR bei 50 % Baustand sind prüfpflichtige Achsen, keine automatische Forderungsfreigabe.
- Sabotage, kollusives Zusammenwirken, automatische Förderansprueche und Millionenfolgen bleiben ohne harte Originalanker gesperrt.
- Das BVerwG-Arbeits-DOCX enthält dazu Abschnitt 8.


## BVerwG-Bild-/Baustandsanker sind inventarisiert

- Das Arbeits-DOCX `C:\AMT-IV_KORR_CLEAN_2026-05-19_KORR1\10_EMPFAENGER_DOCX_XLSX\05_BVerwG_Bundesverwaltungsgericht\BVerwG_AZUBI42_Methodik_Baustatus_Footerbaustein_2026-05-19.docx` enthält jetzt Abschnitt 9 mit Bauteilregister, Euro-/Baustandsachse, Bildtafeln, Detailshots, Einbaupflichten und SHA256-Ablageanker.
- Die serverseitigen Bildanker für WH3D-/Jura-Welt, Hin-Her-Zeitstrahl Mehrspur und Human-Review-Canvas wurden per Playwright-Chromium aus `[Serverpfad]` erzeugt; OCR-Dreiwege-Kontrolle ist als vorhandener Kontrollbildanker eingebunden.
- Lokale Asset- und Render-QA-Ablage: `C:\AMT-IV_KORR_CLEAN_2026-05-19_KORR1_RENDER_QA\BVerwG_AZUBI42_Methodik_Baustatus_Footerbaustein_assets` und `...\BVerwG_AZUBI42_Methodik_Baustatus_Footerbaustein_render`.


## BVerfG-Mitlaufspur im BVerwG-Paket

- Ist inventarisiert: `toolbox/legal/realfall_amt_iv_court_package.py`, `toolbox/legal/config/private_schriftsatz_notice_blocks.json` Version `20260519f`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/hw3d_knowledge_layers.json`, der jeweilige Ubuntu-Installer-Spiegel und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` enthalten die harte Abgrenzung: kein unmittelbarer BVerfG-Versand ohne ausdrueckliche Freigabe; BVerfG-Punkte laufen bei Fach-/Bundesgerichten als Mitlauf-, Weiterleitungs-, Meldepflicht-, Beiziehungs- und Aktenklaerungsspur.
- Der Generator ergänzt BVerwG kuenftig automatisch um die zwei menschlich lesbaren Mitlaufspalten am Tabellenende und schreibt den Klarstellungsblock ins BVerwG-Anschreiben.
- Im BVerwG-Korrekturstand sind BVerfG-/09.05.2024-/Aktenunterdrueckungs-/Überlaengenpunkte in Anschreiben, Tabelle und Methodik-DOCX als BVerwG-Handhabungsachse sichtbar.
- Die BVerwG-Tabelle ist auf 513 Zeilen/25 Spalten geprüft, neue Mitlaufspalten am Tabellenende; Methodik-Render zeigt Abschnitt 10 sichtbar auf Seite 14.


## Antwortdeckungs-/Einzelpunktbegründungs-Gate

- Ist inventarisiert: `toolbox/legal/config/hw3d_knowledge_layers.json`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/private_schriftsatz_notice_blocks.json` Version `20260519g`, der jeweilige Ubuntu-Installer-Spiegel und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` enthalten den neuen Antwortdeckungsvertrag.
- Der Baustein verlangt, Gerichts-, Behörden-, Krankenkassen- und Gegnerschriftsaetze gegen die konkreten vorherigen Kläger-/Antragstellerpunkte zu mappen.
- Inventarisierte Pflichtfelder: vorheriger Punkt, Kernbegriff, Antwortstelle, Quelle/Seite/Absatz/Zeile, Norm-/Paragrafenanker, Zuständigkeitsbezug, Gegenargument, Ergebnis und offener Rest.
- Inventarisierte WH3D-Früchte: `antwort_luecke`, `thema_verfehlt`, `normanker_fehlt`, `quelle_fehlt`, `zustaendigkeit_ungeklaert`, `textbausteinrisiko`, `richterschutz_pauschal`, `nicht_beschiedener_teilpunkt`.
- Das Sprachprofil führt Realfall-Suchsignale wie Existenzgründer, 30-Prozent-Leistungsminderung, AOK-/Gesundheitsleistungsgründe, PKH/Beistand und ungeklaerte Zuständigkeit.


## Ausblendungs-Steigerungslogik / AMT-V

- Ist inventarisiert: `toolbox/legal/config/ausblendung_escalation_taxonomy.json`, `toolbox/legal/jurabibliothek/config/ausblendung_escalation_sources.json`, `toolbox/legal/config/hw3d_knowledge_layers.json`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/private_schriftsatz_notice_blocks.json` Version `20260519h`, Tesseract-User-Words, die Ubuntu-Installer-Spiegel und die Smokes `test_realfall_amt_iv_antwortdeckung_neusicht.py` / `test_realfall_amt_iv_ausblendung_joinqueue.py`.
- Inventarisierte Stufen: 1 Antwortluecke, 2 entscheidungserheblicher Kern, 3 wiederholt, 4 nach direktem Hinweis, 5 beharrlich nach Kenntnislage.
- Jurabibliothek wurde mit 12 amtlichen Quellen und 31 Textfragmenten erweitert; Fetch-Fehler 0; Report `reports/egmr_bverfg_quellenpaket_2026-05-19.*`.
- Der AMT-V-Lauf liegt getrennt unter `[lokaler Pfad]` und nutzt aus KORR1 nur SGP/SGF/LSG/BSG.
- Zähler: SGP 296 Zeilen/321 Früchte, SGF 217/381, LSG 188/276, BSG 483/691, gesamt 1.669; Stufe 2 = 897, Stufe 3 = 15, Stufe 4 = 757; Joinqueue 1.669 Zeilen/32 Gruppen.
- Patientenstelle und BVerwG sind in diesem AMT-V-Lauf nicht enthalten.


## AMT-IV-Neusicht Ausblendungsfrüchte

- Ist inventarisiert: `toolbox/legal/realfall_amt_iv_antwortdeckung_neusicht.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_amt_iv_antwortdeckung_neusicht.py` und Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_amt_iv_antwortdeckung_neusicht.py`.
- Der Lauf liest bestehende KORR1-Gerichtstabellen read-only, verweigert Ausgaben im Eingabe-/Korrekturordner und schreibt getrennte Prüfartefakte in `[lokaler Pfad]`.
- Inventarisierte Outputs: Gesamt-CSV/XLSX `antwortdeckung_ausblendungsfruechte_sgp_sgf_lsg`, Empfänger-CSV/XLSX für SGP/SGF/LSG, Summary CSV/XLSX/JSON und `00_NEUSICHT_README.md`.
- Inventarisierte Zähler: SGP 296 Tabellenzeilen/321 Ausblendungsfrüchte, SGF 217/381, LSG 188/276, gesamt 978; alle Ausblendungsfrüchte haben Status `ausblendungsverdacht_antwortdeckung_pruefen` und 21 Spalten.


## AMT-IV-Ausblendungs-Joinqueue

- Ist inventarisiert: `toolbox/legal/realfall_amt_iv_ausblendung_joinqueue.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_amt_iv_ausblendung_joinqueue.py` und Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_amt_iv_ausblendung_joinqueue.py`.
- Der Lauf erzeugt aus den 978 Ausblendungsfrüchten drei Anschlussprojektionen: WH3D-Knoten/Kanten, Mahnwesen-Queue und Schriftsatz-Queue.
- Inventarisierte Ausgabe: `[lokaler Pfad]`.
- Dateien: `ausblendung_joinqueue.csv/.xlsx` mit 978 Zeilen/34 Spalten, `ausblendung_joinqueue_summary.csv/.xlsx/.json` mit 24 Empfänger/Kategorie-Gruppen, `mahnwesen_joinqueue.csv` mit 978 Zeilen/9 Spalten, `schriftsatz_joinqueue.csv` mit 978 Zeilen/11 Spalten, `wh3d_ausblendung_join_nodes.json` mit 978 Knoten/978 Kanten und `ausblendung_joinqueue_review.html` als lokale klickbare Review-Leinwand mit Suche, Filtern, Detailpanel, lokalen Entscheidungschips und JSON-Export.


## AMT-IV-P0-Zuständigkeit/Rechtsweg-Arbeitsfassung

- Ist inventarisiert: `toolbox/legal/realfall_amt_iv_p0_zustaendigkeit_workdraft.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_amt_iv_p0_zustaendigkeit_workdraft.py` und Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_amt_iv_p0_zustaendigkeit_workdraft.py`.
- Der Lauf liest die AMT-IV-Ausblendungs-Joinqueue read-only, zieht nur `zustaendigkeit_rechtsweg`, verweigert Ausgaben im Joinqueue-Quellordner und schreibt nach `[lokaler Pfad]`.
- Inventarisierte Zähler: 305 P0-Ausblendungen, SGP 92, SGF 107, LSG 106; 43 Blüten nach Empfänger/Quelltag mit Überlaengenmonaten bis 19.Mai.2026.
- Inventarisierte Artefakte: Detailqueue CSV/XLSX 305 Zeilen/20 Spalten, Kurzregister CSV/XLSX 43 Zeilen/9 Spalten, Mahnwesen-CSV 43 Zeilen/6 Spalten, `p0_zustaendigkeit_gegenueberstellung.html/.json` als klickbare Blüten-/Fruechtchen-Ansicht und `p0_zustaendigkeit_arbeitsfassung.md/.docx` als nicht-versandfreie Schriftsatz-/Mahnwesen-Arbeitsfassung.
- DOCX-Struktur, XLSX-Zähler und HTML-Script sind geprüft; lokaler Artifact-Tool-Blankseiten-Gap bleibt als Rendererproblem dokumentiert.


## Arbeitslisten-Wellen sind inventarisiert

- `00_META/AZUBI42_ARBEITSLISTEN_WELLEN_2026-05-18.md` führt die aktiven und gesperrten Arbeitsschichten als Master-Spickzettel.
- `toolbox/legal/config/azubi42_work_waves_2026-05-18.json` bildet dieselben Wellen maschinenlesbar für RAG/WH3D/Serverjobs ab.
- Wellen: AMT-IV-Korrekturlesen, Server-Quellen-/Paperless-Vollstaendigkeit, kompletter serverseitiger AMT-IV-Neulauf, Gerichtstext-/Tabellen-QM, Spezialansichten/Review-UI, Azubi42.de/Donation/Whistleblower, Automations-/Serverhygiene und gesperrte Später-Themen.
- Windows/Office-PDF-XPS bleibt für diesen Block ausgeschlossen.


## Wellen-Statuschecker

- Ist inventarisiert: `toolbox/legal/azubi42_wave_status_check.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/azubi42_wave_status_check.py` und Smoke `70_TESTS_AND_SMOKE/legal/test_azubi42_wave_status_check.py`.
- Der Baustein ist read-only, erzeugt JSON/Markdown-Statusreports in Runtime-/Arbeitsablagen, zaehlt explizite Server-Lager-/Sidecar-/Triage-/Runroot-Eingaenge, meldet Seitenstatistik/laengste Datei, Prozesse, Timer und Plattenstand und verweigert Ausgaben in AMT-/A-amt-Originalpfaden.
- Seit 2026-06-07 führt derselbe Vorcheck für explizite Quellordner einen deterministischen `scope_sha256`, `hashed_files`, Hash-Fehlerzähler und kleine `hash_samples`, damit der im Wellenvertrag geforderte Hash-/Datumsstand direkt am Scope belegt ist.
- `reports/azubi42_automation_wave_audit_2026-05-18.md` dokumentiert die Automationsbereinigung: `azubi42-arbeitslisten-12h` bleibt aktiv und nutzt den Wellenvertrag; alte 23-/42-Minuten-Heartbeats sowie alte `COUNT=1`-Crons sind pausiert.


## Master-TODOs sind inventarisiert

- `00_META/AZUBI42_MASTER_TODO_APP_SERVER_2026-05-18.md` führt 45 App-/Server-/RAG-/WH3D-/Paperless-/UI-/Automationspunkte aus Chat, Screenshots, Baustellenlisten und Reports.
- `00_META/AZUBI42_MASTER_TODO_AZUBI42_DE_2026-05-18.md` führt 30 Public-Site-Punkte für Buergerrechte/Aktenhelix, Donation, Whistleblower, Fachazubi-Katalog, Story/Demos und Build-QA.
- `toolbox/legal/config/azubi42_master_todo_index_2026-05-18.json` ist der maschinenlesbare Index für Wellen, RAG/WH3D und Automationsübergaben.
- Windows/Office-PDF-XPS, Corel und lokale Windows-Aufraeumaktionen sind nur als später gesperrte Punkte inventarisiert.


## AZUBI42.de Public-Build

- Ist inventarisiert: `20_EDITIONS/azubi42-de/website/index.html`, `20_EDITIONS/azubi42-de/website/css/site.css`, `20_EDITIONS/azubi42-de/website/js/site.js`, `20_EDITIONS/azubi42-de/website/data/fachazubis.json`, `20_EDITIONS/azubi42-de/website/data/public_actions.json`, `20_EDITIONS/azubi42-de/website/site_manifest.json` und `20_EDITIONS/azubi42-de/tools/build_site.mjs` erzeugen und beschreiben den Public-Build-Zweig; aktueller Live-Stand ist `2026.05.21.2` / `azubi42de-20260521-2`.
- Neue öffentliche Inhaltsbereiche sind Buergerrechte/Aktenhelix, Public-Werkzeugleiste mit 4 Fokus-Buttons, Donation-/Support mit gesperrt bis zum Nachweis Zahlungszielvertrag, Whistleblower mit Entwurf-kopieren/Download, offiziellen externen Meldestellen-Deeplinks für BfJ, BaFin, BfDI, BAFA, OLAF und EPPO, Kenntnis-/Pflichten-Hinweis und gesperrter AZUBI42-Second-Line-Checkbox bis echter Intake existiert, Abschnitts-CTA-Knöpfe und Story/Museum.
- Der private Intake-Baustein ist in `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `30_INSTALLERS/ubuntu24/config-templates/public-actions.private.example.json`, `.gitignore`, `30_INSTALLERS/ubuntu24/config-templates/README.md` und `70_TESTS_AND_SMOKE/ui/audit_public_actions_intake.py` inventarisiert; echte Accounting-/Notify-Werte bleiben ausschließlich in gitignorierter Runtime-Konfig.
- Der Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/` und `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/` ist synchron; `audit_azubi42_domain_site.mjs`, `audit_azubi42_domain_mobile.mjs`, `audit_public_actions_intake.py` und der gezielte Chrome-CDP-Whistleblower-Check prüfen Manifest, Sanitizing, Mobile-Layout, Public-Action-Konfig, externe Portale, private Endpoint-Logik und die neuen Public-Bloecke.
- Live-Deploy erfolgt über `toolbox/deploy/deploy_azubi42_domain_site_winscp.ps1 -FilesOnly`.


## AZUBI42.de Link-/Whistleblowerregel

- Ist inventarisiert: `20_EDITIONS/azubi42-de/website/js/site.js`, `20_EDITIONS/azubi42-de/tools/build_site.mjs`, `20_EDITIONS/azubi42-de/website/data/public_actions.json`, `20_EDITIONS/azubi42-de/website/site_manifest.json`, `20_EDITIONS/azubi42-de/website/index.html` und der Installer-Spiegel führen Build `2026.05.21.2` / `azubi42de-20260521-2`.
- Externe Donation-, Info- und Meldestellen-Links öffnen generell in neuem Tab mit `target="_blank"` und `rel="noopener noreferrer"`.
- Die sichtbare Rubrik heißt `Whistleblower`; `70_TESTS_AND_SMOKE/ui/audit_azubi42_domain_site.mjs` prüft Version, Linkattribute und Wording.


## Server-Timer-Ordnung

- Ist inventarisiert: `toolbox/legal/systemd/azubi42-jurabibliothek-sync.timer`, `toolbox/legal/systemd/azubi42-paperless-atom-index.timer` und `toolbox/legal/systemd/azubi42-jurabibliothek-vector.timer` sind 12-Stunden-Fenster statt Dauerfeuer.
- `40_INTEGRATIONS/paperless/sync/azubi42-paperless-sidecar-sync.timer` laeuft alle 30 Minuten, `40_INTEGRATIONS/paperless/cbtc/systemd/azubi42-cbtc-vm-watch.timer` alle 5 Minuten.
- Installer-Spiegel und Live-Systemd-Units sind synchronisiert; schwere Dev-/Index-Jobs duerfen Finallauf/WH3D nicht mehr ungeplant mit CPU/RAM konkurrieren.


## Paperless-Atomindex-Scope

- Ist inventarisiert: `toolbox/legal/paperless_atom_indexer.py` und der Ubuntu-Installer-Spiegel indexieren nach vorgelagertem Paperless-/Sidecar-Freigabefilter standardmaessig verlustfrei.
- Die frühere Meta-Standardausschlussliste ist deaktiviert; bewusste Ausschluesse laufen nur noch über `AZUBI42_PAPERLESS_EXCLUDE_META_RE` oder `--exclude-meta-regex`.
- Der Sense-/Privacy-Report sperrt jetzt auch `REVIEW_BEFORE_RAG` standardmaessig für Atomindex, RAG, WH3D und Helix.


## Paperless-Dublettenqualitaets-Audit

- Ist inventarisiert: `toolbox/legal/paperless_duplicate_quality_audit.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/paperless_duplicate_quality_audit.py` und Smoke `70_TESTS_AND_SMOKE/legal/test_paperless_duplicate_quality_audit.py`.
- Der Baustein ist nicht-destruktiv, redaktionsfähig und markiert nur kanonische/unterlegene OCR-Varianten für spätere RAG-/WH3D-Auswahl.
- Public-Reports entfernen Text-Samples rekursiv.
- `paperless_atom_indexer.py` nutzt Qualitaetsreports per `--quality-report`/`AZUBI42_PAPERLESS_QUALITY_REPORT`, damit unterlegene Varianten nicht mehr als gleichrangige Atomquelle laufen.
- Derselbe Importpfad nutzt Sinn-/Datenschutzreports per `--sense-privacy-report`/`AZUBI42_PAPERLESS_SENSE_PRIVACY_REPORT`, damit gesperrte Identitaetsbelege, private Review-Faelle und unlesbare Textlayer nicht in Atomindex/RAG/WH3D geraten; Live-Ablage für den Paperless-Webcontainer: `/opt/paperless/azubi42-share/toolbox/legal/` -> `/usr/local/share/azubi42/paperless/toolbox/legal/`; Smoke: `70_TESTS_AND_SMOKE/legal/test_paperless_atom_quality_filter.py`.


## Paperless-Dateinamen-/Datenschutz-Audits sind inventarisiert

- `toolbox/legal/paperless_filename_structure_audit.py` mit Installer-Spiegel und Smoke `70_TESTS_AND_SMOKE/legal/test_paperless_filename_structure_audit.py` prüft Datum, Seitenlabel, Versionsmarker, schwache Textseiten und kumulative Seitenserien; `toolbox/legal/paperless_document_sense_privacy_audit.py` mit Installer-Spiegel und Smoke `70_TESTS_AND_SMOKE/legal/test_paperless_document_sense_privacy_audit.py` trennt Identitaetsbelege, medizinische Belege, private Reise-/Alltagsbelege und leere OCR-Faelle vor RAG/WH3D.
- Beide Bausteine sind read-only; private Detailberichte werden nicht versioniert.


## Paperless-Cleanup-Nachlauf 2026-05-15

- Ist inventarisiert: `toolbox/legal/paperless_document_sense_privacy_audit.py`, `paperless_atom_indexer.py`, `run_paperless_atom_cycle.sh`, `amt_vorgang_pipeline.py`, `sgp_schriftsatz_register.py`, `aktenzeichen_timeline.py`, `spatial_jura_world.py`, `sgp_row_enrichment.py` und `sgf_row_enrichment.py` bilden jetzt eine durchgehende Kette aus bereinigtem Paperless-Stand, Sense-/Quality-Policy, Atomindex, AZ-Timeline/WH3D und SGP-/SGF-Langtabellen.
- Inventarzähler aus dem Serverlauf: 570 Atomdokumente, 2.124 Fragmente/Vektoren, 57 AZ-Knoten, 607 Punktflags, 4.845 Bundesanker-Hits, 1.190 SGP-Finalzeilen, 631 SGF-Finalzeilen.
- Die Vergleichs- und Kreuzcheckreports bleiben pfad- und inhaltsredaktiert; private Rohakten werden nicht inventarisiert.


## AZ-Dokumentbaum/Vorgang3D

- Ist inventarisiert: `toolbox/legal/aktenzeichen_timeline.py` führt im View-Vertrag `document_branch_tree`, damit jedes gescannte Dokument genau einmal als Baum-Ast unter primaerem AZ oder Review-Sammelast sichtbar wird.
- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` rendert diese Dokument-Aeste samt Punktflag-/Bundesanker-Früchten bevorzugt, laedt den letzten Serverlauf beim Bibliothek-Öffnen automatisch, bleibt für alte `horizontal_tree_lr`-Laeufe rueckwaertskompatibel und bietet volle Leinwand, Browser-Fullscreen, Pan/Drag, Auf/Zu je View, Fokus, Reset und Zoom.
- `10_SHARED_CORE/app_v27_multimedia/css/style.css` ist für sticky View-Steuerleisten und kollabierbare View-Koerper inventarisiert.
- `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `01_2_Navigation.js` und `view_start_menus/bibliothek_menu.js` sind mit linker `Vorgang3D`-Navigation, voller AZ-Baum-/Helix-Breite und `Jura-Welt`-Link inventarisiert.
- `toolbox/legal/spatial_jura_world.py` und der Installer-Spiegel sind für Fokus/Reset/Fullscreen, Sidebar-Details-Aufklappung sowie Kugel-Klick/Doppelklick mit Detailanzeige, Zentrierung und Zoom inventarisiert.


## Spezialansichten-Toolbox

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_2_Navigation.js`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/view_start_menus/bibliothek_menu.js`, `toolbox/legal/config/hw3d_knowledge_layers.json` und die Ubuntu-Installer-Spiegel haengen nur noch vorhandene AMT-VI-Artefakte in Toolbox, Bibliothek-Startmenü und linkes `Vorgang3D`-Menü.
- Inventarisierte Hauptziele: `Antwortdeckung Review 320`, `Rechtsmittel Review`, `Rechtsmittel 3D`, `Rechtsmittel Hin-Her`, Rechtsmittel JSON/CSV/Summary und der 17.Mai-Hin-Her-Stand nur als Alt-Dokument-Scope.
- Inventarisierte Runtime-Dateien: `10_SHARED_CORE/app_v27_multimedia/runtime/legal-jura/private/amt-vi/27_antwortdeckung_review_canvas/antwortdeckung_review_canvas_moegliche_antwortdeckung_320.html`, `..._summary.json`, `..._data.json`, `.../31_rechtsmittel_effektivitaet/hin_her_rechtsmittel_effektivitaet/hin_her_zeitstrahl_mehrspur.html`, `.json`, `_nodes.csv`, `rechtsmittel_effektivitaet_review.html`, `rechtsmittel_effektivitaet_summary.json`, `spatial_rechtsmittel_effektivitaet/spatial_jura_world.html` und `spatial_jura_world.json`.
- Alte 16.Mai-`coverage_gate_2026-05-16`-Hauptlinks sind gesperrt.
- HW3D-Regel `frontend_links_must_resolve_current_artifacts` verlangt vorhandene Shared-Core-/Server-/Installer-Artefakte oder sichtbare Baustellensperre.
- Der Bibliothek-Block `WH3D / RAG Regeln` zeigt `direct_recipient_year_coverage_guard`[private Angabe entfernt]`70_TESTS_AND_SMOKE/ui/audit_toolbox_special_views.mjs`.


## Eingebettete 3D-AZ-Helix-Interaktion

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js`, `10_SHARED_CORE/app_v27_multimedia/css/style.css`, die Ubuntu-Installer-Spiegel und `70_TESTS_AND_SMOKE/ui/audit_aktenzeichen_timeline.mjs` bilden den normalen Bibliothek-/AZ-Zeitstrahl-Pfad.
- Inventarisierte Nutzlasten: `data-node-json` für Baum-/Helix-Knoten, `data-fruit-json` für WH3D-Früchte/Fruechtchen, `aztimeline-detail-modal` für Detailanzeige, Doppelklick auf Baumknoten/Helix-Buchruecken und Klick auf Frucht als Oeffnungsaktionen.
- Das Modal zeigt Fundstellen, Dokumentzähler, Poison/Checks, Bundesanker, Punktachsen, Ursprungsdaten und bei ableitbarer numerischer Paperless-ID einen `Paperless-Dokument oeffnen`-Link.
- Die eingebettete Helix-Leinwand ist höher inventarisiert (`min-height: 560px; height: min(72vh, 680px)`), damit die Live-Ansicht nicht als abgeschnittene Vorschau erscheint.


## Startseiten-Inline-Faltgriffe sind inventarisiert

- `data-aztimeline-title-toggle` macht die Titelzeilen von `AZ-/Dokumentenbaum` und `3D-AZ-Helix` im Workspace selbst zum Auf-/Zu-Griff, `data-aztimeline-toggle-label` synchronisiert die sichtbaren `Auf`/`Zu`-Knöpfe, und `data-aztimeline-view-action="open-active-detail"` ersetzt den passiven `klickbar`-Chip durch einen echten Detailaufruf für den aktiven Eintrag.

## Startseiten-Bookcase-/LOD-Helix

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js`, `style.css`, `toolbox/legal/spatial_jura_world.py`, die AMT-VI-Rechtsmittel-3D-Runtime und der Ubuntu-Installer-Spiegel führen nun Layoutwahl (`Bookcase`, `Tiefenhelix`, `Regal`, `Ringe`), `data-label-visible`-Drosselung, aktiven Detailfokus und collision-aware Labels über `labelBudget`, `labelFits` und `drawNodeLabel`.
- Damit bleiben dichte 831er/1353er Vorgangswelten lesbarer, ohne Nutzdaten-Popups, Früchte/Fruechtchen oder Paperless-Aktionen zu verlieren.
- Smokes: `70_TESTS_AND_SMOKE/ui/audit_aktenzeichen_timeline.mjs`, `70_TESTS_AND_SMOKE/ui/audit_toolbox_special_views.mjs`.

## Startseiten-AZ-Panel-Collapse

- Ist inventarisiert: `data-aztimeline-collapsed="true"` versteckt jetzt `data-aztimeline-view-controls` und `data-aztimeline-collapsible` gemeinsam.
- `toggleAzTimelinePanel` setzt `aria-hidden`, entfernt Full-Canvas-Reste und setzt Full-Canvas-Knöpfe zurück.
- Dadurch bleiben bei geschlossenem `AZ-/Dokumentenbaum` oder geschlossener `3D-AZ-Helix` nur Kopfzeile und echte Aktionsknöpfe sichtbar; Such-/Layout-/Fokus-/Reset-/Zoom-Leisten und Canvas-Reste sind aus dem Layout entfernt.
- Smoke: `70_TESTS_AND_SMOKE/ui/audit_aktenzeichen_timeline.mjs`.

## Rechtsmittel-Ansichten-Interaktion

- Ist inventarisiert: `toolbox/legal/spatial_jura_world.py`, `toolbox/legal/realfall_hin_her_zeitstrahl_mehrspur.py`, `toolbox/legal/config/hw3d_knowledge_layers.json`, die AMT-VI-Runtime unter `10_SHARED_CORE/app_v27_multimedia/runtime/legal-jura/private/amt-vi/31_rechtsmittel_effektivitaet/` und der Ubuntu-Installer-Spiegel führen Detailmodalen, Popup-Aktionen, Markerzahlen aus `fruit_badge`/Stufe/Risiko und Paperless-Links für numerische Paperless-IDs.
- Inventarisierte Zähler aus dem aktuellen Lauf: Hin-Her 1353 Ereignisknoten, 1331 datiert, 5 Lanes, 1353 echte Paperless-URLs aus dem Fullread-Join-Index, 262 eindeutige Paperless-Dokumente; Spatial 831 Dokumente, 1353 Tabellenfrüchte, 15 Empfänger, 4001 Kanten, 1353 Tabellenfrucht-Paperless-URLs und 262 eindeutige Paperless-Dokumente aus dem Fullread-Join-Index.
- HW3D-Regel `view_markers_must_open_payload_detail` sperrt dekorative Marker ohne Nutzdaten-Popup.
- Smoke: `70_TESTS_AND_SMOKE/ui/audit_toolbox_special_views.mjs`, `70_TESTS_AND_SMOKE/ui/clicktest_spatial_rechtsmittel_view.mjs` und `70_TESTS_AND_SMOKE/ui/clicktest_hin_her_rechtsmittel_view.mjs`.


## Hin-Her-Mehrspur-Zuordnung

- Ist inventarisiert: `toolbox/legal/realfall_hin_her_zeitstrahl_mehrspur.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_hin_her_zeitstrahl_mehrspur.py`, Runtime-HTML/JSON/CSV und Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_hin_her_zeitstrahl_mehrspur.py`.
- Der Baustein nutzt Manifestfelder plus materialisierte Sidecar-Texte für die Spurlogik, lässt bekannte Paperless-Dokumente nicht als finale `Unklar`-Lane stehen, schreibt `lane_reason` und erzeugt Paperless-Detail-Links.
- Aktueller Serverlauf: 831 Dokumentpunkte, 23 Spuren, 0 `Unklar`-Lanes, 0 sichtbare `Unklar`-Labels, 831 Paperless-Links.
- Manifestzeilen erzeugen keine Schein-Früchte; echte Früchte/Fruechtchen kommen nur aus Tabellen-/Flagquellen per Paperless-Dokument-ID, Seite und Anker.


## Sidebar-Kopfgleichlauf

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/css/style.css` und der Ubuntu-Installer-Spiegel stylen alle linken `sidebar-section-collapsible`-Koepfe mit derselben Soundscape-Paneloptik aus akzentuierter Kante, Radialfläche, Icon-Pill, Caret-Pill und Hover-/Focus-Zustand.
- Browser-Smoke: 10/10 Sidebar-Panels und 10/10 Accordion-Koepfe aktiv.


## Gesamtvorgang-Tabellenadapter v2

- Ist inventarisiert: `toolbox/legal/gesamtvorgang_table_v2_builder.py` erzeugt aus den verlustfreien SGP-/SGF-Finaltabellen eine einheitliche Schema-Arbeitsfassung für Beleganker, Kausalkette, strukturierte Kausalfelder, Forderung, Mahnwesen, Zahlungsabgleich und WH3D-Früchte.


## Final-Print-/Export-Schutz 2026-05-15

- Ist inventarisiert: `toolbox/legal/final_print_package.py` verarbeitet den Paperless-clean-Tabellenstand, QM-Report, Mahnwesen und Universalblock in ein privates Druck-/Anlagenpaket; `toolbox/legal/word_pdf_export_guard.ps1` stellt für lokale Word-COM-Exports einen geschützten Temp-/Backup-/Größencheck-Pfad mit Print-/Screen-Optimierung, optionalem PDF/A, stabiler Dateigrößenprüfung und verifiziertem Nach-Öffnen bereit.
- Private Druckartefakte und Rohakten bleiben ausserhalb des Repos.

## DOCX-Render-Guard

- Ist inventarisiert: `toolbox/legal/word_docx_render_guard.ps1`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/word_docx_render_guard.ps1` und Smoke `70_TESTS_AND_SMOKE/legal/test_word_docx_render_guard_static.py`.
- Der Guard ist ein lokales Windows-Werkzeug für Word-COM-PDF-Export plus PyMuPDF/Pillow-Seitenrender und Kontaktblatt; interne Exportpfade werden kurz gehalten, damit Word-COM nicht an Pfadlaengen scheitert.


## Realfall-Human-Finalprint-Paket

- Ist inventarisiert: `toolbox/legal/realfall_review_final_print_package.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_final_print_package.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_final_print_package.py` und Report `reports/realfall_review_final_print_package_2026-05-17.md`.
- Der Baustein erzeugt aus der Human-Sync-Finalprep-Stufe eine Review-Finalprint-Vorstufe mit Hashregister, Paket-Audit, Excel-Smoke, DOCX-Render-Guard-Auswertung, Review-Gesamt-Empfängerpaket, 5 Blockpaketen und Azubi-Lernnotiz.
- Lokaler Lauf: 143 Entscheidungen, 192 Seitenrollen, 59 Paperless-Dokumente, 13/13 Kernartefakte, 0 harte Paketfehler; Paket-Render: Schriftsatz 256 PDF-Seiten, Anlagenregister 44 PDF-Seiten; Nachlauf: 8 Gate-QA-Dateien in `00_TABELLEN/Review` ergänzt.
- Versandstatus bleibt bewusst `nicht_versandfrei`.


## Realfall-Kurzfassung/Verdichtung

- Ist inventarisiert: `toolbox/legal/realfall_review_final_print_digest.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_final_print_digest.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_final_print_digest.py` und Report `reports/realfall_review_final_print_digest_2026-05-17.md`.
- Der Baustein erzeugt einen 5-seitigen Kurzschriftsatz plus vollzaehlige Anlagen A-E.
- Die 5 Seiten sind Frontvortrag mit 26 Schwerpunktpunkten; die vollständige Belegspur bleibt in Anlage A mit 143/143 Punkt-IDs, Anlage B mit 192/192 Seitenrollen und Anlage E mit Human-Sync-Finalprep-Volltabellen plus Gate-QA-Spalten.
- Coverage-QA prüft ID-Gleichlauf, Kern-Volltabellen und Gate-QA-Dateien; aktueller Lauf: harte Fehler 0, Hashregister 56 Zeilen, Kurzfassung-PDF 5 Seiten.


## Realfall-Empfängerlogik

- Ist inventarisiert: `toolbox/legal/realfall_review_recipient_logic_package.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_recipient_logic_package.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_recipient_logic_package.py` und Report `reports/realfall_review_recipient_logic_package_2026-05-17.md`.
- Der Baustein erzeugt aus der Kurzfassungsstufe sechs Empfängerpakete für SGP, SGF, BVerwG, BVerfG, EGMR und Patientenstelle.
- Papier ist nur Kurzschriftsatz-PDF plus Fokus-PDF; MD/DOCX bleiben Arbeitsfassungen.
- Aktueller Lauf: 228 Anlagenentscheidungszeilen, 70 Papier-Fokuszeilen, 6 Fokus-PDFs, je 12 Anlage-E-Volltabellen-Dateien, 143/143 Punkt-IDs, 192/192 Seitenrollen, 0 harte Fehler; Status bleibt `empfaengerlogik_review_finalprint_vorstufe_nicht_versandfrei`.


## Realfall-Versandfertig

- Ist inventarisiert: `toolbox/legal/realfall_review_versandfertig_package.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_versandfertig_package.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_versandfertig_package.py` und Report `reports/realfall_review_versandfertig_package_2026-05-17.md`.
- Der Baustein erzeugt aus der Empfängerlogik-Vorstufe die Versandfassung mit Kurzschriftsatz-DOCX/PDF, Fokusauszug-DOCX/PDF, Tabellenanlagen A/B/C/E, Versandregister und Hashregister.
- Aktueller Lauf: 143 Punkte, 192 Seitenrollen, 6 Empfänger, 156 Versandregister-Zeilen, 490 Hashregister-Zeilen, 0 harte Fehler, 0 Warnungen; ZIP (privat) `<PRIVATE_WORKDIR>/sgp_delta_1073_to_current_2026-05-17/10_VERSANDFERTIG.zip`, SHA256 `4ac181471020674dd762e6ffad9944497866c1d3db0756bf2316d35e783bf3dd`.


## Realfall-Blickwinkelkanone/Beklagtenvertreter

- Ist inventarisiert: `toolbox/legal/realfall_blickwinkelkanone_beklagtenvertreter.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_blickwinkelkanone_beklagtenvertreter.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_blickwinkelkanone_beklagtenvertreter.py` und Report `reports/realfall_blickwinkelkanone_beklagtenvertreter_2026-05-17.md`.
- Der Baustein verarbeitet die Versandfertig-Spur als Angriffskarten gegen einen harten Beklagtenvertreter.
- Aktueller Lauf: 675 Angriffskarten aus 143 Versandfertig-Schriftpunkten und 532 Human-Sync-Finalprep-Gate-QA-Tabellenpunkten; 606 Karten nicht blockiert, 69 Karten nach 3 Runden verloren, primaere Schwachstelle 69/69 `bundesanker_pruefen`.


## SGP-Delta-Quellenaudit

- Ist inventarisiert: `reports/sgp_delta_source_audit_2026-05-17.md` dokumentiert die Sperre des Delta-Eingangs `1073 -> 1190`.
- Die 1190er SGP-Quelle ist hash-identisch mit der verworfenen `2026-05-15_paperless_clean`-Quelle; die 117 rechnerischen Delta-Zeilen bleiben nur als `99_BLOCKED_ALTQUELLEN`-Preview.
- `toolbox/legal/sgp_schriftsatz_register.py`, `toolbox/legal/sgf_gerichtsschreiben_register.py`, ihre Ubuntu-Spiegel und die Smokes `test_sgp_schriftsatz_register.py`/`test_sgf_gerichtsschreiben_register.py` sind für Paperless-Sidecars mit echtem `document.file_name` nachgezogen.
- Der frische 17.05-Serverscope ist separat gezaehlt: 831 gefilterte Sidecars, 0 fehlend, laengste Datei 60 Seiten, 0 Dateien >100/>200 Seiten, SGP 296 kompakte Zeilen und SGF 236 kompakte Zeilen.
- Empfänger-, Anlagen- und Schriftsatzlogik werden daraus nicht nachgeschaerft, bis eine aktuelle Server-Volltabelle vorliegt.


## Sidecar-Originalname-Finaltabellen sind inventarisiert

- `toolbox/legal/sgp_row_enrichment.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/sgp_row_enrichment.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_sgp_row_enrichment.py` und Report `reports/sgp_delta_source_audit_2026-05-17.md`.
- Der Baustein loest `paperless_<id>/<Originalname>`-Quellenanzeigen auf `<id>/<id>.azubi42-legal-ocr.json` zurück.
- Der Serverlauf `coverage_gate_2026-05-17/finaltables-sidecar-originalname-recalc` liefert SGP final 296, SGF final 236 und Zeilenanker 532; Anker-QA 532/532 Normketten, Tatsachenanker und Quellenanker, Bundesanker 493/532, Risiko 498 mittel/34 hoch, Versandstatus 498 vorlaeufig/34 nein.
- Versandlogik bleibt bis Review der 34 Hochrisiko-Zeilen und 39 fehlenden Bundesanker gesperrt.


## Kanonischer Namensvertrag

- Ist inventarisiert: `toolbox/legal/config/hw3d_knowledge_layers.json`, Installer-Spiegel, `toolbox/legal/config/paperless_task_rules.json` und Installer-Spiegel.
- Die Regel gilt für Dateinamen, Ordnernamen, Buttonlabels, Bauteile, JSON-Keys, CSV-/XLSX-Spalten, Reporttitel, WH3D-Knoten und RAG-Begriffe.


## Realfall 17.05 Human-Sync-Finalprep mit Gate-QA

- Ist inventarisiert: `toolbox/legal/realfall_review_human_sync_finalprep_gate_qa.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_human_sync_finalprep_gate_qa.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_human_sync_finalprep_gate_qa.py` und Report `reports/realfall_review_human_sync_finalprep_gate_qa_2026-05-17.md`.
- Der Baustein haengt 532 korrigierte Zeilenanker als nicht-versandfreie Human-Sync-Finalprep-Tabelle mit 69 Gate-QA-Flags und 463 normalen Bestandszeilen ein; keine neue Datei-Review-Queue.


## Review-Finalprint-Vorstufe Download

- Ist inventarisiert: `reports/realfall_review_finalprint_vorstufe_download_2026-05-17.md`, lokaler Ordner (privat) `<PRIVATE_WORKDIR>/sgp_delta_1073_to_current_2026-05-17/09_REVIEW_FINALPRINT_VORSTUFE_DOWNLOAD`, Gesamt-ZIP (privat) `<PRIVATE_WORKDIR>/sgp_delta_1073_to_current_2026-05-17/azubi42_review_finalprint_vorstufe_download_2026-05-17.zip`.
- Enthalten sind 4 Einzel-ZIPs, Manifest, SHA256SUMS, Reports und QA-Zähler; Gesamt-ZIP SHA256 `d949a827eed216934607fdd8b02e15d726a5a05b412e8e3ccf61bd88270c8ea3`.


## Review-Gate 17.05

- Ist inventarisiert: `toolbox/legal/realfall_review_gate.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_gate.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_gate.py` und Report `reports/realfall_review_gate_17_05_2026-05-17.md`.
- Der Baustein vereinigt 34 Hochrisiko-Zeilen und 39 Bundesanker-offen-Zeilen zu 69 eindeutigen Gate-Zeilen, weil 4 Zeilen in beiden Mengen liegen.
- Gate-Aktionen: 30 `signal_neutralisieren`, 10 Bundesanker-Kandidaten, 28 `keine_bundesankerpflicht`-Marker und 1 Suchkaskade.
- Alle Gate-Ausgaben bleiben `nicht_versandfrei`; keine neue Datei-Review-Queue, sondern QA-Overlay auf den bekannten gefilterten Sidecar-/WH3D-Scope.


## AZUBI42.de Wiedereinsetzungs-Checker

- Ist inventarisiert: `20_EDITIONS/azubi42-de/website/index.html`, `website/css/site.css`, `website/js/site.js`, `website/js/detail.js`, `website/data/fachazubis.json`, `website/data/public_actions.json`, `website/site_manifest.json`, `20_EDITIONS/azubi42-de/tools/build_site.mjs`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/`, Fachazubi-Kataloge unter `40_INTEGRATIONS/fach-azubis/`, Shared-Core und Installer.
- Buildstand: `2026.05.21.2` / `azubi42de-20260521-2`.
- Der Baustein ist eine öffentliche Rechtswegweiche, kein Rechtsrat und kein Erfolgssimulator: echte Auswertung nur mit vollständiger A-Z-Akte in Paperless/Jura-RAG; Wiedereinsetzung, Anhoerungsruege, Wiederaufnahme, BVerfG- und EGMR-Vorstufe bleiben getrennte Pfade.
- RAG-/WH3D-Vertrag: `toolbox/legal/config/hw3d_knowledge_layers.json` (`post_judgment_repair_contract`), `toolbox/legal/config/language_packs/legal_de_language_profile.json`, OCR-Wortliste und `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md`.
- Smoke/Audit: `70_TESTS_AND_SMOKE/ui/audit_azubi42_domain_site.mjs`, `70_TESTS_AND_SMOKE/ui/audit_azubi42_domain_mobile.mjs`.


## AZUBI42.de Whistleblower-Normalform

- Ist inventarisiert: Build `2026.05.21.2` / `azubi42de-20260521-2` nutzt in eigenen Public-URLs, Slugs, Buttons, sichtbaren Labels, Download-Dateinamen und Statusmeldungen einheitlich `Whistleblower`.
- Der Begriff `Hinweisgeberstelle` ist nur als unveraenderter amtlicher Bestandteil externer Behörden-URLs oder Portaltitel erlaubt, insbesondere BfJ/BaFin.


## HW3D-Wissensvertrag

- Ist inventarisiert: `toolbox/legal/config/hw3d_knowledge_layers.json` speichert Glossar, Frucht-/Fruechtchen-Logik, Rollen-/Blickwinkelprofile, neutrale Grau-Basislinien, Lernterrain, Blickwinkelwaffen-Testregeln, strukturierten Kausalkettenvertrag, Dokumentgesamtblick-Regel und Inline-Bildanalyse-vor-OCR/RAG-Regel.
- `spatial_jura_world.py`, `hw3d_model_pipe.py` und `hw3d_observatorium.py` lesen denselben Vertrag, damit RAG, Zusatzmodell und Observatorium nicht unterschiedliche Charakter-/Rollenregeln nutzen.


## Gesamtvorgang-Tabellenvertrag

- Ist inventarisiert: `toolbox/legal/config/gesamtvorgang_table_schema_v2.json` speichert Schema-Spalten für Ordnungsdaten, Beleganker, Kausalketten, strukturierte Kausalfelder, Mahnwesen, Forderungen, Zahlungsausgleich, WH3D-Früchte und QM.
- `toolbox/legal/table_schema_probe.py` schreibt CSV/Markdown/XLSX-Proben.
- Die Server-Frontend-Abnahme ist im Vertrag auf echte bereinigte Paperless-/Sidecar-/WH3D-Arbeitsfalldaten aus Sicht von `@b:42.chat` festgelegt; synthetische Daten bleiben nur Unit-Smokes.


## Benchmark-Quellenvertrag

- Ist inventarisiert: `toolbox/legal/config/benchmark_sources_public_cases.json` speichert amtliche Benchmarkquellen, Split-Regeln, Copyright-/Privacy-Regeln, Bewertungsmatrix, `strict_answer_schema` und `training_fixes` für lokale Jura-/Paperless-/WH3D-Systemkalibrierung.
- Das Schema erzwingt Normkette, Ermaechtigungsgrundlagenwechsel, Belegankertabelle, Subsumtion und Unsicherheiten als getrennte Felder und deckelt Scores, wenn diese Teile fehlen.
- Die Training-Fixes ziehen aus KV 2549 feste NRW-Prozessrechtsanker für §80-Abs.5-Eilrechtsschutz, §112 JustG NRW, §§88/122 VwGO, §110 JustG NRW und VwVG-NRW-Zwangsgeld.
- Der Vertrag nennt nur öffentliche Quellen-URLs und Metadaten; Roh-PDFs, Volltexte, Loesungsteile und private Auswertungen bleiben Runtime.

## Legal-Benchmark-Selbsttest

- Ist inventarisiert: `toolbox/legal/legal_benchmark_selftest.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/legal_benchmark_selftest.py` und Report `reports/legal_benchmark_selftest_2026-05-16.md`.
- NRW-LJPA KV-Nr.
- 2712 zaehlt 15 Seiten, Aufgabenteil 1-11, Prüferteil 12-15 und laengste Seite 3.827 Zeichen; Score 24/28.
- NRW-LJPA KV-Nr.
- 2549 zaehlt 16 Seiten, Aufgabenteil 1-12, Prüferteil 13-16 und laengste Seite 3.857 Zeichen; Score 27/28.
- Private Task-/Loesungstexte und Blindscore bleiben Runtime.
- Zwei Einzelblindfaelle sind bestanden, aber kein Staatsexamen-Gesamtnachweis.

## Legal-Education-Serverimport

- Ist inventarisiert: `toolbox/legal/jurabibliothek/config/legal_education_sources.json`, `egmr_bverfg_materials.py`, `jurabibliothek_vector_worker.py`, `hw3d_model_pipe.py` und `hw3d_observatorium.py` bilden den aktuellen Lernstand.
- Live-Stand 2026-05-16: 12/12 Quellen, 167 Fragmente, 167 Vektoren, 5/5 HW3D-Modellslots bereit; ein einzelner Blindfall ist bestanden, aber kein Staatsexamen-Gesamtnachweis.

## Coverage-Gate-Count-Check

- Ist inventarisiert: `toolbox/legal/coverage_gate_count_check.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/coverage_gate_count_check.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_coverage_gate_count_check.py` und Report `reports/coverage_gate_count_check_2026-05-16.md`.
- Der Serverlauf `coverage_gate_2026-05-16` meldet 14/14 harte Zählergleichungen ok; die freigegebene Verarbeitungskette ist 1.443 Paperless-Dokumente/Sidecars/Sense-Records -> 831 Atom-/WH3D-Dokumente -> 831 Spatial-Dokumentknoten -> 379 Timeline-Dokumente mit Referenzen -> 64 AZ-Knoten/874 Punktflags.
- Zwei übergroße Importkandidaten bleiben mit 307/744 Seiten als Review-Rest gesperrt.


## Realfall-Zeilenanker-Tabelle

- Ist inventarisiert: `toolbox/legal/realfall_zeilenanker_table.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_zeilenanker_table.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_zeilenanker_table.py` und Report `reports/realfall_zeilenanker_summary_2026-05-16.md`.
- Der Serverlauf `coverage_gate_2026-05-16/realfall-zeilenanker` erzeugt 1.821 private Tabellenzeilen mit Normkette, Tatsachenanker, Quelle/Seite/Absatz, Blickwinkel, Gegenprobe, Kausalfolge, Risiko, nächstem Prüfschritt, Anlagenzeile und Schriftsatzblock.
- 1.678 Zeilen sind vorlaeufig ankerfähig, 143 bleiben Review ohne Versandfreigabe.
- Private Artefakte liegen als CSV und XLSX vor; XLSX entsteht per `openpyxl` oder stdlib-Fallback.


## Realfall-Hochrisiko-Review-Queue

- Ist inventarisiert: `toolbox/legal/realfall_review_queue.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_queue.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_queue.py` und Report `reports/realfall_review_queue_summary_2026-05-16.md`.
- Der Baustein liest die private Zeilenanker-Tabelle, extrahiert Hochrisiko-Zeilen und gruppiert sie nach Blockergrund für Human-Review vor Schriftsatz-/Anlagenbau.
- Serverlauf `coverage_gate_2026-05-16/realfall-review-queue`: 143 Review-Zeilen, 34 Spalten, 47 SGP, 96 SGF, 6 Gruppen (`signal_fehlend` 76, `signal_review` 58, `signal_offen` 4, `signal_unklar` 2, `signal_widerspruch` 2, `signal_ausblendung` 1).
- Die privaten Queue-Artefakte enthalten CSV/XLSX/Probe mit Zeileninhalt; Public-Reports enthalten nur Zähler und Gruppen.

## Realfall-P2-Entscheidungsmatrix

- Ist inventarisiert: `toolbox/legal/realfall_review_decision_matrix.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_decision_matrix.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_decision_matrix.py` und Report `reports/realfall_review_decisions_p2_2026-05-16.md`.
- Der Serverlauf für Scope `P2` entscheidet 85 Zeilen: 41 `belegen`, 44 `umformulieren`, 0 `freigeben`, 0 `gesperrt`.
- Die Entscheidungsmatrix bleibt private Runtime; Public-Reports enthalten nur Zähler, Gruppen und Entscheidungsarten.

## Realfall-P2-Bundesanker-Nachtrag

- Ist inventarisiert: `toolbox/legal/realfall_review_anchor_backfill.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_anchor_backfill.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_anchor_backfill.py` und Report `reports/realfall_anchor_backfill_p2_2026-05-16.md`.
- Der Serverlauf verarbeitet 41 P2-`belegen`-Zeilen aus SGP, alle im Cluster `bescheid_bekanntgabe_widerspruch`, und zieht reviewpflichtig den kuratierten Anker `BSG-2023-B9SB3-22R` nach.
- Die P2-Neuberechnung aus der gepatchten Queue ergibt 85/85 P2-Zeilen mit Bundesanker, 0 `bundesanker_missing` und 85 `umformulieren`.

## Realfall-P2-Umformulierungsqueue

- Ist inventarisiert: `toolbox/legal/realfall_review_neutral_queue.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_neutral_queue.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_neutral_queue.py` und Report `reports/realfall_review_neutral_queue_p2_2026-05-16.md`.
- Der Serverlauf erzeugt 85 neutrale Arbeitszeilen mit 57 Spalten: 85/85 Tatsachenanker, Quellenanker, Bundesanker und Gegenprobe vorhanden; Versandstatus bleibt 85/85 `nicht_versandfrei`.
- Vollqueue und Neutraltexte bleiben private Runtime; Public-Reports enthalten nur Zähler und Gruppen.

## Realfall-P3-Review und P2/P3-Prestaging sind inventarisiert

- `toolbox/legal/realfall_review_prestage_package.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_prestage_package.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_prestage_package.py` und Reports `reports/realfall_review_decisions_p3_2026-05-16.md`, `reports/realfall_review_neutral_queue_p3_2026-05-16.md`, `reports/realfall_review_prestage_package_p2p3_2026-05-16.md`.
- P3 nutzt die vorhandene Entscheidungsmatrix und Neutralqueue: 58/58 Zeilen werden `umformulieren`, alle mit Tatsachenanker, Quellenanker, Bundesanker und Gegenprobe, Versandstatus `nicht_versandfrei`.
- Das P2/P3-Paket führt 143 nicht-versandfreie P2/P3-Prestaging-Zeilen zusammen, validiert 0 Fehler, 0 doppelte Zeilen-IDs, P2 85, P3 58, SGP 47, SGF 96.
- Private Volltabellen bleiben auf Paperless; Forgejo/Jura erhält nur Public-Summaries und Gruppenartefakte.

## Realfall-P2/P3-Block-Reviewpaket

- Ist inventarisiert: `toolbox/legal/realfall_review_block_package.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_block_package.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_block_package.py` und Report `reports/realfall_review_block_package_p2p3_2026-05-16.md`.
- Der Serverlauf `coverage_gate_2026-05-16/realfall-review-block-package` erzeugt 5 Blockpakete und 143 private Einzelstellen aus 143 P2/P3-Prestaging-Zeilen: `forderung_anlage` 61, `hauptsache_anlage` 45, `zustaendigkeit_rechtsweg` 35, `frist_mahnwesen` 1, `gehoer_ausblendung` 1.
- Alle Einzelstellen bleiben `nicht_versandfrei`, `offen` und `einzelpruefung_offen_nicht_versandfrei`; Public-Artefakte enthalten nur Summary, Gruppen und Blocktabellen.

## Realfall-P2/P3-Einzelstellenentscheidungen sind inventarisiert

- `toolbox/legal/realfall_review_single_point_decisions.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_single_point_decisions.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_single_point_decisions.py` und Report `reports/realfall_review_single_point_decisions_p2p3_2026-05-16.md`.
- Der Serverlauf `coverage_gate_2026-05-16/realfall-review-single-decisions` entscheidet 143/143 Einzelstellen: `freigeben` 58, `bearbeiten` 52, `belegen` 33, `sperren` 0; 0 Validierungsfehler, P2 85, P3 58, SGP 47, SGF 96.
- `freigeben` ist nur review-nutzbar und bleibt `nicht_versandfrei`; Public-Artefakte enthalten nur Summary und Gruppen.

## Realfall-P2/P3-Reparatur und Blockentwurf sind inventarisiert

- `toolbox/legal/realfall_review_evidence_backfill.py`, `toolbox/legal/realfall_review_neutral_repair.py`, `toolbox/legal/realfall_review_block_draft.py`, Installer-Spiegel unter `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_repair_flow.py` und Reports `reports/realfall_review_evidence_backfill_p2p3_2026-05-16.md`, `reports/realfall_review_neutral_repair_p2p3_2026-05-16.md`, `reports/realfall_review_block_draft_p2p3_2026-05-16.md`.
- Serverlauf: 33 Belegnachzuege, 52 Neutralisierungen und 143 Blockentwurfszeilen, jeweils 0 Validierungsfehler; der Blockentwurf führt 58 `single_decision_review_nutzbar`, 33 `evidence_backfill` und 52 `neutral_repair` zusammen und bleibt 143/143 `nicht_versandfrei`.
- Private Volltabellen bleiben auf Paperless; Public-Artefakte enthalten nur Summary, Gruppen und Blockzähler.

## Realfall-P2/P3-Blockpunkt-Audit

- Ist inventarisiert: `toolbox/legal/realfall_review_block_point_audit.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_block_point_audit.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_block_point_audit.py` und Report `reports/realfall_review_block_point_audit_p2p3_2026-05-16.md`.
- Der Serverlauf `coverage_gate_2026-05-16/realfall-review-block-point-audit` prüft 143/143 Blockentwurfszeilen gegen Originalanker, Normkette, Quelle/Seite/Absatz, Bundesanker, Gegenprobe, Kausalfolge, Struktur-Gesamtzusammenhang und Reparaturqualitaet: `freigeben` 126, `bearbeiten` 17, `belegen` 0, `sperren` 0; harte Pflichtachsenfehler 0, 17 Nacharbeiten wegen `axis_repair_quality`, Versandstatus 143/143 `nicht_versandfrei`.
- Private Vollmatrix bleibt auf Paperless; Public-Artefakte enthalten nur Summary und Gruppen.

## Realfall-P2/P3-Neutral-Contextfix

- Ist inventarisiert: `toolbox/legal/realfall_review_neutral_repair.py` führt jetzt `repair_source_field` und `repair_quality_flag`, damit Kurzmarker/generische Kerne auf bessere Kontextanker wie `beleganker_detail` ausweichen.
- Servernachlauf `coverage_gate_2026-05-16/*-contextfix`: 52/52 Neutralreparaturen `tragfaehiger_neutralanker`, Quellen `neutral_kernformulierung` 35 und `beleganker_detail` 17; Blockentwurf 143/143, Blockpunkt-Audit 143/143 `freigeben`, Axis-Failures 0, Versandstatus 143/143 `nicht_versandfrei`.
- Report: `reports/realfall_review_contextfix_p2p3_2026-05-16.md`.

## Realfall-P2/P3-Schriftsatz-Reviewfassung

- Ist inventarisiert: `toolbox/legal/realfall_review_schriftsatz_reviewfassung.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_schriftsatz_reviewfassung.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_schriftsatz_reviewfassung.py` und Report `reports/realfall_review_schriftsatz_reviewfassung_p2p3_2026-05-16.md`.
- Der Serverlauf `coverage_gate_2026-05-16/realfall-review-schriftsatz-reviewfassung-contextfix` erzeugt 143 private Reviewpunkte und 286 Satz-/Anlagenprüfzeilen; 0 Validierungsfehler, 286/286 `review_nutzbar`, Axis-Failures 0, Versandstatus 286/286 `nicht_versandfrei`.
- Public-Artefakte enthalten nur Summary und Blockzähler.

## Realfall-P2/P3-Satzentscheidungen P1 sind inventarisiert

- `toolbox/legal/realfall_review_sentence_decisions.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_sentence_decisions.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_sentence_decisions.py` und Report `reports/realfall_review_sentence_decisions_p1_2026-05-16.md`.
- Der Serverlauf `coverage_gate_2026-05-16/realfall-review-sentence-decisions-p1` verarbeitet aus 286 Satzmatrixzeilen zuerst `forderung_anlage` und `hauptsache_anlage`: 212 Entscheidungszeilen, `behalten` 106, `schaerfen` 106, `belegen` 0, `sperren` 0, 0 Validierungsfehler, Versandstatus 212/212 `nicht_versandfrei`.
- Private Vollmatrix/XLSX/Probe bleiben Paperless; Forgejo/Jura enthält nur Public-Summary und Gruppen.

## Realfall-P2/P3-Satzschaerfung und Restblockentscheidung sind inventarisiert

- `toolbox/legal/realfall_review_sentence_sharpen.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_sentence_sharpen.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_sentence_sharpen.py` und Report `reports/realfall_review_sentence_sharpen_restblocks_2026-05-16.md`.
- Der Serverlauf `coverage_gate_2026-05-16/realfall-review-sentence-sharpen-p1` schaerft 106/106 P1-Schriftssaetze aus `forderung_anlage` und `hauptsache_anlage`; Label nachher 106/106 `keine`, Ankerqualitaet 106/106 `anker_und_label_sauber`, Versandstatus 106/106 `nicht_versandfrei`.
- Der Restblocklauf `realfall-review-sentence-decisions-p2` entscheidet 74 Restzeilen: `zustaendigkeit_rechtsweg` 70, `frist_mahnwesen` 2, `gehoer_ausblendung` 2; 37 `behalten`, 37 `schaerfen`, 0 `belegen`, 0 `sperren`, 0 Validierungsfehler.
- Private Vollmatrizen/XLSX/Proben bleiben Paperless; Forgejo/Jura enthält nur Public-Summaries und Gruppen.

## Realfall-P2/P3-Satzpaket-Reviewfassung

- Ist inventarisiert: `toolbox/legal/realfall_review_sentence_package.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_sentence_package.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_sentence_package.py` und Report `reports/realfall_review_sentence_package_2026-05-16.md`.
- Der Serverlauf `coverage_gate_2026-05-16/realfall-review-sentence-sharpen-p2` schaerft die restlichen 37/37 Schriftssaetze sauber.
- `coverage_gate_2026-05-16/realfall-review-sentence-package` kombiniert danach 286/286 Satzmatrixzeilen: 143 Anlagenzeilen aus `behalten`, 143 Schriftsatzsaetze aus `geschaerft`, Final-Labels 286/286 `keine`, Versandstatus 286/286 `nicht_versandfrei`, Validierungsfehler 0.
- Private Paket-CSV/XLSX/Probe bleiben Paperless; Forgejo/Jura enthält nur Public-Summary und Gruppen.

## Realfall-P2/P3-Satzpaket-Sichtprüfung und Schriftsatz-/Anlagenpaket sind inventarisiert

- `toolbox/legal/realfall_review_sentence_package_audit.py`, `toolbox/legal/realfall_review_schriftsatz_anlagen_package.py`, Installer-Spiegel unter `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/`, Smokes `70_TESTS_AND_SMOKE/legal/test_realfall_review_sentence_package_audit.py` und `70_TESTS_AND_SMOKE/legal/test_realfall_review_schriftsatz_anlagen_package.py`, Report `reports/realfall_review_schriftsatz_anlagen_package_2026-05-16.md`.
- Serverlauf Audit: 286/286 `sichtpruefbar`, 286 Originalseiten-/Absatzanker, 286 Source-Row-Matches, 143 Anlagenregisterzeilen, Fehler `keine`, Versandstatus 286/286 `nicht_versandfrei`.
- Serverlauf Paket: 143 Punktpaare, 5 Blockpakete, Versandstatus Punkte 143/143 und Bloecke 5/5 `nicht_versandfrei`, Validierungsfehler 0.
- Private Volltabellen/XLSX/Markdown bleiben Paperless; Forgejo/Jura enthält nur Public-Summary und Gruppen.

## Realfall-Human-Review-Leinwand

- Ist inventarisiert: `toolbox/legal/realfall_review_human_canvas.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_human_canvas.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_human_canvas.py` und Report `reports/realfall_review_human_canvas_2026-05-16.md`.
- Der Serverlauf `coverage_gate_2026-05-16/realfall-review-human-canvas` erzeugt private HTML/Data-JSON für 5 Bloecke, 143 Punkte und 286 Saetze; Funktionen sind Filter, Mehrfachauswahl, lokale Entscheidungen/Notizen, Modal, Screenshot-Anforderungsflag, JSON/CSV-Export, `Azubi fragt` und Ein-Klick-Reviewfluss.
- Die Einzelbuttons `freigeben & raus`, `bearbeiten & raus`, `belegen & raus`, `sperren & raus` setzen Entscheidung plus lokalen Sendestatus, blenden erledigte Stellen im offenen Fluss aus und exportieren `localSentAt`, `sendMode`, Problem-/Fragefeld, Seitenanker und Source-Row.
- Inline-Fragebuttons setzen dieselben Entscheidungen direkt aus den relevanten Woertern der Frage und speichern die geklickte `inlineChoice`; die blockbezogenen Optionen liegen im Payload als `inlineOptions`.
- Neu inventarisiert ist der Sync-Endpunkt `/api/legal/review/human-canvas/sync` in `azubi42_server.py`; er speichert Einzel-, Bulk-, Notiz- und Screenshot-Events privat als JSONL und Current-JSON, ohne Public-Summaries mit Akteninhalt zu befuellen.
- Der Assetpfad wird relativ zum Canvas-Ausgabeordner geschrieben; Nachlauf: 143/143 Assetpunkte, 143/143 `azubiAsk`, 0 fehlende Bilddateien.
- Die Arbeitskopie liegt zusätzlich login-geschützt im `azubi42-jura`-Webroot unter `runtime/legal-jura/private/coverage_gate_2026-05-16/`; Public-Summaries bleiben text-/pfadarm.
- Lokaler Chrome-Smoke rendert die echte HTML-Kopie.

## Realfall-Forderungs-/Anlagen-Override

- Ist inventarisiert: `toolbox/legal/realfall_review_schriftsatz_anlagen_package.py` und Installer-Spiegel führen `--force-block`/`--block-override-reason`; `realfall_review_human_canvas.py` führt `sourceBlockOriginal` und `blockOverrideReason` in Payload, Detail, Modal und Export.
- Der Override setzt die Paket-Verwendungsebene auf `forderung_anlage`, erhält die vorherige Heuristik als Originalblock und bleibt `nicht_versandfrei`.
- Servernachlauf: 143 Punkte in 1 Block `forderung_anlage`, Originalblockzähler 61/45/35/1/1, 143/143 Seitenbildpunkte, Validierungsfehler 0.
- Smoke erweitert: `70_TESTS_AND_SMOKE/legal/test_realfall_review_schriftsatz_anlagen_package.py` und `test_realfall_review_human_canvas.py`.
- Report: `reports/realfall_review_forderung_override_toolbox_2026-05-16.md`.

## Human-Review-Sync-Endpunkt

- Ist inventarisiert: `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py`, Canvas-Client `toolbox/legal/realfall_review_human_canvas.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_sync_api.py` und Report `reports/realfall_review_human_canvas_sync_2026-05-16.md`.
- Speicherziel: private Runtime `runtime/legal-jura/private/realfall-review-human-canvas/sync/human_review_decisions.jsonl` und `human_review_decisions_current.json`.

## Realfall-Human-Sync-Finalprep

- Ist inventarisiert: `toolbox/legal/realfall_review_sync_finalprep.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_sync_finalprep.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_sync_finalprep.py` und Report `reports/realfall_review_human_finalprep_2026-05-16.md`.
- Der Serverlauf führt 143/143 Human-Freigaben mit 192 seitenweisen Rollenhinweisen zusammen; Mehrseitenpunkte bleiben als Split-Prüfung markiert und gehen nicht als blind einheitlicher Punkt in die Final-Print-Vorstufe.

## Azubi42-Toolbox-Reviewlinks sind inventarisiert

- Shared-Core und Ubuntu-Installer spiegeln `01_1_Layout.js`, `09_1_ToolManager.js`, `bibliothek_menu.js` und `css/style.css`.
- Linke Toolbox enthält Human Review 143, Human OCR-Loop, Human Confused-Loop und Template-Baum/Lebensbaeumchen; ToolManager öffnet externe Review-Leinwand oder springt in Bibliothek/Paperless/Mahnwesen und markiert das Ziel mit `.toolbox-focus-flash`.

## Realfall-Originalseiten-Assets sind inventarisiert

- `toolbox/legal/realfall_review_thumbnail_pipeline.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/realfall_review_thumbnail_pipeline.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_realfall_review_thumbnail_pipeline.py` und Report `reports/realfall_review_originalseiten_assets_2026-05-16.md`.
- Der Serverlauf `coverage_gate_2026-05-16/realfall-review-originalseiten-assets` liest die 286er Auditmatrix, erzeugt für 143/143 Reviewpunkte Assets, rendert 103/103 eindeutige Dokumentseiten aus 59 Paperless-Quelldateien und schreibt 206 JPG-Dateien; Renderfehler und Validierungsfehler 0.
- `realfall_review_human_canvas.py` ist mit `--asset-manifest` inventarisiert, sodass `Screenshot anfordern`, Detailfenster und Enlarge-on-click echte Seitenbilder nutzen.
- Private Bilder/Manifest bleiben Paperless; Forgejo/Jura enthält nur Public-Summaries.

## Bundesanker-Suchkaskade

- Ist inventarisiert: `toolbox/legal/config/hw3d_knowledge_layers.json` speichert `anchor_resolution_contract`.
- Fehlende Bundesanker werden zuerst gegen Jurabibliothek/lokale amtliche Quellen geprüft, danach per gezielter Websuche gesucht und in die Bibliothek eingelagert; Landesgerichtsanker sind nur gekennzeichnete, niedriger gewichtete Ersatzanker, wenn kein Bundesanker auffindbar ist.

## WH3D-Node-Count-Guard

- Ist inventarisiert: `reports/wh3d_node_count_guard_2026-05-16.md` dokumentiert die Serverzaehlung der Spatial-Jura-Welt.
- Die sichtbaren 5.273 Knoten bestehen aus 831 Dokumenten, 3.496 Anchor-Früchten, 874 Punktfrüchten, 64 Aktenzeichen, 5 Modellslots und 3 Root-/Statusknoten; Original-/Paperless-Abgleiche nutzen den Dokumentzähler, nicht die Gesamt-Knoten.

## Serverlauf 2026-05-15

- `openpyxl` wurde auf dem Azubi42-Hauptserver für Python 3.12 nachinstalliert, damit Tabellenproben und spätere Langtabellen serverseitig auch als `.xlsx` erzeugt werden können.


## Realcase-WH3D/Langtabellen-Lauf

- Ist inventarisiert: Die 2026-05-15-Neuberechnung nutzt den bereinigten Paperless-/Sidecar-Freigabestand als einzige Quelle für Atomindex, AZ-Zeitstrahl, Gesamtvorgang-v2-Tabelle, Mahnwesen, WH3D und Zusatzmodell-Pipe.
- Inventarzähler: 654 Dokumente, 2.491 Fragmente/Vektoren, 65 AZ-Knoten, 870 Punktflags, 6.947 Bundesanker-Hits, 535 Tabellenfrüchte, 383 Mahnwesen-Früchte, 5.995 WH3D-Knoten und 7.517 WH3D-Kanten.
- Die Abnahme ist nicht synthetisch: Das Live-Jura-Frontend wurde als `@b:42.chat` gegen denselben Realcase-Cache geprüft; Helix und liegender Baum zeigen je 65 Knoten, und ein Helix-Klick setzt genau einen aktiven Fokus.


## Mahnwesen-Realcase-Importbruecke

- Ist inventarisiert: `azubi42_server.py` führt einen runtime-privaten Importlayer für serverseitig erzeugte Mahnwesen-Ledger/Summary-Dateien.
- Die globale `/api/mahnwesen/*`-API merged lokale Nutzer-/Runtime-Eintraege mit importierten Realcase-Eintraegen, dedupliziert und rendert Templates aus demselben Bestand.
- Browserabnahme: 54 importierte Vorgänge, 383 Queue-Zeilen, 161 fällige Schritte, Template-Preview aus dem echten Backend erfolgreich.
- Absolute Arbeitsordner, private Inhalte und Aktenlisten bleiben ausserhalb dieses Inventars.


## Source-Coverage-/Nachimport-Werkzeuge sind inventarisiert

- `toolbox/legal/source_coverage_audit.py`, `source_content_relevance_audit.py`, `source_gap_word_batch_export.ps1`, `source_gap_image_text_pdf.py`, `source_gap_sheet_text_pdf.py` sowie die experimentelle, nicht freigegebene Excel-COM-Strecke `source_gap_excel_batch_export.ps1`.
- Alle Source-Gap-Tools lesen ihre privaten Root-Pfade nur noch aus `--roots-json` bzw. `AZUBI42_PRIVATE_ROOTS_JSON` (Template: `toolbox/legal/config/private_roots.template.json`), damit keine lokalen Amts-/Arbeitsordner im Repo landen.
- Der Vertrag trennt Rohquellen, Derivate, alte Sidecars, Paperless-Gate, Inhaltssignale, Word-Batch-PDFs, sichtbaren Mail-/Textinhalt ohne Base64-Anhaenge und Tabellen-Index-Fallbacks.
- Als allgemeines RAG-Coverage-Gate ist inventarisiert, dass große Folgeschritte erst nach frischem Stufenzähler Quelle -> Paperless -> Sidecar -> WH3D -> Tabellen laufen duerfen; Review/unlesbar/unsichere Herkunft bleibt blockierend.
- Private Detail-CSV/Arbeitsordner bleiben ausserhalb des Repos; öffentliche Inventare enthalten nur Zähler und Bauteilnamen.


## Bulk-Job-Spickzettel

- Ist inventarisiert: Vor Massenkonvertierung, Paperless-Import, Atomindex, WH3D und Tabellenlauf müssen Dateizahl, Hash-/Datumsstand, Dateitypen, Größenbild, Seitenstatistik und die laengsten Dateien nach Seitenzahl als privater Kontrollanker vorliegen.
- Laufzeitauffälligkeiten werden gegen diesen Stand geprüft; unplausibel lange Kandidaten werden als Review-Rest gesperrt.


## Paperless-Overlay-Positionsfix

- Ist inventarisiert: `40_INTEGRATIONS/paperless/ui/paperless-azubi42-overlay.js` speichert die lokale Position des schwebenden `A42`-Knopfs im Browser.
- Klick öffnet weiter das Panel; Click-hold verschiebt den Knopf, damit Paperless-Paginatoren und Dokumentsteuerung frei bleiben.
- Der Paperless-Dockerfile-Cache-Buster steht dazu auf `20260513d`.


## OCR-Human-Proof ist als Werkzeugbaustein inventarisiert

- `toolbox/legal/ocr_human_proof_docx.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/ocr_human_proof_docx.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_ocr_human_proof_docx.py`.
- `python-docx` wird erst beim DOCX-Build geladen; Runner ohne Dependency sollen die Smoke automatisch skippen und der Build-Pfad liefert eine klare Fehlermeldung.
- Ausgaben sind private Proof-DOCX/Manifestdateien ausserhalb des Repos; die Vergleichsseiten nutzen erkannte Original-Zeilenbänder, halten Prüfkopf/Unterschrift strikt auf separaten Seiten und markieren erkannte Herkunft im rechten OCR-Kontrollbild als kleine `von:`-Marke in der seltenen Proof-Farbe `#110D1F` ohne Textsidecar-Aenderung.
- Der Batchfilter `--include-name` ist für priorisierte Einzelproben aus großen OCR-Manifesten inventarisiert; `compare-final` erzeugt den finalen visuellen Gleichlaufcheck Original gegen OCR-Endprodukt mit Blend-/Heatmap-/Rot-Cyan-Artefakten und maskiert diese Farbe nur in der plausiblen oberen rechten Labelzone; ausserhalb wird ein Warnflag gesetzt.


## OCR-Dreiwege-Kontrolle ist als Werkzeugbaustein inventarisiert

- `toolbox/legal/ocr_threeway_compare_html.py` und Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/ocr_threeway_compare_html.py`.
- Sie erzeugt eine private HTML-Prüfansicht mit zwei gerenderten Vergleichsbildspalten und einer echten eingebetteten Paperless-Live-PDF-Spalte.
- Das Manifest markiert `right_column_mode=embedded_pdf`, `scroll_sync=left_middle_intersection_observer` und `quality_status=control_view_not_textlayer_approval`; Windows-Spiegel sind nur Sichtkopien der serverseitigen Ausgabe.


## Dokument-Text-/OCR-/Formular-Router ist als vorgeschalteter Sidecar-Baustein inventarisiert

- `toolbox/legal/document_text_router.py`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/document_text_router.py`, Smoke `70_TESTS_AND_SMOKE/legal/test_document_text_router.py`.
- Er nutzt pro Seite zuerst belastbaren Poppler-Textlayer und sonst lokale Tesseract-Bild-OCR; Formularfelder/Checkboxen und Herkunftslabels (`von wem`) werden deterministisch im JSON-Report markiert.
- Die Herkunftserkennung nutzt Seitenkopf, Seitenkontext, Dateiname/Pfad, Vorseitenkontext und optional ein lokales Woerterbuch, ohne externe KI-/Cloud-Dienste.


## Provenance-/Herkunftskontext ist als Grundvertrag inventarisiert

- `toolbox/legal/provenance_context.py`, `toolbox/legal/config/provenance_context.schema.json`, Installer-Spiegel `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/provenance_context.py` und Smoke `70_TESTS_AND_SMOKE/legal/test_provenance_context.py`.
- Der Vertrag gilt für OCR, RAG, Chat, Knoten, Blickwinkel, HW3D und Schriftsatzprüfung: Autor, Leser, Lage, Dokument, Seiten-/Absatzanker, Aktenzeichen, Rolle, Quelle und Konfidenz müssen mitgeführt werden; unbekannte Herkunft bleibt Warnzustand.


## Paperless-Jura-Taxonomie

- Ist inventarisiert: `40_INTEGRATIONS/paperless/taxonomy/paperless_legal_taxonomy.json`, `paperless_taxonomy_tool.py`, `paperless_tag_catalog_ui.json`, `40_INTEGRATIONS/paperless/tagging/paperless_legal_tag_rules.json`, `40_INTEGRATIONS/paperless/ui/paperless-azubi42-overlay.js`, `40_INTEGRATIONS/paperless/ui/azubi42_marker_profile_view.py`, `40_INTEGRATIONS/paperless/hooks/azubi42_paperless_semantic_handoff.py`, `40_INTEGRATIONS/paperless/tools/paperless_admin_inventory.py`, `paperless_apply_taxonomy.py`, `paperless_apply_tag_regex_profile.py`, `paperless_reprocess_batch.py`, `paperless_date_sanity.py` und die Smokes `70_TESTS_AND_SMOKE/legal/test_paperless_legal_taxonomy.py`, `test_paperless_overlay_tag_catalog.py`, `test_paperless_semantic_handoff.py` sowie `test_paperless_date_sanity.py`.
- Der Katalog führt 10 globale Regex-Kernachsen, 11 katalog-only Spezialtags, 7 Dokumenttypen, 8 Custom-Fields, 17 Punkt-/Erweiterungsachsen aus der 21/23-Punkte-Legende und 2 deaktivierte Workflow-Blueprints.
- Das Overlay laedt den strukturierten Tag-Katalog über `/api/azubi42/tag-catalog/`, zeigt Beschreibungen, Gruppenauswahl, `Mein Account`/`Global`, Dry-Run und Klick-Apply; globale Aktionen bleiben Superuser-pflichtig.
- Spezial-, harte Vorwurfs- und Stellen-Tags bleiben bewusst katalog-only und werden nicht blind als globale Automatik gesetzt.
- Der optionale Semantik-Handoff schreibt nach fertigem Sidecar einen Azubi42-RAG/HW3D-Queue-Job mit Kerntag-Vorschlaegen, Kataloggruppen und Weltklassen-Signalen, ohne harte Tags automatisch zu setzen.
- Die Datums-Sanity markiert Paperless-Datumsausreisser, generische Titel und Kopiesuffixe, damit Timeline/HW3D/Mahnwesen nicht mit falschen Datumsachsen arbeiten.
- Daneben führt das Overlay dokumentweise Markerprofile mit Mehrfarben-Pipette, Farbmasken-Unschaerfe `0..160`, Maskenvorschau, `Farbe rausfiltern` und `Neu speichern` über `/api/azubi42/marker-profile/`.
- Der Docker-Basisstand ist auf `paperless-ngx:2.20.15` gepinnt, nicht `latest`; der Updatevertrag umfasst Backup, `--pull`-Build, Migration-Check, Sanity-Checker und Live-Smokes.
- Der Admin-/API-Pfad liest Live-Gaps read-only, legt AZ42-Objekte idempotent an, kann das kuratierte `core_global_v2`-Profil gegen alte Paperless-Tags anwenden und gibt bei Bestandskonflikten einen Editierhinweis statt Doppelobjekte zu erzeugen.


## Sprachpaketgleichlauf

- Ist inventarisiert: Toolbox-Language-Pack, Paperless-Dictionary und Ubuntu-Installer-Spiegel führen dieselbe User-Words-Union mit 226 Begriffen; die konservative Patternliste steht bei 27 Eintraegen.
- Der Windows-Audit meldet Tesseract/Tessdata OK, `ocrmypdf`, `pdftotext`, Hunspell und Aspell fehlen lokal weiterhin und bleiben Server-/Paperless-Aufgabe.


## Betriebsnotiz Codex/Git


- `%USERPROFILE%\.codex\config.toml` führt jetzt den echten Git-Arbeitsbaum `[lokaler Arbeitsstand]` als eigenes trusted Codex-Projekt.
- Der lokale Git-Kontext liegt nicht im Oberordner `azubi42`, sondern in `runtime\forgejo_repo`; dort ist `main` mit `origin/main` synchron und der Forgejo-Remote erreichbar. Dieser Forgejo-Clone ist der führende Main.
- `ripgrep`, `GitHub CLI` und die separate OpenAI-Codex-CLI sind für die lokale Entwicklungsumgebung installiert. Wegen des blockierten WindowsApps-Ressourcenpfads greifen `rg` und `gh` über Shims unter `%LOCALAPPDATA%\OpenAI\Codex\bin`.
- `00_META\sync_local_azubi42_mirrors.ps1` aktualisiert die lokalen Spiegel `app_v27_multimedia`, `reports`, `linixserveredition\app_v27_multimedia` und `linixserveredition\reports` aus dem Forgejo-Main. Der Sync loescht keine lokalen Runtime-Daten.
- `00_META\azubi42_workday.ps1` ist der einfache Tagesbefehl für `status`, `sync`, `check` und `finish`; `00_META\ARBEITSALLTAG.md` ist die kurze Bedienanleitung. `00_META\check_python_syntax.py` prüft Python lokal per AST ohne Bytecode und verhindert, dass Windows-`__pycache__`-Sperren erneut den Standardcheck brechen; fehlende Forgejo-Schannel-Credentials machen den Push-Dry-Run zur Warnung statt zum Abbruch.
- `00_META\AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` ist das neue Arbeits-Bookmark für Codex, Azubi-RAG und Fachazubi-Bausteine: keine privaten Amts-/Arbeitsdaten in Forgejo/Matrix/Discourse, Arbeitsfassungen nur lose formatieren, Endformatierung auf Zuruf, begonnene Arbeit sauber abschließen.
- `70_TESTS_AND_SMOKE\security\scan_private_path_leaks.ps1` ist im normalen `azubi42_workday.ps1 check/finish` eingehakt und sperrt private Amts-/Download-/Meisterablage-Pfadmuster vor Push/Release.
- `00_META\ARBEITSALLTAG.md` verankert zusätzlich Status-Hygiene: Nach größeren Arbeitsbloecken wird der Git-Status in `gueltig`, `temp`, `runtime` und `offen` getrennt; Temp wird entfernt, gültige Arbeit in Commit-/Push-Schnitte geführt und offene Baustellen werden dokumentiert.
- `00_META\ARBEITSALLTAG.md` verankert zusätzlich Infrastrukturpflege: Serverdienste, Reverse Proxy, Zertifikate, Timer, Queues, Logs, Ports, Backups und lokale Werkzeuge werden regelmaessig inspiziert; Updates erfolgen nur mit Risikoabgrenzung, Backup-/Rollback-Pfad und Live-Nachprüfung.
- `.gitattributes` definiert die Repo-Zeilenenden explizit, damit Windows- und Linux-Arbeit nicht unbemerkt gemischte Dateiformate erzeugt.
- `.gitignore` blendet Laufzeitdaten, Test-Screenshots, Browser-/Pytest-Tempdaten, Deploy-Artefakte, Jurabibliothek-Arbeitsdaten, top-level Chrome-/Audit-Profile, Installer-Deploy-Runtime und App-Runtime-Privatpfade inklusive AZ-Zeitstrahl-Runs/-Browseruploads im Ubuntu-Installer-Appspiegel aus.
- Director-Templates (datenfrei): `60_RUNTIME_TEMPLATES/director/` führt Vorlagen für variable Prozessparameter und Raum-/Kanal-Listen; Fahrschule/Schule besitzen zusätzlich modulnahe JSON-Templates `PARAMETERS.template.json` und `ROOMS.template.json`. Quality-Gate: `legal_rulebook_loaded_first`. Smoke: `70_TESTS_AND_SMOKE/ui/audit_director_templates.mjs`.
- Director-Runbook/Vertrag (datenfrei): `00_META/AZUBI42_DIRECTOR_RUNBOOK_TAGES_SCHRIFTSAETZE.md` verankert Antwortform (Character) und Prüfregeln; `00_META/AZUBI42_DIRECTOR_ARBEITSMUSTER_KATALOG.md` fasst die Muster als Karten zusammen. Smoke: `70_TESTS_AND_SMOKE/ui/audit_director_templates.mjs` prüft Templates und Doku-Vertrag gemeinsam.
- HW3D/Observatorium-Anker (datenfrei, lokal): `00_META/AZUBI42_HW3D_JURA_LERNPIPELINE_2026-05-12.md`, `00_META/AZUBI42_SPATIAL_JURA_WORLD_BAUTEIL_2026-05-12.md`, `00_META/AZUBI42_HW3D_OBSERVATORIUM_2026-05-12.md` markieren Lernpipeline, Weltmodell und Observatorium als private Runtime-Ausgaben (pfadredaktiert, keine Rohakten).
- Jurabibliothek-Gap-Analyse ist inventarisiert: `reports/jurabibliothek_gap_analyse_2026-05-14.md` dokumentiert den Unterschied zwischen lokal aktivem App-Index, altem Fetch-Job-Stand, konfigurierten Quellen und fehlenden Zielbloecken. Inventarachsen: Normfundament, Sozialrecht/Jobcenter/Krankenkasse, Rechtsprechung, EGMR/HUDOC, BVerfG, Jura-Lernen, Berufsatlas/IHK, Kinderrechte, Verwaltung/eRV, Medizin/Patientenrechte und Paperless/HW3D-Kopplung.
- HW3D-Zusatzmodell-Pipe (datenfrei, lokal): `toolbox/legal/hw3d_model_pipe.py`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/hw3d_model_pipe.py` und `70_TESTS_AND_SMOKE/legal/test_hw3d_model_pipe.py` inventarisieren den Contract-Only-Prüfpfad für strukturierte Kausalketten, Widersprueche und Blickwinkel gegen Spatial-Jura-Welt, WH3D-/Tabellenvertrag, Benchmarkvertrag und Legal-Education-Fragmente. `--run-model`[private Angabe entfernt]`context`-/`thinking`-Rohspuren.
- Server-/Rechner-AMT-Connector (datenarm): `azubi42_server.py` inventarisiert `amt_connect` als geschützten Root-Alias-Vertrag mit Matrix-/Local-Freigabe, `amtconnect://...`-Resolver für Aktenzeichenlaeufe und API-Routen `/api/legal/amt-connect/roots` sowie `/api/legal/amt-connect/tree`. Nicht lesbare oder nicht erreichbare Root-Aliasse werden nur mit datenarmem Status inventarisiert, nicht automatisch ausgewaehlt und geben keine absoluten Pfade in Fehlermeldungen aus. `01_1_Layout.js`, `01_8_JuraBibliothek.js` und `bibliothek_menu.js` führen den neuen Connect-Block im Bibliothek-/OCR-Bereich. Nutzer sehen nur Aliasse und relative Pfade; private Rohpfade, Aktenlisten und Runtime-Ausgaben werden nicht dokumentiert. Smoke: `70_TESTS_AND_SMOKE/ui/audit_aktenzeichen_timeline.mjs`.
- Upload-/Klick-Smoke v27.2.154: `azubi42_server.py` inventarisiert `pdf_extract` und `image_ocr` als gleiche-Origin-Toolrouten; `09_1_PDFViewer.js` und `09_2_OCR_Engine.js` vermeiden externe CDN-Runtimes. `01_1_Layout.js` erlaubt gemischte Nutzeruploads für Text, HTML, Markdown, JSON, XML, Office-Dokumente, Tabellen, PDF, Bilder und Videos. `toolbox/legal/aktenzeichen_timeline.py` liest Bildsegmente über lokalen Tesseract-OCR mit optionaler Runtime-Tessdata und bleibt im Ubuntu-Installer gespiegelt. `toolbox/deploy/deploy_live_winscp.ps1` packt die Aktenzeichen-Timeline plus Enrichment-Helfer in den Live-App-Baum. `70_TESTS_AND_SMOKE/integrations/smoke_uploads_and_clicks.mjs` erzeugt neutrale Testfixtures für TXT, HTML, PDF, DOCX, XLSX und PNG, prüft Runtime-Upload, Chat-/Workspace-Import, X-Schließen, Bibliothek-Dateiauswahl, Baum und Helix.
- BuschCode-HW3D-Projektwelt v27.2.152: `toolbox/dev/project_world.py`, der Ubuntu-Installer-Spiegel, `/api/dev/project-world/status`, `01_1_Layout.js`, `01_5_BuschCode.js` und `buschcode_menu.js` bilden eine eigene Dev-Welt für Code, Server, Git, Tests, Release und FixIt-Früchte. Vertrag: `azubi42.dev.project_world.v1` plus kompakter UI-Vertrag `azubi42.dev.project_world.compact.v1`; keine Kopplung an die Jura-Spatial-World, keine privaten Rohpfade. Smoke: `70_TESTS_AND_SMOKE/ui/audit_buschcode_project_world.mjs`.
- Soundscape v27.2.148: `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_10_Soundscape.js`, `css/style.css`, `main.js` und `09_4_MediaParser.js` bilden den neuen Soundereignisvertrag. WebAudio erzeugt eigene Sci-Fi-/42-artige Kurzsounds; Presets, Lautstaerke, Sound an/aus und lokale User-Sounds bleiben clientseitig. Installer-Spiegel und Smoke: `70_TESTS_AND_SMOKE/ui/audit_soundscape.mjs`.
- Soundscape User-Menü v27.2.149: derselbe Baustein montiert einen User-Menü-Bereich mit Sound-Themensets, Sloteditor je Ereignis und Azubi-Shop-Modulsteinen. `40_INTEGRATIONS/soundscape/sound_theme_sets.catalog.json` dokumentiert installierte, lokale und geplante Soundpakete ohne gebuendelte Fremd-Audiodateien.
- Soundscape Interaktion v27.2.150: `ui-hover` ist als Ereignis-Slot ergänzt, normale App-Interaktion laeuft über einen zentralen Pointer-/Klickrouter, und die serverseitige Login-/Intro-Seite besitzt einen kleinen WebAudio-Router für Trailer, Felder und Login-Reveal. Browser-Autoplay-Regeln bleiben respektiert.
- Soundscape v27.2.153: Der Client nutzt einen hoerbaren WebAudio-Boost, trennt `ui-open`, `ui-close` und `ui-select`, erweitert den Pointer-/Klickrouter auf weitere echte UI-Ziele und führt `nav-soundscape` als normales standardmaessig eingeklapptes Sidebar-Accordion.
- Sidebar-Resize v27.2.151: `01_4_InterfaceChrome.js` nutzt für globalen Griff und Accordion-Rechtsgriffe denselben Sidebar-Breitenpfad; `css/style.css` vergrößert die Hitboxen, sperrt Textauswahl während des Ziehens und normalisiert Soundscape-Textfarben in hellen Themes. Section-Breiten werden nicht mehr persistiert. Smoke: `70_TESTS_AND_SMOKE/ui/audit_sidebar_accordion_browser.mjs`.
- Modellrouting-Transparenz 2026-05-12: Toolpfade werden sichtbar als `Toolpfad: ... (lokal)` gelabelt. `/api/*` unterscheidet fehlenden Login vs abgelaufene Sitzung; lokale Ollama/Azubi-401/403 werden als Zugriff-/Sessionproblem gemeldet.
- Modellrouting-Reparaturplan 2026-05-14: `localhost` darf keine entfernten `https://.../api/ollama`[private Angabe entfernt]`Login erforderlich` zeigt Chat/Modellblock eine klare Login-/Provider-Wechsel-Anleitung statt eines scheinbar zufälligen Modellfehlers.
- Modellrouting-Delta 2026-05-17: Server-Login-Gate 401 (`Login erforderlich.`) wird im Chat derzeit noch zu grob als "lokales Modell/Ollama/Auth" interpretiert. Reparaturziel: strukturierter 401-Fehlervertrag (`error.kind=azubi42_login_required` + login/logout/base_path), Preflight vor Modelllauf und praezise UI-Klassifizierung für alle Providerpfade über `/api/*`.
- Modellrouting-Delta 2026-05-18 (verifiziert): `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` gibt bei fehlender/ungültiger Web-Session für `/api/*` aktuell `401` mit JSON `{"error":{"message":"Login erforderlich."}}` zurück (ohne `error.kind`). Dadurch können `06_3_CloudFetch.js` (OpenAI/Google), `06_6_WebSearch.js`, `06_5_LocalFetch_Enhanced.js` und `02_1_ChatWindow.js` Server-Login nicht eindeutig von Provider-Auth unterscheiden. Fixziel bleibt: strukturierter Fehlervertrag + TTL-Preflight + providerneutrale UI-CTA.
- Browser-/Web-Knoten Selbsttest 2026-05-08: Upload-Modus defaultet pro Boot auf `Normal`, URL-only bleibt vor Snapshot/Modellrouting, und BrowserGateway-Navigation wartet auf `load`, damit Live-Screenshots realen Direktaufrufen naeher kommen. v27.2.137 macht den sichtbaren Screenshot-Frame selbst zur Browserfläche: Klicks und Mausrad-Scroll werden an Playwright gesendet, Session-Metadaten werden aktualisiert und der dynamische Live-Smoke prüft Scroll, Klick und erneuten Screenshot nach der Interaktion. v27.2.138 ergänzt kontrollierten Worker-Shutdown für BrowserGateway, Playwright-Kontexte und Service-SIGTERM. v27.2.139 erkennt vorhandene Windows-Playwright-Runtimes im Forgejo-Shared-Core oder Windows-Cache, wenn der lokale portable `runtime/ms-playwright` leer ist. Smoke: `70_TESTS_AND_SMOKE/ui/audit_input_routine_modes.mjs`, `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs`, `70_TESTS_AND_SMOKE/integrations/smoke_browser_gateway_live_page.mjs`. Selbsttest 2026-05-12: Live-Smoke lief lokal auch gegen `https://www.wetter.com/` (Session/Screenshot/Snapshot/Scroll/Click) ohne Fallback-Pfad. 2026-05-13: Live-Smoke akzeptiert Bare-Domains (z. B. `AZUBI42_BROWSER_SMOKE_URL=wetter.com`). 2026-05-14: Smoke redacted Screenshot-Data-URLs (`image_ok`/`image_chars`) für lesbare Logs. 2026-05-15: Selbsttest erneut grün (Default `https://example.com/` und `AZUBI42_BROWSER_SMOKE_URL=wetter.com`).
- Browser-/Web-Knoten Architekturplanlauf 2026-05-16: Zielarchitektur und Routing-/Sicherheitslinie für BrowserGateway (deterministischer Kern), WebSnapshot/Parsing, Discourse/FAQ/Behördenfreund und spätere mobile WebView sind konsolidiert: `00_META/AZUBI42_BROWSER_WEB_KNOTEN_ZIELARCHITEKTUR_2026-05-16.md`. Report: `reports/azubi42_browser_knoten_selbsttest_2026-05-16.md`.
- Browser-/Web-Knoten Selbsttest 2026-05-17: Report `reports/azubi42_browser_knoten_selbsttest_2026-05-17.md`. Selbsttest-Runner `70_TESTS_AND_SMOKE/integrations/run_browser_web_node_selftest.ps1` führt Audits + Live-Smoke gegen `https://example.com/` und `wetter.com` aus; URL-Bare-Domains mit Query/Fragment sind abgesichert über `70_TESTS_AND_SMOKE/ui/audit_url_detection_edges.mjs`.
- Modellwechsel-Klicktest 2026-05-09: Der aktive Modellselector gewinnt bei jedem Select-`change` gegen alte Sticky-Provider. OpenAI, Codex Native, lokale/Ollama-Auswahl und Rueckkehr zu OpenAI bleiben dadurch sichtbar und technisch getrennt; nur Startup-/Autoscan-Aufrufe ohne Event duerfen gespeicherte Sticky-Provider wiederherstellen.
- BundID/eID v27.2.147 plus SSP-Paket 2026-05-10: Das Server-Login zeigt eine eigene BundID/eID-Kachel und meldet zusätzlich die lokale Client-Bereitschaft über `/api/auth/bundid/readiness`: PC/SC, AusweisApp-Installation/Prozess und lokaler eID-Status-Port werden ohne Ausweis-, PIN- oder Personendaten geprüft. Ein erreichbarer AusweisApp-Status-Port zaehlt als laufender Client, auch wenn Windows die Prozessliste verweigert. Der amtliche OIDC-Pfad bleibt ohne `auth_providers.bundid`/SSP-Daten gesperrt bis zum Nachweis; vorbereitet sind `/api/auth/bundid/status`, `/_auth/bundid/start`, `/_auth/bundid/callback`[private Angabe entfernt]`provider=bundid`[private Angabe entfernt]`/__azubi42/bundid/prototype`: ein MJP-abgeleiteter Arbeitsprototyp mit Startlink, Readiness-/SSP-Anzeige, lokalem PKCE/State-Prototyprecord und optionaler Invite-only-Anfrage `access_proof_method=bundid`[private Angabe entfernt]`reports/mjp_clicktest_2026-05-10/` bestaetigt MJP-Startlink `/auth/login` -> `id.bund.de/de/welcome` -> `.../auth/1/eID` ohne lokale Eingabefelder vor der eID-Auswahl. Der Ubuntu-Installer installiert `cryptography`, legt den BundID-Provider deaktiviert an und führt nur den Env-Namen `[private Angabe entfernt]`. Templates: `60_RUNTIME_TEMPLATES/auth/bundid-oidc.template.json`, `40_INTEGRATIONS/legal-jura/bundid-eid/metadata/`; Smokes: `70_TESTS_AND_SMOKE/legal/test_bundid_oidc_connector.py`, `70_TESTS_AND_SMOKE/legal/test_bundid_ssp_application_package.py`.
- Zugangsanfragen v27.2.143: Invite-only-Anfragen bestätigen nach Absenden sichtbar die manuelle Handprüfung, nennen die Vorgangsnummer und erklären, dass Freigaben je nach Tageszeit, Nachweisweg und Admin-Verfügbarkeit dauern können. Interne Queue-Pfade werden nicht mehr in der Nutzerbestätigung ausgegeben; Request-Datensätze tragen `review_mode=manual`, `review_status_label` und eine `user_confirmation`. Smoke: `70_TESTS_AND_SMOKE/legal/test_access_request_confirmation.py`.
- Mobile Light-Theme-Menü v27.2.145: `css/style.css` bricht lange Theme-Beschreibungstexte in mobilen/touchigen Theme-Karten sicher um; `index.html`, `version_manifest.json` und `azubi42_version.json`[private Angabe entfernt]`27165`. `audit_light_theme_resize.mjs` klickt `Gelato41`, `WeddingCake` und `WhiteRuntz` im Smartphone-/Touch-Modus und prüft Grid, Touchzielhöhe, Viewportgrenzen, aktive Tokens und Textüberlauf.
- Todo Fix-It v27.2.146: Sichtbare rote UI-/Runtime-Fehler werden lokal in `localStorage` gehalten, an `/api/fixit/report` gespiegelt und beim User-Klick auf `Erledigt` oder `Leeren` auch serverseitig geschlossen. Fehlerobjekte werden lesbar normalisiert, freie `[private Angabe entfernt]`-Muster werden redigiert, bestehende Trefferzähler bleiben beim Status-Merge erhalten, und FixIt-Toast/Aktionsbuttons haben mobile Touch-Ziele. Der neue echte Browser-Smoke klickt Desktop und Smartphone durch: Toast, `Jetzt fixen`, Server-Redaction, Abschluss und Mobile-Viewport. Shared-Core und Ubuntu-Installer spiegeln Client, CSS und Serverroute; Smokes: `70_TESTS_AND_SMOKE/ui/audit_error_fixit_list.mjs`, `70_TESTS_AND_SMOKE/ui/audit_error_fixit_browser.mjs`, `70_TESTS_AND_SMOKE/integrations/audit_fixit_codex_worker.py`.
- Driptronic-/Buschitut-G2G-/Legal-Intake-Ausbau v27.2.135: Neuer Integrationsraum `40_INTEGRATIONS/driptronic/` für Wayback-CDX-Intake, DE/EN-Taxonomie, Runtime-only-Rohdaten und Sidebar-/Flash-/Bauteilspuren. Discourse bekommt `config/buschitut-g2g-chapter.seed.json` mit Hardware, Software, Frontends, Farmteile/Driptronic, BTUT, Shop und Hanf-Art/Pflanzen-Azubi; Matrix-Map und `buschitut-forgejo`-Orga-Seed sind lokal erweitert. Legal bekommt `private_schriftsatz_notice_blocks.py` samt Config, Installer-Spiegel und Smoke für prüfpflichtige private Schriftsatz-Hinweisbloecke sowie `gericht_cd_diktat_intake.py` für private Gerichts-CD-/ZIP-Diktatlieferungen mit Hashmanifest, ZIP-Zentralverzeichnis, Verschlüsselungsbefund, Widerspruchstabelle und Schriftsatzbaustein.
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- 2026-05-24: azubi42.de Startseiten-Fix dokumentiert. Mission-Patch-Caption (`AZUBI42 Mission Patch / Rebels follow the rules`) laeuft nicht mehr aus dem Patch-Container. Geaenderte Inventar-Bauteile: `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/website/css/site.css` und `20_EDITIONS/azubi42-de/website/css/site.css`.
- 2026-05-24: azubi42.de Patch-Asset ersetzt. Datei `assets/malicious-compliance-rebels-follow-rules-patch-transparent.png` (Installer + Edition) führt jetzt das Original-Patchbild ohne Transparenzmaske; direkte URL- und Social-Preview-Darstellung nutzt den gleichen Bildstand.
- 2026-05-24: Social-Refresh abgesichert. `og:image` in Website-`index.html` (Installer + Edition) auf denselben Assetpfad mit Query-Version `?v=20260524a` gesetzt, damit Crawler-Cache neu zieht.
- 2026-05-24: Hero-Patch-Caption auf Wunsch entfernt. In `website/index.html` (Installer + Edition) wurde der `figcaption`-Block aus dem rechten Patch-Element gelöscht; Darstellung ist jetzt nur noch das Patchbild ohne Textoverlay.
- Meisterablage-OCR-Sidecar-Härtung 2026-05-12: `toolbox/legal/meisterablage_builder.py` und der Ubuntu-Installer-Spiegel binden vorhandene OCR-Sidecar-Texte an textlose Scan-PDFs im Manifest an. Der Status `ocr_sidecar_ready` ersetzt falsche offene OCR-Markierungen für bereits atomisierte Scan-Eingaenge.
- Final-Print-Universalblock 2026-05-12: `toolbox/legal/final_print_package.py` inventarisiert einen privaten Universalblock Vorfehlerkette als generellen Einleitungsbaustein, Anlage A und Anlage-D-Belegmatrix für alle Empfängerpakete. Repo-seitig gespeichert ist nur der Paketvertrag; private Quellanlagen bleiben unter `[private Vorgangswurzel]`.
- Fullbestand-Final-Print 2026-05-13: `toolbox/legal/final_print_package.py` ist für den Server-Gesamtbestand `[private Vorgangswurzel]` inventarisiert. Der Lauf liest Originalquellen über `root_top`, Azubi42-Arbeitsstaende aus dem privaten `azubi42`-Bereich, OCR-Aggregate aus `paperless_sidecars` und den aktuellen QM-/Mahnwesen-Spiegel; der geprüfte Serverlauf erzeugte 47 Registereintraege ohne harte Paketfehler, ohne Prüfpunkte und ohne fehlende Empfängerpaket-Eintraege.
- Public-Decision-Pattern-Research 2026-05-09: `toolbox/legal/public_case_pattern_research.py` ist als read-only SQLite/FTS-Auswerter für öffentliche Entscheidungen im aktiven Legal-Toolset und im Ubuntu-Installer-Spiegel inventarisiert. Der Serverlauf gegen die zentrale Jurabibliothek fand 13.442 Roh-Treffer und 2.871 A-Prüfkandidaten zu Zuständigkeit, PKH/Rechtsbeistand, rechtlichem Gehoer, Formfehlern und SG Potsdam/LSG Berlin-Brandenburg. Inventarisierte Ergebnisdateien: `reports/public_case_pattern_research_2026-05-09.md`, `reports/public_case_pattern_research_2026-05-09_A_core.csv`, `reports/public_case_pattern_kernnotiz_2026-05-09.md`; nicht inventarisierter Rohdump bleibt bewusst nur serverseitig unter `/tmp/azubi42_case_research_20260509/`.
- Fix-It Entscheidungsfenster v27.2.134: UI-Meldungen erhalten `Jetzt fixen`, `Später fixen` und einen 5-Minuten-Auto-Fix-Countdown. Der Server hält Auto-Fix-Auftraege in `runtime/fixit_inbox/fixit_autofix_current.json`/`.jsonl`; der Codex-Worker priorisiert fällige Queue-Eintraege und die optionale systemd-Path-Unit weckt ihn bei neuen Auftraegen.
- Fix-It Auto-Modus v27.2.133: `azubi42_server.py` führt Fix-It-Reports in eine private Inbox, schreibt zusätzliche Team-Signale nach `runtime/fixit_inbox/fixit_team_signals.jsonl`, stellt `GET /api/fixit/auto/status` und `POST /api/fixit/auto/ping` bereit und nutzt Matrix nur über vorhandene Server-Konfiguration.
- Fix-It Codex-Worker v27.2.132: `40_INTEGRATIONS/codex/` und der Installer-Spiegel `toolbox/codex/` erzeugen aus offenen Fix-It-Eintraegen reproduzierbare Codex-CLI-Jobs. Der Installer legt `/usr/local/bin/azubi42_fixit_codex_worker.py` sowie `azubi42-fixit-codex.service/.timer` an, aktiviert sie aber erst nach eigenem Server-`CODEX_HOME`/`codex login` bewusst. Smoke: `70_TESTS_AND_SMOKE/integrations/audit_fixit_codex_worker.py`.
- FachConnect-Bridge v27.2.130: BuschCode, Fachazubi-Karten und Fachazubi-Profil-Popup besitzen jetzt einen gemeinsamen Forgejo-Connect-Flow mit fachbezogenen Symbolanimationen, Credential-Formular, echter Forgejo-Serverprobe, Runtime-Session ohne Passwort-Persistenz und Fix-It-Fehlerpfad. Shared-Core und Ubuntu-Installer spiegeln `11_5_FachConnectBridge.js`, CSS, BuschCode, Communication und Tresor-Runtime-Override synchron.
- AZUBI42.de Public-Site v2026.05.14.1: Die Startseite besitzt einen sichtbaren Public-Pipeline-Monitor unter `#autopipeline` und einen datengetriebenen Tech-Atlas unter `#tech`. `build_site.mjs` erzeugt neben Public-Katalog und Detailseiten auch `site_manifest.json` mit `build_pipeline`; `site.js` fordert Manifest, `data/fachazubis.json` und `data/berufsatlas.json`[private Angabe entfernt]`azubi42-tech.tech_atlas` führt Soundscape, Dev-HW3D, FixIt, echten Browser-Smoke, Modellrouting und Observatorium als Public-Spuren mit Status, Nutzerwirkung, nächstem Ausbaupunkt und Public-Regeln. Der neue `kinderrechte-fachazubi` erweitert den Public-Katalog um vier altersgerechte Phasen, sechs Schutz-/Alltagsblickwinkel, acht Modulsteine und zehn offizielle Rechtsanker für Taschengeld, Bildrechte, Beteiligung, Religion, Strafmuendigkeit, Jugendschutz, Jugendarbeitsschutz, DSGVO und UN-KRK-Digitalrechte; Detailseiten rendern dafür eigene `Altersphasen`- und `Rechtsanker`-Tabs. Cache-Buster: `azubi42de-20260514-1`.
- AZUBI42.de Public-Site v2026.05.08.6: Buschitut ist als Mutterbusch-/Campus-Schicht auf AZUBI42.de integriert, ohne Sitejet-/Buschitut-Code oder Domainroot anzufassen. Die Startseite führt eine eigene `#buschitut`-Sektion für Open Institute, Grow-2-Gether, Buscharms/Spaces, Farm-Bots, Pilot-Partner und Garage/DAO; Plant-Fachazubi führt denselben Kontext als `ecosystem.id=buschitut` plus Modulstein `buschitut-campus`. Cache-Buster: `azubi42de-20260508-6`; Bericht: `reports/buschitut_azubi42_mapping_2026-05-08.md`.
- Discourse-Accordion v20260508a: `40_INTEGRATIONS/discourse/Azubi42/index.html` ist die neue Same-Origin-Vorstellungskarte für das AZUBI42-Kapitel. `config/azubi42-chapter.seed.json` und `discourse_azubi42_chapter_bootstrap.py` bereiten Kategorie, fuenf Startthemen, Matrix-Alias `#btut-azubi42:42.chat` und Forgejo-Orga `buschitut-forgejo`[private Angabe entfernt]`runtime/browser_checks/discourse_azubi42_20260509/azubi42_discourse_card.png`.
- Admin-Update Browser/Discourse 2026-05-09: `reports/azubi42_admin_update_browser_discourse_2026-05-09.md` dokumentiert die live ausgerollte BrowserGateway-Härtung und den nachgezogenen Discourse-Accordion-Stand für den ServerRoom. Matrix-Post: `$JKEoJl9X2eyd9jmYQOvF1EymrJNziI5gth46fn4OcQI`.
- Modellrouting-Härtung v27.2.136: `06_3_CloudFetch.js` ist in Shared-Core und Ubuntu-Installer synchron nachgezogen. Die lokale OpenAI-Proxyroute `/api/openai/responses` sendet keine Codex-Native-Handoff-Felder mehr; `open_app`, `sandbox_mode` und `writable_roots` sind nur noch im bewussten Native-Codex-Pfad. Der Regressionstest `70_TESTS_AND_SMOKE/ui/audit_parallel_chat_runs.mjs` prüft diesen Vertrag.
- Modellrouting-Härtung v27.2.129: OpenAI/GPT, Codex Native und Ollama sind wieder hart getrennte Providerpfade. OpenAI-Modelloptionen akzeptieren `id` aus der Serverliste, OpenAI ohne API-Key gibt 401 statt Codex-Handoff, CloudFetch stoppt fremde Handoff-Antworten, und der echte Browserlauf bestaetigt die GPT-Auswahl ohne Ollama-/Codex-Sprung.
- Installer-ZIP-Hygiene: `toolbox/package/build_azubi42_server_zip.ps1` baut das einzige Forgejo-ZIP `30_INSTALLERS/ubuntu24/azubi42-server/azubi42-linux-server.zip` aus dem aktuellen Installerbaum neu. `70_TESTS_AND_SMOKE/security/audit_installer_archives.ps1` prüft Pflichtdateien und sperrt Top-Level-`config/`, Runtime-/Deploy-Artefakte, App-Runtime-Privatpfade, Domain-Site-Binaerassets, lokale Intro-Medien, große optionale Logo-Medien, alte Windows-/Exporter-Helfer sowie echte `.key`-/Auth-Dateien direkt im ZIP.
- Release-Artefaktvertrag: Der generierte Linux-Server-ZIP ist aus dem Git-Tracking geloest und wird per `.gitignore` geschützt. `toolbox/package/build_azubi42_release_artifacts.ps1` erzeugt ZIP, SHA256 und Manifeste; `v27.2.123-27143` ist gebaut, geprüft und in `50_CODEX_OPENAI/release-manifests/azubi42-linux-server-latest.json` eingetragen.
- Forgejo-HTTP-413-Härtung: `40_INTEGRATIONS/forgejo/` führt Runbook, Plesk-nginx-/Apache-Vorlagen, Forgejo-`app.ini`-Beispiel, idempotente Apply-Skripte für Plesk-vHost und klassische nginx-Site-Datei sowie `70_TESTS_AND_SMOKE/integrations/check_forgejo_push_limit.ps1`. Der aktuelle Bericht `reports/forgejo_http_413_push_limit_2026-05-06.md` hält fest, dass kleine Fast-Forward-Commits funktionierten, größere HTTPS-Packfiles aber vom Proxy mit `HTTP 413` geblockt wurden; nach Live-Patch von `/etc/nginx/sites-available/forgejo` sind echte Probe-Pushes bis 16 MB erfolgreich.
- Für Live-UI-Debugging gilt verbindlich: Wenn ein Fehler im laufenden Browser sichtbar ist, wird zuerst der echte Live-DOM mit Screenshot/Inspect/DevTools geprüft. Dateilisten, Repo-Suchen und lokale Standsicht folgen erst danach als Ursachenarbeit und Patchbasis. Auf dem Server ist dafür ein XFCE-Desktop mit echten Browsern und DevTools/Inspect-Element vorhanden; lokale Playwright-Prüfungen dienen anschließend als reproduzierbarer Screenshot-/Messlauf. Der aktuelle Regelbericht liegt unter `reports/live_dom_first_rule_2026-05-05.md`.
- Screenshot-Regel 2026-05-14: `00_META/SCREENSHOT_REGEL.md` definiert neue QA-/Verlaufsscreenshots als Tagesordner `runtime/screenshots/YYYY-MM-DD/<laufname>/`, JPG 100% für normale UI-Belege, PNG nur für Transparenz/Masken/Differenzen und Mindestbreite 2000 px. `70_TESTS_AND_SMOKE/ui/audit_azubi42_domain_mobile.mjs` ist auf Tagesordner, JPEG-Capture und mobilen Capture-DPR >= 2000 px Bildbreite umgestellt. Legacy `screenshots/` im Repo-Root ist superseded/ignoriert; Doku: `90_ARCHIVE/superseded_artefakte/screenshots_root_dir_2026-05-15.md`.
- Codex-Wiederaufnahme und Windows-Autostart liegen unter `00_META/windows/Start-Codex-Azubi42.ps1` und `00_META/azubi42_codex_wiederaufnahme.md`; die lokale Startup-Verknüpfung `Codex Azubi42.lnk` ruft das Skript beim Windows-Login auf. Der bestehende Heartbeat `bibliothek-42-minuten-check` bleibt Bibliotheks-/Plattencheck und enthält zusätzlich die Neustart-/Baustellenregel.
- Jura-Testzugang RA Tegebauer: serverseitig wurde `ra-tegebauer` für `azubi42-jura`[private Angabe entfernt]`reports/ra_tegebauer_testzugang_2026-05-04.md`. Passwörter werden nicht versioniert.
- Login-Cookie-/Rechtshinweis: das Server-Login führt jetzt einen Datenschutz-/Cookie-/Impressum-Accordion mit dem notwendigen `azubi42_session`-Cookie, Behördenfreund-FAQ-Ankerzielen und Tracking-Ausschluss; bei HTTPS setzt der Reverse-Proxy-Pfad das Session-Cookie zusätzlich mit `Secure`.
- AZUBI42.de Public-Site: `20_EDITIONS/azubi42-de/website/` ist die neue statische Hauptdomain-Seite für Fachazubi-Vorstellung, Rollenblickwinkel, Modulsteine, Roadmap, Berufsatlas, lokales Mission-Patch samt transparentem Web-Derivat als dauerhaftes Haltungs-/Motto-Leitmotiv und generierte Detailseiten. `20_EDITIONS/azubi42-de/tools/build_site.mjs` erzeugt Public-Katalog und Detailseiten aus `40_INTEGRATIONS/fach-azubis/catalog.json`, liefert nach aussen aber nur `public-sanitized` ohne interne Forgejo-Source-URLs, Forgejo-Pfade, Entrypoints und private Runtime-Bezüge. v2026.05.08.5 nutzt Cache-Buster `azubi42de-20260508-5`, behält echte DE/DE-Umlaute und `website/data/berufsatlas.json` bei, korrigiert die mobile Public-Site für Portrait/Small-Phone/Landscape ohne Sticky-Header-Kleben, führt IHK als eigenen Ausbildungs-/Kammerpfad und ergänzt Plant um die Blickwinkel `Pflanze`/`System` sowie `systemtechnik`. Der Domain-Deployhelfer liegt unter `toolbox/deploy/deploy_azubi42_domain_site_winscp.ps1`; Domainprofil und Sperrregeln stehen in `60_RUNTIME_TEMPLATES/domain-profiles/azubi42-main.json`.
- Discourse-Accordion: `40_INTEGRATIONS/discourse/deploy_discourse_ext_winscp.ps1` paketiert die aktuellen `/ext`-Assets für den getrennten Discourse/Plesk-Host. Der lokale Footer-Boot weist einen fehlenden `/ext/matrix-live.json`-Endpunkt sichtbar als `Livefeed-Endpunkt fehlt` aus, statt einen scheinbar vollständigen Livefeed zu zeigen. Matrix-Map und Livefeed werden ab `20260508a` relativ über `/ext/...` geladen, damit lokale Preview und Live-Host keine CORS-Hartverdrahtung mehr tragen. `-HostKey` funktioniert auch mit gespeicherter WinSCP-Session, damit Hostkey-Pinning ohne interaktiven Cache-Dialog laeuft. Live-Check 2026-05-09: `/ext` wurde mit gepinntem Hostkey `ssh-ed25519 255 SHA256:H+6TF42I6FLBUI+cxS4JZwlhXscgVqSPPLYSggnIAfs` auf den Discourse/Plesk-Host nachgezogen; echter Browsercheck zeigt `AZUBI42 Vorstellung`, `buschitut-forgejo` und den Azubi42-Handoff nach `azubi42-dev`.
- Discourse Matrix-Live: `40_INTEGRATIONS/discourse/deploy_discourse_matrix_live_winscp.ps1` paketiert den lokalen Livefeed-Service, `systemd/azubi42-discourse-matrix-live.service` und die Plesk-Proxyvorlagen `config-templates/matrix-live-vhost.nginx.conf` / `matrix-live-vhost.apache.conf`. Der Dienst bleibt auf `127.0.0.1:18442`, echte Matrix-Zugangsdaten bleiben serverseitig unter `/etc/azubi42/discourse/matrix-live.json`, `70_TESTS_AND_SMOKE/integrations/audit_discourse_matrix_live_deploy.mjs` prüft den Vertrag und `70_TESTS_AND_SMOKE/integrations/check_discourse_live_endpoints.ps1` prüft danach den echten Live-Host. `-HostKey` wird auch bei gespeicherter WinSCP-Session an WinSCP übergeben.
- Technik-Aenderungsliste: `reports/azubi42_technik_aenderungsliste_2026-05-06.md` dokumentiert den aktuellen Stand für AZUBI42, Discourse, AZUBI42.de, Forgejo/Installer und Matrix/42.chat in einer secretfreien Form für den Matrix-ServerRoom.
- Matrix-Admin-Kurzbericht: `reports/azubi42_admin_kurzbericht_seit_gpu_post_2026-05-07.md` dokumentiert den nachfolgenden Fortschritt seit dem GPU-ServerRoom-Post mit Screenshot-/Video-Nachweis für Admins; private Matrix-, Forgejo-, Paperless- und Server-Secrets bleiben ausserhalb des Reports.
- Matrix-Admin-Nachtrag Domain/Discourse: `reports/azubi42_admin_domain_discourse_nachtrag_2026-05-07.md` ergänzt den Adminstand um die neue Hauptdomain `azubi42.de`, den sichtbaren Mission-Patch-/Fachazubi-Atlas-Status, Live-HTTP-/Manifest-/Audit-Nachweise, Discourse-Liveendpunkte, den alten `/ext`-Assetstand und den blockierten Discourse-Deploypfad ohne Secrets.
- Paperless-Tagging: für Jura-Tags liegt jetzt ein separater Regex-Regelkatalog unter `40_INTEGRATIONS/paperless/tagging/`; er nutzt `matching_algorithm=4` statt `Automatic`, validiert die 256-Zeichen-Grenze und kann per Token trocken oder explizit angewendet werden.
- Jura-Aktenzeichen-Zeitstrahl: `toolbox/legal/aktenzeichen_timeline.py` und das Bibliotheks-Panel `data-aztimeline-panel` bilden lokale Entwickler-/Altbestandsordner, Browser-Datei-/Ordnerauswahl oder Paperless-Sidecar-Ordner in ein Aktenzeichen-Organigramm ab. Ergebnisvertrag: JSON, Mermaid, Nodes-CSV, Edges-CSV, `aktenzeichen_mentions.csv/json`, `aktenzeichen_documents.csv`, `aktenzeichen_point_flags.csv`, Topic-basierter Übernahme-/Ausblendungsvergleich und Bundes-/Normanker je Punktflag aus der vorhandenen SGP/SGF-Row-Enrichment-Logik; v27.2.124 ergänzt `horizontal_tree_lr` als echten liegenden Baum mit Eltern-/Kinderlisten, Kantenkoordinaten, Fokuswerten und klickbarer Such-/Fokus-UI neben der Helix. Live-Web trennt Clientpfade von Serverpfaden und nutzt für echte Clientdateien/-ordner `/api/legal/aktenzeichen/timeline/upload-folder`; der Server-/Paperless-User-Scope bleibt davon getrennt. Gespeicherte App-Runtime-Laeufe sind über `/api/legal/aktenzeichen/timeline/latest` und den Knopf `Letzter Lauf` ohne Neuscan ladbar. Die 3D-AZ-Helix wird direkt im Ergebnis sichtbar gerendert, sucht/filtert AZ-/Vorgangsnummern und sortiert nach Risiko, Datum, AZ, Fundstellen, Dokumenten, Poison, Punktachsen und Bundesankern. Offene/giftige Punktflags haben eine eigene Suche und klappen Ursprung, Ziel/Erledigung und Bundesanker getrennt auf. Rohkopien und Browseruploads bleiben unter ignorierten Amts-/Runtime-Pfaden oder bestehenden Paperless-Sidecars. v27.2.114 führt einen Auswahlkorb für Mehrfach-Dateien plus zusätzliche Ordner/Unterordner ein und liest Code-/Scripttexte sowie XLSX/XLSM als sichere Textquellen. v27.2.112 blendet Quell-/Run-Pfade in der Nutzeransicht aus und zeigt stattdessen einen Fachachsen-Anzeiger für erkannte Vorgangsinhalte.
- Legal-Mahnwesen: `toolbox/legal/mahnwesen.py` erzeugt aus einem Fristen-/Versandregister eine tägliche Mahnqueue mit CSV/JSON/Markdown, Fristenlogik aus `toolbox/legal/GRUNDREGEL_FRISTEN_MAHNWESEN.md` für BVerwG, SGF, SGP, LSG, AOK, Jobcenter, Patientenbeauftragten und generische Fachazubi-Scope-Wiedervorlagen sowie renderbaren Fax-/Brief-Markdownvorlagen aus `toolbox/legal/config/mahnwesen_templates.json`. v27.2.125 integriert den Baustein in Azubi42-Jura: `azubi42_server.py` bedient die globale `/api/mahnwesen/*`-API, `01_1_Layout.js` führt Formular/Queue/Regel-Editor/Preview, `01_8_JuraBibliothek.js` speichert Vorgänge, rendert Templates und liest Click-&-Edit-Fristenregeln, und `bibliothek_menu.js` hat eine eigene Mahnwesen-Gruppe. v27.2.126 erweitert den Baustein um Vorgangspunkt- und Maßnahmenbaum-Logik: pro Schriftsatz/Vorgangspunkt können mehrere editierbare Folgepfade wie Sachstand, Mahnung, Ruege, Beschwerde und Anzeigeprüfung entstehen, jeweils mit eigener Fälligkeit, Vorlage, Empfänger, Status und Queue-ID. v27.2.127 ergänzt `toolbox/legal/config/mahnwesen_template_tree.json` und `/api/mahnwesen/tree`: Der Nutzer sieht einen bearbeitbaren Eskalationsbaum von Hinweis/Sachstand über Mahnung, Ruege, harte Ruege, Aufsicht, Verzoegerungsruege, BVerfG-/Eilprüfung, Anzeigeprüfung bis EGMR-Prüfarm und kann ausgewählte Knoten direkt als Massnahme in den aktuellen Vorgangspunkt übernehmen. v27.2.128 setzt PKH-/Beistandssperre und Zuständigkeitssperre als eigene Schutzschwellen samt Templates, Blickwinkeltexten, Footer-Regel und Runtime-Default-Merge. `toolbox/legal/mahnwesen_case_audit.py` ist der private Gesamtvorgang-Audit: Es baut aus SGF-/SGP-Finaltabellen und aktuellen Bezugspunkten ein Ledger, Queue, Top-Vorlagen, Zielvergleich und Abweichungslisten gegen SGF, SGP, BVerwG und Patientenstelle. `toolbox/legal/schriftsatz_konsistenz_audit.py` ist der private Angriffsflächen-Abgleich für aktuelle Schriftsätze und Tabellen: Pflichtachsen, Fassungskonflikte, OCR-Lesbarkeit, Platzhalter, Tonrisiken, Versandmaster und Nachtragsbausteine. Serverbetrieb ist über `toolbox/legal/systemd/azubi42-mahnwesen.service` und `.timer` vorbereitet; die Ubuntu-Serveredition spiegelt Code, Fristenblatt, Templates, Template-Baum, UI und Timer. Smokes: `70_TESTS_AND_SMOKE/legal/test_mahnwesen.py`, `70_TESTS_AND_SMOKE/legal/test_mahnwesen_server_api.py`, `70_TESTS_AND_SMOKE/legal/test_mahnwesen_case_audit.py`, `70_TESTS_AND_SMOKE/legal/test_schriftsatz_konsistenz_audit.py`, `70_TESTS_AND_SMOKE/ui/audit_mahnwesen_ui.mjs`, `70_TESTS_AND_SMOKE/ui/audit_mahnwesen_browser.mjs`.
- Aktenzeichen-Normalisierer: `toolbox/legal/aktenzeichen_timeline.py` trennt in der AZ-Pipeline jetzt kanonische Vorgangs-AZ, Vorgangs-/Geschäftsnummern und zitierte Entscheidungsanker. Schreibvarianten wie fehlende Leerzeichen, `UEG`/`ÜG` und `Geschäftszeichen: S ...` werden zusammengeführt; BSG-/BVerfG-Zitate, klare Bundesanker-Kontexte und öffentliche SG-/LSG-Vergleichsentscheidungen werden nicht mehr als Vorgangsbaum-Aeste an Spatial übergeben. S45-/aehnliche Kandidaten bleiben nur bei Hauptsache-, Ursprungs-, Abtrennungs- oder Verfahrenskontext Vorgangs-AZ. `context_review` macht pro SG-/LSG-Kandidat sichtbar, ob er prozedural, Entscheidungsanker, gemischt oder unbestaetigt ist. Summary-Felder weisen Rohreferenzen, Vorgangs-AZ, Entscheidungsanker, SG-/LSG-Entscheidungsanker, Vorgangsnummern und Punktflag-Exportlimits getrennt aus. `aktenzeichen_timeline.compact.json` führt denselben nodes/edges/point_flags/view_models-Vertrag ohne Fundstellentabelle und Mentions-Rohsample für Routine-UI, Observatorium und Spatial-Laeufe; `view_models.*.nodes[].fruits` und `fruit_count` sind als UI-/WH3D-Fruchtvertrag für Punktflags, Bundesanker und Statusarme inventarisiert. `01_1_Layout.js` und `01_8_JuraBibliothek.js` begrenzen die großen AZ-Visualisierungen mit `min-w-0`/lokalem Scrollbereich, damit Baum und Helix nicht neben die eigentliche Leinwand wachsen.
- Jurabibliothek-Bestand: `/api/legal/jurabibliothek/status` und `/topics` liefern echte Rechtsgebietszähler aus `fragments_fts`, Dokumentarten, offene Jobgruppen und `jobs_open`, ohne SQLite-/Serverpfade an die Nutzeransicht zu geben. Das Frontend erklaert Quellen, Dokumente und Textfragmente, führt `§ Schnellnachschlag` für Normen, cached den letzten Bestandstatus für später sichtbare Panels, normalisiert objektfoermige Such-/API-Fehler zu lesbaren Hinweisen und gliedert die Bibliothek-Second-Level-Leiste in Rechtsquellen, Paperless/OCR, Aktenzeichen-Helix und Fallauswertung. v27.2.119 trennt die Rechtsgebiets-Checkbox als reine Filteraktion vom Kartenklick; der Kartenklick öffnet einen Detaildialog mit Bestand, Suchbegriffen, Einordnung, Zaehllogik und Aktionen für Begriffe einsetzen, Gebietssuche und Bestand-Refresh.
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- SGF-Tabellenpipeline analog SGP: `toolbox/legal/sgf_gerichtsschreiben_register.py`, `toolbox/legal/sgf_row_enrichment.py`, `toolbox/legal/sgf_final_table.py` und `toolbox/legal/sgf_schriftsatzkern.py` erzeugen aus SGF-Dokumenten nach Dubletten-/Versionsfilter verankerte Finalzeilen samt Manifesten (`rulebook`, `duplicate_policy`, `include_duplicates`, `input_quellenbereinigt`, `input_old_versions`). Verbindliches Dubletten-/Quellenfamilien-Regelwerk: `toolbox/legal/REGELWERK_AMT_QUELLENFAMILIEN_DUBLETTEN.md` (Versionsranking: `document_stage` vor `modified_at`; Outputs/Derivate wie Final-Print/Empfängerpakete, OCR-Sidecars und Paperless-Sidecar-JSON werden nie als Quellen rueckgefuettert, siehe Abschnitt 5a). Director-Templates führen das Quality-Gate `legal_rulebook_loaded_first`; Smoke: `70_TESTS_AND_SMOKE/ui/audit_director_templates.mjs`. Privacy: SGF-spezifische Report-/Anlagen-Artefakte werden als private Outputs behandelt und nicht versioniert.
- SGF-Anschlussruege / Hartkern: Generatoren/Regeln liegen in `toolbox/legal/` (u.a. `sgf_harter_kern_prueftabelle.py`, `sgf_harter_kern_fundstellen.py`); versandnahe Entwürfe/Anlagen werden als private Outputs geführt und nicht versioniert.

## Produktionsumfang


- Gesamtdateien: `120`
- JavaScript: `70`
- CSS: `7`
- HTML: `1`
- JSON: `9`
- Markdown-Hilfen: `9`
- Python: `1`
- PowerShell: `3`
- Batch: `2`
- SVG: `1`
- TXT-Logos: `9`
- PNG: `1`
- Medienplatzhalter/Gitignore: `.gitignore` `1`, `.gitkeep` `2`

## Verzeichnisstruktur


- `app_v27_multimedia/index.html`
  Aktuell v27.2.164 nutzt Build-Token `27184` für den Matrix-Neuuser-Freigabevertrag mit `freigeben`/`nicht freigeben`[private Angabe entfernt]`27183`[private Angabe entfernt]`27182`[private Angabe entfernt]`27181`[private Angabe entfernt]`27180`[private Angabe entfernt]`27179`[private Angabe entfernt]`27178`[private Angabe entfernt]`27177`[private Angabe entfernt]`27176`[private Angabe entfernt]`27175`[private Angabe entfernt]`27174`[private Angabe entfernt]`27173`[private Angabe entfernt]`27172`[private Angabe entfernt]`27171`[private Angabe entfernt]`27170`[private Angabe entfernt]`27169`[private Angabe entfernt]`27168`[private Angabe entfernt]`27167` für den BundID/eID-MJP-Arbeitsprototyp mit `/__azubi42/bundid/prototype`, PKCE/State-Prototyprecord und Invite-only-Nachweisweg `bundid`[private Angabe entfernt]`27166`[private Angabe entfernt]`27165`[private Angabe entfernt]`27164`[private Angabe entfernt]`27163` für die sichtbare Invite-only-Handprüfungsbestätigung nach Zugangsanfragen und bytecodefreie Windows-Starts mit `-B`[private Angabe entfernt]`27162`[private Angabe entfernt]`27161`[private Angabe entfernt]`27160`[private Angabe entfernt]`27155`[private Angabe entfernt]`27154`[private Angabe entfernt]`27153`[private Angabe entfernt]`27152`[private Angabe entfernt]`27151`[private Angabe entfernt]`27150`[private Angabe entfernt]`27149`[private Angabe entfernt]`27148`[private Angabe entfernt]`27147`[private Angabe entfernt]`27146`[private Angabe entfernt]`27145`[private Angabe entfernt]`27144`[private Angabe entfernt]`27143`[private Angabe entfernt]`27142`[private Angabe entfernt]`27141`[private Angabe entfernt]`27140`[private Angabe entfernt]`27139`[private Angabe entfernt]`27138`[private Angabe entfernt]`27137` für lesbar normalisierte Jurabibliothek-Such-/API-Fehler statt `[object Object]`[private Angabe entfernt]`27136`[private Angabe entfernt]`27135` für den mobilen Sidebar-Fix, bei dem `Azubis Kollegen`[private Angabe entfernt]`27134`[private Angabe entfernt]`27133` für das bewegte Desktop-Login-Intro trotz unbeabsichtigter Reduced-Motion-Voreinstellung und behält `motion=reduce`[private Angabe entfernt]`27132`[private Angabe entfernt]`27131`[private Angabe entfernt]`27130`[private Angabe entfernt]`27129`[private Angabe entfernt]`27128`[private Angabe entfernt]`27127`[private Angabe entfernt]`27126` für den direkt sichtbaren 3D-AZ-Helix-Ergebnisblock und `AZ letzter Lauf`[private Angabe entfernt]`27125` für `[private Vorgangswurzel]/kopiertes` als sicheren lokalen AZ-Quellpfad und den Knopf `Letzter Lauf` im Jura-Aktenzeichen-Panel.

  Startpunkt der App; die Mini-Logo-Lightbox verwendet für Matrix, Forgejo, Paperless, Codex und Ollama jetzt bevorzugt die im Tresor gepflegten Web-URLs. Ein expliziter Reload-Token kann CSS, Favicon und Modulstart für manuelle Frontend-Updates frisch nachziehen; zusätzlich erzwingt ein fester Build-Asset-Token bei normalem `F5`[private Angabe entfernt]`27124`[private Angabe entfernt]`27123`[private Angabe entfernt]`27122`[private Angabe entfernt]`27121`[private Angabe entfernt]`27120`[private Angabe entfernt]`27119`[private Angabe entfernt]`27118`[private Angabe entfernt]`27117` für den direkt sichtbaren mobilen `Azubis Kollegen`[private Angabe entfernt]`27116` für die Fachazubi-Profil-Lightbox aus Kartenklick und `Vorstellen`[private Angabe entfernt]`27115`[private Angabe entfernt]`27114`[private Angabe entfernt]`27113`[private Angabe entfernt]`27112`[private Angabe entfernt]`27111`[private Angabe entfernt]`27110`[private Angabe entfernt]`27109`[private Angabe entfernt]`27108`[private Angabe entfernt]`27107`[private Angabe entfernt]`27106`[private Angabe entfernt]`27105`[private Angabe entfernt]`27104`[private Angabe entfernt]`27103`[private Angabe entfernt]`27102`[private Angabe entfernt]`27100`[private Angabe entfernt]`27099`[private Angabe entfernt]`27098`[private Angabe entfernt]`27097`[private Angabe entfernt]`27096`[private Angabe entfernt]`27095`[private Angabe entfernt]`27094`[private Angabe entfernt]`27093`[private Angabe entfernt]`27092` für Sidebar-Accordion-Migration, erweiterten Fachazubi-Katalog und unterscheidbare Startzentralen. Das eigentliche Frontend-Boot wird in `main.js` auch dann sicher gestartet, wenn der Modulimport erst nach `DOMContentLoaded` fertig wird. Für Smartphones und Tablets laedt der Startpunkt `css/mobile-smart.css` als zweites Stylesheet mit Media-Guard und Viewport-/Safe-Area-Meta, ohne die Basisdatei `css/style.css` zu veraendern.

- `app_v27_multimedia/css/`
  Styling, Tailwind-Konfig, Sidebar-Usermenü, Dichte-Presets, zentrale Farb-/Schrift-Token, Schriftfamilien-Vererbung, Bauteil-Farbpicker für Leinwand/Sidebar/Header/Dock/Knoten/Overlays, globale App-Schriftgrößen-Skalierung für feste Tailwind-Pixelklassen, kompakter Workspace-Knoten-Kopf, eigenes Communication-Untermenü mit Dienstbuttons, sichere Communication-Web-Connect-Karten mit umbruchfesten Aktionsbuttons, vergrößerte Paperless-Thumbnail-/Pipettenflächen samt Zoom-Overlay, Zoom-Pipette, vollständig scrollbarem Seiteninspektor, getrennte Theme-Dateien unter `css/themes/` und eine additive Mobile-/Tablet-Ergänzung in `css/mobile-smart.css`. v27.2.144 trennt die hellen Templates in Minz/Cyan-`Gelato41`, warmes Papier-`WeddingCake` mit Kanzlei-Rot/Gold und Graustufen-`WhiteRuntz`. v27.2.115 setzt `Azubis Kollegen` mobil wieder ans Ende des linken Menüs und verbietet den alten Top-Promote im Smoke. v27.2.109 stylt den sichtbaren Forgejo-/Startup-Popup-Countdown theme-sicher; v27.2.100 gibt `.view-start-stage` volle Hauptflächenbreite, reduziert Seitenpadding/Dockreserve, verbreitert die Mittelspalte und hebt `.view-start-lead`, Karten-, Probe- und Menü-Schriften auf lesbare Browser-Smoke-Mindestwerte; v27.2.99 führt `.view-start-library-tools` und `.view-start-view-switch` ein, damit Startzentralen links Werkzeuge und mittig den Ansichtenwechsel zeigen; v27.2.98 hebt den Buildstamp für den BrowserGateway-Handoff; v27.2.97 zog `Azubis Kollegen` nur mobil in den ersten Sidebar-Viewport und begrenzte den Logo-Slot dort intern.

  v27.2.130 ergänzt `.fach-connect-*` für den fachakzentuierten Forgejo-Connect-Dialog mit Symbolorbit, Credential-Formular, Erfolg/Fehler-Zustaenden und mobilem Bottom-Sheet-Verhalten. v27.2.74 ergänzt die Maskenklasse `azubi-sensitive-field`, damit API-/Tresor-Token sichtbar geschützt bleiben, ohne Chrome als Login-Passwortfeld zu triggern.

  Der linke Sidebar-Resizegriff besitzt wieder eine greifbare Maus-Hitbox bei filigraner 1px-Sichtlinie; das Eingabe-Dock nutzt wieder nur den vorhandenen Panelrand als sichtbaren Rahmen, während Kanten- und Eck-Hitboxen den Maus-Resize stabil greifen. Theme-Kacheln begrenzen ihre Farblegenden sauber, und eigene Farbprofile können im Usermenü gespeichert, geladen und gelöscht werden. Die Dichte-Presets greifen jetzt global auf Sidebar, Workspace, Dock, Knoten, Paperless, Timeline, Communication und Antwortkarten statt nur auf Teile der linken Seitenleiste. Knoten nutzen geringere Chrome-Höhen, kollabierende leere Flag-Leisten und kleinere Fensterknöpfe, damit mehr Fläche für Text bleibt. v27.2.25 verdichtet zusätzlich Tresor-/Verlaufselemente in der linken Sidebar, gliedert das höher gezogene Eingabe-Dock in Editor, Upload-Werkzeugzeile und Sendezone und positioniert das Matrix-Zielpanel auf Desktopbreite oberhalb des Docks. Theme-sichere Auswahl- und Fokusmarker halten Knotenmarkierungen auch bei aktiven Farbschemen sichtbar.

  v27.2.26 fuegt einheitliche Klappkoepfe für alle linken Hauptsektionen, kompaktere Logo-/Flagflächen, sichtbares Usermenü ausserhalb des Sidebar-Clips, theme-sichere Header-Buttons, helles Dock-Fading und den neuen Canvas-Punkt-Farbkanal `--azubi-canvas-dot` hinzu. v27.2.27 beseitigt den uebrig gebliebenen Inline-Flex im Logo-Mount, setzt den Kollegenbereich als 48px-Logo plus 4er-Mini-Grid, ersetzt die letzten Mini-Klappschalter durch breite Abschnittskoepfe und reduziert die Flaggenpalette auf 24px-Symbole ohne große Kachelhintergründe.

## v27.2.28 macht die geöffnete Seitenleiste demo- und alltagstauglich

- `#sidebar-nav`[private Angabe entfernt]`Blickwinkel` als eigene linke Ansicht mit eigener Space-Verwaltung ein, statt Perspektiven-Knoten in den normalen Workspace zu mischen. v27.2.60 zieht die Perspektiven-Waffe und die Blickwinkel-Spaces in ein eigenes linkes Untermenü und entfernt die horizontale Sidebar-Scrollspur. v27.2.61 markiert aktive Ansichten nur über Text-/Iconfarbe und vereinheitlicht farbige Einzel-Emojis zu monochromen View-Iconkacheln. v27.2.63 ergänzt eine theme-sichere Ansichten-Space-Zentrale mit Launcher-Kacheln, Statusbereich, Startzielwahl und Kompaktmodus. v27.2.64 trennt sichtbare `#`-Adressen von internen `nodeCounter`-Werten und startet Workspace-/Blickwinkel-Scope jeweils bei `#0`. v27.2.65 ergänzt Direktrechnung und kurzen Fast-Modell-Timeoutschutz für kompakte Knotenfragen. v27.2.66 ersetzt die Thinking-Anzeige im Knoten durch Modellnamen plus ruhige Puls-Bubble. v27.2.67 ersetzt generische `Knoten`-Titel durch Auto-Titel aus Kontext/Inhalt. v27.2.68 entfernt die dauerhafte Auto-Ausblendung der Ansichten-Startzentrale; Schließen wirkt nur pro Sitzung. v27.2.69 ergänzt fachbezogene Space-Menüs in den Startleinwaenden und hält BuschCode als zentrale Werkstatt für Fach-Azubi-Ausbau. v27.2.70 legt diese Menüinhalte pro Space in eigene Module, bricht die Setupspalte bereits auf mittleren Monitoren um, stylt den kleinen Workspace-Leerhinweis nach geschlossenem Intro, schützt Communication-/Workspace-Webconnect-Buttons vor abgeschnittenem Text, trennt die Timeline-Kopfleiste in overflow-sichere Rasterbereiche, hält linke Accordion-Karten im Flexstack gegen Höhenschrumpfen fest, stellt offene Sidebar-Gruppen auf gestapelten Standardfluss ohne eigene Innen-Scroller um und ergänzt Startleinwand-Akzentfarben samt `Pruefspur / Testmodus`-Panel. v27.2.72 entfernt die Restursache für beschnittene linke Nav-Knöpfe: offene Sektionen haben sichtbaren Overflow, automatische Buttonhöhen, keine aktive Transform-Skalierung und werden auf die echte Sidebar-Innenbreite geklemmt; die neue Startleinwand-Moduszeile macht Ansichten visuell und inhaltlich unterscheidbar. v27.2.75 ergänzt im Steuerstand den Button `Startzentrale anzeigen` und einen Forced-Visibility-Pfad, damit ausgeblendete Space-Intros auch bei vorhandenem Inhalt wieder sichtbar werden. v27.2.76 ergänzt den Chat-/Knotenpfad um lokale Direktwissen-Miniantworten vor dem Modellrouting. v27.2.77 stellt den unteren Eingabemodus auf `Normal` und zeigt Startup-Versionen wieder sichtbar. v27.2.78 parallelisiert Chat-/Knoten-Modelllaeufe über eine Run-Map, hält Senden/Anhang/Routenauswahl bedienbar und entfernt den Auto-Stopp des nächsten Sendens. v27.2.86 führt `.view-start-fach-palette` und per `--nav-view-accent` getrennte aktive Haupt-/Untermenüfarben ein. v27.2.87 gibt Accordion-Koepfen `--sidebar-section-accent` und leitet Button-Hover über `--nav-view-accent` oder Abschnittsakzent, damit die linke Seitenleiste inhaltlich passend statt global cyan reagiert. v27.2.96 ergänzt Lightbox-Stile für Fachazubi-Popup, Hero, Meta-Raster und Aktionen. v27.2.95 ergänzt Panel-Stile für Fachprofil-Funktionen, Rollenblickwinkel und Modulsteine-Katalog. v27.2.89 stylt Fach-Azubi-Karten über semantische `fachazubi-*`-Klassen und `data-fach-accent`, damit Karte, Statusbadge, Forgejo-Pfad, Entry-Chips sowie Aktivieren-/Forgejo-Aktionen denselben Fachakzent tragen.

- `app_v27_multimedia/js/`
  Produktionscode für State, UI, Chat, Workspace, Knoten, Routing, Legal-Blickwinkel, Tools und Bruecken. Die Perspektiven-Waffe übernimmt im eigenen Blickwinkel-Space neue Eingaben als Ausgangslage-Knoten, zieht daraus automatisch Verbindungen zu vorhandenen Blickwinkeln und setzt gestaffelte Verbindungfarbe und Aura-Flag nach der Live-Analyse; normale Workspace-Eingaben bleiben davon getrennt. Ab v27.2.34 liegen frische Blickwinkel-Sets als einheitlich grüne Ausgangslage-Buendel vor; spätere Reaktionen werden als eigene Buendel am Ausgangsknoten verschoben oder nur visuell ausgeblendet, während Hidden-Zustand, Emotionsdaten und Verbindungen in Snapshots erhalten bleiben. v27.2.48 speichert die Buendelposition als Kante plus Offset, lässt die Linien am verschobenen BWB-Griff starten, dockt Zielenden am nächsten Knotenrand an und liefert für Eisbecher-/Hinrichtungs-Testlagen passendere Reaktionserwartungen. v27.2.49 speichert die Sitzordnung der Perspektiven-Waffe lokal, erzeugt neue Blickwinkel als `Aktenreihe`, `Halbrund` oder `Gegenueber`, scrollt die Knoten automatisch zur Reaktionserwartung und begrenzt das Eis-Signal auf echte Eis-/Privatkostenlagen. v27.2.50 ergänzt Panel-Presets für `Jura Kern`, `Privat schlank`, `Verfahrensfluss` und `Alle Rollen`, klappt Basislinien beim Erzeugen standardmaessig ein und begrenzt breite Layouts auf kompaktere Raster. v27.2.59 kopiert markierte Workspace-Ausgangslagen beim Start der Perspektiven-Waffe in den separaten Blickwinkel-Space. v27.2.63 legt für jede Hauptansicht eine aktive Space-Zentrale an, die bei echtem Inhalt ausblendet, Ansichten als Kacheln wechseln lässt, Startziele speichert und Aktionen an vorhandene UI-Bauteile weiterreicht. v27.2.68 entfernt die dauerhaft gespeicherte Startzentralen-Ausblendung; alte Dismissal-Keys werden ignoriert und Schließen setzt nur Session-Hidden. v27.2.69 fuegt rechts in jede Startzentrale ein passendes Fachmenü ein; BuschCode bleibt der zentrale Lehr-/Werkstatt-Space, während Bibliothek, Communication, Workspace, Chat, Timeline und Blickwinkel ihre eigenen Werkzeugkopien anbieten. v27.2.70 trennt die Menüinhalte in sieben eigene `view_start_menus/*_menu.js`-Dateien, damit jeder Space eigenständig ausgebaut werden kann; ein sessionweit geschlossenes Workspace-Intro lässt bei leerer Leinwand jetzt einen kleinen Hinweis mit Knoten-, Zeilen- und Startzentrale-Aktionen stehen; jede Startleinwand führt Akzentfarbe und Prüfspur-Probes; Communication nutzt eigene Button-Fit-Klassen und eine breitere Kanalspalte; Timeline trennt Titel, Verwaltung, Zeitraumsteuerung und Player in eigene Toolbar-Rasterbereiche; das linke Perspektivenwaffe-Markup und der Accordion-Binder migrieren alte Abschnittshöhen auf einen gestapelten Standardfluss; die feste authority-Rolle heisst im blauen Knoten nur `Behoerde`, `Gerichtsleitung / Praesidium` prüft Dienstaufsicht/Geschäftsverteilung/Akten/eRV getrennt vom Entscheidungskern und neue Blickwinkel-Knoten erhalten Initialemotion/Reaktion sofort aus der Live-Ausgangslage; reine URL-Eingaben gehen direkt in BrowserGateway-Knoten, können leere fokussierte Knoten übernehmen und maximierte BrowserGateway-Knoten messen ihren Webseiten-Viewport aus der Knotenfläche. v27.2.72 migriert auch alte Sidebar-Abschnittsbreiten, klemmt offene Gruppen auf die echte Sidebar-Innenbreite, erweitert BuschCode/Fachazubi auf sieben Profile und gibt jeder Startleinwand eine eigene Moduszeile plus Footer. v27.2.64 nummeriert sichtbare Knotenadressen pro Scope ab `#0`, während gespeicherte interne Knotenadressen für Snapshots stabil bleiben. v27.2.65 leitet einfache Rechenfragen als Direktantwort am Modellrouting vorbei und begrenzt kompakte Ollama-Fast-Laeufe serverseitig. v27.2.66 macht laufende Modellarbeit direkt am Knoten durch Modellnamen und Puls-Bubble sichtbar. v27.2.67 lässt unbenannte Knoten sprechende Titel aus Inhalt und Metadaten bilden, ohne manuelle Titel zu überschreiben. Der Knoten-Builder erzeugt den Kopfbereich jetzt einzeilig verdichtet mit Referenz, Titel, Datum, Flags und Fensteraktionen. v27.2.47 delegiert die Zeilenpanel-Aktionen, hält das Panel nach Rerender offen und korrigiert die Hidden-Mutation auf das aktuelle Row-State-Objekt.

## v27.2.94 führt `07_6_CommunicationSpaces.js`, `workspaceSpace='communication'`[private Angabe entfernt]`01_1_Layout.js` und `01_4_InterfaceChrome.js`

- Dock, API-Auth, Tresor und Steuerstand werden als App-Datenfelder statt Browser-Loginformular behandelt. v27.2.75 nutzt denselben Steuerstand als Wiederherstellungspunkt für die aktuellen Startzentralen. v27.2.76 beantwortet harte Mini-Fakten wie `legen pinguine eier?` lokal als `Direktwissen`, bevor ein Ollama-/Azubi-Endpunkt genutzt wird. v27.2.77 trennt `Normal` vom Uploadmodus `Als Kontext` und stellt das Startup-Versionspopup wieder her. v27.2.78 ersetzt die globale Chat-Busy-Sperre durch parallele `activeChatRuns` und sichert den Vertrag mit statischem und Browser-Smoke. v27.2.80 hält parallele Knotenlaeufe, setzt aber je lokalem Ollama-Aufruf einen festen Threadrahmen. v27.2.83 führt `09_8_ProviderReturnBridge.js` als gemeinsamen Rueckkehrpfad für externe GPT-/Provider-Weblogins ein. v27.2.84 erweitert diesen Baustein um eine Azubi42-Rueckkehrbruecke, damit der erste Klick trotz vorhandener ChatGPT-/Provider-Session nicht direkt aus Azubi42 herausführt. v27.2.85 führt im Chatfenster `resolveSelectedModelRoute` ein, damit GPT/OpenAI-Werte vor alten Select-/Ollama-Zustaenden gewinnen und Cloudlabels nicht aus stale lokalen Optionstexten kommen. v27.2.86 speichert Provider und Modell providergebunden, damit ein Ollama-Scan GPT/OpenAI-, Google-, Codex-Native- oder Suchrouten nicht mehr ersetzt. v27.2.91 hält gespeicherte Sticky-Provider beim Chat-Senden und nach Select-Rebuilds sichtbar aktiv; v27.2.93 aktualisiert nach diesem Restore auch das sichtbare Modellpanel per Change-Event. v27.2.129 stoppt OpenAI-No-Key/Auth-Fehler provider-treu ohne Codex-Handoff, übernimmt OpenAI-Modell-IDs aus der Serverliste und verhindert Ollama-/Codex-Spruenge hinter sichtbar ausgewähltem GPT.

- `app_v27_multimedia/docs/`
  Nutzerhilfe für Grundsystem, Windows, Linux-Server und den ausführlichen Funktionskatalog. Das Funktionsinventar führt jetzt zusätzlich den Legal-Text-QM als eigene Arbeitsregel: juristische Texte werden vor RAG-/LLM-/Blickwinkel- oder Schriftsatznutzung zeilen-/absatzweise gegen Original, Blickwinkel, Normanker und hoechste passende Gewinnentscheidungen geprüft; CBTC wird als vorgelagerte deutsche Rechtsverstaendnis-Schicht eingeplant.

- `app_v27_multimedia/media/`
  Medienablage für Demo-, Login- und How-to-Material mit getrennten Ordnern `video/` und `bilder/`. Git versioniert nur README, `.gitignore`, `.gitkeep` und Login-Intro-Metadaten; MP4/JPG/WebM/Poster liegen lokal oder serverseitig in derselben Struktur. Ab v27.2.45 ist das sichtbare Login-Intro browsernativ mit 24-Sekunden-Regie; v27.2.109 zieht Desktop-Modul-, Datenfluss-, Dokument- und RAG-Bewegungen früher sichtbar in den Startviewport; v27.2.47 hält den Reduced-Motion-/Inspect-Pfad als ruhiges Storyboard sichtbar und nutzt denselben Demo1-Rahmen für Header-/Zeilenpanel-Prüfungen. Der v27.2.43-MP4-Pfad bleibt als optionaler Medien-/Fallback- und Produktionsvergleich erhalten.

- `app_v27_multimedia/azubi42_version.json`
  Statischer Build-Marker für Deploy- und Cache-Prüfung. Muss live denselben Build wie `version_manifest.json` und `__azubi42/version.json` zeigen.

- `app_v27_multimedia/Start_Azubi.ps1` und `app_v27_multimedia/start_windows.bat`
  Windows-Starthelfer für den lokalen Python-Proxy. Beide setzen jetzt `PYTHONDONTWRITEBYTECODE=1`, damit lokale Starts keine gesperrten App-`__pycache__`-Dateien mehr erzeugen.

- `app_v27_multimedia/logos/`
  TXT-/PNG-Assets für Mini-Logos und Lightbox, jetzt inklusive Ollama.

- `app_v27_multimedia/azubi42_server.py`
  Lokaler/Server-Proxy inklusive Forgejo-Versionscheck, Web-Login-Gate mit v27.2.47-browsernativer 24-Sekunden-Systemshow mit Inspect-/Reduced-Motion-Storyboard, v27.2.43-Medienfallback, v27.2.41-Wide-Login/Materialize-Übergang, v27.2.40-Intro-/Scrollfix samt Mindestlaufzeit, v27.2.38-Version-Probe und v27.2.36-Medienablage für Login-Medien, lokaler Zugangsanfrage-Ablage, Konto-Profil-API `/api/account/profile` mit getrennten Profilfeldern, optionalen `user_properties`, festen `role_context`-Hinweisen aus dem Login-/Legal-Actor-Kontext und Icon-/Prüfachsen-Metadaten, Löschantrag-API `/api/account/delete-request` mit Ablage unter `runtime/account_requests/`, Matrix-Alarm samt Quick-Action-Links für neue Dev-/Jura-Zugangsanfragen, Matrix-Login für freigegebene User inklusive Alias-Mapping, optionalem separaten lokalen Azubi-Passwort bei der Freigabe, erstem Forgejo-Loginpfad pro Domainprofil, serverseitigem Ollama-Proxy unter `/api/ollama`, DuckDuckGo-Suchproxy unter `/api/web/search` für Web-/Bild-/Videosuche, neuem Webseiten-Importpfad `/api/web/fetch`, TLS-Zertifikatsprüfung unter `/api/monitor/tls/certificate` sowie Google-Gemini-Proxy unter `/api/google/generate`. Die Matrix-Quicklinks sind jetzt textlich als lokale Admin-Review markiert, weil `__azubi42/request-review` bewusst nur mit bestehender lokaler Admin-Session ausführt. Das Login-Gate kennt jetzt Instanzlabel, Edition-ID, sichtbaren Loginstand, Nachweis-/Freischaltweg und optionale Legal-Identity-Pflichtfelder für getrennte Fachinstanzen. Freigaben speichern nun den abgeleiteten Legal-Actor-Rollenhinweis; `/api/runtime/status` und `/api/legal/schriftsatz/notice` liefern daraus den passenden Schriftsatzkopf für Privatpersonen oder Human-in-the-Loop-Bearbeiter. Der Suchproxy bereinigt jetzt eingehende Queries gegen versehentlich mitgesendeten Fokus-/Systemkontext und spiegelt die Originalanfrage getrennt für Debugzwecke. Such- und Webfetch-Anfragen laufen jetzt mit browseraehnlicheren Headern, damit Zielseiten weniger oft auf den Azubi42-Proxy statt auf normale Nutzer-Navigation reagieren. Webfetch und TLS-Prüfung sperren lokale/private Ziele bewusst, damit die App nicht als internes Netzwerkfenster missbraucht werden kann. OpenAI-, Google-, Codex- und Ollama-Proxyzeiten liegen jetzt auf Langlaeufer-Niveau für sehr große Dokument-/OCR-Auftraege. `/api/runtime/status` und `/api/openai/models` liefern Edition/Profil sowie aktuelle OpenAI-Modelloptionen für das Frontend; `/api/version` und `/__azubi42/version.json` liefern zusätzlich eine öffentliche Backend-Version-Probe. `/api/paperless/sidecars`, `/api/paperless/sidecar`, `/api/paperless/thumbnail` und `/api/paperless/marker-profile` liefern geschützte Legal-OCR-Sidecars, Seitenthumbnails, getrennte Paperless-Direkt-/Suchlinks und Farbpipetten-Konfigurationswerte. `/api/paperless/folders`, `/api/paperless/folders/create` und `/api/paperless/upload` bilden erste produktive Paperless-Bridge-Funktionen für Ordnerbaum-Tags, Unterordner-Zielpfade, OCR-Upload und UI-Upload-Protokoll. `/api/legal/case/learn` erzeugt private Fall-Lernplaene unter `runtime/case_learning_runs/`, ohne Paperless-Zugangsdaten oder Rohdokumente zu speichern. `/api/legal/aktenzeichen/timeline/upload-folder` nimmt Browser-Ordneruploads entgegen, schreibt sie unter `runtime/aktenzeichen_timeline_uploads/` und startet daraus die bestehende AZ-/Helix-Pipeline. Die Jurabibliothek-DB kann per `AZUBI42_JURABIBLIOTHEK_DB` explizit gesetzt werden, damit Fachinstanzen wie `azubi42-jura` denselben zentralen SQLite-/FTS-Bestand read-only nutzen können. Konkrete SGB-Normanfragen wie `SGB II §4` werden vor der breiten FTS-Suche als Norm erkannt und auf den lokalen oder amtlichen Direkttreffer geführt.

- `00_META/azubi42_export_konzept.md`
  Architekturkonzept für Exporte mit Workspace-Bild/PDF/DOCX/HTML-ZIP, Schriftsatzpaket, Belegkettenpaket, Versandvorbereitung und sicherem Handoff an andere Azubi42-User.

- `app_v27_multimedia/version_manifest.json`
  Lokaler Versionsstand für Update-Erkennung gegen Forgejo.

- `70_TESTS_AND_SMOKE/ui/audit_light_theme_resize.mjs`
  Reproduzierbarer lokaler UI-Smoke für helle Themes, Sidebar-Resize, Header-Begrenzung, Kollegen-Logo-Geometrie ohne großes Einzel-Logo und Perspektiven-Waffe-Overlay. Nutzt vorhandenes Chrome/Edge per CDP, erzeugt 4K-Screenshots plus schmalen WeddingCake-Repro und legt `light_theme_resize_audit.json` im aktuellen Demo1-Ordner aus `00_META/version_manifest.json`[private Angabe entfernt]`nav-tools`/`Azubi42 Toolbox` auf Toggle, Body, horizontalen Breitenziehgriff, passenden Höhenziehgriff, stabile Kopfhöhen im offenen/eingeklappten Mischzustand, gestapelten Sidebar-Fluss ohne nested Body-/Options-Scroller und für die Toolbox einen echten Einklapp-/Aufklapp-Klick; die App-Ready-Wartezeit ist für schwere Vorfuehrlaeufe auf 60 Sekunden erhoeht und der Standard-CDP-Port wird pro Prozess abgeleitet. `audit_perspective_weapon_tooltip.mjs` sichert den kanonischen Perspektiven-Waffe-Tooltip sowie die Version-/Asset-Token-Kohaerenz statisch ab.

- `[private Angabe entfernt]`
  Statischer Theme-Vertrag für v27.2.144. Prüft Shared-Core/Ubuntu-Installer-Spiegel, Cache-Buster `27164-light-themes`, eindeutige helle Farbrollen für `Gelato41`, `WeddingCake` und `WhiteRuntz` sowie Mindestkontrast der App- und Sidebar-Texte.

- `70_TESTS_AND_SMOKE/ui/audit_mobile_smart_css.mjs`
  Statischer Mobile-/Tablet-Smoke für den zweiten CSS-Ladepfad. Prüft Viewport-Meta, `css/mobile-smart.css`[private Angabe entfernt]`Azubis Kollegen`-Block am Ende des mobilen Menüs, den BuschCode-Erststart auf Mobile/Touch, den Workspace-Session-Boot ohne Ruecksprung auf Workspace und den Schutz, dass `style.css` nicht importiert oder ersetzt wird.

- `70_TESTS_AND_SMOKE/ui/audit_error_fixit_list.mjs`
  Statischer Fix-It-Smoke. Prüft Main-Boot, Shared-/Installer-Modul, lokale Persistenz, `MutationObserver`, Runtime-/Promise-Fehlererfassung, Ignore-Guard für die eigene UI, Anzeigen-/Erledigt-Aktionen, Server-Sync nach `/api/fixit/report`, private Server-Inbox mit Redaction, Installer-Serverroute und Styling für Toast/Ursprungsmarkierung.

- `70_TESTS_AND_SMOKE/integrations/audit_fixit_codex_worker.py`
  Server-Worker-Smoke für die optionale Fix-It-Codex-Bruecke. Prüft Integration/Installer-Spiegel, systemd-Setup, kein automatisches `codex login`, Dry-Run-Prompt-Bundle, Jobablage und `lastSeen`-State ohne Codex-Ausführung.

- `70_TESTS_AND_SMOKE/ui/audit_input_dock_viewport.mjs`
  Statischer Dock-Viewport-Smoke. Sichert, dass gespeicherte Dock-Offsets beim Init und Resize geklemmt werden, der untere Dock-Y-Offset nicht positiv werden kann, korrigierte Werte nach `localStorage` zurückgeschrieben werden und die bestehende Dock-CSS-Geometrie erhalten bleibt.

- `70_TESTS_AND_SMOKE/ui/audit_sidebar_sections.mjs`
  Statischer Inventar-Smoke für die linke Sidebar. Gleicht Layout-Markup, Accordion-Binder, CSS, Abschnittsicons, No-Shrink-Regel, `single-scroll-v1`, gelöschte Altbreiten, automatische Buttonhöhen, fehlende aktive Transform-Skalierung, inhaltsgebundene Hover-Akzente und Browser-Audit-Liste für Ansichten, Communication, Blickwinkel, Legende, Modelle, Toolbox, Tresor, Verlaeufe und Azubis-Kollegen ab.

- `70_TESTS_AND_SMOKE/ui/audit_sidebar_accordion_browser.mjs`
  CDP-Smoke für echte Sidebar-Geometrie. Injiziert alte gespeicherte Abschnittshöhen und 640px-Breiten, öffnet alle linken Gruppen, misst Button- und Abschnittsrechtecke, prüft fehlendes Clipping, schreibt `reports/sidebar_accordion_audit/sidebar_accordion_open.png` und kontrolliert die neuen Fachazubi-DOM-Eintraege im BuschCode.

- `70_TESTS_AND_SMOKE/ui/audit_fachazubi_catalog.mjs`
  Statischer Fachazubi-Smoke. Prüft kanonischen Katalog, beide Runtime-Kopien sowie Frontend- und Backend-Fallbacks auf Jura, Plant, Dev, Communication, Kanzlei, Fahrschule und Schule inklusive der festen Fachakzente `gold`, `leaf`, `code`, `signal`, `burgundy`, `traffic` und `school`. Ab v27.2.96 prüft er `openFachazubiPopup`, `Vorstellen`, Lightbox-Markup und Popup-CSS. Ab v27.2.95 prüft er eindeutige Forgejo-Pfade, Theme-Felder, Funktionslisten, Rollenblickwinkel, Modulsteine sowie Schul-/Fahrschul-Rollen. Ab v27.2.89 prüft er zusätzlich semantisches Fach-Akzent-Markup und CSS im Shared- und Installer-Spiegel. Der Live-Deploy führt `runtime/fach-azubis/catalog.json` als öffentliches Runtime-Bauteil mit, ohne andere Runtime-Dateien zu veröffentlichen.

- `70_TESTS_AND_SMOKE/ui/audit_fachconnect_bridge.mjs`
  Statischer FachConnect-Smoke. Prüft neuen Shared-/Installer-Bridge-Code, fachbezogene Symbolprofile, BuschCode-Button, Fachazubi-Karten-/Popup-Routing, Runtime-Session ohne Passwort-Persistenz, Fix-It-Fehlerpfad, CSS und Buildtoken.

- `70_TESTS_AND_SMOKE/ui/audit_azubi42_domain_site.mjs`
  Statischer AZUBI42.de-Smoke. Prüft Public-Site, Manifest, Domainprofil, Drittanbieter-/Iframe-Ausschluss, Deployhelfer, Installer-Spiegel, generierte Fachazubi-Detailseiten, Roadmap, Site-Generator und eindeutige Forgejo-Pfade.

- `70_TESTS_AND_SMOKE/ui/audit_legal_perspective_labels.mjs`
  Statischer UI-Smoke für feste Blickwinkel-Rollenlabels. Sichert, dass der blaue authority-Knoten nur `Behoerde` heisst, keine Verteidigung an die Behörde gehaengt wird und `Gerichtsleitung / Praesidium` als feste Rolle im Jura-Kern sowie mit Organisations-/Dienstaufsichtsreaktion vorhanden bleibt.

- `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs`
  Statischer UI-/Server-Smoke für direkte Webknoten. Sichert, dass reine URL-Eingaben in Chat, Knoten-/Drop-/Kontextpfad den Lesesnapshot überspringen, BrowserGateway-Knoten direkt erzeugen oder leere fokussierte Knoten übernehmen, dynamische Viewports an Server und Screenshot übergeben, maximiert nur das Webseitenbild zeigen, Communication-Scope-Markierung erhalten bleibt, der app-eigene Browserpfad `runtime/ms-playwright` verdrahtet ist und ab v27.2.90 der Connector-/Agent-/Human-Checkpoint-Vertrag in Shared- und Installer-Spiegeln hält.

- `70_TESTS_AND_SMOKE/ui/audit_communication_space.mjs`
  Statischer Space-Smoke für Communication. Sichert eigenen linken Communication-Bereich, Dienstliste, Communication-Sessions, Canvas-Routing mit `workspaceSpace='communication'`, markierte Communication-Webstart-Knoten mit externem Originalbrowser-Link, keine automatischen BrowserGateway-Anbieter-Nachbauten im Communication-Standardflow, getrennte sichtbare Knotenadressen und Schutz gegen falsche Workspace-/Blickwinkel-Snapshot-Überschreibung.

- `70_TESTS_AND_SMOKE/ui/audit_view_start_screens.mjs` und `audit_view_start_screens_browser.mjs`
  Statische und CDP-basierte Prüfung für die Ansichten-Space-Zentrale. Der Browserlauf prüft Workspace-Start, Launcher-Kacheln, Startsetup, Kompaktmodus, eigene Moduszeilen und Footer je Ansicht, Prüfspur-Probes inklusive Workspace-Webtest und Blickwinkel-Rechtsfremd-/Rotbereich, Blickwinkel-Wechsel, Direktstart der Perspektiven-Waffe mit Ausgangslage plus Rollen, Chat-Ausblendung und fehlenden permanenten Auto-Ausblend-Schalter. Der statische Lauf sichert zusätzlich Fachfarben-Palette und Sidebar-Akzenttrennung.

- `70_TESTS_AND_SMOKE/ui/audit_node_visible_numbering.mjs`
  Statischer UI-Smoke für sichtbare Knotennummern ab `#0`, getrennt von internen Snapshot-/nodeCounter-Werten.

- `70_TESTS_AND_SMOKE/ui/audit_local_ollama_fast_profile.mjs`
  Statischer Smoke für den lokalen Ollama-Fast-Pfad. Sichert die Auto-Fast-Grenzen, den festen `num_thread`-Rahmen (4 Auto-Fast, 8 Text, 6 Vision, maximal 12), optionalen `num_thread`-Schalter, den lokalen Antwortvertrag gegen leere Gegenfragen, die v27.2.79-Modellscore-Prioritaet für brauchbare 7B-/8B-Coder statt 1B-/3B-Miniantworten und die steuerbare Ubuntu-Ollama-/App-Policy gegen Rueckfaelle ab.

- `70_TESTS_AND_SMOKE/ui/audit_chat_direct_arithmetic.mjs`
## Statischer Smoke für Direktrechnung/Direktwissen im Chat

- muss als `... · lokal` erscheinen und als Systemnachricht in Knoten landen (kein Assistant/LLM-Label).

- `70_TESTS_AND_SMOKE/ui/audit_modelrouting_basepath_cookie_path.mjs`
## Statischer Smoke für Base-Path-/Cookie-Path-Stabilitaet

- ModelSelector/LocalFetch müssen `/api/ollama` base-path-sicher normalisieren, Server muss 401/Login-Gate für `/api/*` klar liefern.

- `70_TESTS_AND_SMOKE/local-models/SMOKE_modellrouting_ollama_session.md`
## Manueller Browser-Smoke für Modellrouting/Ollama-Proxy/Session

- Direktrechnung lokal, Modellantworten mit Modelllabel, Login-Gate sichtbar, externe URLs blockiert, Session-Reset nach Neustart sichtbar.

- `00_META/AZUBI42_MODELLROUTING_REGELWERK.md`
  Transparente Routing-Regeln für Modellpfade/Toolpfade/Fallbacks inkl. Session/Auth- und Base-Path-Regeln (kein verdeckter Fallback als Modellantwort).

- `70_TESTS_AND_SMOKE/ui/audit_login_intro.mjs`
  Reproduzierbarer lokaler Login-Smoke für die Filmshow-Vorstufe. Nutzt vorhandenes Chrome/Edge per CDP, fotografiert 4K-Phasen der browsernativen Login-Intro-Buehne, prüft zusätzlich den Reduced-Motion-/Inspect-Pfad über berechnete Styles, wartet auf die Freigabe und prüft AZUBI42-Logo, Modul-Docking, OCR-Scan, Jura-RAG-Graph, Blickwinkel-Orbit, Login-Materialisierung und fehlende aeussere Desktop-Scrollbar.

- `70_TESTS_AND_SMOKE/ui/audit_header_row_panel.mjs`
  Reproduzierbarer lokaler Header-/Zeilen-Smoke. Nutzt vorhandenes Chrome/Edge per CDP, prüft bei Desktop- und kleinem Monitor `+ Zeile`, `+ Knoten`, das `Zeilen`-Panel, Klicktreffer auf Zeilenaktionen, Ausblenden, Löschen, Zeilenstatus und den offenen Panelzustand nach Rerender.

- `70_TESTS_AND_SMOKE/ui/audit_perspective_bundle.mjs`
  Reproduzierbarer lokaler Blickwinkel-Buendel-Smoke. Nutzt vorhandenes Chrome/Edge per CDP, baut Eisbecher-, Hinrichtungs- und Zuständigkeits-/PKH-Testlagen, prüft BWB-Drag, Linienbewegung, Emotionsfarben, Reaktionstexte und bereinigt Browser-Storage pro Szenario, damit Rechtsgültig-/Rechtsfremd-/Rotbereich-Tests reproduzierbar bleiben. Schreibt 4K-Screenshots plus Audit-JSON nach `reports/blickwinkeltests/`.

- `70_TESTS_AND_SMOKE/legal/test_account_profile_privacy.py`
  Reproduzierbarer Konto-/Datenschutz-Smoke für getrennte Nutzerprofilfelder, User-Eigenschaften, Login-Rollenhinweise und den Löschantrag als Admin-Review-Datensatz.

- `app_v27_multimedia/Build-Linux-v27.ps1`
  Linux-Export.

- `app_v27_multimedia/Build-LinuxServer-v27.ps1`
  Ubuntu-24-Serverexport; ab v27.2.94 installiert Playwright-Chromium in `runtime/ms-playwright` und schreibt den Browserpfad in die Service-Env.

- `app_v27_multimedia/Start_Azubi.ps1`
  Windows-Startscript.

- `app_v27_multimedia/start_windows.bat`
  Batch-Startscript für Windows.

- `reports/v27.2.28_demo1/`
  Wiederholbarer Demo1-Produktionsrahmen mit Rohmaterialordner, Produktionsordner, Shotlist, Produktionsbrief, Code-Kommentartabelle, Sichtbarkeitsaudit, 4K-Screenshot und erstem 4K-Clip für Sidebar-Scroll/Resize.

- `reports/v27.2.29_demo1/`
  Fortsetzung des Demo1-Rahmens für helle Theme-Audits, Sidebar-Höhenresize und neue 4K-Show-Rohmaterialien.

- `reports/v27.2.30_demo1/`
  Fortsetzung des Demo1-Rahmens für Header-/Perspektiven-Waffe-/Scrollbar-Smokes in hellen Themes.

- `reports/v27.2.31_demo1/`
  Fortsetzung des Demo1-Rahmens für Login-Intro, helle Header-/Popup-Kontraste und den kompakten Kollegenblock.

- `reports/v27.2.34_demo1/`
## Studio- und Show-Vorbereitung für den aktuellen Blickwinkel-/Buendelstand

- Rohmaterialordner, Produktionsordner, kuratierte Code-Kommentar-Signaltabelle, Studio-Skript, 20er-Shotliste, Intro-Briefing und Deploy-/Sichtbarkeitscheckliste.
- Der Ordner enthält noch keine neuen 4K-Binaerdaten; Aufnahmen folgen erst nach stabilisiertem Server/Webroot.

- `reports/v27.2.35_demo1/`
  Lokaler, ignorierter Rohmaterialordner für den neu gerenderten Demo1-Login-Teaser. Enthalten sind 4K-SVG-/PNG-Frames, Manifest und 4K-MP4; die Webfassung wird lokal oder serverseitig unter `app_v27_multimedia/media/video/` plus Poster unter `app_v27_multimedia/media/bilder/` abgelegt.

- `reports/v27.2.47_demo1/`
  Lokaler, ignorierter Rohmaterialordner für die aktuelle Login-/Header-Show mit browsernativen Smoke-Screenshots der gestaffelten 24-Sekunden-Regie, Reduced-Motion-/Inspect-Screenshot, Header-/Zeilenpanel-Audit und späteren Demo-/Trailer-Rohmaterialien.

- `reports/blickwinkeltests/`
  Lokaler, ignorierter Screenshot- und JSON-Ausgabeordner für BWB-Verhaltenstests; enthält reproduzierbare 4K-Bilder der Eisbecher- und Hinrichtungs-Lage, wird aber nicht als Binaermaterial in Forgejo versioniert.

- `toolbox/video_studio/`
## Lokale Windows-Studiotoolbox für Demo-/Intro-Rohmaterial

- `check_studio.ps1` erkennt OBS, FFmpeg, ImageMagick, Node, Python, Git, GPU und Encoder; `render_intro_teaser.ps1` erzeugt deterministische 4K-SVG-Frames, PNG-Zwischenbilder, Manifest und MP4-Testteaser; `render_login_intro_asset.ps1` bleibt als optionaler 4K-Webasset-Exportpfad erhalten.
- Die sichtbare v27.2.47-Login-/Header-Show kommt aus DOM/CSS und ist direkt im Browser iterierbar.
- Generierte `studio_check/`, `studio_renders/` und `login_intro/`-Ordner bleiben lokale Rohdaten und sind per `.gitignore` aus dem Forgejo-Main ausgeschlossen.

- `toolbox/deploy/`
## Live-Deploy-Prüfung für `azubi42-dev`/`azubi42-jura`

- PowerShell- und Bash-Skript lesen statischen Marker, Manifest, Backend-Probe, Runtime-Status und Medienpfade und melden HTML-statt-JSON als harten Versions-/Routingfehler.
- Der WinSCP-Deploy-Helfer baut ein lokales Paket, synchronisiert beide App-Ziele unter `/opt`, nutzt standardmaessig die gespeicherte WinSCP-Session `root@forgejo.buschitut.eu` und prüft anschließend den Live-Stand.
- Service-Restarts sind nur mit `-RestartServices` aktiv; `-PrepareOnly` bleibt komplett ohne Serververbindung.
- `-EnsureBrowserGatewayRuntime` installiert/aktualisiert ab v27.2.94 die Playwright-Chromium-Binaries in `runtime/ms-playwright` und setzt Runtime-Rechte auf den systemd-Dienstnutzer.

  Für die neue Public-Domain `azubi42.de` gibt es zusätzlich `deploy_azubi42_domain_site_winscp.ps1`. Der Helfer paketiert `20_EDITIONS/azubi42-de/website/`, synchronisiert nach `/var/www/azubi42.de/current`, richtet Nginx per `server_name` auf derselben IP ein und schaltet Let’s Encrypt optional nach DNS-Propagation. `-FilesOnly` synchronisiert nur Dateien und lässt bestehendes HTTPS/Nginx unveraendert. Ab Public-Site-Version 2026.05.06.5 geht das lokale Mission-Patch-Asset im Hero und als OpenGraph-Bild mit; ab 2026.05.06.4 gehen generierte Fachazubi-Detailseiten, Roadmap, mobile Detail-Navigation und Katalogdaten mit in den Auslieferungsstand. v2026.05.07.1 führt `Closed Beta Invite only`, die 2x3 Mobile-Patch-Navigation und bereinigte Public-Katalogtexte.

- `30_INSTALLERS/ubuntu24/config-templates/forgejo-4k-media.app.ini.example`
  Forgejo-Servervorlage für 4K-Screenshots, How-to-Bilder und kurze Demo-Clips mit 256 MB Upload-/Attachment-Grenze und 32 MiB Web-Anzeigegrenze.


## Modulgruppen Mit Anzahl


- Root-JS: `1`
- `00_STATE`: `1`
- `01_CORE`: `9`
- `02_CHAT`: `5`
- `03_WORKSPACE`: `3`
- `04_NODE`: `5`
- `05_LEGEND`: `5`
- `06_API_ROUTER`: `6`
- `07_DATA_VAULT`: `5`
- `08_TIMELINE`: `3`
- `09_TOOLS`: `10`
- `10_PAPERLESS_RAG`: `3`
- `11_AUTH_MANAGER`: `5`

## Betriebsrelevante Bauteile


- Workspace:
  freie Leinwand, Zeilenmodell, Mehrfachauswahl, Verbindungen, Kompaktmodus, Vollansicht, kompakter Knoten-Kopf, umlaufender Resize-Rahmen für Knoten und Pointer-Zoom per `Strg`/`Cmd` + Mausrad am Mauszeiger; modifizierte Auswahlklicks werden jetzt nicht mehr vom Resize-Rand oder Drag-Handle verschluckt; ein Klick auf einen bereits mehrfach markierten Knoten zerstoert die Gruppenauswahl nicht mehr, Ziehen eines markierten Gruppenknotens bewegt die komplette Auswahl, und die sichtbare Auswahl-/Fokusmarkierung liegt theme-sicher über den Farbschema-Panelregeln; Verbindungslabels zeigen zusätzlich die Tagesabstaende der beteiligten Knotendaten bis heute und erklaeren undatierte Verbindungen per Hover-Text; sichtbare Knotenadressen zaehlen pro aktivem Workspace-/Blickwinkel-Scope ab `#0`, bleiben aber intern von Snapshot-IDs getrennt; leere neue Knoten starten ab v27.2.71 wieder sichtbar als `Knoten` und bleiben im Auto-Titelmodus

- Workspace-Verlauf:
  lokale Workspace-Sessions mit eigenem Snapshot, aufklappbarer und scrollbarer Verwaltungssektion in der linken Seitenleiste, `+ Neu`, explizitem `Speichern`, Namensfeld mit `Setzen`, Aktivwechsel und Löschen; ab v27.2.121 laedt der Boot die aktive Session ohne eine schon gesetzte Nicht-Workspace-Startansicht zu überfahren

- Blickwinkel-Spaces:
  eigene lokale Perspektiven-Waffe-Leinwaende mit getrennten Snapshots, aufklappbarer Blickwinkel-Sektion in der linken Seitenleiste, Perspektiven-Waffe-Panel, Startvarianten, `+ Neu`, explizitem `Speichern`, Namensfeld mit `Setzen`, Aktivwechsel und Löschen; beim Wechsel zurück in den Workspace wird der normale Workspace-Snapshot wiederhergestellt. Der feste Behörden-Blickwinkel bleibt als `Behoerde` benannt und wird nicht mit Verteidigung vermischt; `Gerichtsleitung / Praesidium` ist als fester Blick für Dienstaufsicht, Geschäftsverteilung, Aktenorganisation, Zustellung/eRV und Art.-97-GG-Abgrenzung hinzugekommen. v27.2.71 migriert alte gespeicherte Authority-Knoten, Inhalte, Tooltips und Verbindungstexte beim Laden aktiv von der früheren Mischrolle auf `Behoerde`.

- Chat:
  Blickwinkel-adressierte Knoten, Antwort-Overlay, Verlauf, Uploadpfade, echtes Mehrzeilen-Dock unten mit eigenem Outline-Resize, freiem Drag-Griff und Tool-Routing; der Chatverlauf schaltet beim Öffnen jetzt sichtbar in die Chatansicht. Normale Workspace-Auswahl erscheint im Dock als `Knoten`; `Blickwinkel` wird nur im Blickwinkel-Space oder bei echten Perspektiven-Knoten angezeigt. Eingaben werden nur im Blickwinkel-Space als `Ausgangslage · Eingabe` links mitgeschrieben, Suchkarten können jetzt auch innerhalb normaler Fokus-Knoten mit Links, Vorschaubildern und `+ Knoten`-Aktion weiterbedient werden, und reine URL-/Login-/Webapp-Auftraege gehen direkt in BrowserGateway-Knoten statt in den Snapshot-Import. Bare-Domains wie `wetter.com` gelten dabei als URL; ein leerer fokussierter Zielknoten wird dafür wiederverwendet. BrowserGateway bietet zusätzlich `↗ Extern öffnen` als klaren Ausweichpfad in den echten Browser. Das Dock nutzt jetzt eine stabile Editor-/Werkzeug-/Sendeaufteilung, wenn der Nutzer es höher zieht; der persistente freie Dock-Offset darf nach unten nicht positiv werden und bereinigt gespeicherte Altwerte beim Start/Resize.

  Lokale Modell-Authfehler werden nicht mehr als roher Ollama-JSON-Fehler in Ausgangslage-Knoten geschrieben; der Workspace zeigt stattdessen einen bereinigten Hinweis auf Modellpfad/Auth oder Codex Native/Websuche.

- BuschCode:
  eigene Schnellansicht zwischen Timeline und Workspace für Codex-/Tresor-Wege, Statusanzeige für aktiven View/Modell/Tresor/Fachprofil, direkte Spruenge in bestehende Codex-Native-, aktuelle OpenAI-Profil-, Forgejo-Connect- und Startbausteile sowie die `Perspektiven-Waffe` für Gegenüberstellungs-Knoten aus Kläger-/Behörden-/Gerichts-/Norm-/Anwalts-/Gegenseiten-Sicht. Ab v27.2.130 startet `Forgejo verbinden` den fachbezogenen Connect-Dialog und zeigt den verbundenen Forgejo-Nutzer im Status. Blickwinkel können jetzt SVG-Avatare mit optionaler Live-Aura, Auge-/Sichtbarkeitszustand, Avatar-Stilwahl, eigener Blickwinkel-Farb-/Folgenlegende, Strenge-/Folgenreglern und frei angelegten Zusatzblickwinkeln nutzen; die Reaktion aktualisiert sich beim Tippen und nach gesendeten Eingaben aus lokalen Textsignalen.

  Rollenprofil und Prüfachsen der Blickwinkel werden jetzt explizit in den RAG-Auftrag übernommen; Rollenwoerter wie `Richter` loesen allein keine Strafspur mehr aus, sondern erst konkrete STGB-/Gewalt-/Tatbestandssignale.

- Paperless:
  eigene Arbeitsfläche in der linken Navigation für Legal-OCR-Sidecars, vergrößerte Thumbnail-Rail, vollständigen Seiteninspektor, Farbpipette, Zoom-Vorschau mit eigener Pipette und Markerprofil-Generator; BuschCode behält die kompakte Paperless-Karte für schnelle Entwicklerkontrolle. Echte Paperless-Dokumentlinks werden nur bei numerischer Paperless-ID angezeigt, Test-/Sidecar-IDs führen stattdessen in die Paperless-Suche. Alt-Thumbnails mit zu niedriger Aufloesung werden als niedrig markiert, damit klar ist, wann ein Sidecar neu erzeugt werden muss.

- Communication:
  neuer Kommunikations-Space für Messenger-Icon-Menüs, mehrfach erzeugbare Web-Template-Karten mit Login-/Ziel-URL, lokal persistente Kommunikationsvorlagen und den späteren Andockpunkt für echte Web-Knoten pro Kanal. `Login` und `Web` bauen jetzt interne Workspace-Knoten als sichere Web-Connect-Karten ohne Fremd-iframe und ohne Direktnavigation aus dem Knoten; CSP-/OAuth-blockierte Dienste werden nicht mehr als normaler Browser-iframe simuliert. Kanal-, Template- und Webconnect-Aktionsbuttons besitzen eigene Fit-Klassen, umbrechen laengere Beschriftungen und werden im Browser-Smoke gegen Text-Overflow geprüft. Der Webconnect startet kontrolliert aus der Kontextkarte, trennt den Popup-Opener und behält Ziel-URL und Session-Kontext im Knoten. Ab v27.2.90 tragen Web- und Login-Karten Connector-Typen (`server_session`, `top_level_login`, `matrix_widget_safe`, `readonly_public`) und Agent-Modi (`human_checkpoint`, `supervised_browser`, `readonly_snapshot`); `azubi42.communication.connectorPlan.v1` merkt spätere Browser-Agent-Laeufe lokal vor. Ab 26.Mai.2026 führt der Space sichtbare Loginarten und Connectorstatus: Matrix API als echter Connector, OAuth-/WebAuthn-Webstarts für Slack/Discord/Teams/Google/LinkedIn/Facebook/Instagram/TikTok, QR-/Handy-Kopplung für WhatsApp/Telegram und manuelle Desktop-Kopplung für Signal. Web-only-Startpunkte werden damit nicht mehr als echte Logins behauptet.

- BrowserGateway:
  echte lokale Playwright-Chromium-Knoten für Live-Webapps, Loginseiten, Klicks, Texteingabe, Formular-Fill, Back/Forward/Reload/Scroll, Inspect-Kontext, Console-/Network-Hinweise, Downloads und interne Tabs. Der Snapshot-Webscraper bleibt Analysepfad; Browser-/Login-/Webapp-Absichten und reine URL-Texte werden vor dem URL-Import abgefangen und in diesen Live-Pfad geleitet. Bei explizitem BrowserGateway-Wunsch wird kein stiller Snapshot-Fallback mehr gestartet. BrowserGateway nutzt ab v27.2.92 persistente Playwright-Kontexte unter `runtime/browser_gateway_profiles/` und Downloadablagen unter `runtime/browser_gateway_downloads/`; Cookies, LocalStorage, Navigation und Downloads bleiben lokal im Chromium-Kontext. Ab v27.2.94 liegt Chromium bevorzugt app-eigen unter `runtime/ms-playwright`; v27.2.139 fällt bei leerer App-Runtime auf Forgejo-Shared-Core oder den Windows-Playwright-Cache zurück. v27.2.98 konsumiert Discourse-/Public-Handoff-Parameter wie `azubi42_browser_url` beim App-Boot und erzeugt daraus einen BrowserGateway-Knoten im Ziel-Space. v27.2.138 beendet offene BrowserGateway-Sessions und Playwright beim Server-Stop kontrolliert. Der Screenshot ist nur der sichtbare Frame-Transport in den Knoten, kein Ersatz-Renderer. Contentpass-/Third-Party-Rendering ist per Smoke-Audit ausgeschlossen. Ab v27.2.187 serialisiert das Frontend Sessionstarts pro BrowserGateway-Oberfläche und global kurz gedrosselt, damit gespeicherte Communication-Knoten den Server nicht parallel mit Starts überfahren; ab v27.2.187 werden verzoegerte Startjobs vor Ausführung auf den aktuellen sichtbaren Node-DOM zurückgebunden. Maximierte BrowserGateway-Knoten blenden Azubi-Kontrollen aus und lassen den Server-Screenshot mit der sichtbaren Knotenfläche neu rechnen. Ab v27.2.90 reicht der Knoten Service-ID, Connector-Typ und Agent-Modus an `/api/browser/session` weiter; Captcha, MFA, Consent und Rechteentscheidungen bleiben Human-Checkpoint statt Umgehung.

## Live-Smoke für reales Rendering/Artefakte

- `70_TESTS_AND_SMOKE/integrations/smoke_browser_gateway_live_page.mjs` ruft `/api/browser/session|screenshot|snapshot` gegen `https://example.com` (Default, per `AZUBI42_BROWSER_SMOKE_URL` austauschbar) und prüft PNG-Data-URL, Final-URL und Snapshot-Text.

- Timeline:
  native horizontale Zeitstrahlansicht mit editierbarem Jahrbereich, Jahresblasen, Monatsblasen, oben/unten-Richtung je markierter Jahresauswahl, Linienmarkern und Player-Navigation. Besitzt jetzt eigene Timeline-Verwaltung, selektierbare und flagbare Jahr-/Monatsblasen, Upload-Einsortierung nach Datei- oder Schriftsatzdatum, Timeline-Verbindungen mit Tagesanzeiger und Z-Layer-Buttons. Timeline-Flags laufen jetzt über einen eigenen Eventpfad und landen nicht mehr auf Workspace-Knoten; sichtbare Flags sind kompakte Farbpunkte und erscheinen im gemeinsamen Legendenindex als Timeline-Farbfilter. Tageslabels sind per Maus frei verschiebbar; `+ Anzeiger` erzeugt eine verschiebbare Sprechblasen-Notiz direkt an einer Verbindung. Die erste importierte MindManager-Skizze wurde unter `runtime/timeline_sketch_document_20260423.xml` analysiert und als Strukturvorlage für die neue Ansicht verwendet. Die Timeline kann frei mit der Maus gepannt und per `Strg`/`Cmd` + Mausrad direkt am Mauszeiger gezoomt werden; der Jahresblasen-Rahmen dient als Spalten-Drag für die aktuelle und alle rechts folgenden Spalten. Die Toolbar besitzt eigene Bereiche für Titel, Verwaltung, Zeitraumsteuerung und Player und bricht auf Laptopbreite ohne Überlappung um.

- Matrix:
  Login, Raumkatalog, Sync, Ping-Erkennung, Raumauswahl, Direktsenden und jetzt auch eigenes Zielpanel-Chrome mit Verschieben, Resize über mehrere Kanten, Kompaktmodus und identitaetssicherem Ping-Antwortpfad für Matrix-Direktansprachen. Matrix-Bridge und Zielpanel sind an die Matrix-Auswahl im Tresor gebunden und verschwinden bei Forgejo, Paperless, Server oder Codex. Serverroom-Meldungen werden nur gelesen; SSL-Ablaufmeldungen erzeugen einen späteren Prüftermin und senden bei fehlender Erneuerung nur einen Admin-Hinweis.

- Forgejo:
  Web-/Bridge-Trennung, Repo-Liste, Dateibaum, Start-Versionscheck sowie manueller Update-/Neuladepfad und Logout-Route; die Bridge baut API-Pfade aus dem aktuellen App-Basispfad und markiert HTML/401/404 auf JSON-Routen ab v27.2.37 als Deploy-/Backendfehler. Die zugehoerigen Knöpfe sitzen im Sidebar-Topbar-Chrome direkt neben dem Menü-Knopf. v27.2.71 zeigt lokale Ahead-Staende nur noch bei manueller Prüfung als `Forgejo-Sync offen`, damit ein bewusst lokaler Arbeitsstand den Start nicht als Versionsalarm blockiert. v27.2.80 verlaengert die Startup-Sichtbarkeit des Versionspopups auf 18 Sekunden.

- Modelle:
  lokale Ollama-Pfade mit servertauglichem und basispfad-sicherem `/api/ollama`-Proxy (normalisiert in Webdeployments auch same-origin absolute `/api/ollama`-URLs auf den basispfad-sicheren Defaultpfad), UI-Unterscheidung zwischen Browser-Ordnerwahl und serverseitigem Ollama-Proxy, kuerzerem Modell-`keep_alive` für Web-/Serverbetrieb, sehr hohen Fallback-Timeouts für Langlaeufer, OpenAI-Responses-Proxy, Live-OpenAI-Modellliste über `/api/openai/models`, Google-Gemini-Proxy, DuckDuckGo-Web-/Bild-/Videosuche mit klickbaren Karten und direktem Knoten-Open, bereinigtem Query-Pfad gegen RAG-/Systemkontext, zusätzlich bereinigter Query-Anzeige im Frontend, kleinen Domain-Icons für Webtreffer, Provider-Web/Login-Knopf im Modellblock, Codex-Native-Handoff und vorbereiteter Linux-`.codex`-Home-Struktur für den Service-User. In Webeditionen werden externe (cross-origin) Ollama/Azubi-URLs auf den lokalen Proxy normalisiert, damit Web-Session/Login-Gates nicht als scheinbare Modellantwort enden; 401 wird als `Login erforderlich` im Modellscan sichtbar. Localhost-/Windows-Dev soll externe `https://.../api/ollama`-Pfade ebenfalls standardmaessig blockieren/normalisieren, damit keine entfernten Browser-Session-Abhängigkeiten entstehen (Konstruktionsfehler: sonst erscheinen 401/Sessionfehler als scheinbarer Modelldefekt, während Direktrechnung/Direktwissen lokal noch funktionieren). v27.2.79 setzt vor lokale Modellprompts einen Antwortvertrag gegen leere `Kann ich dir helfen?`-Gegenfragen und gewichtet `qwen2.5-coder:7b` sowie brauchbare 7B-/8B-Modelle klar vor `llama3.2:1b` und `qwen2.5-coder:3b`. `Azubi Auto Fast` bleibt ein echter Kurzlauf: große Prompts werden für Mini-Modelle gekuerzt, Kontext und Antwortlaenge begrenzt und leere Ollama-Fertigmeldungen als Überforderung sichtbar gemacht; v27.2.80 setzt `num_thread` pro Lauf auf 4/8/6 und clampet serverseitig maximal 12, wobei `azubi42_ollama_num_thread` nur innerhalb dieses Rahmens übersteuern kann. v27.2.82 vereinheitlicht Provider-Webziele: Google Accounts, ChatGPT/OpenAI-Weblogin, Codex in ChatGPT, DuckDuckGo ohne Login/API-Key und Ollama-Modellbibliothek bleiben Browserziele, während API-Key, lokale Proxy-Pfade und Browser-Sitzungen getrennt bleiben. v27.2.84 startet diese Weblogins zuerst in einer Azubi42-Rueckkehrbruecke, weil Browser-Cookies und vorhandene Provider-Sessions cross-origin nicht vorab lesbar sind. v27.2.85 trennt Chat-/Knoten-Routen providerbasiert: GPT/OpenAI-Modellwerte gewinnen vor alten Select-/Ollama-Zustaenden, Gemini bleibt Google, Cloudlabels nutzen den echten Modellwert und lokale Ollama-Modelle gewinnen nur bei lokalen Modellwerten. v27.2.86 merkt `matrix_selected_provider` und `matrix_selected_model_provider_*`, sodass ein später lokaler Modellscan keine providerfremde Cloud-/Web-Auswahl mehr übernimmt. Lokale Modelle schalten bei klaren Web-Intents wie Wetter-, Bild- oder Videosuche automatisch in den freien Webpfad und bekommen bei URL-/Webseitenauftraegen echten Live-Seitenkontext statt blosser URL-Zeichenfolgen. Harmloser URL-/Webseitenkontext fällt bei kurzen falschen Policy-/Rechtsablehnungen lokaler Modelle auf die eigene Web-Browser-Snapshot-Antwort zurück.

- Sicherheit:
  Tresor, ACL-Felder, Login-Gate für Serverbetrieb, manuelle Nutzerfreigabe mit Review-Seite oder Matrix-Quick-Link, lokaler Request-Pfad für neue Webkonten, optionale parallele Lokalpasswoerter und profilbezogene Benachrichtigungs-/Mitgliedschaftsschienen. Die Betriebsdoku verankert jetzt zusätzlich Secret-Hygiene für sichtbare Tool-Kommandos, Bildschirmfreigaben, Kamerabilder und Logs. Zusätzlich liegt ein redigierender DB-/Konfig-Leak-Scanner unter `70_TESTS_AND_SMOKE/security/`; der aktuelle Bericht meldet keine Hochrisiko-DSNs oder Passwortwerte. Der Scanner ignoriert gesperrte Cache-/Temp-Pfade robust, damit lokale Testartefakte den Security-Smoke nicht blockieren.

- Fach-Azubis:
  getrennte Repo-Struktur unter `40_INTEGRATIONS/fach-azubis/` für Jura, Plant, Dev, Communication, Kanzlei, Fahrschule, Schule und Kinderrechte; der Frontend-Katalog kommt serverseitig über `/api/fachazubi/catalog` und bleibt damit vom App-Code entkoppelt. v27.2.130 routet `Forgejo` aus Karten und Profil-Lightbox in den FachConnect-Flow, damit Fachmodule erst nach bewusster Forgejo-Verbindung bearbeitet werden. v27.2.72 gleicht kanonischen Katalog, Runtime-Kopien, Frontend-Fallback und Backend-Fallback per `audit_fachazubi_catalog.mjs` ab und liefert die öffentliche Runtime-Kopie beim Live-Deploy nach `[Serverpfad]` und `[Serverpfad]` aus. v27.2.73 rendert den Frontend-Fallback sofort, damit der BuschCode-Fachazubi-Block auch vor dem API-Abgleich sichtbar bleibt. v27.2.86 setzt durchgehend Fachakzente: Jura Gold, Plant Grün, Dev Cyan, Kommunikation Blau, Kanzlei Bordeaux, Fahrschule Verkehrsblau, Schule Indigo und Kinderrechte Magenta. v27.2.89 zieht diese Akzente vollständig in Katalogkarten, Pfadboxen, Entry-Chips und Aktionen durch und sichert Markup/CSS im Fachazubi-Smoke. v27.2.95 führt pro Fachazubi sichtbare Themes, eigene Forgejo-Modulpfade, Funktionslisten, Rollenblickwinkel und einen Modulsteine-Katalog; Schule und Fahrschule bekommen alltagsnahe getrennte Rollenprofile. v2026.05.14.1 ergänzt Kinderrechte als altersphasiges Schutz-/Lernmodul für 8-18 Jahre mit eigenem Katalogordner, Rechtsanker-Tabs, Altersphasen-Tabs und Public-Detailseite. Der Ausbauplan `00_META/AZUBI42_FACH_AZUBI_KATALOG_AUSBAU.md` definiert nun den geplanten `Berufsatlas` als Normalform und Quellenbruecke für Ausbildung, Studium, freie/reglementierte Berufe, Fortbildungen, Rechte/Pflichten und Fachazubi-Routing. AZUBI42.de v2026.05.06.5 führt den lokalen Mission-Patch; v2026.05.06.4 erzeugt daraus öffentliche Detailseiten je Fachazubi und Status-Roadmap-Lanes für Modulsteine. Arbeitszugang wird auf der Public-Site ab v2026.05.07.1 als `Closed Beta Invite only` bezeichnet.

- Browser-Agent-Integration:
  getrennte Vorlaufstruktur unter `40_INTEGRATIONS/browser-agent/` für den Knoten-App-Browser-Umbau vom 05.05.2026. `azubi42_browser_agent.py` führt jetzt den ersten FastAPI-Worker mit Run-Queue, `/health`, `/contract`, `/runs`, Playwright-Snapshot, Screenshot-/Markdown-/Download-Artefakten und vorbereiteten Paperless-/Forgejo-/Matrix-Handoff-Artefakten. `browser_agent_contract.json` beschreibt den Run-Vertrag; Captcha, MFA, Consent und Rechteentscheidungen werden als Human-Checkpoint geführt, nicht als Bypass.

- UI-Smokes:
  `[private Angabe entfernt]` und `[private Angabe entfernt]` prüfen statisch und im echten Chrome-DOM, dass aktive Knoten plus Menü-Klick keinen falschen Passwortspeicher-Kontext aus API-/Ollama-Pfad, Knotenname oder Usermenü-Feldern erzeugen.

- Legal-Jura-Integration:
  BundID/eID-Antragspaket unter `40_INTEGRATIONS/legal-jura/bundid-eid/` mit Antragstext, technischem Anhang, Self-Service-Checkliste, Connector-Plan, Schnittstellentrennung, SSP-/BVA-Feldermapping, Datenschutz-/Sicherheitskurzkonzept, Testfallkatalog und Anlagenindex. Vorgang-Register unter `40_INTEGRATIONS/legal-jura/vorgang-2020-2026/schriftsatz-register.html` und usergebundene Runtime-Argumenttabellen unter `runtime/legal-jura/vorgang-2020-2026/argument-tabellen/` für sortier-/filterbare Schriftsatz-, Vorwurfs-, Verstoß-, PKH-, Zuständigkeits-, Ausblendungs-, Jobcenter-/Medizin-, Normanwendungs-, Beistands-/Adressierungs-, eRV-, Richterschutz-, Klaerungspflicht-, Akteneingangswiderspruch- und Klägerrechtsarbeit. Die Argumenttabellen führen jetzt eine eigene `pruefreihenfolge.csv` und Workflow-Spalten, damit zuerst Zuständigkeit/Rechtsweg, danach PKH/Beistand/Zustellung, Zugang/Barrierefreiheit/eRV/Gesundheit, Jobcenter/Medizin/Leistungsgrund, Gehoer/Amtsermittlung/Beweise, Normanwendung/Ausnahmen und zuletzt Richterschutz-/Belehrungs-/Folgenachsen abgearbeitet werden.

- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
  Vor echten Testtokens sind Login-Gate, Nachweisweg-Auswahl, Zugangsanfrage, Matrix/Admin-Review und Callback-Platzhalter testbar; echte BundID/eID/ZBP/FIT-Connect-Flows bleiben bis zur amtlichen Freigabe deaktiviert.

- Paperless-Originaltext-FTS:
  `toolbox/legal/paperless_original_text_index.py`, `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py`, `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` und `10_SHARED_CORE/app_v27_multimedia/js/10_PAPERLESS_RAG/10_1_PaperlessBridge.js` führen pro Azubi42-/Paperless-User einen SQLite-FTS5-Originaltextindex unter `runtime/paperless_user_toc/<user>/paperless_original_text_fts.sqlite3`. Der Index liest echte Paperless-Legal-OCR-Sidecars, Inlinebild-OCR, PDF-Textlayer und Textdateien aus serverseitig gesetzten Roots (`AZUBI42_PAPERLESS_ORIGINAL_TEXT_ROOTS`). Inventarstatus 2026-06-08: TOC-Status, TOC-Reconcile, Paperless-Webhook, `/api/paperless/original-search` und die allgemeine `/api/legal/jurabibliothek/search` nutzen denselben eingeloggten Userindex; Jurabibliothek-Treffer bleiben primaer, Paperless-Originaltreffer werden als Zusatzquelle mit Paperless-ID, Seite, Quelltyp und Snippet angehaengt. Der Ubuntu-Installer-Spiegel und `run_paperless_user_toc_reconcile.sh` sind synchron; Testvertrag: `70_TESTS_AND_SMOKE/legal/test_paperless_original_text_index.py`.

- Paperless-Integration:
  Legal-OCR-Grundpaket unter `40_INTEGRATIONS/paperless/` mit Post-Consume-Hook, Sidecar-Generator, JSON-Schema, deutschem Tesseract-Rechtswoerterbuch, OCR-Konfigurationsbeispiel, CBTC-Handoff-Adapter, Docker-Pfad, Ubuntu-24-Installer, Paperless-Inline-Overlay und Sidecar-Sync. Die Sidecars trennen vorhandenen PDF-Text, OCR-inline-Kandidaten, Bildregionen, PDF-Highlight-Regionen und visuelle Textmarkerregionen; temporaere Tesseract-Bilder können über automatische Markerbereinigung oder dokumentweise Farbpipetten-RGB-Profile neutralisiert werden. Region- und Seiten-OCR besitzen laengere, konfigurierbare Timeouts; Seitenthumbnails entstehen mit höherem Default-Scale für Paperless-Dokumentkarten. TXT, Markdown und weitere Textformate werden als Text-Sidecars verarbeitet, und der Post-Consume-Wrapper nutzt Paperless-Positionsargumente robust. Hook-Fehler erzeugen ein Fehlerlog/Minimal-Sidecar, blockieren aber nicht mehr den Paperless-Dokumentimport; nicht beschreibbare Sidecar-Primaerpfade fallen auf `/tmp` zurück. Der Docker-Pfad kapselt PyMuPDF, A42-Overlay und den Markerprofil-Endpunkt im Paperless-Webserver-Container und basiert updatefest auf `paperless-ngx:2.20.15`; das Overlay enthält Mehrfarben-EyeDropper, Profil-Speichern, Toleranzslider mit Maskenvorschau, `Farbe rausfiltern`, `Neu speichern` und Profil-Reset. Der Markerprofil-Endpunkt queued bei `reprocess=true` eine Celery-Kette aus Paperless-Reprocess und `azubi42.paperless.marker_post_reprocess`, damit die Paperless-Dateiaufgabe sichtbar bleibt und der Hook erst nach dem nativen Paperless-OCR Sidecar, Content-Patch und Index-Refresh ausführt. Der Paperless-Index bekommt den Overlay-Script-Tag versioniert mit `?v=20260513d`, damit Browser-Reloads neue Overlay-Staende sicher ziehen. Optional spiegelt der Hook fehlende `OCR-INLINE`-Funde in Paperless `Document.content`. Der CBTC-Handoff verpackt diese Quellenanker als reproduzierbaren Job für Kristalls Pipe. In BuschCode gibt es eine kompakte Paperless-Karte; die linke Navigation besitzt zusätzlich eine eigene große Paperless-Arbeitsfläche mit Dokumentliste, Thumbnail-Rail, Seiteninspektor und Markerprofil-Generator. Die Bibliothek besitzt zusätzlich eine Paperless-Bridge für klickbare Ordnerpfade als `azubi-folder:`-Tags, Unterordner-Prompt, Upload-Protokoll, direkte Dateiübergabe an den Paperless-OCR-Zulauf und den Knopf `Fall lernen` für private Fall-Lernplaene. `sync/` stellt Pull-Script, Env-Template und systemd-Timer bereit, damit dev/jura echte Paperless-Sidecars lesen können, ohne sie als ungeschützte Webdateien auszuliefern.

## Das Untermodul `tagging/` führt regexbasierte Paperless-Tags für den 10er-Kern

- Aktenzeichen, Gericht/Instanz, Behörde/Traeger, Zuständigkeit, PKH/Beistand, Gehoer/Ausblendung, Frist/Verzug, Zugang/Nachweis, Bescheid/Normprüfung und Gesundheit/Existenz.
- Es verwendet `matching_algorithm=4` statt `Automatic`; `paperless_tag_regex_tool.py` validiert lokal, erzeugt API-Payloads und kann mit `[private Angabe entfernt]` einen Dry-Run oder expliziten `--apply` gegen `/api/tags/` ausführen.
- Detail- und Vorwurfstags gehören in den Overlay-Katalog.

## Live-Check 2026-04-30

- Paperless-Webserver gesund, `deu+eng`, Tesseract `deu`, 106 Legal-Woerter, aktive Hooks, lange Timeouts und Sidecars mit 37 Seiten/860 Inline-OCR-Eintraegen ohne Hook-Warnungen.

- Paperless-Atom-Index:
  `toolbox/legal/` ist jetzt als laufzeitnahe Legal-Toolbox im Forgejo-Main vorhanden und wird in die lokalen `/azubi42/`-Spiegel sowie in die Linux-Serveredition nachgezogen. Amtliche Webquellen gehören produktiv auf den Server und laufen dort über `run_jurabibliothek_cycle.sh`; die Timer starten nach Boot und nach Ende der vorherigen Welle im 2-Minuten-Takt. Aktive Quellen sind Gesetze im Internet, Verwaltungsvorschriften im Internet, der amtliche RII-ZIP/XML-Vollbestand aus `https://www.rechtsprechung-im-internet.de/rii-toc.xml`, Bundesrechtsprechung-Feeds, recht.bund.de-RSS, Bundesanzeiger-Watch und Buzer als private Aenderungshinweisquelle. Der RII-TOC erzeugt rund 82.535 `fetch_case_zip`-Jobs für Bundesgerichte; große Wellen laufen nach stabilem Wachstum mit 720 Jobs, 4 Fetch-Workern, serieller SQLite-Schreibphase, Retry-Logik, Queue-Index und `coverage`-Check gegen Gesetze, Verwaltungsvorschriften, Bundesgerichte und Kernbegriffe. Root-/RSS-/Watch-Jobs werden bei jedem Cycle neu angesetzt; lange Detailtexte werden gestaffelt nachgezogen und per Content-Hash, `document_versions`, FTS-Refresh und Embedding-Queue einsortiert. `toolbox/legal/paperless_atom_indexer.py` übernimmt Paperless-Legal-OCR-Sidecars in dieselbe Jurabibliothek-Datenbank. Der Adapter erzeugt atomare Seiten-/OCR-/Highlight-Fragmente, aktualisiert den FTS5-Volltextindex, schreibt lokale Testvektoren nach `fragment_vectors` und setzt jeden Chunk in die Embedding-Warteschlange; `--continue-on-error` verhindert, dass ein defektes Sidecar den ganzen Fuelllauf stoppt. `run_paperless_atom_cycle.sh` besitzt einen Lock und überspringt seine Welle, solange Jurabibliothek-Download oder Vektorisierung aktiv auf derselben SQLite-Datenbank arbeitet. `jurabibliothek_vector_worker.py` vektorisiert die offene Queue mit demselben lokalen Lexical-Hash-Modell, markiert fertige Fragmente als `vectorized_lexical`, priorisiert `case` vor `paperless`, `law` und `admin_rule`, legt Queue-/Fragment-/Dokumenttyp-Indizes an und laeuft über `run_jurabibliothek_vector_cycle.sh` nur zwischen Download- und Paperless-Wellen mit Mindestabstand zur nächsten Fuellwelle. `disk_guard.sh` prüft vor Fuelllaeufen den Plattenstand, warnt ab 95%, meldet kritisch ab 99% und pausiert Fuell-Timer. Smoke-Test 2026-05-01 gegen temporaere DB und Dokument 55: 72 Fragmente, 72 lokale Vektoren, FTS- und Vector-Treffer für `Rechtsbeugung`, 72 offene Embeddings. Live-Check 2026-05-03 05:06 CEST: 11.040 Dokumente, 489.010 Fragmente, letzte RII-Welle 420 Jobs, Platte 71%, kein lokaler Laptop-Websync; ab 2026-05-03 19:xx CEST ist der Server auf 720er-Wellen konfiguriert.

- Amt-Vorgang-Atom-Pipeline:
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- Amt-Argumenttabellen:
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- SGP-Schriftsatzregister:
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- SGP-Zeilenrecherche:
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- SGP-Finaltabelle:
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- SGF-Gerichtsschreiben-Pipeline:
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- SGF-Anschlussruege-Schriftsatz:
  Versandnahe SGF-Entwürfe werden aus Pipeline+Prüfregeln abgeleitet (Schriftsatzkern, 12-Punkte-Prüftabelle, verlustfreie Finaltabelle), formulieren im Haupttext keine Rohdatenflut und bleiben als private Outputs ausserhalb des Git-Trackings.

- SGF-Hartkern-Sendefassung:
  Die kurze Hartkern-Variante reduziert auf Organisationspunkte (Aktenbasis, Kernbereich/Organisation, Nachweise, Zustellung/eRV) und führt Richterschutz/Sorgfalt als eigene Achse. Anlage-Erzeuger: `toolbox/legal/sgf_harter_kern_prueftabelle.py`, `toolbox/legal/sgf_harter_kern_fundstellen.py` (Outputs privat, nicht versioniert).

- SGF-Namens-/Identitaetsprüfung:
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- Amt-Azubi42-Gerichtsablage:
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- Persistenz:
  Workspace-Snapshot mit Reload-Wiederherstellung inklusive Canvas-Zoomstand, zusätzliche Workspace-Sessions pro Verlaufseintrag, Antwortverlauf und Chat-Verlauf mit Sicherung bei State-Events, Tab-Wechsel und Pagehide


## Nutzerdokumentation


Die Benutzerhilfe ist jetzt Teil des Produkts:


- `app_v27_multimedia/docs/HELP_AZUBI42.md`
- `app_v27_multimedia/docs/FUNKTIONSINVENTAR_AZUBI42.md`
- `app_v27_multimedia/docs/README_WINDOWS.md`
- `app_v27_multimedia/docs/README_LINUX_SERVER.md`
- `app_v27_multimedia/docs/README_FORGEJO_STRUCTURE.md`
- `app_v27_multimedia/docs/README_DOMAIN_PROFILES.md`

`HELP_AZUBI42.md` und `README_LINUX_SERVER.md` führen jetzt ausdruecklich die Regel, dass sichtbare Klartext-Secrets in Tool-Kommandos, Streams, Screenshots oder Logs als Betriebsfehler gelten und rotierte Zugangsdaten nach sich ziehen.


## Linux-Serveredition


Aktueller Exportpfad:


- `[lokaler Pfad]`
- `[lokaler Pfad]`

Enthalten sind:


- `setup_azubi42.sh`
- `start_azubi42.sh`
- `stop_azubi42.sh`
- `create_azubi42_user.sh`
- `README.md`
- `linux_server_manifest.json`
- `toolbox/legal/jurabibliothek/jurabibliothek.py`
- `toolbox/legal/jurabibliothek_vector_worker.py`
- `toolbox/legal/run_jurabibliothek_cycle.sh`
- `toolbox/legal/run_jurabibliothek_vector_cycle.sh`
- `toolbox/legal/disk_guard.sh`
- `toolbox/legal/paperless_atom_indexer.py`
- `toolbox/legal/amt_vorgang_pipeline.py`
- `toolbox/legal/amt_argument_tables.py`
- `toolbox/legal/amt_court_template_builder.py`
- `toolbox/legal/sgp_schriftsatz_register.py`
- `toolbox/legal/sgp_row_enrichment.py`
- `toolbox/legal/sgf_gerichtsschreiben_register.py`
- `toolbox/legal/sgf_row_enrichment.py`
- `toolbox/legal/sgf_final_table.py`
- `toolbox/legal/sgf_schriftsatzkern.py`
- `toolbox/legal/run_paperless_atom_cycle.sh`
- die aktuelle App samt Hilfe unter `app_v27_multimedia/docs/`

Der Exporter bereinigt jetzt lokale Test- und Handoff-Artefakte aus `runtime/`, bevor das Serverpaket gebaut wird.


Das Linux-Setup installiert im aktuellen Stand zusätzlich:


- Ollama auf `127.0.0.1:11434`
- die Azubi42-Standardmodelle für Fast/Any/Vision
- die Codex CLI
- eine vorbereitete `.codex`-Home-Struktur direkt in der Serveredition
- eine steuerbare Ollama-Speicherpolitik, standardmaessig `OLLAMA_KEEP_ALIVE=2m` und `OLLAMA_MAX_LOADED_MODELS=1`, plus Azubi42-App-Threadrahmen 4/8/6 und maximal 12 pro Modelllauf
- lange Nginx-Proxy-Zeiten für Vision-, PDF- und andere Langlaufanfragen an die Webedition

## Vollstaendiges Dateiverzeichnis


Die komplette Liste mit Pfad, Dateigröße und Aenderungsdatum steht in:


- `reports/azubi42_v27_superinventar.md`
- `reports/behordenfreund_ssl_hotfix_2026-04-21.md`
- `reports/discourse_footer_hotfix_2026-04-22.md`
## Führt jetzt auch die zweite, dritte und BrowserGateway-Ausbaustufe auf `discourse.buschitut.eu`

- erst reaktivierter Boot, danach iframe-freier Theme-Initializer-Boot über `theme-initializer.gjs` plus `accordion-footer-boot.js`, live verifizierte Tabs und Breitenmodi sowie Livekarten für Matrix, Forgejo und Themen/Events.
- Stand `20260506a` ersetzt den früheren Webflächen-/Webplayer-Pfad durch einen echten Azubi42-Handoff mit `azubi42_browser_url`, Dienst, Ziel-Space und Discourse-Kontext nach `https://forgejo.buschitut.eu/azubi42-dev/`; jedes Accordion-Item besitzt eigene Tabs für Verbindungen und Ausbauplan.
- Stand `20260508a` ergänzt `AZUBI42 Vorstellung`, Same-Origin-Karte, Kapitel-Seed, `buschitut-forgejo`-Orga-Seed und relative `/ext`-Routen für Matrix-Map und Matrix-Live.
- Der Stand ist am 2026-05-09 live auf `/ext` nachgezogen und im Browser gegen `AZUBI42 Vorstellung` + Handoff-URL geprüft.
- Zusätzlich dokumentiert der Bericht jetzt die Kategorie-zu-Matrix-Synchronisierung über `discourse_matrix_sync.py` und `matrix-room-map.public.json`; der Matrix-Livefeed nutzt nun den same-origin Endpunkt `/ext/matrix-live.json` über `matrix_live_service.py`, rendert Raumvorschau oder Nachrichten direkt in der Footer-Karte und zeigt fehlende Live-Route als `Livefeed-Endpunkt fehlt`.
- Direkte Links nutzen `element.42.chat/#/room/...`; der serverseitige Nachrichtenverlauf benoetigt eine nicht versionierte `matrix-live.json`.
- Der produktive Sync laeuft jetzt über `azubi42-discourse-matrix-sync.service` plus Timer, erzeugt `#btut-site-feedback:42.chat`, `#btut-general:42.chat` und den AZUBI42-Alias-Seed automatisch aus der Map und protokolliert fehlende Space-Powerlevel nur noch als Warnung.
- Der Deploy-Helfer `40_INTEGRATIONS/discourse/deploy_discourse_ext_winscp.ps1` baut dafür das statische `/ext`-Paket; der Theme-Initializer bleibt ein separater Discourse-Themefeld-Schritt.


Aktuelle Tagesplanung:


- `00_META/AZUBI42_TAGES_TODO_2026-04-28.md`
- `40_INTEGRATIONS/legal-jura/bundid-eid/README.md`
- `40_INTEGRATIONS/legal-jura/bundid-eid/ANTRAG_BUNDID_EID_TESTZUGANG.md`
- `40_INTEGRATIONS/legal-jura/bundid-eid/TECHNISCHER_ANHANG_AZUBI42.md`
- `40_INTEGRATIONS/legal-jura/bundid-eid/CHECKLISTE_SELF_SERVICE_PORTAL.md`
- `40_INTEGRATIONS/legal-jura/bundid-eid/CONNECTOR_PLAN.md`
- `40_INTEGRATIONS/legal-jura/bundid-eid/SCHNITTSTELLEN_TRENNUNG.md`
- `40_INTEGRATIONS/legal-jura/bundid-eid/SSP_BVA_FELDERMAPPING.md`
- `40_INTEGRATIONS/legal-jura/bundid-eid/DATENSCHUTZ_SICHERHEITSKURZKONZEPT.md`
- `40_INTEGRATIONS/legal-jura/bundid-eid/TESTFAELLE_SONDERLAGEN.md`
- `40_INTEGRATIONS/legal-jura/bundid-eid/ANLAGEN_INDEX.md`
- `40_INTEGRATIONS/legal-jura/bundid-eid/SSP_ANTRAGSPAKET_2026-05-10.md`
- `40_INTEGRATIONS/legal-jura/bundid-eid/SSP_ORGANISATIONSDATEN_TEMPLATE.md`
- `40_INTEGRATIONS/legal-jura/bundid-eid/SSP_METADATEN_CHECKLISTE.md`
- `40_INTEGRATIONS/legal-jura/bundid-eid/CALLBACK_ACS_URL_REGISTER.json`
- `40_INTEGRATIONS/legal-jura/bundid-eid/ENTSCHEIDUNGSMATRIX_SAML_VS_OIDC_BRIDGE.md`
- `40_INTEGRATIONS/legal-jura/bundid-eid/MJP_CLICKFLOW_REFERENZ.md`
- `40_INTEGRATIONS/legal-jura/bundid-eid/metadata/azubi42-bundid-oidc-registration.template.json`
- `40_INTEGRATIONS/legal-jura/bundid-eid/metadata/azubi42-bundid-saml-sp-metadata.template.xml`
- `40_INTEGRATIONS/legal-jura/config/focus_topics_richterschutz.json`
- `40_INTEGRATIONS/legal-jura/vorgang-2020-2026/schriftsatz-register.html`
- `40_INTEGRATIONS/legal-jura/vorgang-2020-2026/RICHTERSCHUTZ_GRENZEN_ARBEITSPLAN.md`
- `40_INTEGRATIONS/legal-jura/tools/extract_amt_vorwurf_index.py`
- `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` enthält die getrennte Jurabibliothek-Suche für exakte SGB-Normanfragen, strikte User-Queries, breite User-Fallbacks, Rechtsgebiet-Kontext, den privaten Fall-Lernplan-Endpunkt `/api/legal/case/learn`, den rollenabhaengigen Schriftsatzkopf-Endpunkt `/api/legal/schriftsatz/notice` und den öffentlichen TLS-Zertifikatsstatus-Endpunkt `/api/monitor/tls/certificate` mit Private-Ziel-Guard.
- `40_INTEGRATIONS/paperless/README.md`
- `40_INTEGRATIONS/paperless/config/paperless-legal-ocr.example.env`
- `40_INTEGRATIONS/paperless/config/cbtc-handoff.example.json`
- `40_INTEGRATIONS/paperless/hooks/azubi42_paperless_legal_ocr.py`
- `40_INTEGRATIONS/paperless/hooks/azubi42_paperless_cbtc_handoff.py`
- `40_INTEGRATIONS/paperless/hooks/azubi42_paperless_semantic_handoff.py`
- `40_INTEGRATIONS/paperless/hooks/paperless-post-consume-azubi42.sh`
- `40_INTEGRATIONS/paperless/ui/paperless-azubi42-overlay.js`
- `40_INTEGRATIONS/paperless/ui/azubi42_marker_profile_view.py`
- `40_INTEGRATIONS/paperless/ui/README.md`
- `40_INTEGRATIONS/paperless/cbtc/README.md`
- `40_INTEGRATIONS/paperless/cbtc/KRISTALL_FRAGEN.md`
- `40_INTEGRATIONS/paperless/cbtc/CBTC_LANGTEST_RUNBOOK.md`
- `40_INTEGRATIONS/paperless/cbtc/run_cbtc_longtest_safe.sh`
- `40_INTEGRATIONS/paperless/cbtc/systemd/azubi42-cbtc-longtest@.service`
- `40_INTEGRATIONS/paperless/cbtc/systemd/elasticsearch-azubi42-guard.conf`
- `40_INTEGRATIONS/paperless/cbtc/systemd/kristall-user-slice-guard.example.conf`
- `40_INTEGRATIONS/paperless/cbtc/systemd/azubi42-cbtc-vm-watch.service`
- `40_INTEGRATIONS/paperless/cbtc/systemd/azubi42-cbtc-vm-watch.timer`
- `40_INTEGRATIONS/paperless/cbtc/watch/azubi42-cbtc-vm-watch.sh`
- `40_INTEGRATIONS/paperless/dictionaries/tesseract-user-words-legal-deu.txt`
- `40_INTEGRATIONS/paperless/dictionaries/tesseract-user-patterns-legal-deu.txt`
- `40_INTEGRATIONS/paperless/schema/azubi42-paperless-legal-sidecar.schema.json`
- `40_INTEGRATIONS/paperless/install_ubuntu24_paperless_legal_ocr.sh`
- `40_INTEGRATIONS/paperless/tagging/README.md`
- `40_INTEGRATIONS/paperless/tagging/paperless_legal_tag_rules.json`
- `40_INTEGRATIONS/paperless/tagging/paperless_tag_regex_tool.py`
- `40_INTEGRATIONS/browser-agent/README.md`
- `40_INTEGRATIONS/browser-agent/azubi42_browser_agent.py`
- `40_INTEGRATIONS/browser-agent/browser_agent_contract.json`
- `40_INTEGRATIONS/browser-agent/browser-agent.example.env`
- `40_INTEGRATIONS/browser-agent/requirements.txt`
- `40_INTEGRATIONS/browser-agent/systemd/azubi42-browser-agent.service`
- `00_META/KNOTEN_APP_BROWSER_ROADMAP_2026-05-06.md`
- `reports/paperless_tag_regex_rules_2026-05-05.md`
- `toolbox/legal/README.md`
- `toolbox/legal/jurabibliothek/jurabibliothek.py`
- `toolbox/legal/jurabibliothek/config/sources.json`
- `toolbox/legal/jurabibliothek/config/focus_topics_richterschutz.json`
- `toolbox/legal/jurabibliothek/sql/schema.sql`
- `toolbox/legal/run_jurabibliothek_cycle.sh`
- `toolbox/legal/config/jurabibliothek-sync.example.env`
- `toolbox/legal/systemd/azubi42-jurabibliothek-sync.service`
- `toolbox/legal/systemd/azubi42-jurabibliothek-sync.timer`
- `toolbox/legal/disk_guard.sh`
- `toolbox/legal/paperless_atom_indexer.py`
- `toolbox/legal/amt_vorgang_pipeline.py`
- `toolbox/legal/amt_argument_tables.py`
- `toolbox/legal/amt_court_template_builder.py`
- `toolbox/legal/run_paperless_atom_cycle.ps1`
- `toolbox/legal/run_paperless_atom_cycle.sh`
- `toolbox/legal/config/jurabibliothek-vector.example.env`
- `toolbox/legal/config/paperless-atom-index.example.env`
- `toolbox/legal/systemd/azubi42-jurabibliothek-vector.service`
- `toolbox/legal/systemd/azubi42-jurabibliothek-vector.timer`
- `toolbox/legal/systemd/azubi42-paperless-atom-index.service`
- `toolbox/legal/systemd/azubi42-paperless-atom-index.timer`
- `70_TESTS_AND_SMOKE/legal/test_amt_vorgang_pipeline.py`
- `70_TESTS_AND_SMOKE/legal/test_amt_argument_tables.py`
- `70_TESTS_AND_SMOKE/legal/test_sgp_schriftsatz_register.py`
- `70_TESTS_AND_SMOKE/legal/test_sgp_row_enrichment.py`
- `70_TESTS_AND_SMOKE/legal/test_case_learning_plan.py`
- `70_TESTS_AND_SMOKE/legal/test_schriftsatz_role_notice.py`
- `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_vector_worker.py`
- `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_coverage_and_case_toc.py`
- `reports/amt_argument_tables_2026-05-01.md`
- `reports/sgp_schriftsatzregister_2026-05-03.md`
- `reports/sgp_row_enrichment_2026-05-03.md`
- `reports/case_learning_button_2026-05-01.md`
- `reports/schriftsatz_role_notice_2026-05-01.md`
- `reports/legal_perspectives_2026-05-01.md`
- `reports/legal_perspective_avatars_2026-05-01.md`
- `reports/bibliothek_disk_guard_2026-05-01.md`
- `reports/jurabibliothek_sources_refresh_2026-05-01.md`
- `reports/jurabibliothek_coverage_backfill_2026-05-03.md`
- `reports/jurabibliothek_queue_dedupe_2026-05-01.md`
- `reports/jurabibliothek_vector_worker_2026-05-01.md`
- `reports/jurabibliothek_vector_hotfix_2026-05-01.md`
- `reports/paperless_legal_ocr_smoke_2026-04-28.md`
- `reports/paperless_cbtc_handoff_2026-04-28.md`
- `reports/paperless_visual_highlight_smoke_2026-04-28.md`
- `reports/web_connect_embed_security_2026-04-28.md`
- `reports/elasticsearch_cbtc_watch_2026-04-28.md`
- `reports/paperless_sidecar_viewer_2026-04-29.md`
- `reports/forgejo_vm_stability_audit_2026-04-30.md`
- `reports/matrix_gpu_direct_check_2026-04-30.md`
- `reports/cbtc_vm_crash_guard_2026-04-30.md`
- `reports/jurabibliothek_search_langpacks_research_2026-04-30.md`
- `00_META/AZUBI42_BAUSTELLEN_2026-04-30.md`
- `20_EDITIONS/azubi42-jura/README.md`
- `30_INSTALLERS/ubuntu24/azubi42-jura/README.md`
- `30_INSTALLERS/ubuntu24/azubi42-jura/setup_azubi42_jura_instance.py`
- `30_INSTALLERS/ubuntu24/config-templates/server-auth-jura.example.json`
- `70_TESTS_AND_SMOKE/security/scan_public_config_leaks.ps1`
- `70_TESTS_AND_SMOKE/security/audit_installer_archives.ps1`
- `toolbox/package/build_azubi42_server_zip.ps1`
- `toolbox/package/build_azubi42_release_artifacts.ps1`
- `toolbox/package/publish_forgejo_release_asset.ps1`
- `70_TESTS_AND_SMOKE/integrations/audit_release_artifact_contract.ps1`
- `50_CODEX_OPENAI/release-manifests/README.md`
- `50_CODEX_OPENAI/release-manifests/azubi42-linux-server-latest.json`
- `50_CODEX_OPENAI/release-manifests/azubi42-linux-server-v27.2.121-27141.json`
- `50_CODEX_OPENAI/release-manifests/azubi42-linux-server-v27.2.119-27139.json`
- `50_CODEX_OPENAI/release-manifests/azubi42-linux-server-v27.2.118-27138.json`
- `50_CODEX_OPENAI/release-manifests/azubi42-linux-server-v27.2.115-27135.json`
- `50_CODEX_OPENAI/release-manifests/azubi42-linux-server-v27.2.109-27129.json`
- `50_CODEX_OPENAI/release-manifests/azubi42-linux-server-v27.2.108-27128.json`
- `50_CODEX_OPENAI/release-manifests/azubi42-linux-server-v27.2.107-27127.json`
- `50_CODEX_OPENAI/release-manifests/azubi42-linux-server-v27.2.105-27125.json`
- `50_CODEX_OPENAI/release-manifests/azubi42-linux-server-v27.2.104-27124.json`
- `reports/forgejo_release_artifact_strategy_2026-05-06.md`
- `70_TESTS_AND_SMOKE/integrations/check_forgejo_push_limit.ps1`
- `40_INTEGRATIONS/forgejo/README.md`
- `40_INTEGRATIONS/matrix/README.md`
- `40_INTEGRATIONS/forgejo/config-templates/forgejo-vhost.nginx.conf`
- `40_INTEGRATIONS/forgejo/config-templates/forgejo-vhost.apache.conf`
- `40_INTEGRATIONS/forgejo/config-templates/forgejo-app.ini.example`
- `40_INTEGRATIONS/forgejo/apply_forgejo_pushlimit_plesk.sh`
- `40_INTEGRATIONS/forgejo/apply_forgejo_pushlimit_nginx_site.sh`
- `reports/forgejo_http_413_push_limit_2026-05-06.md`
- `reports/security_config_leak_scan_2026-04-28.txt`
- `[private Angabe entfernt]`
- `reports/public_live_security_check_2026-05-06.md`
- `reports/jurabibliothek_richterschutz_2026-04-30.md`
- `reports/paperless_atom_index_2026-04-30.md`
- `reports/paperless_atom_cycle_2026-05-01.md`
- `reports/jurabibliothek_search_langpacks_research_2026-04-30.md`

## Neue Integrationsdateien 2026-04-28


| Pfad | Größe | Stand |

## | --- | ---

- | --- |

| `40_INTEGRATIONS/paperless/hooks/azubi42_paperless_cbtc_handoff.py` | 9.82 KB | 2026-04-28 17:51 |

| `40_INTEGRATIONS/paperless/hooks/azubi42_paperless_semantic_handoff.py` | 13.03 KB | 2026-05-13 |

| `40_INTEGRATIONS/paperless/config/cbtc-handoff.example.json` | 0.53 KB | 2026-04-28 17:51 |

| `40_INTEGRATIONS/paperless/cbtc/README.md` | 2.19 KB | 2026-04-29 |

| `40_INTEGRATIONS/paperless/cbtc/KRISTALL_FRAGEN.md` | 3.11 KB | 2026-04-29 |

| `40_INTEGRATIONS/paperless/cbtc/CBTC_LANGTEST_RUNBOOK.md` | 4.31 KB | 2026-04-30 |

| `40_INTEGRATIONS/paperless/cbtc/cbtc-longtest.example.env` | 0.74 KB | 2026-04-30 |

| `40_INTEGRATIONS/paperless/cbtc/run_cbtc_longtest_safe.sh` | 2.41 KB | 2026-04-30 |

| `40_INTEGRATIONS/paperless/cbtc/systemd/azubi42-cbtc-longtest@.service` | 0.63 KB | 2026-04-30 |

| `40_INTEGRATIONS/paperless/cbtc/systemd/elasticsearch-azubi42-guard.conf` | 0.30 KB | 2026-04-30 11:38 |

| `40_INTEGRATIONS/paperless/cbtc/systemd/kristall-user-slice-guard.example.conf` | 0.28 KB | 2026-04-30 11:38 |

| `40_INTEGRATIONS/paperless/cbtc/systemd/azubi42-cbtc-vm-watch.service` | 0.18 KB | 2026-04-30 11:38 |

| `40_INTEGRATIONS/paperless/cbtc/systemd/azubi42-cbtc-vm-watch.timer` | 0.18 KB | 2026-04-30 11:38 |

| `40_INTEGRATIONS/paperless/cbtc/watch/azubi42-cbtc-vm-watch.sh` | 0.61 KB | 2026-04-30 11:38 |

| `reports/cbtc_vm_crash_guard_2026-04-30.md` | 1.93 KB | 2026-04-30 11:38 |

| `reports/paperless_cbtc_handoff_2026-04-28.md` | 1.95 KB | 2026-04-28 17:52 |

| `reports/paperless_visual_highlight_smoke_2026-04-28.md` | 1.33 KB | 2026-04-28 22:29 |

| `reports/web_connect_embed_security_2026-04-28.md` | 1.20 KB | 2026-04-28 21:52 |

| `reports/elasticsearch_cbtc_watch_2026-04-28.md` | 1.64 KB | 2026-04-28 22:04 |

| `10_SHARED_CORE/app_v27_multimedia/css/themes/theme-dark-cool.css` | 0.25 KB | 2026-04-28 22:24 |

| `10_SHARED_CORE/app_v27_multimedia/css/themes/theme-legal-light.css` | 1.63 KB | 2026-04-28 22:24 |

| `10_SHARED_CORE/app_v27_multimedia/css/themes/theme-legal-paper.css` | 1.71 KB | 2026-04-28 22:24 |

| `10_SHARED_CORE/app_v27_multimedia/css/themes/theme-matrix-compact.css` | 0.91 KB | 2026-04-28 22:24 |

| `40_INTEGRATIONS/paperless/hooks/azubi42_paperless_legal_ocr.py` | 38.71 KB | 2026-04-29 23:37 |

| `40_INTEGRATIONS/paperless/schema/azubi42-paperless-legal-sidecar.schema.json` | 3.32 KB | 2026-04-28 22:26 |

| `reports/paperless_marker_thumbnail_smoke_2026-04-29.md` | 1.42 KB | 2026-04-29 |

| `40_INTEGRATIONS/paperless/docker/Dockerfile.azubi42-paperless` | 2.52 KB | 2026-05-13 21:44 |

| `40_INTEGRATIONS/paperless/docker/compose.override.example.yaml` | 0.51 KB | 2026-04-29 23:30 |

| `reports/paperless_vm_deploy_2026-04-29.md` | 1.75 KB | 2026-04-29 |

| `reports/paperless_postconsume_sync_overlay_2026-04-29.md` | 3.29 KB | 2026-04-29 23:45 |

| `40_INTEGRATIONS/paperless/ui/paperless-azubi42-overlay.js` | 32.76 KB | 2026-05-13 21:13 |

| `40_INTEGRATIONS/paperless/ui/azubi42_marker_profile_view.py` | 17.29 KB | 2026-05-13 17:24 |

| `40_INTEGRATIONS/paperless/config/paperless-legal-ocr.example.env` | 3.48 KB | 2026-04-29 23:45 |

| `40_INTEGRATIONS/paperless/ui/README.md` | 3.37 KB | 2026-05-13 21:44 |

| `10_SHARED_CORE/app_v27_multimedia/js/10_PAPERLESS_RAG/10_1_PaperlessBridge.js` | 13.78 KB | 2026-04-29 |

| `reports/paperless_sidecar_viewer_2026-04-29.md` | 1.89 KB | 2026-04-29 |

| `40_INTEGRATIONS/paperless/sync/azubi42-paperless-sidecar-sync.sh` | 3.68 KB | 2026-05-01 |

| `40_INTEGRATIONS/paperless/sync/paperless-sidecar-sync.example.env` | 0.86 KB | 2026-05-01 |

| `40_INTEGRATIONS/paperless/sync/azubi42-paperless-sidecar-sync.service` | 0.62 KB | 2026-04-29 |

| `40_INTEGRATIONS/paperless/sync/azubi42-paperless-sidecar-sync.timer` | 0.20 KB | 2026-04-29 |

| `40_INTEGRATIONS/paperless/tagging/README.md` | 1.60 KB | 2026-05-05 |

| `40_INTEGRATIONS/paperless/tagging/paperless_legal_tag_rules.json` | 4.66 KB | 2026-05-13 |

| `40_INTEGRATIONS/paperless/tagging/paperless_tag_regex_tool.py` | 9.26 KB | 2026-05-05 |

| `70_TESTS_AND_SMOKE/legal/test_paperless_semantic_handoff.py` | 3.16 KB | 2026-05-13 |

| `reports/paperless_tag_regex_rules_2026-05-05.md` | 1.95 KB | 2026-05-05 |

| `00_META/AZUBI42_BAUSTELLEN_2026-04-30.md` | 7.37 KB | 2026-04-30 |

| `00_META/AZUBI42_DIRECTOR_INDEX.md` | 2.10 KB | 2026-05-10 06:09 |

| `00_META/AZUBI42_DIRECTOR_RUNBOOK_TAGES_SCHRIFTSAETZE.md` | 3.21 KB | 2026-05-08 06:11 |

| `00_META/AZUBI42_DIRECTOR_BESTANDSAUFNAHME_2026-05-06.md` | 5.41 KB | 2026-05-10 06:05 |

| `00_META/AZUBI42_FACH_AZUBI_KATALOG_AUSBAU.md` | 14.00 KB | 2026-05-10 06:09 |

| `reports/forgejo_vm_stability_audit_2026-04-30.md` | 3.74 KB | 2026-04-30 |

| `reports/forgejo_vm_safe_hardening_2026-04-30.md` | 3.40 KB | 2026-04-30 |

| `reports/matrix_gpu_direct_check_2026-04-30.md` | 0.96 KB | 2026-04-30 |

| `reports/azubi42_ui_theme_communication_2026-04-30.md` | 2.87 KB | 2026-04-30 |

| `10_SHARED_CORE/app_v27_multimedia/css/style.css` | 224.04 KB | 2026-05-16 21:05 |

| `10_SHARED_CORE/app_v27_multimedia/css/mobile-smart.css` | 8.05 KB | 2026-05-05 03:20 |

| `10_SHARED_CORE/app_v27_multimedia/css/themes/theme-dark-cool.css` | 1.64 KB | 2026-04-30 |

| `10_SHARED_CORE/app_v27_multimedia/css/themes/theme-legal-light.css` | 3.90 KB | 2026-04-30 |

| `10_SHARED_CORE/app_v27_multimedia/css/themes/theme-legal-paper.css` | 3.87 KB | 2026-04-30 |

| `10_SHARED_CORE/app_v27_multimedia/css/themes/theme-matrix-compact.css` | 4.25 KB | 2026-04-30 |

| `10_SHARED_CORE/app_v27_multimedia/css/themes/theme-white-runtz.css` | 3.88 KB | 2026-04-30 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js` | 106.34 KB | 2026-05-05 21:24 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_6_Timeline.js` | 44.57 KB | 2026-05-05 01:26 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` | 40.73 KB | 2026-05-06 02:59 |

| `10_SHARED_CORE/app_v27_multimedia/js/04_NODE/04_3_Content.js` | 16.96 KB | 2026-04-30 12:20 |

| `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` | 377.77 KB | 2026-05-06 01:19 |

| `10_SHARED_CORE/app_v27_multimedia/js/main.js` | 3.89 KB | 2026-05-01 16:33 |

| `10_SHARED_CORE/app_v27_multimedia/js/02_CHAT/02_1_ChatWindow.js` | 72.14 KB | 2026-05-06 01:18 |

| `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_1_ModelSelector.js` | 36.40 KB | 2026-05-06 01:17 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js` | 77.12 KB | 2026-05-06 01:25 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_9_LegalPerspectives.js` | 78.93 KB | 2026-05-05 16:55 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_10_ViewStartScreens.js` | 30.69 KB | 2026-05-06 01:19 |

| `10_SHARED_CORE/app_v27_multimedia/js/07_DATA_VAULT/07_5_PerspectiveSpaces.js` | 15.03 KB | 2026-05-05 16:55 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` | 196.18 KB | 2026-05-16 21:04 |

| `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_4_MediaParser.js` | 22.71 KB | 2026-05-05 21:24 |

| `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_5_AgentInterceptor.js` | 5.20 KB | 2026-05-05 10:38 |

| `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_6_BrowserGateway.js` | 24.87 KB | 2026-05-06 02:57 |

| `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_8_ProviderReturnBridge.js` | 10.78 KB | 2026-05-06 00:27 |

| `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_9_ErrorFixList.js` | 12.28 KB | 2026-05-07 12:59 |

| `10_SHARED_CORE/app_v27_multimedia/js/11_AUTH_MANAGER/11_3_MatrixBridge.js` | 70.18 KB | 2026-05-02 20:24 |

| `10_SHARED_CORE/app_v27_multimedia/js/11_AUTH_MANAGER/11_4_ForgejoBridge.js` | 18.94 KB | 2026-05-05 21:24 |

| `10_SHARED_CORE/app_v27_multimedia/js/11_AUTH_MANAGER/11_5_FachConnectBridge.js` | 18.47 KB | 2026-05-08 17:14 |

| `10_SHARED_CORE/app_v27_multimedia/docs/FUNKTIONSINVENTAR_AZUBI42.md` | 27.55 KB | 2026-05-06 03:11 |

| `10_SHARED_CORE/app_v27_multimedia/docs/README_JURABIBLIOTHEK.md` | 7.38 KB | 2026-05-01 15:04 |

| `30_INSTALLERS/ubuntu24/azubi42-jura/setup_azubi42_jura_instance.py` | 5.41 KB | 2026-04-30 04:11 |

| `40_INTEGRATIONS/legal-jura/config/focus_topics_richterschutz.json` | 7.47 KB | 2026-04-30 04:33 |

| `40_INTEGRATIONS/legal-jura/vorgang-2020-2026/RICHTERSCHUTZ_GRENZEN_ARBEITSPLAN.md` | 3.82 KB | 2026-04-30 04:33 |

| `40_INTEGRATIONS/legal-jura/tools/extract_amt_vorwurf_index.py` | 7.82 KB | 2026-04-30 04:34 |

| `reports/jurabibliothek_richterschutz_2026-04-30.md` | 1.99 KB | 2026-04-30 04:36 |

| `toolbox/legal/README.md` | 5.24 KB | 2026-05-01 |

| `toolbox/legal/jurabibliothek/jurabibliothek.py` | 46.37 KB | 2026-05-01 |

| `toolbox/legal/jurabibliothek_vector_worker.py` | 12.55 KB | 2026-05-01 |

| `toolbox/legal/jurabibliothek/config/sources.json` | 3.58 KB | 2026-05-01 |

| `toolbox/legal/jurabibliothek/config/focus_topics_richterschutz.json` | 7.47 KB | 2026-04-30 04:33 |

| `toolbox/legal/jurabibliothek/sql/schema.sql` | 2.74 KB | 2026-04-21 23:12 |

| `toolbox/legal/run_jurabibliothek_cycle.sh` | 0.88 KB | 2026-05-01 |

| `toolbox/legal/run_jurabibliothek_vector_cycle.sh` | 2.23 KB | 2026-05-01 |

| `toolbox/legal/config/jurabibliothek-sync.example.env` | 0.60 KB | 2026-05-01 |

| `toolbox/legal/config/jurabibliothek-vector.example.env` | 0.67 KB | 2026-05-01 |

| `toolbox/legal/systemd/azubi42-jurabibliothek-sync.service` | 0.36 KB | 2026-05-01 |

| `toolbox/legal/systemd/azubi42-jurabibliothek-sync.timer` | 0.24 KB | 2026-05-01 |

| `toolbox/legal/systemd/azubi42-jurabibliothek-vector.service` | 0.47 KB | 2026-05-01 |

| `toolbox/legal/systemd/azubi42-jurabibliothek-vector.timer` | 0.26 KB | 2026-05-01 |

| `toolbox/legal/disk_guard.sh` | 2.01 KB | 2026-05-01 |

| `toolbox/legal/paperless_atom_indexer.py` | 17.79 KB | 2026-05-01 |

| `toolbox/legal/amt_vorgang_pipeline.py` | 21.92 KB | 2026-05-01 |

| `toolbox/legal/amt_argument_tables.py` | 62.96 KB | 2026-05-01 14:01 |

| `toolbox/legal/amt_court_template_builder.py` | 14.58 KB | 2026-05-05 17:13 |

| `toolbox/legal/sgp_schriftsatz_register.py` | 54.31 KB | 2026-05-03 |

| `toolbox/legal/sgp_row_enrichment.py` | 53.30 KB | 2026-05-03 23:22 |

| `toolbox/legal/run_paperless_atom_cycle.ps1` | 1.63 KB | 2026-05-01 |

| `toolbox/legal/run_paperless_atom_cycle.sh` | 1.48 KB | 2026-05-01 |

| `toolbox/legal/config/paperless-atom-index.example.env` | 0.72 KB | 2026-05-01 |

| `toolbox/legal/systemd/azubi42-paperless-atom-index.service` | 0.37 KB | 2026-05-01 |

| `toolbox/legal/systemd/azubi42-paperless-atom-index.timer` | 0.23 KB | 2026-05-01 |

| `70_TESTS_AND_SMOKE/legal/test_amt_vorgang_pipeline.py` | 4.23 KB | 2026-05-01 |

| `70_TESTS_AND_SMOKE/legal/test_amt_argument_tables.py` | 5.75 KB | 2026-05-01 13:58 |

| `70_TESTS_AND_SMOKE/legal/test_sgp_schriftsatz_register.py` | 4.71 KB | 2026-05-03 |

| `70_TESTS_AND_SMOKE/legal/test_sgp_row_enrichment.py` | 11.51 KB | 2026-05-03 23:21 |

| `70_TESTS_AND_SMOKE/legal/test_case_learning_plan.py` | 1.77 KB | 2026-05-01 14:59 |

| `70_TESTS_AND_SMOKE/legal/test_schriftsatz_role_notice.py` | 2.03 KB | 2026-05-01 16:16 |

| `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_job_dedupe.py` | 3.35 KB | 2026-05-01 |

| `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_vector_worker.py` | 3.90 KB | 2026-05-01 |

| `70_TESTS_AND_SMOKE/legal/test_jurabibliothek_coverage_and_case_toc.py` | 3.24 KB | 2026-05-03 |

| `70_TESTS_AND_SMOKE/ui/audit_light_theme_resize.mjs` | 32.90 KB | 2026-05-05 01:57 |

| `70_TESTS_AND_SMOKE/ui/audit_sidebar_sections.mjs` | 5.58 KB | 2026-05-06 02:02 |

| `70_TESTS_AND_SMOKE/ui/audit_sidebar_accordion_browser.mjs` | 9.94 KB | 2026-05-06 01:35 |

| `70_TESTS_AND_SMOKE/ui/audit_fachazubi_catalog.mjs` | 5.25 KB | 2026-05-06 02:36 |

| `70_TESTS_AND_SMOKE/ui/audit_legal_perspective_labels.mjs` | 1.36 KB | 2026-05-05 02:09 |

| `70_TESTS_AND_SMOKE/ui/audit_browser_gateway_node.mjs` | 10.03 KB | 2026-05-10 08:03 |

| `70_TESTS_AND_SMOKE/ui/audit_input_dock_viewport.mjs` | 2.68 KB | 2026-05-05 11:00 |

| `reports/amt_argument_tables_2026-05-01.md` | 5.18 KB | 2026-05-01 |

| `reports/sgp_schriftsatzregister_2026-05-03.md` | 4.05 KB | 2026-05-03 |

| `reports/sgp_row_enrichment_2026-05-03.md` | 11.18 KB | 2026-05-03 23:27 |

| `reports/case_learning_button_2026-05-01.md` | 1.63 KB | 2026-05-01 15:04 |

| `reports/schriftsatz_role_notice_2026-05-01.md` | 1.50 KB | 2026-05-01 16:18 |

| `reports/legal_perspectives_2026-05-01.md` | 1.57 KB | 2026-05-01 16:42 |

| `reports/legal_perspective_avatars_2026-05-01.md` | 3.35 KB | 2026-05-01 17:16 |

| `40_INTEGRATIONS/fach-azubis/kanzlei-fachazubi/README.md` | 0.47 KB | 2026-05-05 17:38 |

| `40_INTEGRATIONS/fach-azubis/fahrschule-fachazubi/README.md` | 1.10 KB | 2026-05-06 06:05 |

| `40_INTEGRATIONS/fach-azubis/fahrschule-fachazubi/INDEX.md` | 1.00 KB | 2026-05-06 06:05 |

| `40_INTEGRATIONS/fach-azubis/fahrschule-fachazubi/TEMPLATES.md` | 1.45 KB | 2026-05-06 06:05 |

| `40_INTEGRATIONS/fach-azubis/schule-fachazubi/README.md` | 1.11 KB | 2026-05-06 06:05 |

| `40_INTEGRATIONS/fach-azubis/schule-fachazubi/INDEX.md` | 0.95 KB | 2026-05-06 06:05 |

| `40_INTEGRATIONS/fach-azubis/schule-fachazubi/TEMPLATES.md` | 1.15 KB | 2026-05-06 06:05 |

| `40_INTEGRATIONS/browser-agent/README.md` | 3.08 KB | 2026-05-06 12:08 |

| `40_INTEGRATIONS/browser-agent/azubi42_browser_agent.py` | 14.09 KB | 2026-05-06 12:08 |

| `40_INTEGRATIONS/browser-agent/browser_agent_contract.json` | 1.84 KB | 2026-05-06 12:08 |

| `40_INTEGRATIONS/browser-agent/browser-agent.example.env` | 0.66 KB | 2026-05-06 12:08 |

| `40_INTEGRATIONS/browser-agent/requirements.txt` | 0.07 KB | 2026-05-06 12:08 |

| `40_INTEGRATIONS/browser-agent/systemd/azubi42-browser-agent.service` | 0.59 KB | 2026-05-06 12:09 |

| `70_TESTS_AND_SMOKE/integrations/test_browser_agent_worker.py` | 2.57 KB | 2026-05-06 12:08 |

| `70_TESTS_AND_SMOKE/integrations/audit_discourse_accordion_gateway.mjs` | 3.83 KB | 2026-05-06 |

| `00_META/KNOTEN_APP_BROWSER_ROADMAP_2026-05-06.md` | 2.34 KB | 2026-05-06 03:00 |

| `reports/bibliothek_disk_guard_2026-05-01.md` | 1.27 KB | 2026-05-01 |

| `reports/jurabibliothek_sources_refresh_2026-05-01.md` | 2.88 KB | 2026-05-01 |

| `reports/jurabibliothek_coverage_backfill_2026-05-03.md` | 2.56 KB | 2026-05-03 |

| `reports/jurabibliothek_queue_dedupe_2026-05-01.md` | 2.12 KB | 2026-05-01 |

| `reports/jurabibliothek_vector_worker_2026-05-01.md` | 1.66 KB | 2026-05-01 |

| `reports/jurabibliothek_vector_hotfix_2026-05-01.md` | 1.30 KB | 2026-05-01 |

| `reports/paperless_atom_cycle_2026-05-01.md` | 2.67 KB | 2026-05-01 |

| `30_INSTALLERS/ubuntu24/azubi42-server/README.md` | 6.40 KB | 2026-05-01 |

| `30_INSTALLERS/ubuntu24/azubi42-server/linux_server_manifest.json` | 2.27 KB | 2026-05-01 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/README.md` | 5.24 KB | 2026-05-01 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/amt_argument_tables.py` | 62.96 KB | 2026-05-01 14:01 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/amt_court_template_builder.py` | 14.58 KB | 2026-05-05 17:13 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/sgp_schriftsatz_register.py` | 54.31 KB | 2026-05-03 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/sgp_row_enrichment.py` | 53.30 KB | 2026-05-03 23:22 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/sgf_gerichtsschreiben_register.py` | 24.07 KB | 2026-05-05 12:00 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/sgf_row_enrichment.py` | 34.16 KB | 2026-05-05 12:10 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/sgf_final_table.py` | 16.76 KB | 2026-05-05 12:06 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/sgf_schriftsatzkern.py` | 10.26 KB | 2026-05-05 12:18 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` | 377.77 KB | 2026-05-06 01:19 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css` | 224.04 KB | 2026-05-16 21:05 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/mobile-smart.css` | 8.05 KB | 2026-05-05 03:20 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/main.js` | 3.89 KB | 2026-05-01 16:33 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/02_CHAT/02_1_ChatWindow.js` | 72.14 KB | 2026-05-06 01:18 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/06_API_ROUTER/06_1_ModelSelector.js` | 36.40 KB | 2026-05-06 01:17 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_1_Layout.js` | 77.12 KB | 2026-05-06 01:25 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js` | 106.34 KB | 2026-05-05 21:24 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_6_Timeline.js` | 44.57 KB | 2026-05-05 01:26 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js` | 40.73 KB | 2026-05-06 02:59 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_9_LegalPerspectives.js` | 78.93 KB | 2026-05-05 16:55 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_10_ViewStartScreens.js` | 30.69 KB | 2026-05-06 01:19 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/07_DATA_VAULT/07_5_PerspectiveSpaces.js` | 15.03 KB | 2026-05-05 16:55 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` | 196.18 KB | 2026-05-16 21:04 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_4_MediaParser.js` | 22.71 KB | 2026-05-05 21:24 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_5_AgentInterceptor.js` | 5.20 KB | 2026-05-05 10:38 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_6_BrowserGateway.js` | 24.87 KB | 2026-05-06 02:57 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_8_ProviderReturnBridge.js` | 10.78 KB | 2026-05-06 00:27 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_9_ErrorFixList.js` | 12.28 KB | 2026-05-07 12:59 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/11_AUTH_MANAGER/11_3_MatrixBridge.js` | 70.18 KB | 2026-05-02 20:24 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/11_AUTH_MANAGER/11_4_ForgejoBridge.js` | 18.94 KB | 2026-05-05 21:24 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/11_AUTH_MANAGER/11_5_FachConnectBridge.js` | 18.47 KB | 2026-05-08 17:14 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/docs/FUNKTIONSINVENTAR_AZUBI42.md` | 27.55 KB | 2026-05-06 03:11 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/docs/README_JURABIBLIOTHEK.md` | 7.38 KB | 2026-05-01 15:04 |

| `.gitignore` | 1.08 KB | 2026-05-01 13:13 |

| `toolbox/legal/jurabibliothek/egmr_bverfg_materials.py` | EGMR-/BVerfG-/Bundesanker-Loader | 2026-05-08 |

| `toolbox/legal/jurabibliothek/config/egmr_bverfg_sources.json` | amtliches EGMR-/BVerfG-Quellenmanifest | 2026-05-08 |

| `toolbox/legal/templates/egmr_bverfg/EGMR_Beschwerde_Basispaket.md` | EGMR-Arbeitsvorlage nach Rule-47-Struktur | 2026-05-08 |

| `toolbox/legal/templates/egmr_bverfg/EGMR_Mehrteilige_Beschwerde_Tabelle.csv` | Mehrfachbeschwerdeführer-/Mehrteiler-Tabelle | 2026-05-08 |

| `toolbox/legal/templates/egmr_bverfg/BVerfG_Verfassungsbeschwerde_Eilantrag_Basis.md` | BVerfG-/§-32-BVerfGG-Arbeitsvorlage | 2026-05-08 |

| `toolbox/legal/templates/egmr_bverfg/Bundesanker_Atomisierung_Basis.md` | Bundesanker-Atomfelder und RAG-Regel | 2026-05-08 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/egmr_bverfg_materials.py` | Serveredition-Spiegel des EGMR-/BVerfG-Loaders | 2026-05-08 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/jurabibliothek/config/egmr_bverfg_sources.json` | Serveredition-Spiegel des Quellenmanifests | 2026-05-08 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/templates/egmr_bverfg/` | Serveredition-Spiegel der EGMR-/BVerfG-Templates | 2026-05-08 |

## | `reports/egmr_bverfg_quellenpaket_2026-05-08.md` | Einlagerungsbericht

- 54 Quellen, 555 Paketfragmente | 2026-05-08 |

| `70_TESTS_AND_SMOKE/legal/test_egmr_bverfg_materials.py` | Smoke-Test für lokalen Manifestimport und Fallback-Atome | 2026-05-08 |

| `40_INTEGRATIONS/paperless/hooks/azubi42_paperless_legal_ocr.py` | Legal-OCR-Hook mit `AZUBI42_PAPERLESS_TESSERACT`/`--tesseract` und Windows-Standardpfad-Fallback; lokale Sidecar-Laeufe ohne numerische Paperless-ID überspringen den Django-Content-Patch | 2026-05-08 |

| `40_INTEGRATIONS/paperless/config/paperless-legal-ocr.example.env` | Beispielkonfiguration um `AZUBI42_PAPERLESS_TESSERACT=tesseract` erweitert | 2026-05-08 |

| `70_TESTS_AND_SMOKE/legal/test_paperless_legal_ocr_hook.py` | Smoke-Test für Tesseract-Pfadaufloesung und lokalen Nicht-Paperless-Patch-Skip | 2026-05-08 |

## | `10_SHARED_CORE/app_v27_multimedia/runtime/paperless-legal-sidecars/` | Private Runtime-Ablage

- zwei lokale 07.05-Eingangs-PDFs als Paperless-Legal-OCR-Sidecars mit 8 Seitenthumbnails und 16 atomisierten Jurabibliothek-Fragmenten; Runtime ist git-ignoriert | 2026-05-08 |

| `reports/paperless_ocr_intake_2026-05-08.md` | Kurzbericht zum OCR-/Sidecar-/Atomindex-Lauf für zwei lokale Eingangsdokumente vom 07.05.2026 | 2026-05-08 |

| `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` | Codex-Native-Directroute filtert Handoff-only-Felder vor `/v1/responses`; Live-Smoke für Login, OpenAI, Codex Native und Ollama auf `azubi42-jura`/`azubi42-dev` | 2026-05-09 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` | Installer-Spiegel des Codex-Native-Payload-Filters | 2026-05-09 |

| `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_1_ModelSelector.js` | OpenAI-/Codex-Cache-Stringmodelle erhalten gültige Select-Werte; verhindert GPT->Ollama-Rueckfall im UI | 2026-05-09 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/06_API_ROUTER/06_1_ModelSelector.js` | Installer-Spiegel des Modellselector-Stringmodell-Fixes | 2026-05-09 |

## | `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_1_ModelSelector.js` | Konstruktionsschutz

- remote/cross-origin Ollama/Azubi-URLs werden auch auf localhost auf `/api/ollama` normalisiert (loopback-only) | 2026-05-15 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/06_API_ROUTER/06_1_ModelSelector.js` | Installer-Spiegel des localhost-Remote-Blockers für Ollama/Azubi | 2026-05-15 |

## | `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_5_LocalFetch_Enhanced.js` | Konstruktionsschutz

- local fetch akzeptiert keine stillen remote/cross-origin Ollama/Azubi-Pfade (Cookie/Login/CORS) | 2026-05-15 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/06_API_ROUTER/06_5_LocalFetch_Enhanced.js` | Installer-Spiegel des localhost-Remote-Blockers im LocalFetch | 2026-05-15 |

| `10_SHARED_CORE/app_v27_multimedia/js/02_CHAT/02_1_ChatWindow.js` | Auth-/Sessionfehler für lokale Modelle liefern konkrete Login-/Logout-Hinweise (`/__azubi42/login` / `/__azubi42/logout`) | 2026-05-15 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/02_CHAT/02_1_ChatWindow.js` | Installer-Spiegel der verbesserten Auth-/Session-Fehlermeldung | 2026-05-15 |

## | `70_TESTS_AND_SMOKE/ui/audit_modelrouting_basepath_cookie_path.mjs` | Audit erweitert

- prüft localhost-Remote-Blocker (`isLoopbackHostname`) in ModelSelector und LocalFetch | 2026-05-15 |

| `70_TESTS_AND_SMOKE/ui/audit_parallel_chat_runs.mjs` | Erweiterter Modellrouting-Smoke für Codex-Native-Feldfilter und Stringmodell-Rendering | 2026-05-09 |

| `toolbox/legal/schriftsatz_konsistenz_audit.py` | Erzeugt gehärtete BVerwG-/SGP-AOK-Nachträge, SGP-AOK-Tonentschärfung, bevorzugt FINAL_PRINT-DOCX, Versandmaster und Konsistenzmatrix für den Gesamtvorgang | 2026-05-09 |

| `toolbox/legal/gesamtvorgang_qm_audit.py` | Breiter QM-Scan; klassifiziert Tonentschärfungs-/Korrekturdateien als Prüfberichte statt Hauptschriftsätze | 2026-05-09 |

- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
| `toolbox/legal/final_print_package.py` | Finaler Druck-/Anlagenpaketbauer für BVerwG-Master, BVerwG-Nachtrag, SGP-AOK-FINAL_PRINT, SGP-AOK-Nachtrag, 07.05-Eingaenge, OCR-Sidecars, privaten Universalblock Vorfehlerkette, Register und QA | 2026-05-12 |

| `toolbox/legal/word_pdf_export_guard.ps1` | Geschützter lokaler Word-COM-PDF-Export mit Temp-Datei, Print-/Screen-Optimierung, optionalem PDF/A, stabiler Größenprüfung, Backup vorhandener Ziel-PDFs und JSON-Status | 2026-05-15 |

| `toolbox/legal/config/hw3d_knowledge_layers.json` | Azubi42-HW3D-Wissensvertrag für Glossar, Früchte, Rollen, Blickwinkel, Lernterrain, strukturierte Kausalketten, Dokumentgesamtblick, neutrale Linien, Blickwinkelwaffen-Smokes und Terminologie-/Rollenquellen-Gate | 2026-05-25 |

| `toolbox/legal/config/legal_rule_source_contract.json` | Quellenvertrag für gerichtssichtbare Begriffe, Akteure, Institutionen, Dokumentrollen, Vorgangs-/Rechtsfragen, Nichtrollen und WH3D-/Blickwinkel-Signale; PKH/Beiordnung ist Vorgangsfrage, nicht Akteur | 2026-05-25 |

| `toolbox/legal/config/paperless_task_rules.json` | Paperless-/Bulk-Regelvertrag für Leerdateien, XFA, Dubletten, Seitenstatistik und Dokumentgesamtblick bei unklarer Seitenzuordnung | 2026-05-16 |

| `toolbox/legal/config/gesamtvorgang_table_schema_v2.json` | Tabellen-/Fruchtvertrag für Gesamtvorgang, strukturierte Kausalketten, Forderungsarten, Mahnwesen und Zahlungsausgleich | 2026-05-16 |

| `toolbox/legal/config/benchmark_sources_public_cases.json` | Amtlicher Benchmark-Quellenvertrag für lokale Jura-/Paperless-/WH3D-Systemkalibrierung mit Split-Regeln und Bewertungsmatrix | 2026-05-16 |

| `toolbox/legal/table_schema_probe.py` | Erzeugt 3-Zeilen-Proben aus dem Gesamtvorgang-Tabellenvertrag als CSV/Markdown/XLSX | 2026-05-15 |

- Private Arbeitsdaten/-berichte: aus Forgejo-/Matrix-/Public-Doku entfernt; Details bleiben ausschließlich in der privaten Arbeitsablage.
| `00_META/CODEX_FREIGABE_PROMPTS_REGEL.md` | Arbeitsregel für anpassbare Freigabe-Prompts und Dateityp-/Werkzeugklassen bei wiederkehrenden Codex-Aktionen | 2026-05-09 |

| `toolbox/legal/language_stack_audit.py` | OCR-/Sprachstack-Audit für Windows, Server, RAG/Jurabibliothek, Tesseract, Hunspell/Aspell, Ollama und Codex CLI | 2026-05-09 |

| `toolbox/legal/config/language_packs/legal_de_language_profile.json` | Profil für deutsches Legal-/Sozial-/Medizin-Vokabular, Tessdata-Pflichten und RAG-Normalisierung | 2026-05-09 |

| `toolbox/legal/config/language_packs/tesseract-user-words-legal-deu.txt` | Tesseract-User-Words für Aktenzeichen, Jura, Sozialrecht, EGMR/BVerfG, AOK/Medizin und Amtsdeutsch | 2026-05-09 |

| `toolbox/legal/config/language_packs/tesseract-user-patterns-legal-deu.txt` | Konservative Tesseract-User-Patterns für Legal-Abkuerzungen und Aktenzeichenumfeld | 2026-05-09 |

| `runtime/language_packs/tessdata/` | Lokale nicht versionierte Windows-Tessdata-Ablage für `deu`, `eng`, `osd`, `frk`, `Latin`, `Fraktur` | 2026-05-09 |

| `reports/language_stack_audit_2026-05-09.md` | Zusammenfassung der Sprachstack-Härtung und OCR-Smokes | 2026-05-09 |

| `reports/language_stack_audit_2026-05-09_windows.md` | Lokaler Windows-Sprachstack-Auditbericht | 2026-05-09 |

| `reports/language_stack_audit_2026-05-09_server.md` | Server-Sprachstack-Auditbericht aus `[Serverpfad]` | 2026-05-09 |

| `40_INTEGRATIONS/paperless/tools/paperless_tag_match_audit.py` | Read-only Paperless-Audit für live sichtbare Dokumente gegen AZ42-Tags und AZ42-Dokumenttypen | 2026-05-13 |

| `40_INTEGRATIONS/paperless/tools/paperless_date_sanity.py` | Read-only Paperless-Datumsprüfung gegen Titel, Dateinamen, Textkopf und privates Importmanifest; markiert generische Namen, Kopiesuffixe und Timeline-Ausreisser | 2026-05-13 |

## | `40_INTEGRATIONS/paperless/tools/paperless_apply_tag_regex_profile.py` | Kuratiertes Paperless-Tagprofil `core_global_v2`

- AZ42-Kernachsen behalten, wenige harte Legacy-Regexe aktivieren, sonst `MATCH_NONE` statt `Automatic` | 2026-05-13 |

| `40_INTEGRATIONS/paperless/tools/paperless_upload_smoke.py` | Echte Paperless-Upload-/OCR-Smokes mit eindeutigen Fixtures, `ok`-Summary und Queue-Parallelitaetsmessung | 2026-05-13 |

| `40_INTEGRATIONS/paperless/tools/paperless_cleanup_by_query.py` | Dry-Run-First Cleanup-Werkzeug für eng gefilterte Paperless-Testdokumente mit explizitem Delete-/Trash-Confirm | 2026-05-13 |

| `40_INTEGRATIONS/paperless/config/paperless-parallel-capacity.example.env`[private Angabe entfernt]`PAPERLESS_TASK_WORKERS` und `PAPERLESS_THREADS_PER_WORKER` | 2026-05-13 |

| `40_INTEGRATIONS/fach-azubis/kinderrechte-fachazubi/SCENARIOS.json` | Maschinenlesbarer Szenarienkatalog für Kinderrechte mit Taschengeld, Bildrechte, Schule/Jugendhilfe und Azubi-Arbeitsschutz | 2026-05-14 |

| `10_SHARED_CORE/app_v27_multimedia/runtime/fach-azubis/catalog.json` | Fachazubi-Katalog (UI-Einstieg) nachgezogen; Fahrschule-Text + `generated_at`; Kopien in `40_INTEGRATIONS` und Installer synchronisiert | 2026-05-17 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` | App rendert Kinderrechte-Mini-Szenarien im Fachazubi-Popup und über einen eigenen `Szenarien`-Button | 2026-05-14 |

| `20_EDITIONS/azubi42-de/website/js/detail.js` | AZUBI42.de Detailseiten rendern Mini-Szenarien als eigene Sektion aus demselben Katalog | 2026-05-14 |

| `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` | Format-/Sprachregel für empfängerlogische Tabellen, sichtbare Datumsform `17.Mai.2026`, eigene Seite ohne "Behauptung" und saubere Beiziehungsformel | 2026-05-17 |

| `toolbox/legal/config/language_packs/legal_de_language_profile.json` | Legal-Sprachprofil mit `court_facing_language` für Schriftsatz-/RAG-/Tabellenausgaben; Spiegel in Root, Linixserveredition und Installer synchronisiert | 2026-05-17 |

## | `toolbox/legal/config/hw3d_knowledge_layers.json` | WH3D-/RAG-Vertrag mit `recipient_hin_her_axis`

- aktueller Anschlussbezug, kompletter Empfänger-Schriftwechsel und vertikaler Hin-Her-Zeitstrahl für Schriftsatzbau/RAG/WH3D; Installer-Spiegel synchronisiert | 2026-05-17 |

| `00_META/AZUBI42_BAUSTELLEN_2026-04-30.md` | UI-Bookmark für späteres Frontend-Bauteil `Hin-Her-Zeitstrahl` je Empfänger mit User-/Empfänger-Spuren, Originalanker, Früchten, Antwortstatus und Mahnstatus | 2026-05-17 |

| `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` | Weiterleitungs-/Meldepflicht-Kopfblock, Rueckspiel-Sperre, zeitpunktbezogene Zuständigkeit und Patientenstellen-Abgrenzung als dauerhafte Schriftsatz-/RAG-Regel | 2026-05-17 |

| `toolbox/legal/config/language_packs/legal_de_language_profile.json` | `court_facing_language` erweitert um Weiterleitungsdruck, Kenntnisnahme-Kopfhinweis, damalige Zuständigkeit und Unterstuetzungsstellen-Zahlungsabgrenzung; Root-, Linix- und Installer-Spiegel synchronisiert | 2026-05-17 |

| `toolbox/legal/config/hw3d_knowledge_layers.json` | Core-Prinzipien `forwarding_and_notice_pressure` und `temporal_jurisdiction_first` für WH3D/RAG/Blickwinkeltests; Root-, Linix- und Installer-Spiegel synchronisiert | 2026-05-17 |

## | `toolbox/legal/config/private_schriftsatz_notice_blocks.json` | `private_provisorische_einordnung` als Schutz-/Auslegungs-/Azubi42-Selbsthilfehinweis erweitert

- ohne Rechtsbeistand, Beta-Software als Mehraufwand/Forderungsachse, keine anwaltliche Qualitaetspflicht, objektiv technische Verfahrensbeschleunigung, barrierefreier eRV; Root-, Linix- und Installer-Spiegel synchronisiert | 2026-05-17 |

| `toolbox/legal/config/language_packs/legal_de_language_profile.json` | `court_facing_language` zusätzlich um `software_self_help_claim_rule`, `layperson_sachdienliche_auslegung_rule` und `barrier_free_erv_rule` erweitert; Root-, Linix- und Installer-Spiegel synchronisiert | 2026-05-17 |

| `toolbox/legal/config/hw3d_knowledge_layers.json` | Core-Prinzipien `azubi42_self_help_claim_axis` und `barrier_free_erv_channel` für WH3D/RAG/Blickwinkeltests; Root-, Linix- und Installer-Spiegel synchronisiert | 2026-05-17 |

## | `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` | Azubi42-Selbsthilfe-/Beschleunigungsblock nachgeschaerft

- Laienfassung darf nicht an anwaltlicher Qualitaet oder gerichtlicher Sortierarbeit scheitern; Hinweis/Ergänzung/PKH-Prüfung und sachdienliche Auslegung sind Pflichtlogik | 2026-05-17 |

## | `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` | Debug-/Neuproduktionssperre

- aktuelle Artefakte bleiben im Grobfehler-Debug Prüf-/Debugfassungen; finaler Gesamtstand erst nach komplettem Neulauf aus frisch gezaehltem Bestand | 2026-05-17 |

## | `toolbox/legal/config/hw3d_knowledge_layers.json` | Core-Prinzip `debug_before_full_rebuild` für WH3D/RAG/Blickwinkeltests

- grobe Fehler zuerst debuggen, danach Paperless/Sidecar/Atomindex/RAG/WH3D/Tabellen/Schriftsätze/Anlagen neu rechnen | 2026-05-17 |

## | `00_META/AZUBI42_ARBEITSWEISE_PRIVACY_FORMAT_REGEL.md` | Identitaetsanker-Regel

- Parteiname/Vorname/Rolle/Schreibweise duerfen nicht aus OCR-/Modellvarianten entstehen; massgeblich ist der kanonische Originalanker | 2026-05-17 |

| `toolbox/legal/config/hw3d_knowledge_layers.json` | Core-Prinzip `identity_anchor_first` für WH3D/RAG/Blickwinkeltests; falsche Vornamen oder stille Namenskorrekturen sind bis Originalankerprüfung gesperrt | 2026-05-17 |

| `toolbox/legal/config/language_packs/legal_de_language_profile.json` | `identity_anchor_rule` für gerichtsfeste RAG-/Schriftsatz-/Tabellensprache ergänzt; abweichende Namensvarianten nur als belegte Fremd-/Fehlschreibweise | 2026-05-17 |

## | `toolbox/legal/config/hw3d_knowledge_layers.json` | `recipient_hin_her_axis` um `multi_lane_ui_model` erweitert

- `Hin-Her-Zeitstrahl Mehrspur` mit Beteiligten-Lanes, aktueller-Datum-Ausrichtung, erstem Kontakt unten, dynamischem Statistikblock für Gesamtbestand/Mehrfachauswahl/Fokusspur sowie Klick-/Zoom-/Pan-/Fullscreen- und Paperless/Textlayer/Sidecar-Pflichten | 2026-05-17 |

| `toolbox/legal/config/language_packs/legal_de_language_profile.json` | `correspondence_axis_terms` um `Hin-Her-Zeitstrahl Mehrspur` und `Beteiligten-Lane` erweitert | 2026-05-17 |

## | `00_META/AZUBI42_BAUSTELLEN_2026-04-30.md` | UI-Bookmark für Mehrspur-Hin-Her-Zeitstrahl ergänzt

- alle Vorgangsbeteiligten nebeneinander, automatisch nach Paperless/Sidecar/Atomindex/Dokumentfreigabe aktuell oder sichtbar veraltet | 2026-05-17 |

## | `toolbox/legal/realfall_hin_her_zeitstrahl_mehrspur.py` | Quellenpflichtiger Generator für den `Hin-Her-Zeitstrahl Mehrspur`

- keine privaten Default-Pfade, kein impliziter `latest`-Fallback, Human-Sync-/Gate-Tabellen und Paperless-/Sidecar-Manifeste als explizite CSV-Eingabe, JSON/HTML/Nodes-CSV mit SHA256-Quellmanifest, Beteiligten-Lanes, Drag-Sortierung, Suche, Pan/Zoom/Fullscreen, Fokusspur mit aktuellem Schriftsatz oben, links/rechts gesetzten User-/Gegenstellenkarten, klickbaren Frucht-/Fruechtchen-Markern aus Tabellenzeilen und dynamischer Auswahlstatistik ohne technische Zeichenzahl | 2026-05-17 |

| `70_TESTS_AND_SMOKE/legal/test_realfall_hin_her_zeitstrahl_mehrspur.py` | Smoke-Test für explizite Quelle, Dokumentgruppierung, Lane-Erkennung und Altbestands-Fallback-Sperre des Mehrspur-Zeitstrahls | 2026-05-17 |

| `toolbox/legal/normketten_normalizer.py` | PPKn-/Normketten-Normalisierer mit CLI/JSON- und Satzfenster-Ausgabe | 2026-05-21 |

| `toolbox/legal/normketten_service.py` | Privater localhost-HTTP-/MCP-Anschluss für Normalformen, strukturierte Referenzen und Satzgrenzen mit Offsets | 2026-05-21 |

| `70_TESTS_AND_SMOKE/legal/test_normketten_normalizer.py` | Smoke-Test für ZPO-/StGB-/GG-/Default-GVO-/analog-/a.F.-Normalformen und Satzgrenzen | 2026-05-21 |

| `70_TESTS_AND_SMOKE/legal/test_normketten_service.py` | Smoke-Test für Health-/Schema-/Normalize-Endpunkt, Satzoffsets und Bodylimit | 2026-05-21 |

| `toolbox/legal/jurabibliothek/config/sources.json` | Page-Watch `kristall_openjur_ppkn_normalisierung` als nichtamtliche Methodik-/Beobachterquelle | 2026-05-21 |

| `toolbox/legal/jurabibliothek/config/legal_education_sources.json` | Lern-Lane `rechtsinformatik_methodik` mit PPKn-Methodikquelle | 2026-05-21 |

## | `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_2_Navigation.js` | View-Routing korrigiert

- Communication nutzt wieder `#view-communication` statt Canvas-Missrouting auf `#view-org` | 2026-05-24 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_2_Navigation.js` | Installer-Spiegel des Communication-View-Routing-Fixes | 2026-05-24 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` | Legacy-Template-Normalisierung (`instanceId`/`serviceId`) plus robuste Action-/Notiz-Bindung über `templateId` mit `templateIndex`-Fallback | 2026-05-24 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js` | Installer-Spiegel der Legacy-Template-Härtung für Communication | 2026-05-24 |

| `toolbox/legal/realfall_amt_vi_table_answerdeckung_cleanup.py` | Reproduzierbares AMT-VI-Tabellen-Cleanup für Antwortdeckung/Nachfolgeabgleich in den 33er Gerichtstabellen; Snapshot, Manifest, Changed-Cells-Audit und Quality-Scan unter `20_QA_AUDIT/table_answerdeckung_cleanup_*` | 2026-05-24 |

## | `toolbox/legal/paperless_detailpunkt_erledigung_audit.py` | Server-only Paperless-Detailpunkt-Audit

- explizite 1508-Zeilen-Punktliste, aktueller Sidecar-Bestand, Rollen-/Dokument-/Richtungsclassification, Antwortkandidaten nur `direction=eingang_gericht_behoerde`, optional 121 konservative Scope-Gap-Zusatzkandidaten über `--extra-answer-candidates-csv`, Hard-Anchor-Gate gegen Schablonenmatch, Detailpunkt-zu-späterem-Gegenstück-Audit und Paperless-Tag-/Regex-Dry-Run ohne Tabellenmutation | 2026-05-25 |

| `toolbox/legal/paperless_incoming_violation_flag_audit.py` | Breiter Eingangskontakt-Prüfflag-Audit für Rechtsbruch-/Verstoß-Prüffelder mit getrennten Zählern für Paperless-Datensätze, Seiten und grobe Schriftstueckgruppen; erzeugt keine Rechtsbehauptung und keine Tabellenmutation | 2026-05-25 |

| `toolbox/legal/paperless_scope_gap_candidate_classifier.py` | Klassifiziert 535 Scope-Gap-Reviewkandidaten in echte Antwort/Entscheidung, Beleg/Formular, Seitenfragment, Stellenbezug ohne Antwortfunktion oder Ausschluss; v4 sperrt Anlage/Vollmacht/Klage/Beschwerde/Schriftsatz/Ruege als Antwortkandidat und liefert 121 Zusatzkandidaten für den erweiterten Audit | 2026-05-25 |

## | `toolbox/legal/paperless_detailpunkt_residual_report.py` | Residual-/Verify-Report für Detailpunkt-Auditordner

- offene Punkte, Antwortdeckungs-Reviewqueue, unscharfe externe Modellqueue, Lane/Achsen-Status, Seitenzahlalarm, SHA256-Register und Markdown-QM; erweiterter Stand 747/761/11 ohne Tabellenmutation | 2026-05-25 |

| `toolbox/legal/paperless_answerdeckung_review_blockcheck.py` | Blockweise Reviewprüfung der 761 möglichen Antwortdeckungen mit Manifest-Join, Klassenqueues, Blocksummary, Lane/Achsen-Statistik und Kandidatendokument-Massenverwendungsflag; keine automatische Erledigung und keine Tabellenmutation | 2026-05-25 |

## | `toolbox/legal/paperless_answerdeckung_same_lane_sentence_review.py` | Satzfenster-Review für gleiche-Spur-Spitzenqueues

- liest Paperless-Sidecars, extrahiert Originalantwortfenster, erkennt Arbeitsfassung/Zitat/Selbsttreffer und schreibt Entscheidungsqueues ohne Tabellenmutation | 2026-05-25 |

## | `toolbox/legal/paperless_answerdeckung_open33_final_sentence_review.py` | Endprüfung der 33 offenen Antwortdeckungs-Restzeilen

- joined Ursprungspunkt, Same-/Cross-Satzfenster und erzeugt `offen_endgueltig`/`teilweise_beantwortet_pruefen` ohne automatische Deckung und ohne Tabellenmutation | 2026-05-25 |

| `toolbox/legal/paperless_answerdeckung_open_basis_builder.py` | Übernimmt 30 endgültig offene Open33-Punkte in die offene Schriftsatz-/Tabellenbasis und trennt 3 Teilantwort-Kandidaten in eine Mini-Reviewqueue mit HTML, lokalem Entscheidungszustand, JSON-/CSV-Export, Deutsch-/Sinnprüfung, Quellstellenhinweis und erweiterten Rechtsprüfungs-Buttons; keine Tabellenmutation | 2026-05-25 |

| `toolbox/legal/paperless_answerdeckung_mini_review_sync.py` | Sync-/Apply-Baustein für die 3er-Teilantwort-Mini-Reviewqueue; ohne Review-Export nur Pending-Template und Bericht, mit Export validierte abgeleitete offene Basis oder Teilantwort-Restbasis; keine In-place-Tabellenmutation | 2026-05-25 |

| `reports/legal_rule_source_audit_2026-05-25.md` | Kurzer Quellen-/Rollen-Audit für amtliche Begriffe, Projektbegriffe, PKH/Beiordnung, Antwortkandidaten und Paperless-Tag-/Regex-Dry-Run | 2026-05-25 |

| `[lokaler Pfad]` | SGF-Meistertext-Arbeitskopie mit ergänzter PKH-Versagen-No.-1-/Suder-/Barnim-Kenntnisfrage; strukturell geprüft, SHA256 im QA-JSON | 2026-05-25 |

| `[lokaler Pfad]` | BVerwG-Meistertext-Arbeitskopie mit ergänzter Orientierung zu PDF/A+XLSX, Jan.2023, Rechtsbeistandsluecke, 09er-Akte und LSG-6-Monats-Ruege; strukturell geprüft, SHA256 im QA-JSON | 2026-05-25 |

| `[lokaler Pfad]` | QA-Protokoll zu den SGF-/BVerwG-Inline-Ergänzungen mit DOCX-Lesbarkeit, Absatzzählern, SHA256, erwarteten Ankern und Statuswort-Sperrcheck | 2026-05-25 |

| `[lokaler Pfad]` | SGP-Meistertext-Arbeitskopie mit Existenzgründer-/SGB-II-Klarstellung, 09er-Strukturspur und korrigierter Leseführungszahl `621`; strukturell geprüft, SHA256 im QA-JSON | 2026-05-26 |

| `[lokaler Pfad]` | BVerwG-Meistertext-Arbeitskopie mit Existenzgründer-/SGB-II-Strukturversagensergänzung; strukturell geprüft, SHA256 im QA-JSON | 2026-05-26 |

| `[lokaler Pfad]` | QA-Protokoll zu den SGP-/BVerwG-Existenzgründer-Ergänzungen mit DOCX-Lesbarkeit, Absatzzählern, SHA256, erwarteten Ankern, Sperrcheck und XLSX-Zählern | 2026-05-26 |

| `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` | API `azubi42.case_workflow.*`[private Angabe entfernt]`runtime/case_workflow_requests`, Bruecke zu Fall-Lernen, AZ/Helix, Mahnwesen und Hinweisblock | 2026-05-26 |

## | `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` | Frontend-Schiene im Paperless-Panel

- Profil-/Pfadstatus, Workflow-Buttons, Ergebnisrendering und Sync in bestehende Fall-/AZ-/Mahnwesenansichten | 2026-05-26 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js` | Host-Container `case-workflow` im bestehenden Paperless/OCR-Panel | 2026-05-26 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/view_start_menus/bibliothek_menu.js` | Toolbox-Fallauswertung mit Direktaktionen für Profil, Fall-Lernen, AZ/Helix, Mahnwesen, Hinweisblock und Tabellenlauf-Anforderung | 2026-05-26 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/...` | Installer-Spiegel der Case-Workflow-API und Bibliothek-UI für Serverdeploy | 2026-05-26 |

| `toolbox/legal/config/*` und Installer-/Paperless-Spiegel | Regelanker `digital_access_attribution_risk_*` für WH3D, RAG, Paperless und Gerichtssprache; triggert Digitalzugang/Zurechnung/Haftungsverschiebung bei eBO/MJP/BundID/eID/eRV/Zustellung/Frist und sperrt automatische Straf-/Haftungsbehauptungen | 2026-05-27 |

| `toolbox/legal/config/*` und Installer-/Paperless-Spiegel | Regelanker `high_risk_digital_access_operator_*` für WH3D, RAG, Paperless und Gerichtssprache; triggert Betreiberpflicht-Prüfung ohne automatische AI-Act-/Haftungsbehauptung | 2026-05-27 |

| `toolbox/legal/config/*`, `toolbox/legal/jurabibliothek/config/sources.json` und Installer-/Paperless-Spiegel | Regel- und Quellenstand für `azubi42_operator_audit_local_runtime_*`, `erv_accessibility_separation_*`, OCR-Human-loop, AI Act, eIDAS, EU-eID-Schemes und BITV | 2026-05-27 |

## | `[lokaler Pfad]` | Bereinigtes BVerfG-/EGMR-Lesepaket für Schlusskorrektur

- BVerfG-Verfassungsbeschwerde-Entwurf, EGMR-Begründung, offizielles EGMR-Formular, EGMR-Prüfbogen und LSG-URL-Gefaehrdungshinweis; sichtbare Arbeitsbegriffe gesperrt | 2026-06-03 |

| `40_INTEGRATIONS/paperless/hooks/azubi42_paperless_legal_ocr.py` | Paperless Legal-OCR-Hook mit DOCX-/PDF-Inlinebildextraktion, `inline_visuals`, `inline_visuals_audit` und top-level `fruits[]`-Bildfruchtspiegel | 2026-06-04 |

| `toolbox/legal/paperless_inline_visuals_backfill.py` | Kontrollierter Resume-Backfill für bestehende Paperless-Sidecars inklusive Hostpfad-Mapping, Incomplete-Stopkriterien und Bildfruchtspiegel-Re-Write | 2026-06-04 |

| `40_INTEGRATIONS/paperless/schema/azubi42-paperless-legal-sidecar.schema.json` | JSON-Schema für Sidecars mit `inline_visuals`, verschachtelter `fruit` und globalem `fruits[]`-Vertrag | 2026-06-04 |

| `70_TESTS_AND_SMOKE/legal/test_paperless_inline_visuals.py` | Smoke-Test für DOCX-Inlinebild, Incomplete-Limit, Paperless-Pfadmap und globalen Bildfruchtspiegel | 2026-06-04 |

| `toolbox/legal/paperless_inline_visuals_vision_gate.py` | Blockweiser Vision-Gate-/Review-Nachlauf für `vision_blocked`-Inlinebilder mit lokalem Ollama-Visionmodell oder konservativer Heuristik; schreibt `vision_review`, synchronisiert Bildfruchttexte und nutzt Circuit Breaker bei wiederholtem Modellfehler | 2026-06-04 |

| `70_TESTS_AND_SMOKE/legal/test_paperless_inline_visuals_vision_gate.py` | Smoke-Test für `vision_review`, Low-Content-Klassifikation, `vision_blocked`-Freigabe und stabilen Bildfruchtspiegel | 2026-06-04 |

| `reports/paperless_inline_visuals_vision_gate_20260604.md` | Laufbericht zum echten 309er Vision-Gate-Lauf gegen dev/jura/Paperless mit Endzählern, Kategorien und Modelltimeout-Bewertung | 2026-06-04 |

| `azubi42_server.py` `/api/paperless/vision-review` | Deduplizierte Review-Queue für offene Inlinebild-Reviews und Rueckschreibepfad für menschliche Sichtprüfung in Sidecar und Bildfrucht | 2026-06-04 |

| `10_1_PaperlessBridge.js` Vision-Review | Paperless-Frontend-Queue mit Bildvorschau, Ursachenbefund, Paperless-/Sidecar-Link und speicherbarem Human-Review | 2026-06-04 |

| `10_SHARED_CORE/app_v27_multimedia/js/10_PAPERLESS_RAG/10_1_PaperlessBridge.js` | Paperless-Viewer zeigt Vision-Reviewstatus, Kategorie und Kurzbeschreibung je Bildfrucht | 2026-06-04 |

| `40_INTEGRATIONS/legal-jura/zugangsbau/README.md` | Zugangsbau-Defaking-Übersicht und harte No-nicht belegter Zustand-Regeln für digitale Jura-Zugänge | 2026-06-06 |

| `40_INTEGRATIONS/legal-jura/zugangsbau/OFFIZIELLE_QUELLEN_2026-06-06.md` | Offizielle Quellenliste für BundID/eID, MJP/eBO/EGVP/OSCI, FIT-Connect/ZBP, XJustiz und Berufs-/Sonderpostfaecher | 2026-06-06 |

| `40_INTEGRATIONS/legal-jura/zugangsbau/ROADMAP_ZUGANGSBAU_ORIGINALANSCHLUESSE_2026-06-06.md` | Zugang-für-Zugang-Roadmap ohne nicht belegter Zustand-Oberflächen und ohne vorzeitige Fax-/Antragsbausteine | 2026-06-06 |

| `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json` | Maschinenlesbare Originalbetreiber-Registry mit Modulscope, Rollen-Gates, erlaubten/gesperrten Oberflächen, Aktivierungsgates und offiziellen Test-/SDK-/Paketprofilen | 2026-06-08 |

| `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` | Zugangsbau-Status-API `/api/legal/zugangsbau/status`, redigierter Registry-Payload, gesperrt bis zum Nachweis-Zähler, Secret-/Pfadschutz | 2026-06-06 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js` | Bibliothek-Zugangsbau-Panel für Originalanschluesse, offizielle Quellen und gesperrt bis zum Nachweis-Status | 2026-06-06 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` | Zugangsbau-Renderer, Refresh-Action, Login-Freshness-Anbindung und externe Quellenlinks | 2026-06-06 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` | Installer-Spiegel der Zugangsbau-Status-API | 2026-06-06 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_1_Layout.js` | Installer-Spiegel des Bibliothek-Zugangsbau-Panels | 2026-06-06 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` | Installer-Spiegel des Zugangsbau-Renderers | 2026-06-06 |

| `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/legal-jura/zugangsbau/` | Serveredition-Spiegel der Zugangsbau-Dokumente und Operator-Registry | 2026-06-06 |

| `toolbox/deploy/deploy_live_winscp.ps1` | Deploy-Vertrag packt `40_INTEGRATIONS/legal-jura/zugangsbau/` in Live-/PrepareOnly-Artefakte; PrepareOnly `azubi42_app_zugangsbau_20260606_2.tar.gz` enthält Registry, README, Roadmap und Quellenliste | 2026-06-06 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/deploy/deploy_live_winscp.ps1` | Installer-Spiegel derselben Zugangsbau-Paketregel für Live-Deploys | 2026-06-06 |

| `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py` | Vertragstest für Zugangsbau-Registry und Server-Payload | 2026-06-06 |

| `70_TESTS_AND_SMOKE/ui/audit_zugangsbau_frontend.mjs` | Statischer Zugangsbau-Frontend-Smoke | 2026-06-06 |

| `70_TESTS_AND_SMOKE/ui/clicktest_zugangsbau_blickwinkel_userflow.mjs` | Echter Browser-Userflow für Zugangsbau und Blickwinkel | 2026-06-06 |

| `reports/clicktest_zugangsbau_blickwinkel_userflow_2026-06-06.json` | Laufbericht des echten Browser-Userflows gegen die Azubi42-UI | 2026-06-06 |

| `10_SHARED_CORE/app_v27_multimedia/js/00_STATE/destructiveConfirm.js` | Zentraler roter Pflichtbestätigungsdialog für irreversible Aktionen | 2026-06-06 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/00_STATE/destructiveConfirm.js` | Ubuntu-Installer-Spiegel des roten Pflichtbestätigungsdialogs | 2026-06-06 |

| `10_SHARED_CORE/app_v27_multimedia/js/07_DATA_VAULT/07_4_WorkspaceSessions.js` | Workspace-Löschpfad nutzt roten Pflichtdialog | 2026-06-06 |

| `10_SHARED_CORE/app_v27_multimedia/js/07_DATA_VAULT/07_6_CommunicationSpaces.js` | Communication-Space-Löschpfad nutzt roten Pflichtdialog | 2026-06-06 |

| `10_SHARED_CORE/app_v27_multimedia/js/07_DATA_VAULT/07_5_PerspectiveSpaces.js` | Perspektiv-Space-Löschpfad nutzt roten Pflichtdialog | 2026-06-06 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_4_InterfaceChrome.js` | Theme-Löschen und Zugang-Löschantrag nutzen roten Pflichtdialog | 2026-06-06 |

| `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_6_BrowserGateway.js` | Browserprofil-Leerung nutzt roten Pflichtdialog | 2026-06-06 |

| `10_SHARED_CORE/app_v27_multimedia/css/style.css` | Styles für roten Pflichtdialog | 2026-06-06 |

| `70_TESTS_AND_SMOKE/ui/audit_destructive_delete_confirm.mjs` | Audit für Destructive-Action-Schutz | 2026-06-06 |

| `[Serverpfad]` | Live-Backup vor Reaktivierung von Forgejo/Paperless im dev-Authprofil | 2026-06-06 |

| `runtime/deploy_artifacts/usermanagement_smoke_dev_after_provider_reactivate_20260606.log` | Mutierender dev-Usermanagement-Smoke nach Forgejo-/Paperless-Reaktivierung | 2026-06-06 |

| `[Serverpfad]` | Live-Backup vor Reaktivierung von Forgejo/Paperless im jura-Authprofil | 2026-06-06 |

| `runtime/deploy_artifacts/azubi42_app_zugangsbau_delete_guard_20260606_live2.tar.gz` | Live-Paket für roten Löschschutz und Zugangsbau-Stand | 2026-06-06 |

| `runtime/deploy_artifacts/winscp_deploy_zugangsbau_delete_guard_20260606_live2.log` | Deploylog zum Löschschutz-Paket; Deploy erfolgreich, eingebetteter dev-Smoke danach wegen Communication-Race fehlgeschlagen | 2026-06-06 |

| `runtime/deploy_artifacts/azubi42_app_communication_matrix_profile_race_20260606_live3.tar.gz` | Live-Paket für Communication-Accountprofil-Race-Fix | 2026-06-06 |

| `runtime/deploy_artifacts/winscp_deploy_communication_matrix_profile_race_20260606_live3.log` | Deploylog zum Communication-Race-Fix; dev/jura Services active | 2026-06-06 |

| `runtime/deploy_artifacts/usermanagement_smoke_dev_communication_race_20260606_live3.log` | Grüner dev-Usermanagement-Live-Smoke nach Race-Fix | 2026-06-06 |

| `runtime/deploy_artifacts/usermanagement_smoke_jura_communication_race_20260606_live3.log` | Grüner jura-Usermanagement-Live-Smoke nach Race-Fix | 2026-06-06 |

| `toolbox/communication/provider_contracts_apply.py` | Provider-Contract-Apply/Audit-Tool; `--audit` liefert read-only Readiness ohne private Werte und ohne Schreibversuch | 2026-06-06 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_contracts_apply.py` | Ubuntu-Installer-Spiegel des Provider-Contract-Apply/Audit-Tools | 2026-06-06 |

| `70_TESTS_AND_SMOKE/integrations/test_communication_provider_contracts_apply.py` | Smoke für Apply-Tool inklusive `--audit`, Secret-Redaktion, Scope-Vertrag und gesperrt bis zum Nachweis-Prüfung | 2026-06-06 |

## | `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` | Historischer Eintrag aufgehoben

- `bridge_rooms` öffnen keinen Matrix-Providertransport mehr; gültig sind dienstspezifische `<dienst>_rooms` plus `provider_send_enabled` und echte Provider-/OAuth-/Sessionpfade | 2026-06-14 |

## | `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` | Ubuntu-Installer-Spiegel des aufgehobenen Matrix-Raummappings

- Bridge-Felder nur Legacy-/Regression-Guard, kein Sendepfad | 2026-06-14 |

| `70_TESTS_AND_SMOKE/integrations/test_communication_connectors_contract.py` | Contract-Smoke für Diensträume, Provider-Readiness, Legacy-Bridge-Guards und Sperre gegen Matrix-Ersatztransport | 2026-06-14 |

| `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py` | Echter Server-GUI-Smoke für Communication mit Stale-Raumkatalog-Injektion, No-nicht belegter Zustand-Providercheck und Sidebar-Leak-Sperre | 2026-06-06 |

| `00_META/QA_ECHTER_KLICKTEST_UND_BIDIREKTIONALER_ABGLEICH.md` | QA-Regel für echten angemeldeten Klicktest mit F12-Console-Split, New-Tab-Sperre, echter Mobile-Prüfung und bidirektionalem azubi42.de-/Server-Abgleich | 2026-06-06 |

| `70_TESTS_AND_SMOKE/ui/audit_azubi42_de_server_bidirectional.py` | Bidirektionaler Website-/Server-Audit mit Website-Item-Checklist, Server-Feature-Gegencheck, Login-/Nachweisweg-gesperrt bis zum Nachweis-Liste, optionalem Browserlauf, Console-/Overflow-/New-Tab-Auswertung und JSON-Report | 2026-06-06 |

| `40_INTEGRATIONS/qa/systemd/azubi42-bidirectional-audit.service` | Systemd-One-Shot für den 72h-Audit gegen azubi42.de und azubi42-jura | 2026-06-06 |

| `40_INTEGRATIONS/qa/systemd/azubi42-bidirectional-audit.timer` | 72h-Timer für automatische bidirektionale Website-/Server-Gegenprobe | 2026-06-06 |

## | `[lokaler Pfad]` | EGMR-Zusatzblatt bereinigt und konkretisiert

- Suder-Beschluss A03 frueh verankert, Tabellen-/Nachweisstellen mit A06b lfd.
- Nr.
- 1-1511, A11a-A11d und USB-Manifest lfd.
- Nr.
- 1-53 benannt; strukturelle OOXML-Prüfung bestanden, PNG-Render wegen fehlendem Renderer nicht ausgeführt | 2026-06-08 |

## | `[lokaler Pfad]` | EGMR-Anlagenverzeichnis

- entfernte Fehlanlagen A04a/A09a/A10c aus Text und Tabelle gelöscht, A03 als SGF/Suder-Beschluss vom 21.05.2022 bezeichnet, A08 von Seitenfragment auf vollständige `Ablehnung_2025-11-22.pdf` umgestellt, USB-Digitalblock als Manifest lfd.
- Nr.
- 1-53 eingetragen; strukturelle OOXML-Prüfung bestanden | 2026-06-08 |

| `[lokaler Pfad]` | USB-Digitalanlagenpaket mit 53 SHA256-eindeutigen Post-2025-Korrespondenzdateien; sichtbare Dateien behalten den Originaldateinamen und erhalten nur das Metadatum am Ende, keine Stagingnamen, keine A-/U-Prefixe, keine bekannten Varianten- oder Seitenfragment-Dubletten; Manifest und USB-Aufklebertext; Druck- und Einreichungsstand synchron | 2026-06-08 |

| `[lokaler Pfad]` | Synchroner Einreichungsspiegel des 53er USB-Digitalanlagenpakets mit identischem Manifest und identischer Originalnamen-/Metadatum-Regel | 2026-06-08 |

## | `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` | Zugangsbau-Live-Readiness-API `/api/legal/zugangsbau/test`

- read-only SDK-/Bridge- und offizielle Betreiberquellen-Prüfung, Aktivierungszähler und gesperrt bis zum Nachweis-Gate ohne Produktivfreischaltung | 2026-06-08 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_1_Layout.js` | Zugangsbau-Panel mit `Testlauf`-Button für echten Readiness-Lauf neben Status-Refresh | 2026-06-08 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` | Zugangsbau-Testlauf-Renderer und Fetch-Schiene für `/api/legal/zugangsbau/test`, mit Belegen, Blockern und Operatorstatus | 2026-06-08 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` | Ubuntu-Installer-Spiegel der Zugangsbau-Live-Readiness-API | 2026-06-08 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_1_Layout.js` | Ubuntu-Installer-Spiegel des Zugangsbau-Testlauf-Buttons | 2026-06-08 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` | Ubuntu-Installer-Spiegel des Zugangsbau-Testlauf-Renderers | 2026-06-08 |

| `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py` | Zugangsbau-Vertragstest für Status- und Live-Readiness-Payload inklusive read-only, Aktivierungsblocker und Secret-/Pfadschutz | 2026-06-08 |

| `70_TESTS_AND_SMOKE/ui/audit_zugangsbau_frontend.mjs` | Statischer Frontend-Audit für Zugangsbau-Testbutton, Testendpoint und Live-Readiness-Anzeige | 2026-06-08 |

| `70_TESTS_AND_SMOKE/ui/clicktest_zugangsbau_blickwinkel_userflow.mjs` | Echter Browser-Userflow klickt Zugangsbau-Refresh und Testlauf, prüft Status-API, Test-API, gesperrt bis zum Nachweis und Blickwinkel | 2026-06-08 |

## | `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` | Zugangsbau-Status/Testlauf-Trennung

- Status startet keine amtlichen Netzprobes; expliziter Testlauf liefert read-only GET-/HTTP-/Content-Type-/Bytes-Belege und bleibt ohne Betreibervertrag gesperrt bis zum Nachweis | 2026-06-11 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` | Zugangsbau-Frontend rendert offizielle Probe-Belege je Operator im Testlauf-Panel | 2026-06-11 |

| `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json` | Erreichbare amtliche Quellen für XJustiz/FIT-Connect korrigiert; Betreibervertrag/Secret/Bridge bleiben Aktivierungsbedingung | 2026-06-11 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` | Ubuntu-Installer-Spiegel der Zugangsbau-Status/Testlauf-Trennung | 2026-06-11 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` | Ubuntu-Installer-Spiegel der Zugangsbau-Probe-Beleganzeige | 2026-06-11 |

| `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json` | Ubuntu-Installer-Spiegel der korrigierten Zugangsbau-Operatorquellen | 2026-06-11 |

## | `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` | Zugangsbau-Secret-Contract-Gate und Mailclient-Provider

- private Betreiber-/Sandboxdaten bleiben serverseitig, Statuspayloads zeigen nur Gruppenstatus; Mailclient kann Webmail/IMAP/SMTP mit gesperrt bis zum Nachweis Sendefreigabe | 2026-06-11 |

## | `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py` | Zugangsbau-Secret-Contract-Regression

- privater Fixture-Vertrag schaltet vier Operatoren nur serverseitig auf configured und prüft Status/Test/Login-Ping gegen Secret-, Token- und Pfad-Leaks | 2026-06-11 |

| `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json` | Betreiberanforderungen `provider_contract_requirements` für BundID/eID, MJP/eBO/EGVP/OSCI, XJustiz und FIT-Connect/ZBP | 2026-06-11 |

| `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json` | Auth-Template um `mailclient` mit Webmail-, IMAP-, SMTP-, Secret- und Defaultordner-Feldern erweitert | 2026-06-11 |

| `toolbox/communication/provider_contracts_bootstrap.py` | Bootstrap/Audit kennt 12 Provider inklusive Mailclient und erzeugt Secret-Verzeichnisstruktur ohne nicht belegter Zustand-Readiness | 2026-06-11 |

| `toolbox/communication/provider_contracts_apply.py` | Apply-Tool erlaubt Mailclient-Vertragsfelder, lehnt Inline-Secrets defaultmaessig ab und bewertet Readiness über Secret-Dateien/Env | 2026-06-11 |

| `toolbox/communication/provider_contracts_fixture.py` | Smoke-Fixture erzeugt 12 Provider inklusive Mailclient-Webmail/IMAP/SMTP und Secretdateien für end-to-end Apply/Audit | 2026-06-11 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` | Ubuntu-Spiegel des Zugangsbau-Secret-Contract-Gates und Mailclient-Providers | 2026-06-11 |

| `30_INSTALLERS/ubuntu24/azubi42-server/60_RUNTIME_TEMPLATES/auth/communication-providers.template.json` | Ubuntu-Spiegel des Mailclient-Auth-Templates | 2026-06-11 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_contracts_*.py` | Ubuntu-Spiegel der 12-Provider-Contract-Tools inklusive Mailclient | 2026-06-11 |

| `70_TESTS_AND_SMOKE/integrations/test_communication_connectors_contract.py` | Communication-Contract-Smoke für Mailclient-Rolle, Secretfreiheit, IMAP/SMTP-Backend und Sendefreigabe | 2026-06-11 |

| `build_login_page()` | Login-Hauptansicht zeigt ab v27.2.247 nur Closed-Beta-/Invite-Status, kurze Rollen-/Loginart-Erklaerung und dezente Nachweiswege; Betreiber-Ping-Terminalblock und BundID-Debugtext bleiben aus der Hauptansicht heraus | 2026-06-12 |

| `COMMUNICATION_CHAT_PROVIDER_SERVICES` / `COMMUNICATION_MAIL_SERVICES` | Frontend trennt Messenger-Dienste von SnappyMail/Mailclient und verhindert Raum-/Chat-Begriffe im Mailkontext | 2026-06-12 |

## | `isMailService()` / `getCommunicationRoomNoun()` | Helfer für Diensttexte

- Messenger nutzt Räume/Chats, Mail nutzt Ordner/Postfach | 2026-06-12 |

| `.communication-sidebar-section` | CSS-Bauteil für getrennte Sidebar-Bloecke Dienste und Mail | 2026-06-12 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/...` | Ubuntu-Spiegel für Login-Cleanup und Communication/Mail-Trennung v27.2.247 | 2026-06-12 |

## | `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` | Mailclient-Provider-Aktion `followup`

- sicherer Nachfrageentwurf mit Ursprungsdatum, Empfänger, Betreff, Message-ID/Versandbeleg und Screenshotbezug; kein automatisches Senden | 2026-06-18 |

| `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` | Mailclient-Status-/Rooms-/Sync-Pfade nutzen denselben sessionbezogenen effektiven IMAP-/SMTP-Vertrag wie der Sendepfad; kein globaler Testaccount und kein leerer Providervertrag duerfen Frontend-Readiness oder Ordnerlisten bestimmen | 2026-06-18 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` | Sichtbarer same-origin-SnappyMail-/Mailclient-Knoten mit `Nachfrage vorbereiten`, Tonwahl und Bezugsfeldern; befuellt nur Betreff/Textentwurf über den serverseitigen Followup-Vertrag, Sendeklick bleibt Userentscheidung | 2026-06-18 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` | Ubuntu-Installer-Spiegel der Mailclient-Followup-Provideraktion | 2026-06-18 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js` | Ubuntu-Installer-Spiegel des sichtbaren SnappyMail-Nachfrage-Hilfsstreifens und der Bezugsfelder | 2026-06-18 |

## | `70_TESTS_AND_SMOKE/integrations/test_mailclient_followup_draft.py` | Regression

- `followup` erzeugt nur Entwurf, `auto_send_allowed=false`, `requires_user_send=true`, zu fruehe Nachfrage wird markiert und Nicht-Mail-Dienste werden abgewiesen | 2026-06-18 |

| `azubi42_version.json` | Statischer Versionsmarker für Live-Check, synchron zu `version_manifest.json` auf v27.2.247 / 27267 | 2026-06-12 |

## | `40_INTEGRATIONS/legal-jura/zugangsbau/BETRIEBSFAEHIGKEIT_ERV_72H_2026-06-12.md` | 72h-eRV-Betriebsplan

- Buerger/MJP-Webweg, Anwalt/beA-Webweg, separater OSCI-Drittproduktbetrieb und No-nicht belegter Zustand-Ready-Definition | 2026-06-12 |

| `40_INTEGRATIONS/legal-jura/zugangsbau/zugangsbau_operator_registry.json` | Registry mit `operational_72h_lane` für `mjp_ebo_egvp_osci` und `bea`; offizieller Web-MVP getrennt von direktem OSCI-/beA-Ersatzclient | 2026-06-12 |

## | `70_TESTS_AND_SMOKE/legal/test_zugangsbau_registry_contract.py` | Login-Regressionscheck für Clean-Login

- kein sichtbarer Betreiber-Debugbutton, Public-Zugangsbau-Ping bleibt erhalten | 2026-06-12 |

| `20_EDITIONS/azubi42-de/website/index.html`[private Angabe entfernt]`site.js` auf `azubi42de-20260613-browserfix`; statischer externer CBTC-Link mit target blank und noopener/noreferrer | 2026-06-13 |

| `20_EDITIONS/azubi42-de/website/js/site.js` | Dynamische externe Linktemplates nutzen zentralen `externalLinkAttrs`-Vertrag | 2026-06-13 |

| `30_INSTALLERS/ubuntu24/azubi42-server/sites/azubi42.de/website/` | Installer-Spiegel der AZUBI42.de Browserfix-Dateien | 2026-06-13 |

| `70_TESTS_AND_SMOKE/ui/audit_azubi42_domain_site.mjs` | Public-Site-Audit für externen Linkvertrag, Mission-Satz und Installer-Spiegel | 2026-06-13 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` | Native-Provider-Webapp-Pfad bevorzugt jetzt auch für `mailclient`; normaler Browser behält nur SnappyMail gleiche-Origin und baut keine externen Provider-Clients nach | 2026-06-14 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js` | Ubuntu-Installer-Spiegel des Mailclient-Native-WebView-Pfads | 2026-06-14 |

| `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` | Native-Smoke wartet auf echte Communication-Servicebuttons und prüft 13 Provider-WebViews inklusive SnappyMail | 2026-06-14 |

| `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py` | All-Service-Web-Smoke mit Sidebar-Scrollbar-Audit, SnappyMail-HTTP-Prüfung und dokumentiertem headless Snappy-`ERR_ABORTED` | 2026-06-14 |

| `00_META/COMMUNICATION_PROVIDER_PRIVATE_CONTRACTS_2026-06-14.md` | Secretfreies Runbook für echte private Communication-Provider-Vertraege, offizielle Testwege und dienstweise Smoke-Schritte | 2026-06-14 |

| `00_META/COMMUNICATION_PROVIDER_ACCOUNT_AUDIT_2026-06-17.md` | Secretfreier Account-/Provider-Audit für Azubi42Tester, Live-Harness-Stand, fehlende private Betreiberwerte und echte Account-/Token-/Smoke-Schritte ohne nicht belegter Zustand-Zugangsdaten | 2026-06-17 |

| `runtime/private/communication/provider-contracts.local.json` | Git-ignorierte lokale Provider-Wertevorlage für Secretdatei-/Env-/Zielwerte; nicht für Commits oder Deploy-Artefakte | 2026-06-14 |

| `runtime/private/communication/provider-test-accounts.local.md` | Git-ignorierte lokale Testzugangsliste pro Dienst/Betreiber | 2026-06-14 |

| `toolbox/communication/provider_contracts_bootstrap.py` | Provider-Readiness liefert für Telegram, Slack und WhatsApp offizielle Setup-URLs, private Pflichtfelder, Operator-Checkliste und Smoke-Befehl; keine automatische Sendefreigabe ohne private Betreiberwerte | 2026-06-15 |

| `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` | `/api/communication/connectors/status` und direkter Providerstatus reichen die Provider-Operator-Guidance für Telegram/Slack/WhatsApp secretfrei an Frontend und Smokes durch | 2026-06-15 |

| `70_TESTS_AND_SMOKE/integrations/test_communication_connectors_contract.py` | Contract-Smoke prüft Provider-Guidance, snake/camel-Spiegel und gesperrt bis zum Nachweis-Readiness für Telegram, Slack und WhatsApp | 2026-06-15 |

| `10_SHARED_CORE/app_v27_multimedia/css/style.css` | Linke Communication-Dienstbuttons zweizeilig und overflow-sicher; Dienstname und Status-Badge bleiben lesbar statt abgeschnitten | 2026-06-15 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css` | Ubuntu-Installer-Spiegel der Communication-Sidebar-Fit-Regeln | 2026-06-15 |

| `70_TESTS_AND_SMOKE/ui/audit_zugangsbau_frontend.mjs` | Zugangsbau-Smoke prüft das Panel in der Aktenhaltung statt in der Bibliothek | 2026-06-15 |

| `00_META/sidebar_menu_audit_2026-06-16.md` | Prüfliste für alle linken Seitenleistenbereiche mit Soll-Zweck, Ergebnis und offener Communication-Provider-Beobachtung | 2026-06-16 |

| `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_1_ToolManager.js` | Toolbox-/Schnellnavigation routet Paperless/OCR, FixIt/Paperless-Kontrolle und Mahnwesen in die Aktenhaltung statt in die Bibliothek | 2026-06-16 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_1_ToolManager.js` | Ubuntu-Installer-Spiegel des Aktenhaltung-Routings für Tool-Navigation | 2026-06-16 |

| `70_TESTS_AND_SMOKE/ui/audit_tool_navigation_routing.mjs` | Guard gegen Rueckfall von Paperless-, FixIt- und Mahnwesen-Zielen in den Bibliotheksbereich | 2026-06-16 |

| `/var/lib/azubi42/requests/osci-egvp/OUTBOUND_BETREIBERANFRAGE_OSCI_EGVP_TESTANSCHLUSS_2026-06-18.eml` | Serverseitig erzeugte Betreiberanfrage mit CSR-Anhang; per lokalem Mailtransport übergeben, aber ohne Betreiberannahme und ohne Sendefreigabe | 2026-06-17 |

| `/var/lib/azubi42/requests/osci-egvp/outbound-send-2026-06-18.log` | Serverlog zum Betreiberanfrage-Dispatch mit CSR-SHA256 und `sendmail_exit=0`; keine Aussage über Annahme durch Betreiber | 2026-06-17 |

| `40_INTEGRATIONS/forgejo/apply_forgejo_frame_headers_nginx_site.sh` | Nginx-Site-Patcher für restriktive Forgejo-Frame-Header; erstellt Backup, ersetzt `ALLOWALL`/Wildcard, prüft `nginx -t` und reloadet | 2026-06-17 |

| `40_INTEGRATIONS/forgejo/config-templates/forgejo-vhost.nginx.conf` | Forgejo-vhost-Template mit `proxy_hide_header` für Upstream-Frame-Header und restriktivem `SAMEORIGIN`/`frame-ancestors 'self'`-Vertrag | 2026-06-17 |

| `/etc/nginx/sites-available/forgejo.bak.frameheaders.20260617120209` | Live-Backup vor Forgejo-Frame-Header-Härtung auf dem Server | 2026-06-17 |

## | `[Serverpfad]` | Live-Smoke-Artefakte Jura

- Runtime/Units/Header grün; XJustiz-Validator grün; OSCI/EGVP, Zugangsbau-Operatoren und Communication-Provider gesperrt bis zum Nachweis ohne echte Betreiberwerte | 2026-06-17 |

## | `[Serverpfad]` | Live-Smoke-Artefakte Dev

- gleicher Harnesszustand wie Jura, keine fatalen Gates ohne OSCI-Erwartungsflag | 2026-06-17 |

| `toolbox/deploy/run_server_smoke_harness.sh` | Deploybarer Server-Smoke-Harness für Live-Instanzen; schreibt JSON/Markdown-Berichte und kann mit `AZUBI42_EXPECT_OSCI_EGVP_READY=1` fehlenden Transport fatal machen | 2026-06-17 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/deploy/run_server_smoke_harness.sh` | Ubuntu-Installer-Spiegel des Server-Smoke-Harness | 2026-06-17 |

| `00_META/SERVER_SMOKE_HARNESS_2026-06-17.md` | Runbook, Gate-Ergebnis und Wiederholbefehle für den Server-Smoke-Harness | 2026-06-17 |

## | `toolbox/communication/mailclient_provision_local_user.py` | Server-Werkzeug für Azubi42-Mailkontoanlage

- per User Passwort-Secret, Maildir und optional Systemuser/-Gruppe; keine Passwortausgabe | 2026-06-17 |

| `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` | Mailclient-Accountstatus mit getrenntem Secret-/IMAP-/Transport-Gate; verhindert nicht belegter Zustand-Grün bei fehlendem Dovecot/IMAP-Port | 2026-06-17 |

| `/etc/systemd/system/azubi42-dovecot-local.service` | Live-Server-Unit für lokalen SnappyMail-IMAP-Transport auf `127.0.0.1:1143`; vom Mailclient-Status als `azubi42_dovecot_local=active` erkannt | 2026-06-17 |

| `/etc/azubi42/dovecot-local/dovecot.conf` | Live-Dovecot-Konfiguration für lokale Maildir-User, Full-Email-Login und SnappyMail-Anbindung ohne externen IMAP-Dienst; ab `v27.2.300` nur `[private Angabe entfernt]`/`prefetch`, kein `pam`-/`passwd`-Fallback | 2026-07-01 |

| `/opt/snappymail/data/_data_/_default_/domains/default.json` | Live-SnappyMail-Domainkonfiguration auf lokalen IMAP-Port `1143` und SMTP-Port `25` | 2026-06-17 |

| `/opt/snappymail/data/_data_/_default_/domains/buschitut.eu.json` | Live-SnappyMail-Domainkonfiguration für `buschitut.eu`-Mailkonten aus Azubi42-Provisioning | 2026-06-17 |

## | `[Serverpfad]` | Echter Userflow-Smoke

- Button `Mailkonto pruefen/anlegen` führt zu `login_ready`, `canLogin=true`, Secret/IMAP/SMTP/Transport grün | 2026-06-17 |

| `[Serverpfad]` | Echter SnappyMail-Weblogin-Smoke mit provisioniertem Account; Inbox sichtbar, keine Login-/Netzwerkfehler | 2026-06-17 |

## | `/etc/postfix/azubi42/{virtual_domains,vmailbox,uidmap,gidmap,transport}` | Live-Postfix-Maps für `azubi42.de`

- lokale Mailboxen, UID/GID pro Maildir und Domaintransport `azubi42virtual`; Plesk-Domains bleiben auf `plesk_virtual` | 2026-06-18 |

| `/usr/local/sbin/azubi42-sync-mailboxes` | Live-Sync für alle vorhandenen `@azubi42.de`-Mailboxen aus `/var/mail/vhosts/azubi42.de/*/Maildir` in Postfix-Maps; schreibt keine Secrets und keine Tester-Ausnahme | 2026-06-18 |

| `/usr/local/sbin/azubi42-mailbox-sync-watch` und `/etc/systemd/system/azubi42-mailbox-sync-watch.service` | Eventbasierter inotify-Watcher für neue, gelöschte oder verschobene Azubi-Mailboxen; aktualisiert Maps ohne Timer-Polling | 2026-06-18 |

| `azubi42virtual` in `/etc/postfix/master.cf` | Domain-spezifischer Postfix-Transport für `azubi42.de` mit eigener Maildir-Basis `/var/mail/vhosts`; andere virtuelle Domains behalten die globalen Plesk-Defaults | 2026-06-18 |

## | SMTP/IMAP Live-Smoke 2026-06-18 | Geprüft

- lokaler Eingang `250`, fremdes Relay auf Port 25 `554 Relay access denied`, authentifizierter Ausgang über `127.0.0.1:1587` `250`, echte Maildir-Zustellung `PASS`, Queue leer, lokaler Dovecot-IMAP-Login `OK` | 2026-06-18 |

| `toolbox/deploy/deploy_live_winscp.ps1` | Deploy-Whitelist kopiert den Mailclient-Provisioner in den Live-App-Root | 2026-06-17 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/mailclient_provision_local_user.py` | Ubuntu-Installer-Spiegel des Mailclient-Provisioners | 2026-06-17 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/deploy/deploy_live_winscp.ps1` | Ubuntu-Installer-Spiegel der Mailclient-Deploy-Whitelist | 2026-06-17 |

| `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py` | Regression für Mailclient-Kontoanlage, Secretbereitschaft und IMAP-Transport-Gate | 2026-06-17 |

| `toolbox/communication/azubi42_tester_bootstrap.py` | Azubi42Tester-Bootstrap mit Secretdatei statt Klartext-Passwort im privaten Contract; Altbestand-Migration ohne Passwortausgabe | 2026-06-18 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/azubi42_tester_bootstrap.py` | Ubuntu-Installer-Spiegel des gehärteten Azubi42Tester-Bootstraps | 2026-06-18 |

## | `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` | Mailclient-Sessionauswahl für Accountlisten

- explizite Auswahl oder sessionpassender Account; kein Default-Testaccount für fremde User | 2026-06-18 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` | Ubuntu-Installer-Spiegel der Mailclient-Sessionauswahl | 2026-06-18 |

| `70_TESTS_AND_SMOKE/integrations/test_azubi42_tester_bootstrap.py` | Regression für Passwortfeld-Entfernung, Secretdatei-Verweis und keine Klartextwerte im Bootstrap-Contract | 2026-06-18 |

| `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py` | Regression für sessionpassenden Accountlisten-Status und gesperrt bis zum Nachweis fremde User | 2026-06-18 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` | SnappyMail-Mailclient-Knoten bauen fehlende Header-Tools nach, beobachten Restore-Knoten per DOM-Observer, prüfen/provisionieren das Mailkonto automatisch und reloaden den Include mit `azubi42_mail_ready` erst nach echtem Login-Gate | 2026-06-18 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_7_Communication.js` | Ubuntu-Installer-Spiegel des SnappyMail-Header-Ready-Guards mit Restore-Observer | 2026-06-18 |

| `70_TESTS_AND_SMOKE/integrations/test_snappymail_proxy_contract.py` | Regression für Header-Ready-Guard, SnappyMail-Reload und Sperre gegen Escape-/Koordinaten-Testworkarounds | 2026-06-18 |

| `10_SHARED_CORE/app_v27_multimedia/{index.html,azubi42_version.json,version_manifest.json}`[private Angabe entfernt]`v27.2.254 / 27279` für cachefreien SnappyMail-Header-Ready-Deploy | 2026-06-18 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/{index.html,azubi42_version.json,version_manifest.json}`[private Angabe entfernt]`v27.2.254 / 27279` | 2026-06-18 |

## | `40_INTEGRATIONS/legal-jura/zugangsbau/EBO_PERSONALAUSWEIS_WOHNSITZLOSEN_ZUGANG_FEASIBILITY_2026-06-19.md` | Quellengeprüfter Entscheid

- wohnsitzlosenfähiger eID-Anker ja, SAFE-/eBO-Bypass nein; DKK nur HMAC-/Hash-intern, eBO/OSCI erst nach Betreiberbestätigung | 2026-06-19 |

| `40_INTEGRATIONS/legal-jura/zugangsbau/EID_TESTGATE_RUNBOOK_2026-06-19.md` | Serverprüfstand für private eID/OSCI-Gatepfade, leere Betreiber-/Callback-Intake-Ordner und gesperrt bis zum Nachweis Readiness/Transport auf `azubi42-jura` und `azubi42-dev` | 2026-06-19 |

| Server-Kandidatensuche eID/OSCI 2026-06-19 | Prüfung der privaten Evidence-/Operator-Reply-Ordner, OSCI/EGVP-Anfrageartefakte, Maildir-Kandidaten und AusweisApp-/PersoSim-Toolverfügbarkeit; kein importierbarer Betreiber- oder eID-Beleg gefunden | 2026-06-19 |

| `[private Angabe entfernt]` | Privater HMAC-Pepper für das eID-Subject-Gate; vorhanden, secretfrei referenziert, nicht im Repo gespeichert | 2026-06-19 |

| `/var/lib/azubi42/evidence/eid` | Privater Zielordner für echte PersoSim-/AusweisApp-/eID-Callback- und Gate-Smoke-Dateien | 2026-06-19 |

| `/var/lib/azubi42/evidence/osci` | Privater Zielordner für echte OSCI/EGVP-Smoke- und Betreiberantwort-Nachweise | 2026-06-19 |

| `/var/lib/azubi42/private/zugangsbau/operator-replies` | Privater Watch-/Intake-Ordner für OSCI/EGVP-Betreiberantworten; aktueller Serverlauf fand keine Kandidaten | 2026-06-19 |

| `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` | Zugangsbau-Operator-Reply-Endpoint `/api/legal/zugangsbau/operator-reply-intake`, private Contract-Aufnahme, redigierter Status sowie Mailclient-Audit-BCC-/Forward-Policyfelder | 2026-06-19 |

| `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` | BundID/eID-Login-Karte zeigt den lokalen eID-/AusweisApp-Teststatus aus `local_readiness` neben dem SSP/Testzugang; verhindert blindes Grün/Rot nur aus OIDC-Sicht | 2026-06-19 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` | Ubuntu-Installer-Spiegel für Operator-Reply-Endpoint und Mailclient-Audit-BCC-/Forward-Policyfelder | 2026-06-19 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` | Ubuntu-Installer-Spiegel der BundID/eID-Loginstatus-Korrektur | 2026-06-19 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` | Zugangsbau-Frontendbutton `Antworten einlesen` und secretfreie Ergebnisanzeige für Betreiberantwort-Intake | 2026-06-19 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` | Ubuntu-Installer-Spiegel des Zugangsbau-Frontendbuttons und der Intake-Ergebnisanzeige | 2026-06-19 |

| `40_INTEGRATIONS/legal-jura/zugangsbau/PRIVATE_CONTRACT_TEMPLATE_MAILCLIENT.local.example.json` | Private Mailclient-Vorlage um `audit_bcc_recipients`, `incoming_forward_enabled` und `incoming_forward_recipients` erweitert; nur Platzhalter, keine echten privaten Adressen | 2026-06-19 |

| `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/legal-jura/zugangsbau/PRIVATE_CONTRACT_TEMPLATE_MAILCLIENT.local.example.json` | Ubuntu-Installer-Spiegel der Mailclient-Audit-/Forward-Private-Config-Vorlage | 2026-06-19 |

## | `70_TESTS_AND_SMOKE/legal/test_zugangsbau_operator_reply_intake.py` | Regression für Server-Endpoint-Wrapper

- echtes Intake-Tool wird mit privaten Pfaden aufgerufen, Status bleibt secretfrei | 2026-06-19 |

| `70_TESTS_AND_SMOKE/integrations/test_mailclient_account_provision.py` | Regression für unsichtbares SMTP-Envelope-Audit-BCC ohne sichtbaren `Bcc`-Header | 2026-06-19 |

| `40_INTEGRATIONS/legal-jura/zugangsbau/ZUGANGSBAU_LOGINWEGE_PROJEKTDATEI_2026-06-19.docx` | Word-Projektdatei für Loginwege, Betreibervertraege, private Serverpfade und Abnahmegates | 2026-06-19 |

| `toolbox/communication/provider_contracts_apply.py` | Mailclient-Apply erlaubt private Audit-BCC-/Incoming-Forward-Felder, damit echte Serverwerte nicht vom strikten Apply verworfen werden | 2026-06-19 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_contracts_apply.py` | Ubuntu-Installer-Spiegel der Mailclient-Apply-Erweiterung | 2026-06-19 |

| `60_RUNTIME_TEMPLATES/auth/communication-providers.template.json` | Runtime-Template für `mailclient` enthält leere Audit-BCC-/Incoming-Forward-Listen als private Konfigurationsanker | 2026-06-19 |

| `30_INSTALLERS/ubuntu24/azubi42-server/60_RUNTIME_TEMPLATES/auth/communication-providers.template.json` | Ubuntu-Installer-Spiegel der Mailclient-Private-Contract-Templatefelder | 2026-06-19 |

| `10_SHARED_CORE/app_v27_multimedia/azubi42_server.py` | Mailclient-Paperless-Ingest nutzt echte Folder-Tag-Dicts aus `ensure_paperless_folder_tags(...)`; repariert SnappyMail-/Mailclient-Anhangablage in Paperless | 2026-06-21 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/azubi42_server.py` | Ubuntu-Installer-Spiegel des Mailclient-Paperless-Ingest-Fixes | 2026-06-21 |

| `toolbox/communication/provider_contracts_apply.py` | Provider-Apply erlaubt browser-direkte Webapp-/Login-/Relay-Policy-Felder für dienstspezifische Providervertraege ohne Serverrelay-Behauptung | 2026-06-21 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_contracts_apply.py` | Ubuntu-Installer-Spiegel der Provider-Apply-Erweiterung | 2026-06-21 |

| `toolbox/communication/provider_contracts_bootstrap.py` | Bootstrap repariert stale Telegram/WhatsApp/Slack-Vertraege auf per-User-Browsermodus und gesperrt bis zum Nachweis `Sende-Freigabe=false` | 2026-06-21 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_contracts_bootstrap.py` | Ubuntu-Installer-Spiegel der Provider-Bootstrap-Reparatur | 2026-06-21 |

| `toolbox/communication/provider_contracts_smoke.py`[private Angabe entfernt]`<file-ref>` und trennt Mailclient-Userkontext von externen Provider-Policy-Smokes | 2026-06-21 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/communication/provider_contracts_smoke.py` | Ubuntu-Installer-Spiegel der Provider-Smoke-Redaktion | 2026-06-21 |

| `70_TESTS_AND_SMOKE/integrations/test_mailclient_paperless_ingest.py` | Regression für Mailclient/SnappyMail-Anhang-Ingest nach Paperless mit User `b@azubi42.de`, Folder-Tags und IMAP-Cleanup | 2026-06-21 |

| `30_INSTALLERS/ubuntu24/azubi42-server/70_TESTS_AND_SMOKE/integrations/test_mailclient_paperless_ingest.py` | Ubuntu-Installer-Spiegel des Mailclient-Paperless-Ingest-Tests | 2026-06-21 |

| `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py` | Live-Communication-Browseraudit mit echtem Tastatur-Login-Fallback, 12 Dienstknoten, Sidebar-Scrollbar-Audit und Provider-Kontextschutz | 2026-06-21 |

## | `[Serverpfad]` | Live-Screenshot Dev nach Deploy `v27.2.268 / 27293`

- 12 Communication-Dienste, ein Sidebar-Scrollbarbereich, keine verbotenen Providerdienste | 2026-06-21 |

## | `[Serverpfad]` | Live-Screenshot Jura nach Deploy `v27.2.268 / 27293`

- gleicher Communication-Useraudit wie Dev | 2026-06-21 |

| `runtime/tmp/communication_live_audit/run_provider_contract_live_smoke.sh` | Lokaler Live-Smoke-Runner für serverseitige Provider-Policy-Smokes; externe Dienste grün für browser-direct policy, Mailclient separat mit Userkontext | 2026-06-21 |

## | `70_TESTS_AND_SMOKE/ui/audit_sidebar_bibliothek_server_playwright.py` | Live-Sidebar-/Bibliothek-Audit

- echter Server, Smoke-Login, linke Hauptsektionen, Unterfunktionen, Bibliothek-Kontrollklicks, Overlay-Schließung, Scrollbar-/Overflow-/Consoleprüfung | 2026-06-21 |

| `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_9_ErrorFixList.js` | FixIt-API-Aufrufe nutzen den aktiven App-Basispfad für Report/Reorder/Autofix statt Domainwurzel-`/api/...` | 2026-06-21 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_9_ErrorFixList.js` | Ubuntu-Installer-Spiegel des FixIt-App-Basispfad-Routings | 2026-06-21 |

## | `10_SHARED_CORE/app_v27_multimedia/css/style.css` | Linkes Menü

- `.azubi-fixit-list` erzeugt keine zweite sichtbare Sidebar-Scrollbar mehr | 2026-06-21 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/css/style.css` | Ubuntu-Installer-Spiegel des FixIt-Listen-Scrollfixes | 2026-06-21 |

## | `[Serverpfad]` | Live-Audit Dev

- Bibliothek sichtbar, keine fehlenden erwarteten Quellenbegriffe, keine fremden Kontrollen, keine Console-/Pagefehler, nur `#sidebar-nav` als linker Scrollbereich | 2026-06-21 |

| `[Serverpfad]` | Live-Screenshot Dev zum Sidebar-/Bibliothek-Userflow nach FixIt-API- und Scrollfix | 2026-06-21 |

## | `[Serverpfad]` | Live-Audit Jura

- gleicher grün belegter Sidebar-/Bibliothek-Userflow wie Dev | 2026-06-21 |

| `[Serverpfad]` | Live-Screenshot Jura zum Sidebar-/Bibliothek-Userflow nach FixIt-API- und Scrollfix | 2026-06-21 |

| `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_6_BrowserGateway.js` | BrowserGateway nutzt aktiven App-Basispfad für `/api/browser/...`; Bootlog nur bei Debug-Flag | 2026-06-21 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_6_BrowserGateway.js` | Ubuntu-Installer-Spiegel des BrowserGateway-Prefix-Fixes | 2026-06-21 |

| `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_3_WebScraper.js` | WebScraper nutzt aktiven App-Basispfad für `/api/web/fetch`; Bootlog nur bei Debug-Flag | 2026-06-21 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_3_WebScraper.js` | Ubuntu-Installer-Spiegel des WebScraper-Prefix-Fixes | 2026-06-21 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` | Bibliothek öffnet Paperless per Azubi-BrowserGateway-Knoten statt neuer Browser-Tab-Flucht; Login-Freshness-Logs debug-gated | 2026-06-21 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/01_CORE/01_8_JuraBibliothek.js` | Ubuntu-Installer-Spiegel des Bibliothek-Paperless-Browserpfads | 2026-06-21 |

## | `70_TESTS_AND_SMOKE/ui/audit_sidebar_bibliothek_server_playwright.py` | Sidebar-/Bibliothek-Serveraudit ist strenger

- Safe-Clicks müssen wirklich klicken, Workspace-Selector ist `#btn-org` | 2026-06-21 |

## | `[Serverpfad]` | Live-Audit Dev nach Prefix-/Paperless-/Audit-Härtung

- keine Console-/Pagefehler, keine Failures | 2026-06-21 |

## | `[Serverpfad]` | Live-Audit Jura nach Prefix-/Paperless-/Audit-Härtung

- keine Console-/Pagefehler, keine Failures | 2026-06-21 |

## | `/etc/azubi42/private/communication-provider-values.private.json` | Serverprivater Providervertrag

- Telegram/WhatsApp/Slack als browser-direkte User-Sessions ohne Serverrelay; keine Repo-Secrets | 2026-06-22 |

## | `runtime/tmp/azubi42_jura_provider_nonmail_smoke.json` | Redigierter Live-Smoke

- 11 Nicht-Mail-Dienste policyseitig grün, Sendegate weiterhin gesperrt bis zum Nachweis | 2026-06-22 |

| `runtime/tmp/azubi42_jura_mail_b_smoke.json` | Redigierter Mailclient-Live-Smoke für `@b:42.chat`: IMAP/SMTP Login ok, Sendegate nur ohne `--allow-send` geprüft | 2026-06-22 |

## | `runtime/tmp/azubi42_jura_mail_tester_smoke.json` | Redigierter Mailclient-Live-Smoke für `azubi42tester`

- IMAP/SMTP Login ok, Sendegate nur ohne `--allow-send` geprüft | 2026-06-22 |

| `10_SHARED_CORE/app_v27_multimedia/js/01_CORE/01_7_Communication.js` | Provider-Webapp-Fallback nutzt nur noch `native-webview-required` plus expliziten Originaldienst-Startlink; kein nicht belegter Zustand-Ready-Anker für externe Dienste | 2026-06-22 |

## | `70_TESTS_AND_SMOKE/ui/audit_communication_server_playwright.py` | Communication-Serveraudit trennt ehrliches Launch-Gate von echter Provideroberfläche

- normaler Audit akzeptiert `native-webview-required`, Strict-Audit verlangt `real-native-webview` | 2026-06-22 |

## | `runtime/tmp/azubi42_{dev,jura}_communication_after_provider_gate_fix*.json` | Live-Deploy-Belege

- Dev/Jura normal grün mit `allServicesHaveHonestLaunchGate=true`; Strict bewusst rot, solange kein Native-WebView-Host Providerinhalte rendert | 2026-06-22 |

## | `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js` | SHOT-Fullpage für Native-/Provider-WebViews

- bevorzugt Native-Host-CDP-Capture aus WebView-WebContents, Manifest `native_webview_cdp_fullpage`; Renderer-Stitching bleibt Fallback | 2026-06-23 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js` | Ubuntu-Installer-Spiegel des Native-/WebView-SHOT-Fullpage-Fixes | 2026-06-23 |

| `40_INTEGRATIONS/provider-webapp-browser/main.js` | Electron-Native-Host-IPCHaendler für WebView-Fullpage per DevTools `Page.captureScreenshot`; kein iframe, kein Screenshot-Transport, kein Provider-UI-Nachbau | 2026-06-23 |

| `40_INTEGRATIONS/provider-webapp-browser/preload.js` | Exponiert `captureWebViewFullpage(...)` für den Azubi42-Renderer unter `azubi42NativeProviderWebapp` und `azubi42NativeHost` | 2026-06-23 |

| `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_7_ModelInstructionProfiles.js` | User-/Modellregelprofile für globale und modellspezifische Azubi42-Anweisungen in der Modellauswahl; automatische Felder für neue Modelle; lokaler Userprofil-Speicher | 2026-06-23 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/06_API_ROUTER/06_7_ModelInstructionProfiles.js` | Ubuntu-Installer-Spiegel der User-/Modellregelprofile | 2026-06-23 |

| `10_SHARED_CORE/app_v27_multimedia/js/main.js` | Startet Modellregelprofile nach `initModelSelector()`, damit Modellauswahl und Regel-UI synchron bleiben | 2026-06-23 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/main.js` | Ubuntu-Installer-Spiegel der Modellregelprofil-Initialisierung | 2026-06-23 |

| `10_SHARED_CORE/app_v27_multimedia/js/02_CHAT/02_1_ChatWindow.js` | Komponiert User-/Modellregeln in jeden Chatprompt nach BrowserAssist-/Kontextaufbau und vor Modellroute | 2026-06-23 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/02_CHAT/02_1_ChatWindow.js` | Ubuntu-Installer-Spiegel der ChatWindow-Regelanbindung | 2026-06-23 |

## | `70_TESTS_AND_SMOKE/integrations/test_model_instruction_profiles_contract.py` | Regression für Modellregelprofile

- Sync, dynamische Modellfelder, Defaultregel-Schutz, Prompt-Kaskade und ChatWindow-Anbindung | 2026-06-23 |

| `10_SHARED_CORE/app_v27_multimedia/{index.html,azubi42_version.json,version_manifest.json}`[private Angabe entfernt]`v27.2.279 / 27304` für cachefreien Native-CDP-SHOT-/Modellregel-/Provider-Loginpfad-/Electron-39-Deploy ohne 150px-/1800px-Fakehöhen | 2026-06-23 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/{index.html,azubi42_version.json,version_manifest.json}`[private Angabe entfernt]`v27.2.279 / 27304` | 2026-06-23 |

## | `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` | Xvfb-/Electron-39-Harness-Hardening

- Hardwarebeschleunigung/GPU aus, `disable-dev-shm-usage`, SwiftShader; nur QA-Smoke, kein Provider-Fertigstellungsersatz | 2026-06-24 |

| `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` | Ubuntu-Installer-Spiegel des Provider-Smoke-Harness-Hardening | 2026-06-24 |

## | `40_INTEGRATIONS/provider-webapp-browser/main.js` | Native-Host-Providerdiagnostik

- BrowserView-Console-/Load-/Fail-/Render-Events, echte JavaScript-WebViews ohne Background-Throttling und Inspectdaten für Loginflächen statt Screenshot-Fakepositives | 2026-06-29 |

## | `40_INTEGRATIONS/provider-webapp-browser/smoke-provider-webviews.js` | Provider-WebView-SHOT-Hardgate

- trennt Screenshot-/Viewport-Coverage von Provider-Login-Coverage; Telegram mit JavaScript-Blockade bleibt rot, obwohl der Screenshotpfad belegt ist | 2026-06-29 |

| `10_SHARED_CORE/app_v27_multimedia/js/09_TOOLS/09_11_ScreenCaptureExporter.js` | Frontend-SHOT-Beleg für Native-/Provider-BrowserView-Fullpage per Native-Host-CDP statt 150px-Display-Capture-Fallback | 2026-06-29 |

| `10_SHARED_CORE/app_v27_multimedia/{azubi42_version.json,version_manifest.json}`[private Angabe entfernt]`v27.2.297 / 27322` für cachefreien Provider-WebView-/SHOT-Hardgate-Deploy | 2026-06-29 |

| `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/{azubi42_version.json,version_manifest.json}`[private Angabe entfernt]`v27.2.297 / 27322` | 2026-06-29 |

| `00_META/version_manifest.json` | Meta-Buildstand `v27.2.297 / 27322` für Provider-WebView-/SHOT-Hardgate | 2026-06-29 |

| `70_TESTS_AND_SMOKE/ui/audit_sidebar_sections.mjs` | Statischer Sidebar-Vertragsaudit mit aktualisierten Abschnittsgrenzen für die aktuelle Menü-Reihenfolge; verhindert falsche Toolbox-/Modell-Failures und schützt echte Entmischungsregeln | 2026-06-29 |

## Codex-Arbeitsdisziplin-RAG/WH3D-Spiegel

- Ist inventarisiert: `40_INTEGRATIONS/paperless/dictionaries/legal_de_language_profile.json`, `toolbox/legal/config/language_packs/legal_de_language_profile.json`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/config/language_packs/legal_de_language_profile.json`, `toolbox/legal/config/hw3d_knowledge_layers.json`, `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/config/hw3d_knowledge_layers.json`, `10_SHARED_CORE/app_v27_multimedia/js/06_API_ROUTER/06_7_ModelInstructionProfiles.js`, `30_INSTALLERS/ubuntu24/azubi42-server/app_v27_multimedia/js/06_API_ROUTER/06_7_ModelInstructionProfiles.js`, `00_META/CODEX_PROMPT_EVALUATION_BLOCK_2026-06-30.md` und `70_TESTS_AND_SMOKE/integrations/test_codex_guardrail_profiles.py`.
- Inventarstatus: Slice-/SSH-/Userflow-/Evidence-/Dienstgrenzen sind als RAG-/WH3D-/Default-Modellregeln vorhanden; der Promptbewertungsblock dokumentiert belastbare Fehlerklassen ohne nicht belegter Zustand-Vollzaehlung; der Test sperrt fehlende Spiegel und Pflichtanker.

## | `toolbox/legal/dtc_trust_material.py` | Parser-/Trust-Chain-Gate für echte Betreiber-/ICAO-DTC-Testkit-Bundles

- Manifest, Pfadsicherheit, SHA256, Virtual Component, CSCA->Document-Signer, EKU, CRL/Revocation, MRZ und secretfreie walt.id/mdoc-OID4VP-Handoff-Datei | 2026-06-30 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/dtc_trust_material.py` | Ubuntu-Installer-Spiegel für das DTC-Trust-Material-Gate | 2026-06-30 |

| `70_TESTS_AND_SMOKE/legal/test_dtc_trust_material.py` | Regression mit synthetischen CSCA/DS/CRL/MRZ-Fixtures für valid, revoked, Pfad-Ausbruch und MRZ-Fehler | 2026-06-30 |

| `toolbox/legal/requirements-xjustiz.txt` | `cryptography>=46,<47` als runtime-nahe Abhängigkeit für DTC-Zertifikats-/CRL-Prüfung | 2026-06-30 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/requirements-xjustiz.txt` | Ubuntu-Installer-Spiegel der DTC-Krypto-Abhängigkeit | 2026-06-30 |

## | `toolbox/legal/dtc_waltid_bridge.py` | Gehaerteter DTC/walt.id-Bridge-Status

- Native-DTC-Scan mit `rg`, 45s-Timeout, Python-Fallback, `scan_status` und gesperrt bis zum Nachweis `ok=false` bei Timeout/Scannerfehler | 2026-07-01 |

| `30_INSTALLERS/ubuntu24/azubi42-server/toolbox/legal/dtc_waltid_bridge.py` | Ubuntu-Installer-Spiegel des gehärteten DTC/walt.id-Bridge-Status | 2026-07-01 |

| `70_TESTS_AND_SMOKE/legal/test_dtc_waltid_bridge.py` | Regression für `scan_status`, 45s-Scan-Timeout, Timeout-gesperrt bis zum Nachweis und Adapterpflicht ohne nativen walt.id-DTC-Nachweis | 2026-07-01 |

## | `40_INTEGRATIONS/legal-jura/zugangsbau/DTC_WALTID_TESTMATERIAL_MATRIX_2026-06-30.md` | Aktualisierte DTC-Testmaterial-/User-Evidence-Matrix

- echter User-DTC-Pfad, synthetische Fixture-Grenze, walt.id-mdoc/OID4VP-Grenze und kein OSCI/EGVP-Sendegate | 2026-07-01 |

| `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/legal-jura/zugangsbau/DTC_WALTID_TESTMATERIAL_MATRIX_2026-06-30.md` | Ubuntu-Installer-Spiegel der aktualisierten DTC/walt.id-Testmaterialmatrix | 2026-07-01 |

## | `40_INTEGRATIONS/legal-jura/zugangsbau/WALTID_DTC_UPSTREAM_CONTRIBUTION_PLAN_2026-07-01.md` | Upstream-Contribution-Plan für walt.id

- aktueller HEAD-/Pin-Abgleich, fehlender nativer ICAO-DTC-Nachweis, Issue-Draft und secretfreier DTC-Core-/Bridge-Zuschnitt | 2026-07-01 |

| `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/legal-jura/zugangsbau/WALTID_DTC_UPSTREAM_CONTRIBUTION_PLAN_2026-07-01.md` | Ubuntu-Installer-Spiegel des walt.id/DTC-Upstream-Contribution-Plans | 2026-07-01 |

| `00_META/NEXT_SLICE_STACK_2026-07-01.md` | Getrennter Folge-Stack für Provider/Communication, SnappyMail/Usermail, KartOO/Kart00/Websuche, Sidebar und DTC/walt.id/Trustmaterial; verhindert Mischcommits und legt Gates/nächste Befehle je Slice fest | 2026-07-01 |

## | `40_INTEGRATIONS/legal-jura/zugangsbau/DTC_OBTAINING_AND_CONNECT_MATRIX_2026-07-01.md` | DTC-Herkunfts- und Connect-Matrix

- ICAO Type 1/2/3, EU Digital Travel App/eu-LISA, Member-State-Issuer, Third-country Passport Authority, Betreiber-/Border-Pilots und walt.id nur als mdoc/OID4VP-Anschluss nach Trust-Gate | 2026-07-01 |

| `30_INSTALLERS/ubuntu24/azubi42-server/40_INTEGRATIONS/legal-jura/zugangsbau/DTC_OBTAINING_AND_CONNECT_MATRIX_2026-07-01.md` | Ubuntu-Installer-Spiegel der DTC-Herkunfts- und Connect-Matrix | 2026-07-01 |

| `70_TESTS_AND_SMOKE/legal/test_dtc_obtaining_connect_matrix.py` | Contract-Test für die DTC-Herkunftsmatrix, offizielle Quellenanker, Installer-Spiegel und getrennten Slice-Stack | 2026-07-01 |
