Files
schalli 55aa287296
Tessera CI/CD / Lint & Type Check (push) Successful in 51s
Tessera CI/CD / Tests (push) Successful in 1m6s
Tessera CI/CD / Desktop-Pakete bauen (push) Successful in 5m43s
Tessera CI/CD / Build & Publish Images (push) Successful in 3m7s
docs(quick-260918-gza): Fehlermeldung — Herkunft ausweisen (Browser/Desktop-App, OS, App-Version)
Plan, Ausfuehrungsbericht, Verifikation (9/9 must_haves) und Aktenstand;
lokaler Nachweis per Playwright/mailhog fuer Browser- und Desktop-Marker-Fall.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016g2npLxzH5gZpg8s2S6vKh
2026-09-18 12:48:01 +02:00

7.2 KiB

status, phase, plan, subsystem, tags, dependency-graph, tech-stack, key-files, decisions, metrics, actuals, plan_head_before
status phase plan subsystem tags dependency-graph tech-stack key-files decisions metrics actuals plan_head_before
complete quick-260918-gza 01 bug-reports
fehler-melden-knopf
herkunft
desktop-app
betreff-kuerzel
requires provides affects
quick-260914-m97
quick-260917-h2s
herkunfts-kuerzel-im-betreff
herkunftszeile-in-der-mail
cookie-tessera_desktop_client
apps/api/src/bug-reports
apps/desktop/src-tauri
apps/web/src/middleware.ts
apps/web/src/lib
apps/web/src/components/bug-report
added patterns
reine-helferfunktion-mit-eigener-spec
cookie-huelle-um-bestehenden-marker-mechanismus
created modified
apps/api/src/bug-reports/origin.ts
apps/api/src/bug-reports/origin.spec.ts
apps/web/src/lib/bug-report-api.test.ts
apps/api/src/bug-reports/dto/bug-report.dto.ts
apps/api/src/bug-reports/bug-reports.service.ts
apps/api/src/bug-reports/bug-reports.service.spec.ts
apps/api/src/bug-reports/bug-reports.controller.spec.ts
apps/desktop/src-tauri/src/lib.rs
apps/web/src/middleware.ts
apps/web/src/middleware.test.ts
apps/web/src/lib/desktop-client.ts
apps/web/src/lib/desktop-client.test.ts
apps/web/src/lib/bug-report-api.ts
apps/web/src/components/bug-report/bug-report-dialog.tsx
apps/web/src/components/bug-report/bug-report-button.test.tsx
CHANGELOG.md
docs/anleitung-administration.md
docs/anleitung-betrieb.md
Marker-/Cookie-Mechanismus aus quick-260917-h2s erweitert statt WebView-User-Agent zu ueberschreiben (Vorgabe des Orchestrators im Plan, keine Abweichung).
Regex statt neuer ua-parser-Bibliothek in origin.ts — fuenf Browser/fuenf Betriebssysteme reichen fuer ein Postfach, kein neues Paket.
duration completed
ca. 45 min 2026-09-18
tokens tasks commits
68000 3 4
ab99a9a56e6d0e1e57e07c6feb2a2fa2ab866fc4

Phase quick-260918-gza Plan 01: Herkunft der Fehlermeldung ausweisen — Summary

Fehlermeldungen des Fehler-melden-Knopfs tragen jetzt ein Herkunfts-Kuerzel im Betreff ([Browser], [Desktop/Windows], [Desktop/Linux], Rueckfall [Desktop]) und eine Zeile Herkunft: … im Text, abgeleitet vom reinen Helfer origin.ts aus vier neuen optionalen DTO-Feldern (Desktop-App, ueber ein zweites Cookie tessera_desktop_client) bzw. dem User-Agent (Browser).

Ausgefuehrte Tasks

  1. API — origin.ts, DTO-Felder, Betreff-Kuerzel, Zeile Herkunft: — Commit 7169472
  2. Desktop-Marker (dv/dc/dos), Middleware-Cookie, Web-Nutzlast — zwei Commits:
    • b03cb21 — Rust: with_client_marker (rein) + with_desktop_marker (Huelle)
    • f245711 — Web: Middleware-Cookie, desktop-client.ts, bug-report-api.ts, Dialog
  3. CHANGELOG und Handbuecher — Commit e2a7946

Commits

Hash Betreff
7169472 feat(bug-reports): Herkunft der Fehlermeldung im Betreff-Kuerzel und als Zeile Herkunft ausweisen
b03cb21 feat(desktop): Version, Stand und Betriebssystem im Desktop-Marker mitgeben (dv, dc, dos)
f245711 feat(web): Herkunft der Fehlermeldung — Cookie tessera_desktop_client und Client-Felder in der Nutzlast
e2a7946 docs: Fehlermeldungen — Herkunft (Browser/Desktop-App, Betriebssystem, Version) und Betreff-Kürzel (Handbücher, CHANGELOG)

commits: 4 (gemessen: git rev-list --count ab99a9a..HEAD = 4; plan_head_before ist der Stand vor Task 1).

Testzahlen

Suite Vorher Nachher Befehl
API src/bug-reports 11 24 (origin 10, service 10, controller 4) pnpm --filter @tessera/api exec vitest run src/bug-reports
API vollstaendig — 1124/1124 gruen (69 Testdateien) pnpm --filter @tessera/api exec vitest run
API type-check — ohne Fehler pnpm --filter @tessera/api type-check
Web src/lib, middleware.test.ts, src/components/bug-report 11 (desktop-client) + 5 (middleware) + 11 (button) = 27 101/101 gruen (13 Testdateien; middleware 9, desktop-client 13, bug-report-api 3 NEU, bug-report-button 13) pnpm --filter @tessera/web exec vitest run src/lib src/middleware.test.ts src/components/bug-report
Web vollstaendig — 447/447 gruen (65 Testdateien) pnpm --filter @tessera/web exec vitest run
Web type-check — ohne Fehler pnpm --filter @tessera/web type-check
Rust cargo test --lib 33 (STATE-Baseline) 37/37 gruen, cargo fmt --check sauber apps/desktop/src-tauri && cargo fmt --check && cargo test --lib

Alle Zahlen erfuellen bzw. uebertreffen die Vorgaben aus <success_criteria> (Rust ≥ 5 Marker-Tests — 5 vorhanden: 3 umgestellt + leerer Commit + Huelle; Middleware 9; desktop-client ≥ 11 — 13; bug-report-api 3; Komponententest 13; origin ≥ 8 — 10; Service 10; Controller 4).

Deviations from Plan

Keine — der Plan wurde wie geschrieben ausgefuehrt. Ergaenzend zwei kleine Implementierungsentscheidungen, die im Rahmen des Plans lagen (keine Abweichung von <behavior>/<action>):

  • Test 9 im Service-Spec (Betreff/Zeile/Protokollzeile fuer Desktop/Windows) nutzt fuer die Pruefung "Logger genau einmal mit Kuerzel gerufen" eine zweite, frische makeService()-Instanz, damit der Aufruf-Zaehler nicht durch den vorherigen submit() in demselben Test verfaelscht wird. Ergebnis entspricht exakt der im Plan verlangten Erwartung.
  • In origin.ts wurde clean() mit Default-Parameter max = 40 implementiert (im Plan als clean(value, max = 40) vorgegeben) — keine Abweichung, nur Bestaetigung der genauen Umsetzung.

Known Stubs

Keine.

Threat Flags

Keine neue, im Plan nicht erfasste Sicherheitsflaeche gefunden — alle vier neuen DTO-Felder, das zweite Cookie und die Bereinigungsregeln entsprechen exakt dem Threat Register des Plans (T-GZA-01 bis T-GZA-04, T-GZA-SC).

Offene Punkte fuer den Orchestrator (Nachweis, nicht Aufgabe des Executors)

Laut <verification> des Plans, ausdruecklich NICHT Teil dieser Ausfuehrung:

  1. Browser-Fall (Playwright MCP + mailhog): lokal docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d mailhog und docker compose up -d --build api web, dann ueber den Fehler-melden-Knopf eine Meldung senden und in http://localhost:8025 pruefen: Betreff [Tessera Fehlermeldung] [Browser] dev dev - /…, Zeile Herkunft: Browser — Chrome <N> auf Linux, Zeilen Browser:/Fenster: weiterhin vorhanden; docker compose logs api | grep "Bug report" zeigt das Kuerzel.
  2. Desktop-Fall (Windows-Test-VM nach CI-Bau): Client auf der VM installieren bzw. per In-App-Update aktualisieren (Zugang laut Memory reference_windows_test_vm.md), gegen alpha melden -> Betreff [Desktop/Windows], Zeile Herkunft: Desktop-App (Windows), Tessera-App <Version> · Stand <sha7>.
  3. Optional — alter Desktop-Client: ein bestehender 1.2.0-Client ohne Update erzeugt [Desktop] und Desktop-App (unbekannt) — dokumentiertes Verhalten (Betriebshandbuch Kap. 10), kein zwingender Nachweis.

Self-Check: PASSED

  • apps/api/src/bug-reports/origin.ts — FOUND
  • apps/api/src/bug-reports/origin.spec.ts — FOUND
  • apps/web/src/lib/bug-report-api.test.ts — FOUND
  • Commit 7169472 — FOUND (git log --oneline --all | grep 7169472)
  • Commit b03cb21 — FOUND
  • Commit f245711 — FOUND
  • Commit e2a7946 — FOUND