Skip to content

Epic: tests give faster feedback with less redundant work #1849

Open
69 of 86 issues completed
Open

Description

@schlessera

Outcome

Offline CI and local tests provide the same meaningful product, security and compatibility evidence with less elapsed time and repeated work. Each guarantee is tested at the lowest sufficient level, with representative integration proof connecting detailed lower-level coverage to the real application. Environment lifetimes match test intent and safely amortize setup through sharing, private cloning or complete reset. Scenario matrices are justified by independent failure modes; theme parity is covered centrally in Storybook rather than multiplying unrelated runtime scenarios. Fast feedback, expensive final confirmation and endurance have separate execution controls; endurance can run alongside ordinary proof.

Why now

The maintainer requested a full duration catalog, then selected separating connection recovery from light/dark parity and asked for an optimization epic with scoped issues, without implementing changes yet. The offline local profile at 5cf1d548f7bd3a314eb36394dc5db0268db97da6 measured a recording-cap test at 602.65 seconds and four equivalent ten-disconnect scenarios at 92.86–94.57 seconds each. Successful exhaustive CI run 38549344893 took 27m40s across selected jobs and about 157.6 runner-minutes. Individual test-body time, setup/build time, job wall time and aggregate critical path are distinct measurements.

Current state — 2026-10-26

