Skip to content

test(studio): revamp acceptance suite - #762

Merged
LinuxDevil merged 4 commits into
mainfrom
revamp/f26-acceptance
Oct 28, 2026
Merged

LinuxDevil merged 4 commits into
mainfrom
revamp/f26-acceptance

Conversation

@LinuxDevil

Copy link
Copy Markdown
Owner

Encode the revamp's success metrics (failed run in 2 interactions, slowest 24h run in 3, reload keeps filters on every route, narrow nav drawer with no sideways scroll) as an acceptance e2e suite, type-check e2e in CI, and fix the cold-run studioUx ?token= flake.

Ticket: F26 (Forge Observe vs LangSmith evaluation follow-up)

Changes

  • test(studio): cover the Datasets routes in the acceptance suite
  • test(studio): enforce the acceptance suite's per-route guards and type-check e2e
  • test(studio): settle the ?token= landing check instead of racing the agent rename
  • test(studio): revamp acceptance suite

Verification: focused vitest, tsc --noEmit, eslint on changed files (details in the review package); full suite and fallow run in CI.

🤖 Generated with Claude Code

LinuxDevil and others added 4 commits October 29, 2026 01:30
e2e/revamp.spec.ts encodes the revamp's success metrics against a
deterministic seed (e2e/fixtures/seedObserve.ts, the .smoke/seed-eval.ts
data shape served as a fake daemon that honours the traces query params):
failed run -> error text in 2 interactions, slowest run in 24 h in 3,
every route in the route table survives a reload with its filters (hash
byte-identical, controls show the values), and at 860/375 px every route
has the nav as a drawer with no sideways scroll. axe stays in a11y.spec.ts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…agent rename

Bare #/agents becomes #/agents/<first saved agent> once the agent list
loads, so "lands on #/agents" only passed when the poll saw the hash
before that rename. Wait for the network to settle and accept either form.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e-check e2e

The reload loop now fails with a clear message when a screen has no
FILTERS entry or a route is in neither CONTROLS nor NO_CONTROLS, and
apps/agent-forge's typecheck script (run in CI) also checks e2e/ via
e2e/tsconfig.json, so Record<ScreenId, string> catches a new screen at
tsc time. The 24h step now asserts the traces request asks for the last
24 h and the URL stays at its default.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Datasets keeps only its server-side page in the URL, so its reload check
opens ?offset=50 and asserts the pager is still past page one after the
reload; the evaluators/annotation placeholder routes stay in NO_CONTROLS.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@LinuxDevil
LinuxDevil merged commit 3415193 into main Oct 28, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant