Repository navigation
feat(nav): NAV-1a sidebar shows areas - #1636
Conversation
The sidebar lists the six areas, marks Betrieb current on every member route, shows only Fabrik and Einstellungen with the scope flag off, and the flow tab inside the Fabrik area is named Linie. Existing label pins follow the new names. Red against the current code; the fix follows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every route gets an `area` field and `AREAS` lists the six areas of ia.md section 1 by label key. The sidebar shows one link per area with a visible route, opens that area's first visible route and marks the area current on every member route. With the scope flag off that is Fabrik and Einstellungen; Betrieb appears once a member is visible (NAV-2a adds `/betrieb`). Route IDs, paths and the palette stay unchanged. New values: nav.leitstand "Fabrik", nav.eingangPlan "Aufträge", nav.gedaechtnis "Wissen", new nav.betrieb "Betrieb", the scope switch description and the first-run hint. The flow tab inside the Fabrik area becomes "Linie" (former NAV-1b), so no link name appears twice. Test-First: src/shell/Shell.test.tsx::lists exactly the six areas without Ersteinrichtung Test-First: src/shell/Shell.test.tsx::marks the Betrieb area current on every member route Test-First: src/shell/scope.test.tsx::with the scope flag off the sidebar shows Fabrik and Einstellungen Test-First: src/screens/leitstand/LeitstandRoute.test.tsx::names the flow tab Linie inside the Fabrik area Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The NAV-1a row states what is true after merge; the user section no longer says NAV-1a is not implemented. No-Test: plan text 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: 692865782b
ℹ️ 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".
| | DS-H-07 | Probe-Halle: Galerie-Seite und Messaufbau (`shot.mjs --dpr --motion`), danach Abnahme durch den Nutzer: zuerst Bilder und kurzes Video vom Server (3 Bewegungsmodi × hell/dunkel), dann nach seinem Ja in der App am PC mit Speichermessung | Root disponiert; Abnahme der Nutzer | DS-H-06; Galerie aus DS-X-14 und DS-X-15 (nicht disponiert) | Server | B | Geplant: nicht disponiert (16.10.); das Urteil des Nutzers entscheidet über die übrigen Tabs | wie DS-H-01; Urteil des Nutzers | – | | ||
| | NAV-0 | Doku zur Navigation: `docs/plan/v2.0/ia.md` §1/§3 beschreibt die sechs Bereiche mit der Tabelle „Bereich → Route-IDs“ (IDs unverändert), `docs/decisions.md` „2026-10-16 - NAV-0“ bucht E-1 B, die Sichtbarkeit (drei Bereiche) und den Reiternamen „Linie“; PLAN bucht die Entscheidungen und diese Zeilen | Root disponiert | – | Server | C | Erledigt: #1630 (Doku, Stand: PR-Text, Merge durch Root) | prepush Exit 0; `node scripts/plan-check.mjs --offline` Exit 0; Doc-Link-Gate Exit 0 | – | | ||
| | NAV-1a | Seitenleiste nach Bereichen: Feld `area` je Route und Liste der Bereiche, ein Link je Bereich auf seine erste sichtbare Route, `aria-current` je Bereich; neue Werte `nav.leitstand` „Fabrik“, `nav.eingangPlan` „Aufträge“, `nav.gedaechtnis` „Wissen“, neu `nav.betrieb`; zugleich der Reiter `leitstand.tab.fabrik` → „Linie“ (früher NAV-1b), damit kein Linkname doppelt vorkommt; Routen-IDs und Pfade bleiben (`src/shell/routes.ts`, `Shell.tsx` (nur `Sidebar`), `src/i18n/de.ts`, `src/screens/start/texts.ts`, `LeitstandRoute.test.tsx` und die Shell-Tests) | Root disponiert | NAV-0; #1606 (`Shell.tsx`) und #1604 gemergt oder `main` eingemergt | Server | B | Geplant: nicht disponiert (16.10.) | benannte Tests rot→grün (sechs Bereiche ohne Ersteinrichtung, Betrieb aktiv auf jeder Mitgliedsroute, Schalter aus zeigt Fabrik und Einstellungen, Reiter „Linie“); prepush; zwei Reviews; Zeilen ≤ 300 | – | | ||
| | NAV-1a | Seitenleiste nach Bereichen: Feld `area` je Route und Liste der Bereiche, ein Link je Bereich auf seine erste sichtbare Route, `aria-current` je Bereich; neue Werte `nav.leitstand` „Fabrik“, `nav.eingangPlan` „Aufträge“, `nav.gedaechtnis` „Wissen“, neu `nav.betrieb`; zugleich der Reiter `leitstand.tab.fabrik` → „Linie“ (früher NAV-1b), damit kein Linkname doppelt vorkommt; Routen-IDs und Pfade bleiben (`src/shell/routes.ts`, `Shell.tsx` (nur `Sidebar`), `src/i18n/de.ts`, `src/screens/start/texts.ts`, `LeitstandRoute.test.tsx` und die Shell-Tests) | Root disponiert | NAV-0; #1606 (`Shell.tsx`) und #1604 gemergt oder `main` eingemergt | Server | B | Erledigt: #1636; die Seitenleiste zeigt einen Link je Bereich (Schalter aus: Fabrik und Einstellungen, Betrieb ab NAV-2a), der Fluss-Reiter heißt „Linie“ | benannte Tests rot→grün (sechs Bereiche ohne Ersteinrichtung, Betrieb aktiv auf jeder Mitgliedsroute, Schalter aus zeigt Fabrik und Einstellungen, Reiter „Linie“); prepush; zwei Reviews; Zeilen ≤ 300 | – | |
There was a problem hiding this comment.
Gleiche vor dem Erledigt-Status alle Planzeilen ab
Der Kandidat markiert NAV-1a als erledigt, lässt aber DS-H-00 in Zeile 287 weiterhin als „Geplant“ stehen, obwohl der lokal vorhandene Mergify-Commit 6342a9f dokumentiert, dass PR #1633 bereits um 12:26 UTC gemergt wurde—vor diesem Kandidaten von 12:47 UTC; auch der Commit-Bericht nennt genau diesen Online-Plan-Check-Fehler. Dadurch wäre der kanonische Plan unmittelbar nach Übernahme weiterhin nachweislich veraltet; aktualisiere die DS-H-00-Zeile im selben Änderungssatz.
AGENTS.md reference: AGENTS.md:L121-L121
Useful? React with 👍 / 👎.
|
Root queue (head 6928657, review-ok, required checks pass): @Mergifyio queue |
|
Root auto-queue: head 6928657 unchanged since review-ok, all checks green. @Mergifyio queue |
Merge Queue Status
This pull request spent 13 minutes 33 seconds in the queue, including 13 minutes 12 seconds running CI. Required conditions to merge
|
Die Seitenleiste zeigt jetzt Bereiche statt einzelner Seiten: ohne den Schalter „Weitere Bereiche“ siehst du „Fabrik“ (bisher „Leitstand“) und „Einstellungen“, mit dem Schalter alle sechs Bereiche Fabrik, Aufträge, Beweise, Betrieb, Wissen und Einstellungen. Der Bereich ist auf jeder seiner Seiten markiert, zum Beispiel „Betrieb“ auf Team, Steuerung, Automatik und Core, und alle Adressen bleiben gleich. Der Reiter mit dem Agentengraphen heißt jetzt „Linie“, damit „Fabrik“ nicht zweimal als Link vorkommt; „Betrieb“ wird in v2.0 sichtbar, sobald NAV-2a die Seite
/betriebanlegt.Report
Plan-ID: NAV-1a
Operator: UMSETZEN. Base:
main@33768b4b(merge of #1630, NAV-0). Includes the former NAV-1b (DS-T-05 #1629 is merged).What changed
src/shell/routes.ts: newAREAS(six areas of ia.md §1, label keys, keyboard order) andAreaId; everyShellRoutegetsarea(start=null). Route IDs, paths, tabs,SCOPE_ROUTE_IDSand palette logic unchanged.src/shell/Shell.tsx(Sidebaronly): one link per area that has a visible route; it opens the area's first visible route, shows that route's icon, and isaria-current="page"when the active route belongs to the area. Einstellungen stays last (foot). With the scope flag off: Fabrik, Einstellungen. Betrieb shows once a member is visible (today only with the flag; NAV-2a adds/betrieb).src/i18n/de.ts:nav.leitstand„Fabrik“,nav.eingangPlan„Aufträge“,nav.gedaechtnis„Wissen“, newnav.betrieb„Betrieb“, scope switch description („neben Fabrik und Einstellungen“),leitstand.tab.fabrik„Linie“ (former NAV-1b). Keys unchanged, so the Fabrik<h1>and palette labels follow (e.g. „Fabrik · Haupt“, „Aufträge · Plan“).src/screens/start/texts.ts: „Die Fabrik zeigt, wer arbeitet“.Shell.test.tsx,scope.test.tsx,mount.test.tsx,scope-entry.mount.test.tsx(Kontingente/Team land on area „Betrieb“),hardcoded.test.ts, and the flow tab inLeitstandRoute.test.tsx(„Fabrik“ → „Linie“, 7 places). No assertion removed or loosened.docs/PLAN.md: row NAV-1a → „Erledigt: feat(nav): NAV-1a sidebar shows areas #1636; …“ (states the truth after merge, like NAV-0). Plus one clause in the user section item 6, which said „Umsetzung NAV-1a bis NAV-2b geplant, noch nicht umgesetzt“ and would be stale after merge (AGENTS.md: the plan must never be stale); now „NAV-0 Doku und NAV-1a Seitenleiste erledigt, NAV-2a/2b geplant“. The sentence „… tragen ihre Zeilen in ihren eigenen PRs.“ is untouched.Red → green
Red commit
4a662d9b(tests only, 12 failing against the old code:npx vitest run src/shell/Shell.test.tsx src/shell/scope.test.tsx src/screens/leitstand/LeitstandRoute.test.tsx→ exit 1, 12 failed / 31 passed), fix commit3be2ac3f.src/shell/Shell.test.tsx::lists exactly the six areas without Ersteinrichtungsrc/shell/Shell.test.tsx::marks the Betrieb area current on every member route(all 10 paths of team/steuerung/automatik/core)src/shell/scope.test.tsx::with the scope flag off the sidebar shows Fabrik and Einstellungensrc/screens/leitstand/LeitstandRoute.test.tsx::names the flow tab Linie inside the Fabrik area(exactly one „Fabrik“ link on the page)Evidence (Linux server, 2026-10-16)
npm run dev:start-checknpm run typechecknode scripts/contrast-check.mjsnpx vitest run src/shell src/screens/leitstand src/screens/start src/i18nbash scripts/ci/red-first.sh(base33768b4b, head3be2ac3f)bash scripts/ci/gates.sh lane prepushat3be2ac3fbash scripts/ci/gates.sh lane prepushat head69286578(after the plan commit)node scripts/plan-check.mjs --offlinegit ls-remote origin claude/nav-1a69286578…= local HEADbash scripts/ci/secret-scan.shbefore each commitScreenshot (inspected): vite dev server with Tauri mocks, Playwright 1440×900, stored outside the repo in the server report folder
nav-1a-shots/:scope-off-linie-light.png(#/leitstand/fabrik, flag off: sidebar „Fabrik“ current + „Einstellungen“, tab row Haupt · Linie · Betrieb · Werkzeuge · Klassisch),scope-on-betrieb-light.png/scope-on-betrieb-dark.png(#/automatik/befehle, flag on: Fabrik, Aufträge, Beweise, Betrieb current →#/team, Wissen, Einstellungen). No page errors.Size: 11 files, +97/−45 (≤ 300).
Architecture drift: no new findings. Licenses: no new dependency.
NICHT ABGEDECKT
node scripts/plan-check.mjsonline (exit 1, 3 findings):NAV-1a #1636: done / GitHub OPENis expected until the merge (row states the after-merge truth);DS-H-00 #1633andDS-T-01 #1623(rows say planned/in progress, GitHub MERGED) are other packages' rows onmain, not touched here (own row only).#[cfg(windows)]tests and the Windows arms of clippy did not run (Linux server only); the Windows lane runs in the merge queue. This package changes no Rust.e2e/shell.core.spec.tsand the frontend build run only in thelinuxlane (CI), not inprepush. Route paths are unchanged, so the e2e route walk should not be affected; not run locally./betriebroute will define its own.reaches Fabrik from Haupt by its tab link) kept to avoid renaming existing tests.Review
Review: ausstehend (Stufe B) — pending, Root commissions two non-Anthropic reviewers (OpenRouter pair). No self-approval.
🤖 Generated with Claude Code on the ProjectA server worker
Root acceptance (16.10.2026 ~14:50 MESZ)
src/shell/routes.ts:9comment "the last one sits in the foot" looks stalesrc/shell/Shell.tsx:37rendersentries.slice(-1)ing-shell-nav g-shell-footShell.test.tsx:15BETRIEB_IDShardcoded instead of derived fromarea