The implementation children from the earlier optimization pass are closed. The delivered work and its attributed receipts are recorded on each child and in the dated comments here. In summary: the recovery suite runs two responsive paths without a theme multiplier (#1851/#1905); Storybook owns light/dark parity; recording limit correctness is separated from the ten-minute endurance run (#1854/#1860/#1862); runtime packages build once per test invocation (#2458, superseding #2319); the 87 deliberate wait windows are inventoried and justified (#1855 through #2627-#2639 and #2647); browser and unit weights were refreshed (#2417, #2736). Each delivered receipt is scoped to its own source and runner; none is a controlled whole-CI benchmark.

The earlier pass still has two documentation/acceptance obligations:

  1. docs: correct browser weight refresh prerequisites #2550 corrects the contributor weight-refresh recipe, which still describes two browser jobs while the browser domain has three shards (PROOF_SHARDS, scripts/proof-shards.ts:3) and the refresher requires a successful attributed run and every fresh shard (refreshBrowserCosts, scripts/refresh-browser-costs.ts:15-29).
  2. ci: audit the test-cost epic's coverage and performance acceptance #2763 audits this epic's definition of done: named before/after source snapshots, controlled and uncontrolled comparisons kept apart, the coverage map for every bullet, and an explicit per-bullet completion verdict.

The 2026-10-25 multi-agent test-value audit added 15 separately scoped implementation children: #2961, #2962, #2964, #2965, #2966, #2967, #2973, #2974, #2975, #2976, #2977, #2978, #2979, #2980 and #2981. They cover frozen migration assertions, repeated lint scans and CLI queries, duplicated real-consumer/pointer cases, and moving detailed markup or query matrices to cheaper owners. Their issue bodies contain exact retained-proof maps, source anchors, focused receipts where measured and required mutation controls. These are proposed reductions; no post-change or whole-CI speedup is claimed.

The epic closes when the original obligations, the new children and the definition of done are satisfied and the maintainer accepts the audit's verdicts. The 2026-10-25 source audit does not itself fulfill #2763's before/after performance acceptance.

Shared context

Constraints and non-goals

Preserve unique behavioral assertions, justified responsive/pointer/auth/backend cases, offline guards, native browser proof, lifecycle cleanup, production limits, contract envelopes, pinned images, default discovery and required proof gates. Remove redundant parameter combinations only with an assertion-to-coverage mapping. Any change to a currently required endurance obligation or decision record must explicitly reconcile that obligation, not silently skip it. Do not add a blanket passing-test cache, shorten product deadlines, increase concurrency or shard counts without evidence, or make provider calls. Paid opt-in image-provider tests remain cataloged as unmeasured.

Breakdown

The native sub-issue list is the plan and the progress record. The new test-value implementation children can land independently, with the retained owners named in their bodies preserved across other cleanups. #2550 owns the documentation correction. #2763 owns the final coverage/performance acceptance audit after the relevant changes are delivered. Any further unmet definition-of-done bullet becomes a new child here.

Definition of done

  • Every native child is complete and its assertion mapping explains what was retained, moved or deduplicated. Remaining genuine theme-specific checks state a concrete reason.
  • Shared/cloned/reset environments have measured benefit and proven case independence, dirty/failure cleanup and resource ownership. Tests whose intent is startup, isolation or teardown retain the required fresh lifecycle.
  • Detailed variants use unit/component/small integration proof where sufficient; a documented guarantee/boundary map explains how representative E2E coverage completes the proof. No unique guarantee disappears through sampling or weaker doubles.
  • Storybook owns reusable light/dark layout and interaction parity, with meaningful failing-first/mutation evidence and accessibility checks in both themes.
  • Runtime suites preserve independent failure-mode coverage without an automatic Cartesian theme multiplier.
  • Every deliberate wall-clock wait has a named temporal assertion, minimum justified duration and reason controlled time/completion signals cannot provide equivalent proof; expensive real-time confirmation follows the explicit tier policy.
  • Recording limit correctness has fast proof; any remaining real-time endurance coverage has an explicit purpose and reviewed execution policy.
  • Intermediate pushes use the fast tier; expensive final confirmation proves the exact candidate. Endurance is independently discoverable/scheduled, runs alongside other proof under measured resource bounds, and does not distort ordinary sharding.
  • Comparable before/after results record source, runtime, resources, individual durations, setup, total runner consumption and CI critical path. Report savings and remaining bottlenecks without treating historical different-SHA runs as a controlled benchmark.
  • All required selected checks pass on the delivered source. Closed children alone do not establish performance improvement or retained coverage.

Unscheduled tracking work; no release milestone is selected.

2026-10-24: rewrote the body to the current outcome and remaining obligations; added #2763 to own the coverage/performance acceptance audit that no child owned; the dated reconciliations that were in the body are preserved in a comment.

2026-10-24 triage at main af6300478a07379178bd30221a31c0b917df2283: Refreshed moved current-source pointers by inspecting their named anchors. Historical receipts retain their source identities; scope, rulings, priorities and outstanding prerequisites are preserved. No runtime result or readiness is inferred from this navigation repair.

2026-10-26: reconciled the 15 native test-value follow-ups from the 2026-10-25 review. Earlier implementation receipts remain historical evidence; current open work and final acceptance are distinguished. No source/test behavior or measured CI result changed in this tracker update.

Activity

  1. added
    type: choreTooling, CI, release plumbing, dependencies.
    area: ui-reactReact chat/files/voice components, stores, WebSocket transport.
    area: ui-kitThe presentational design kit: components, tokens, Storybook, visual baselines.
    area: ciCI workflows, the gates they run, release scripts, packaging.
    epicA tracking issue. The work lives in its sub-issues; this one is never coded directly.
    on Oct 14, 2026
  2. 168 remaining items

  3. schlessera commented on Oct 25, 2026

    @schlessera
    OwnerAuthor

    Test-value audit follow-up — 2026-10-26

    Created and attached 15 detailed implementation children from the 2026-10-25 multi-agent review: #2961, #2962, #2964, #2965, #2966, #2967 and #2973 through #2981. All remain open and unscheduled; no test implementation changed.

    Suggested first wave by observable repeated work: #2977 (58 duplicate native button cases), #2973 (25 MCP round trips moved off the transport path), #2965/#2964/#2966 (22 duplicate or relocatable CLI launches), then #2967 (eight candidate PNG renders, requiring native qualification). These are operation counts, not elapsed savings. Smaller cleanup and markup-relocation children can proceed independently while retaining their exact alternate owners.

    #2550 retains documentation ownership; #2763 retains final coverage/performance acceptance after delivery. The body now distinguishes earlier delivered work from these new findings. Assertion-quality findings are grouped separately in #2963, and invented production-path proof in #2540.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: ciCI workflows, the gates they run, release scripts, packaging.area: ui-kitThe presentational design kit: components, tokens, Storybook, visual baselines.area: ui-reactReact chat/files/voice components, stores, WebSocket transport.epicA tracking issue. The work lives in its sub-issues; this one is never coded directly.priority: p2Wanted, not scheduled. Pulled in when a milestone has room.type: choreTooling, CI, release plumbing, dependencies.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions