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

I2485

The bench measures the first request after the repository moved, and a budget bounds it

Where it stands

devtask.issue
Readiness
ready no dependency and no gate holds it; nobody has started it
Status
READY
Can start
startable
Milestone
Milestone status
ACTIVE
Wave
3
Waiting on
none
Holds back
none
Behind it in all
0
Evidence
0 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 I2485

majordomus plan verify I2485

majordomus plan done I2485

What it is

Objective
Measure what a reader pays on the first request after the repository changed, as a benchmark target of its own, so that the budget of I2489 covers the case ADR 0142 was written for and not only the warm one.
Why
ADR 0142 took the handlers and the reload off the path of a UI request. Its effect on the warm request is now held by a budget (I2489). Its effect on the first request after a commit was measured by hand, once: 1.2-4.2 s before, 3-330 ms after, on release builds with a script outside the repository. Nothing measures it again, so a change that puts a wait back after a move would pass every gate.
Now
bench has two cache modes for a page, cold (the executor cache cleared before every sample) and warm. Neither moves the repository. The live view targets (system.http.live.ui.*) pay the git stamp and never a new generation.
Wanted
A system target per screen over the live view takes each sample right after the fixture repository moved (an empty commit), in a cache mode of its own, so a result document says what the first reader after a change waited. The policy bounds it with a budget of its own, measured before it is declared, and the ui job's check holds it. The hand script is retired.
Done when
unknown: the record declares no `completion`
Risk
unknown: the record declares no `risk`

Acceptance

  • A result document carries, per screen of the live view, a measurement taken on the first request after the repository moved
  • A screen made to wait for a source after a move, in a fixture, is over its budget and fails the check
  • The budget is declared in the benchmark policy with the measurement it was set from
Validation
bin/majordomus plan validateMJ_TEST_JOBS=2 bash test/run.sh 1095_the_bench_measures_the_request_after_a_move
Evidence required
bench_moved_mode_testsbench_moved_case_1095
Evidence present
unknown: the record carries no `evidence` entries

Scope

Touches
apps/majordomus-cli/src/bench.ai/repo/benchmarks/rust/policy.yamldocs/MAJORDOMUS_UI.mdtest/cases.ai/repo/project/issues/I2485.yaml
Not
unknown: the record declares no `non_scope`
Depends on
Priority
p2
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-12
Updated
2026-10-12
Started
unknown: the record declares no `started_at`
Verified
unknown: the record declares no `verified_at`
Completed
unknown: the record declares no `completed_at`

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.