Skip to content

I3140 — The mesh page's latency is measured against a recorded baseline before any target is claimed

Record, under rule project.performance-evidence and through a measuring command under scripts/ui and scripts/lib, warm status on a named route, cold and warm first paint, local event to screen, and subscription recovery for the mesh page, with hardware and percentiles; only then declare targets, as budgets of benchmark policy.

BLOCKED wave 2 · p3 · verification profile · parallel safe

Part of prismatic-lumen — Prismatic Lumen: the owner oversees and moves the whole mesh from one page, which owns nothing.

Blocked. This issue cannot start until I3138 is done. The status is derived from that, not declared.

Objective

Record, under rule project.performance-evidence and through a measuring command under scripts/ui and scripts/lib, warm status on a named route, cold and warm first paint, local event to screen, and subscription recovery for the mesh page, with hardware and percentiles; only then declare targets, as budgets of benchmark policy.

Why

The 2026-10-18 plan proposed latency targets for status, event to screen and recovery; the repository refuses 'fast' without a baseline, and ADR 0196 makes such targets budgets of benchmark policy. Critique of 2026-10-18 (latency-baseline-has-no-instrument): no instrument measures a /ui page's paint, event-to-screen or recovery. A baseline must come from its measuring command, and targets are benchmark-policy budgets. Proposed in ADR 0209 (Prismatic Lumen names the owner's mesh-wide view, and it owns no scheduler, event bus, store or API) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c296#12.

Current state

.ai/repo/benchmarks holds economics, observatory, pages and rust baselines; nothing for the mesh page.

Desired state

A baseline regenerated by its measuring command, and targets declared from it as budgets in .ai/repo/benchmarks/rust/policy.yaml.

Scope

  • docs/PERFORMANCE.md
  • scripts/ui
  • .ai/repo/project/intents
  • .ai/repo/benchmarks/rust/policy.yaml
  • .ai/repo/benchmarks/rust/README.md
  • .ai/repo/benchmarks/README.md
  • .ai/repo/benchmarks/rust
  • scripts/lib/ui-observatory.mjs
  • scripts/lib/ui-routes.mjs
  • scripts/lib/browser.mjs
  • scripts/lib/ui.test.mjs
  • scripts/lib

Out of scope

  • Optimisation work
  • A service worker or client cache

Dependencies

Acceptance criteria

  • A baseline with hardware, percentiles and routes is committed
  • No target appears in prose before it
  • The baseline is regenerated by a measuring command under scripts/ui and scripts/lib, beside scripts/lib/ui-observatory.mjs, with a declared route list; it is never edited by hand
  • Warm status names the route it times; first paint is measured as a cold and a warm load, and no client cache is assumed
  • I3140's why no longer quotes the proposed targets; they appear only as budgets in .ai/repo/benchmarks/rust/policy.yaml beside the UI budgets (ADR 0196, I2489), each citing the baseline it came from
  • The criterion latency-is-measured-before-it-is-claimed is rebound in .ai/repo/project/intents/the-owner-oversees-the-mesh-from-one-page.yaml to evidence: test with the case that runs the measuring command

Validation

  • majordomus plan validate

Evidence required

  • mesh_page_baseline

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I3140.yaml. Read it back with majordomus plan show I3140.

Searches the titles and descriptions of every page this site publishes.