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

I2460

The overview asks its sources at once, so it costs its slowest source and not their sum

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 I2460

majordomus plan verify I2460

majordomus plan done I2460

What it is

Objective
dashboard.overview executes its distinct sources concurrently through the shared executor, so the Cockpit's first page and every screen built on the overview paint in the time of the slowest source rather than the sum of all seven.
Why
The first slice of the owner's unified real-data UI pack (campaigns/majordomus-ui-unified-real-data-v2-20261011, milestones M03 and M11-I04; the M00 audit is tmp/owner-packs/majordomus-ui-unified-real-data-v2-20261011/AUDIT-M00.md). Measured on 2026-10-11 against the shared server 0.20.0 at master 4dfd185: GET /cockpit loaded in 13.1 s with JavaScript and 17.6 s without, and GET /api/v1/dashboard/overview answered in 7.4-10.6 s. Its handler (apps/majordomus-cli/src/capability/builtin/dashboard.rs, fn overview) asked health.report, release.version, plan.status, worktree.status, plan.next, continuity.state and peers.list one after another. Asked alone, continuity.state took 4.9 s, worktree.status 2.0 s, health.report 0.9 s, release.version 0.6 s and the rest under 20 ms, so the overview cost their sum. Every dashboard screen the pack asks for composes this answer, and a dashboard that needs ten seconds before its first byte cannot be the product's front page.
Now
The seven sources are executed sequentially; the overview's latency is the sum of theirs.
Wanted
The distinct sources are asked on scoped threads and joined; the answer, its cards, their order and the progress steps (reported after the last answer, in declaration order) are what they were. A source whose thread panics yields unknown cards that carry the reason, as any failed source does. Not done here: caching the composition (ADR 0088 refuses it, because a card must not be older than the source a reader drills into), and making continuity.state or worktree.status themselves faster.
Done when
unknown: the record declares no `completion`
Risk
unknown: the record declares no `risk`

Acceptance

  • Each distinct (capability, input) source of the overview is asked exactly once, in the order the cards first name it
  • Asked at once, every source answers as it does when asked alone, and every card is still its source's value at its pointer or unknown
  • On the shared server of this repository, GET /api/v1/dashboard/overview answers in no more than the slowest single source plus composition, measured before and after
Validation
bin/majordomus plan validatecargo test --lib capability::builtin::dashboardcargo test --test dashboardMJ_TEST_JOBS=4 bash test/run.sh 534_the_overview_answers_four_questions.sh
Evidence required
overview_sources_concurrent_testoverview_latency_before_after
Evidence present
overview_sources_concurrent_testoverview_latency_before_after

Scope

Touches
apps/majordomus-cli/src/capability/builtin/dashboard.rsapps/majordomus-cli/tests/dashboard.rs.ai/repo/project/issues/I2460.yaml
Not
unknown: the record declares no `non_scope`
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-10-11
Updated
2026-10-12T10:58:43Z
Started
2026-10-12T10:58:12Z
Verified
2026-10-12T10:58:22Z
Completed
2026-10-12T10:58:43Z

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.