Skip to content
Cockpit0.29.0
A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live

I1508

The navigation is derived from the dispatcher, not kept beside it

Where it stands

devtask.issue
Readiness
complete completion is recorded and every required evidence token is present
Status
DONE
Can start
not now
Milestone
Milestone status
ACTIVE
Wave
0
Waiting on
none
Holds back
none
Behind it in all
0
Evidence
2 of 2
A move writes the repository: it stamps one field of this issue's record and appends one event to the ledger, and a commit will carry both.
The same moves from a terminal

majordomus plan start I1508

majordomus plan verify I1508

majordomus plan done I1508

What it is

Objective
Reconcile the Cockpit's area list against the routes the dispatcher actually answers, and derive or check the route table in docs/COCKPIT.md, so that a routed page cannot be invisible.
Why
F5 of the audit's failure table, and it is independent of every other issue here, which is why it is cheap and should not wait. The literal area list in nav.rs is already behind the dispatcher — Executions and Quality are declared in the Area enum, rendered by pages and routed, and absent from the list — and three surfaces read the stale list: the sidebar, the product model's area validation, and the site's cockpit-areas dataset. The public route table in docs/COCKPIT.md is missing five routes the dispatcher answers. The compounding failure is that the Cockpit probe crawls out of the navigation, so a page absent from the navigation is a page nothing checks: new pages are invisible by default and the mechanism that would notice cannot see them.
Now
nav.rs::areas() is a hand-kept literal. docs/COCKPIT.md's route table is missing commands, continuity, directories, artifacts and quality. Page URLs and API endpoints are written as literals throughout pages.rs, including a hand-written mirror of the navigation on the 404 page.
Wanted
One declaration decides which areas exist. The sidebar, the product model, the site dataset and the documented route table are projections of it, and a routed page that no area names is a reported failure rather than an unreachable page.
Done when
unknown: the record declares no `completion`
Risk
Low. The one trap is that the route table lives in a file that is currently hand-written and public; deriving it changes who may edit it, and that must be said in the file itself.

Acceptance

  • A route the dispatcher answers and no area names is a reported failure
  • The sidebar, the product model's area validation and the site dataset read one declaration
  • The route table in docs/COCKPIT.md is generated or checked against the dispatcher
  • The probe reaches every routed page
Validation
bash test/run.shbin/majordomus-cli product validatebin/majordomus-cli generate --check
Evidence required
no_unlisted_routeroute_table_is_checked
Evidence present
no_unlisted_routeroute_table_is_checked

Scope

Touches
apps/majordomus-cli/src/cockpitdocs/COCKPIT.mdtest/cases
Not
Adding any page. This issue makes the existing ones reachable and checkable.The design of the sidebar. Nothing here changes how it looks.
Depends on
none
Priority
p1
Profile
implementation
Parallel safe
true
Owner
unknown: the record declares no `owner`

The work so far

Branches
none
Merged
none
Commits
0
Trunk
master
Sessions
none
Created
2026-09-11
Updated
2026-10-14T07:58:48Z
Started
2026-10-14T07:58:39Z
Verified
unknown: the record declares no `verified_at`
Completed
2026-10-14T07:58:48Z

Synchronisation

Adapter
scripts/github-sync
Repository
unknown: the derived plan's header carries no repository
External issue
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
State there
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it

Findings

Nothing is wrong with these records.