MotirBuilding in public
MOTIR · moooon
onMotir
You’re viewing a public project. Anyone can view it — no account needed. Sign in to submit, upvote, or comment on requests.View-only — you can’t edit work items
MOTIR-374

6.7.3 Search/reporting/automation at scale — indexed filters + SQL-aggregated reports over the corpus, the exactly-once rule storm, and the combined admin a11y sweep

Done
Description

Estimate: 30m · Depends on: 6.7.1, 6.1.6, 6.2, 6.3, 6.5, 6.6

The finding-#57 sentinel for Epic 6: tests/e2e/epic6-at-scale.spec.ts (+ a Vitest companion for the query-shape asserts) over the 6.7.1 corpus.

Indexed search: builder filters and saved filters applied over the 10k corpus return paginated results + count without a full-set response (network census); EXPLAIN spot-checks on the heavy predicates (text contains via trgm, CF joins, date windows) show index scans at corpus size — no seq-scan over work_item or the value tables.

SQL-aggregated reporting: the dashboard widgets and the built-in reports (created-vs-resolved, status distribution) compute their aggregates IN the database — asserted two ways: no API response carries the row set (census), and the rendered numbers equal the 6.7.1 helpers' independently-computed expected aggregates (correctness, not just boundedness). Widget render at load completes without timeout at the CI cap.

The rule storm: a bulk sweep of N transitions over corpus issues matching an enabled rule → exactly N firings (no loss, no duplicates under simulated job retries — @inngest/test), bounded job payloads (an event carries ids, never issue bodies), and the actions all land (spot-check the written rows).

The combined a11y sweep: the fully-populated 6.5 admin hub — members + roles, workflow, custom fields, labels, components, automation rules, all sections at once over the corpus project — AND a populated dashboard pass the strict axe config in light AND dark. No per-story sweep renders this combined state; landmark/heading uniqueness and focus order across the stacked admin sections are exactly the class of bug only the combined page shows.

Acceptance criteria

  • The network census proves every search/reporting read is paged or aggregated (zero full-set responses over the corpus); the EXPLAIN spot-checks show index scans; the report numbers equal the independently-computed expectations.
  • The rule storm fires exactly N times under retry simulation with bounded payloads; the written actions verify.
  • The combined admin-hub + dashboard strict axe sweep reports zero violations in both themes.
  • The specs run in the reduced-cap CI lane (the board-at-scale precedent) and full-size locally; green in CI; the spec header documents the census as the Epic-6 finding-#57 sentinel (future Epic-6-touching PRs inherit the regression net).

Context refs

  • 6.7.1 fixture + helpers (the counts + expected aggregates)
  • tests/e2e/board-at-scale.spec.ts (3.5), the 4.7 at-scale specs, 5.6.3 — the census/DOM-budget assertion style + CI-lane pattern to mirror
  • 6.1.1 (the trgm index + parameterized compile path the EXPLAIN checks cover); the 6.2/6.3/6.6 read/aggregate contracts as they land
  • The strict-a11y sweep configs (2.4.6 lineage); findings #35/#57