Skip to content

EYT-113: Finalisierung — Werkbank-Nachweise 1440/1920 und Zwei-Client-Shell-Dokumentation - #100

Merged
DYAI2025 merged 2 commits into
masterfrom
feat/eyt-113-finalisierung
Aug 30, 2026
Merged

EYT-113: Finalisierung — Werkbank-Nachweise 1440/1920 und Zwei-Client-Shell-Dokumentation#100
DYAI2025 merged 2 commits into
masterfrom
feat/eyt-113-finalisierung

Conversation

@DYAI2025

@DYAI2025 DYAI2025 commented Aug 30, 2026

Copy link
Copy Markdown
Owner

EYT-113 Finalisierung — Werkbank-Viewport-Evidenz und Grenz-Dokumentation

Schließt die beiden letzten offenen EYT-113-Lücken gegen master (Basis 0883682, Merge von PR #99) mit dem kleinstmöglichen Patch. Keine neue Fachfunktion; Employee-/EYT-81-Fachflächen bleiben unangetastet.

Änderung 1 — apps/web/e2e/auth-journey/journey.pwtest.ts (+24 Zeilen)

Schritt 9c1 (/planung, angemeldet als owner) prüfte axe und Reflow bereits je Abnahmebreite (ABNAHME_BREITEN: 1440×900, 1920×1080, 720-Zoom). Neu je Breite 1440/1920: sichtbarer Fokus (pruefeTastaturUndFokus, bestehender Helfer) und ein benannter Screenshot (11-werkbank-planung-1440.png / 11-werkbank-planung-1920.png) — dasselbe Muster wie die Feld-Shell bei 320/375 px. Danach wird die Ausgangsbreite wiederhergestellt. Keine bestehende Zusicherung geändert oder abgeschwächt; keine neue Guard-Regel (die Fokus-/axe-/Reflow-Zusicherungen sind die bestehenden, bereits rot-bewiesenen Helfer).

Änderung 2 — docs/architecture/zwei-client-shells.md (neu)

Kanonisches Repo-Dokument des implementierten IST-Zustands (AC „Bundle-, Import- und Routengrenzen dokumentiert" und AC „Kriterien für spätere physische/native Trennung"): gemeinsame Next.js-/API-/Auth-/Vertrags-/DB-Wahrheit, Route-/Layoutgrenzen (werkbank)/feld, serverseitige Session- und Start-Shell-Ableitung, Architekturregeln (feld-shell-boundary, ui-dependency-allowlist, kosten-server-gate), organisationsbezogene costs.read-Grenze ohne Any-Org-Fallback, gemeinsame Zustandsverträge (Loading/Empty/Forbidden/Unauthenticated/Stale über @easytree/ui-Primitives) und die begründete Nichtanwendbarkeit von Offline-read-only (kein Offline-Datenvertrag im Repo; app/manifest.ts, components/start-inhalt.tsx). Confluence 8814623/8486960 bleiben die fachlichen Baselines und werden nicht umgeschrieben.

Lokale Evidenz (Worktree von 0883682)

  • pnpm exec turbo run lint typecheck --forceTasks: 16 successful, 16 total, Cached: 0 cached (e2e wird per **/*.ts mitgetypecheckt).
  • pnpm exec turbo run test --force --concurrency=1Tasks: 10 successful, 10 total, Cached: 0 cached. (Der parallele Lauf zeigte zuvor die bekannten Doppel-vitest-Artefakte; solo 450/450 web, 821/95 skipped api.)
  • Auth-Journey lokal komplett gefahren (Supabase-Stack, db reset, echte dist/main.js, echter GoTrue-Login): 5 passed, Teardown restzeilen=0.
  • Neue Artefakte nachgemessen: 11-werkbank-planung-1440.png = 1440×900 px, 11-werkbank-planung-1920.png = 1920×1080 px; Sichtprüfung zeigt die reale angemeldete Planungswerkbank mit sichtbarem Fokusring.
  • prettier --check auf beiden Dateien: exit 0.

Bewusst NICHT enthalten

Keine Employee-/EYT-81-Fachfunktion, keine neue Abstraktion für Zustandsverträge (die gemeinsame Contract-Grenze existiert bereits und ist getestet), keine Screenshot-Umbenennungen bestehender Feld-Nachweise, keine Jira-/Confluence-Mutation, kein Deploy.

🤖 Generated with Claude Code

Summary by Sourcery

Complete EYT-113 by adding desktop workbench accessibility evidence and documenting the repository’s two-client-shell architecture.

Enhancements:

  • Add viewport-specific focus checks and named screenshots for the authenticated planning workbench at 1440px and 1920px.
  • Document the implemented Workbench and Field client-shell boundaries, shared contracts, authorization model, state handling, CI enforcement, and criteria for future physical or native separation.

Documentation:

  • Add canonical architecture documentation for the two client shells and their current repository boundaries.

Tests:

  • Extend the authentication journey with visual and keyboard-focus evidence for the planning workbench at both desktop acceptance widths.

BenPerro and others added 2 commits August 30, 2026 15:24
…urney

Schritt 9c1 ergaenzt die bestehende axe-/Reflow-Pruefung der angemeldeten
Planungsflaeche (ABNAHME_BREITEN) um sichtbaren Fokus und einen benannten
Screenshot JE Abnahmebreite — dasselbe Muster wie die Feld-Shell bei
320/375 px. Die Bild-Evidenz der Werkbank haengt damit nicht mehr an der
Standardbreite des Laufs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…Zustand

Kanonisches Repo-Dokument der Bundle-, Import- und Routengrenzen beider
Shells: gemeinsame Next.js-/API-/Auth-/Vertrags-/DB-Wahrheit, Server-Gates
und Start-Shell-Ableitung, organisationsbezogene costs.read-Grenze,
gemeinsame Zustandsvertraege (inkl. begruendeter Nichtanwendbarkeit von
Offline-read-only), CI-Gegenproben und Kriterien einer spaeteren
physischen/nativen Trennung. Confluence 8814623/8486960 bleiben die
fachlichen Baselines.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sourcery-ai

sourcery-ai Bot commented Aug 30, 2026

Copy link
Copy Markdown

Reviewer's Guide

Der PR schließt die letzten EYT-113-Nachweislücken mit Fokus- und Screenshot-Evidenz der Planungswerkbank bei 1440/1920 px und ergänzt ein kanonisches Architektur-Dokument zu den Grenzen, Sicherheits-Gates, Zustandsverträgen und Trennungskriterien der Werkbank- und Feld-Shell.

Sequence diagram for the Werkbank viewport evidence journey

sequenceDiagram
    participant Journey as AuthJourney
    participant Page as PlanungPage
    participant Browser as PlaywrightPage

    Journey->>Page: pruefeBarrierefreiheit(page, /planung)
    loop 1440px and 1920px
        Journey->>Browser: setViewportSize(width, height)
        Journey->>Page: pruefeTastaturUndFokus(page, width)
        Journey->>Browser: screenshot(11-werkbank-planung-width.png)
    end
    Journey->>Browser: setViewportSize(urspruenglich)
Loading

Flow diagram for server-side shell selection and access gates

flowchart TD
    Request["Request with session and organization cookies"] --> Session["sitzung-server.ts: session verification"]
    Session --> SessionState{Session state}
    SessionState -->|abgemeldet| Login["Redirect to /anmelden"]
    SessionState -->|unbekannt| SessionError["ErrorState"]
    SessionState -->|angemeldet| Role["startShellFuer"]
    Role -->|owner or manager| Werkbank["Werkbank Shell"]
    Role -->|no leadership role| Feld["Feld Shell"]
    Werkbank --> Costs["kosten-freigabe.ts"]
    Costs --> OrgCheck{“Selected org has costs.read?”}
    OrgCheck -->|yes| CostsPage["Render costs client components"]
    OrgCheck -->|no or invalid selector| Forbidden["kosten-grenze.tsx: forbidden"]
Loading

File-Level Changes

Change Details Files
Erweitert die Auth-Journey um responsive Fokus- und Screenshot-Evidenz für die angemeldete Planungswerkbank.
  • Setzt die Viewport-Breiten 1440×900 und 1920×1080 nacheinander.
  • Prüft sichtbaren Tastaturfokus und erzeugt je Breite einen benannten Screenshot.
  • Stellt den ursprünglichen Viewport nach den Nachweisen wieder her und protokolliert die geprüften Breiten.
apps/web/e2e/auth-journey/journey.pwtest.ts
Dokumentiert die implementierte Zwei-Shell-Architektur sowie die Grenzen und Bedingungen für eine spätere physische oder native Trennung.
  • Beschreibt gemeinsame Next.js-, API-, Auth-, Vertrags- und Datenbankgrundlagen sowie Route- und Layoutgrenzen.
  • Erklärt serverseitige Session-/Start-Shell-Ableitung, Import-Allowlist-Regeln und das organisationsbezogene Kosten-Gate ohne Any-Org-Fallback.
  • Verankert gemeinsame Zustandsverträge, die bewusste Nichtanwendbarkeit von Offline-read-only und die relevanten CI-Gegenproben.
  • Definiert Kriterien für eine spätere native oder physische Trennung ohne duplizierte Backend- oder Fachlogik.
docs/architecture/zwei-client-shells.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've reviewed your changes and they look great!

Sourcery assessment

Approved.


Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@DYAI2025
DYAI2025 merged commit f8e96e4 into master Aug 30, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants