Repository navigation
fix(design): DS-T-05 main view offers the first step - #1629
Conversation
DS-T-05: an empty board and a missing project leave the main view without any next step. Both tests fail until the empty states carry an action. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The empty main view now carries the HonestState action it already supports. Without a project it offers "Projekt anlegen" and opens the Werkzeuge tab, the only place where the old sidebar's "Projekt hinzufuegen" form is shown (the Einstellungen project tab only edits an existing project). With a read, empty board it offers "Auftrag einreihen" and opens the Betrieb tab with the queue form. Both actions only navigate; nothing starts a worker. Test-First: src/screens/leitstand/LeitstandRoute.test.tsx::an empty board offers Auftrag einreihen and opens the Betrieb tab Test-First: src/screens/leitstand/LeitstandRoute.test.tsx::without a project the main view offers Projekt anlegen Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Moves the planned DS-T-05 row from the Pixel-Fabrik table so the ID stays unique (plan-check duplicate-id). No-Test: documentation only Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2ad770d0aa
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| | Z2-REVIEW-FOLLOWUPS-1 | Review-Folgepunkte gemäß Root-Disposition 09.10. bündeln und abgrenzen | Root bindet vorhandenen Owner | konkrete Findings, Dateien und Abnahme vor Dispatch binden | Server | nach Dateischnitt festlegen | Erledigt #800 (merged 2026-10-09T02:07:35Z, `15305c2e`); ersetzt: Geplant; kein neuer Worker aus PLAN-Eintrag | jeder Folgepunkt mit Quelle/Disposition; ≤ 300 ALL je Paket, keine erneute Abnahmebehauptung | PLAN-SYNC-0910b | | ||
| | DS-T-02 | Vertrauensfehler P1-b: `Lamp` und `Meter` zeigen Unbekanntes neutral statt grün beziehungsweise 0 % (`Lamp.tsx`, `Meter.tsx`, `inputs.css`, `KontingenteScreen.tsx`) | Implementierer · Claude; Root nimmt ab | DS-Blueprint-Schnitt 16.10. (§2.2), Designsystem-Entscheidungen D1–D7 (`docs/decisions.md`) | Server | B | Erledigt: #1610; unbekannte Lampe ist ein grauer geschlossener Ring, Balken ohne Messwert hat keinen Wert, Kontingente zeigen „Unbekannt“; Kartenlampe (`lampFor`) bleibt DS-T-03 | vier Test-First-Tests rot an der Merge-Base, grün am Kopf (`red-first.sh` Exit 0); `node scripts/contrast-check.mjs` Exit 0; prepush Exit 0; zwei Stufe-B-Reviews verschiedener Nicht-Autor-Familien: Subscription + OpenRouter; Root-Abnahme | – | | ||
| | DS-T-01 | Vertrauensfehler P1-a: die Hauptansicht unterscheidet „unbekannt“ von „leer“ (`LeitstandRoute.tsx`, `NeedsYou.tsx`, `de.ts`) | Implementierer · Claude; Root nimmt ab | DS-X-01 (#1604); DS-Blueprint-Schnitt 16.10. (§2.2), Designsystem-Entscheidungen D1–D7 (`docs/decisions.md`) | Server | B | Erledigt: #1623; Haupt sagt „Agenten werden gelesen …“, „Nicht verbunden“ mit „Erneut lesen“ oder „Kein Projekt gewählt“ statt „Noch kein Agent“, behält die Karten bei fehlgeschlagenem Nachladen („Aktualisierung fehlgeschlagen“, ohne Alter des letzten Stands) und „Braucht dich“ zeigt „nichts offen“ erst nach gelesener Liste | fünf Test-First-Tests rot an der Merge-Base, grün am Kopf (`red-first.sh` Exit 0); typecheck, `node scripts/contrast-check.mjs` und prepush Exit 0; zwei Stufe-B-Reviews verschiedener Nicht-Autor-Familien: Subscription + OpenRouter; Root-Abnahme | – | | ||
| | DS-T-05 | Vertrauensfehler P1-d: erster Schritt auf der Hauptansicht (`LeitstandRoute.tsx`, `LeitstandCards.tsx`, `de.ts`) | Implementierer · Claude; Root nimmt ab | DS-T-01 (#1623); DS-Blueprint-Schnitt 16.10. (§2.2), Designsystem-Entscheidungen D1–D7 (`docs/decisions.md`) | Server | B | Erledigt: #1629; leere Hauptansicht bietet „Auftrag einreihen“ (öffnet Betrieb mit dem Einreih-Formular), ohne Projekt „Projekt anlegen“ (öffnet Werkzeuge, dort steht „Projekt hinzufügen“); beide Knöpfe navigieren nur, der Direktstart bleibt KR-05a | zwei Test-First-Tests rot an der Merge-Base, grün am Kopf (`red-first.sh` Exit 0); typecheck, `node scripts/contrast-check.mjs` und prepush Exit 0; zwei Stufe-B-Reviews verschiedener Nicht-Autor-Familien: Subscription + OpenRouter; Root-Abnahme | – | |
There was a problem hiding this comment.
Update the newly unblocked DS-H-00 row
Once this row marks DS-T-05 complete, all trust fixes that block DS-H-00 are recorded as finished, but DS-H-00 at line 285 still says it is waiting for those fixes. Update that dependent row in the same change so the canonical plan describes the post-merge state accurately.
AGENTS.md reference: AGENTS.md:L121-L121
Useful? React with 👍 / 👎.
|
Root queue (head 2ad770d, review-ok, required checks pass): @Mergifyio queue |
|
Root auto-queue: head 2ad770d unchanged since review-ok, all checks green. @Mergifyio queue |
Merge Queue Status
This pull request spent 13 minutes 3 seconds in the queue, including 12 minutes 21 seconds running CI. Required conditions to merge
|
Die leere Hauptansicht des Leitstands zeigt jetzt einen ersten Schritt: ohne Projekt den Knopf „Projekt anlegen“, mit Projekt und ohne Agenten den Knopf „Auftrag einreihen“. „Projekt anlegen“ öffnet den Tab Werkzeuge, denn nur dort steht heute das Formular „Projekt hinzufügen“; „Auftrag einreihen“ öffnet den Tab Betrieb mit dem Einreih-Formular, und keiner der Knöpfe startet selbst einen Agenten. Du musst nichts entscheiden; ein Hinweis für Root steht unten unter „Abweichung vom Schnitt“.
Report
Plan-ID: DS-T-05
Package: DS-T-05 (design trust fix P1-d) · Review tier: B (frontend TS, no seam)
Goal / benefit: the empty main view names the next step instead of only saying "Noch kein Agent" / "Kein Projekt gewählt". · Parent / ticket / owner: DS-FABRIK-ZIEL, DS blueprint cut 16.10. §2.2; implementer Claude, Root accepts.
Native evidence: harness goal API not available to this server worker; the ticket goal is this brief (UMSETZEN DS-T-05).
Scope / limits / dependencies / acceptance:
LeitstandRoute.tsx,LeitstandCards.tsx,de.ts(additive),LeitstandRoute.test.tsx, onedocs/PLAN.mdrow; builds on DS-T-01 (#1623); actions only navigate (direct worker start is KR-05a, out of scope).What changed
LeitstandCardstakes an optionalemptyActionand hands it to the existingHonestStateaction of its empty state.LeitstandRoute: read, empty board → "Auftrag einreihen" →#/leitstand/betrieb(queue form,EinreihenForm); no project → "Projekt anlegen" →#/leitstand/werkzeuge. Both only set the hash.de.ts: two new keysleitstand.addProject,leitstand.queueTask(additive).LeitstandRoute.test.tsxthroughrender(<LeitstandRoute />), click, thenwindow.location.hash.docs/PLAN.md: the planned DS-T-05 row moved from the Pixel-Fabrik table to below DS-T-01 and states the result after merge (one row; a second row would be aduplicate-idforplan-check,scripts/lib/plan-model.mjs:23; same move as DS-T-01 inb6bb0e87).Abweichung vom Schnitt (for Root): the cut (§2.2) named
#/einstellungen/projektas the "Projekt anlegen" target. In code that route shows the oldSettingsView(test command, max workers; disabled without a project,src/App.tsx:1136-1163) and has no create form. The create form ("Projekt hinzufügen",src/components/Sidebar.tsx:209-235) sits in the old sidebar, which the shell shows only on the Werkzeuge route (src/App.tsx:907,971). Observed in the browser mock: after the click the Werkzeuge tab shows "Projekte +" with the button "Projekt hinzufügen" visible. Hence the target is#/leitstand/werkzeuge. Side note, not changed:src/screens/start/StartRoute.tsx:23sends the Ersteinrichtung project step to#/leitstand/klassisch, where the sidebar is hidden — worth a follow-up check.Evidence
Base
b99efb71(origin/main at start). Red commit5b94159b(tests only), fix commit3e1075df.npx vitest run src/screens/leitstand/LeitstandRoute.test.tsx -t "Auftrag einreihen|Projekt anlegen"at5b94159b(red: "Unable to find role=button and name Auftrag einreihen" / "Projekt anlegen")npx vitest run src/screens/leitstand/ src/i18nat fix (21 files, 222 tests)npm run typechecknode scripts/contrast-check.mjs(740 pairs)bash scripts/ci/red-first.sh(BASE=merge-base, HEAD=3e1075df; both tests red/missing at base, green at head)bash scripts/ci/secret-scan.shbefore each commitgit push -u origin claude/ds-t-05(pre-push hook, lane prepush at3e1075df, 28 gates green)node scripts/plan-check.mjs --offlineafter the PLAN row move (0 findings)bash scripts/ci/gates.sh lane prepushat head2ad770d0(28 gates green)git push origin claude/ds-t-05, thengit ls-remote origin claude/ds-t-05→2ad770d0Screenshots (1440×900, browser mock
VITE_TAURI_MOCKS=true, inspected): no project → "Kein Projekt gewählt" with the tint button "Projekt anlegen"; empty board → "Noch kein Agent" with "Auftrag einreihen" beside "Braucht dich"; after the click the hash is#/leitstand/betrieb; the "Projekt anlegen" click lands on Werkzeuge with "Projekt hinzufügen" visible. Filesds-t-05-*.pngin the server-side report folder of the orchestrator (not committed). No new colour, token or dependency; the button is the existingHonestStateaction (Button size="sm" variant="tint").NICHT ABGEDECKT
#[cfg(windows)]Rust tests and the Windows clippy arms do not compile on Linux (KI-7); the Windows lane runs in the merge queue. This package changes no Rust.PROJECTA_QUEUE=off) is not shown by the UI: Unknown. Hence the word "einreihen", not "starten".docs/PLAN.mdDS-H-00 still reads "wartet auf die Vertrauensfehler"; per the brief other rows stay with Root.Reviews and disposition
Review: pending (tier B), Root commissions two non-author families (subscription + OpenRouter). No self-approval.
🤖 Generated with Claude Code on the ProjectA server worker
Root acceptance (16.10.2026 ~13:05 MESZ)
LeitstandRoute.test.tsx:131no-project test removesprojecta.activeProjectIdwithout restoring itbeforeEachatLeitstandRoute.test.tsx:30-32clears localStorage and sets the project before every testgo()vs inline hash navigation inonOpen