NameLast commit messageLast commit date
..
cliRemove the custom apps plugin (it'll come back but better) (#1476)3 months ago
cloudRemember the last-visited org for bare URL entries (#1481)3 months ago
cloudflareFix self-host/Cloudflare update card always showing; show version in dashboard (#1204)4 months ago
deskDeveloper-session e2e: chat-theater recordings, focus timeline, one-mp4 films (#962)4 months ago
desktopAdd update-available notifications across the CLI, web shell, and desktop app (#1182)4 months ago
desktop-packagedDesktop boot: show window immediately, self-heal stale launchd state, fix boot-path latency (#1303)4 months ago
desktop-vmRemove the custom apps plugin (it'll come back but better) (#1476)3 months ago
localDefault OAuth tokens to the durable file secret store on local (#1478)3 months ago
notes[codex] Fix desktop black screen fallback (#1051)4 months ago
recordingsApps console: source management UI and e2e coverage (#1365)4 months ago
scenariosFill OAuth connection labels from account identity instead of the owner default (#1482)3 months ago
scriptsMake the e2e suite green and gate cloud + self-host in CI (#1258)4 months ago
selfhostFix org OAuth connection token partitioning in encrypted-secrets (#1462)3 months ago
setupApps console: source management UI and e2e coverage (#1365)4 months ago
srcRun connect and oauth handoff scenarios on per-run emulator instances (#1380)4 months ago
targetsFix org OAuth connection token partitioning in encrypted-secrets (#1462)3 months ago
viewerRuns viewer: live session player with URL bar, trace rail, self-hosted trace viewer (#980)4 months ago
.gitignoreFix self-host data loss on restart (WAL split-brain) + production-image e2e target (#993)4 months ago
AGENTS.mdTrim agent instructions (#1433)3 months ago
CHANGELOG.mdVersion Packages (#1436)3 months ago
package.jsonRevert "Validate OAuth discovery metadata identity (RFC 8414 / RFC 9728 / RFC 8707) (#1457)"3 months ago
RUNNING.mdTrim agent instructions (#1433)3 months ago
tsconfig.jsone2e scenarios declare dependencies via Effect DI (#942)4 months ago
vitest.config.tsMake the test suite parallel-safe and speed up CI (#1273)4 months ago
AGENTS.md

E2E policy

Detailed target setup, commands, ports, desktop VM operation, endpoint discovery, viewer usage, and recording workflows live in RUNNING.md. Read only the relevant section for the task.

Scenario structure

  • Put cross-target scenarios in scenarios/*.test.ts; target-specific suites stay under their target directory.
  • Declare capabilities by yielding services from src/services.ts (Target, Api, Browser, Mcp, Billing, Cli, Telemetry, and others). Do not add a separate capability list. Unsupported targets skip and record why.
  • Create fresh identities and organizations through Target. Never depend on shared state or customer-derived fixtures.
  • Clean up created resources with Effect.ensuring; trailing cleanup statements are insufficient because mid-test failures must not leak state.
  • Assert through the real typed API, browser, MCP, CLI, emulator ledger, or exported telemetry surface. Do not reach into implementation internals to make a scenario pass.

Browser and telemetry

  • Wrap browser work in browser.session(identity, ...) and use step labels phrased as user actions. Prefer role-based locators and wait for navigation or network settling after actions that change pages.
  • Browser sessions produce screenshots, video, and a Playwright trace. Do not add separate recording machinery for ordinary scenarios.
  • Telemetry assertions target spans that reached the motel store, not values stamped only inside application memory. Export is eventually consistent, so use the provided polling helpers.

Isolation and quality

  • Never hardcode ports or attach to an arbitrary existing server. Use the checkout's claimed port block or explicit E2E_<TARGET>_URL attachment.
  • Test the user-visible contract and important failure path, not selectors or implementation details alone.
  • Run the narrowest relevant target while iterating. Before handoff, provide the viewer/run URL, recording or trace, and the exact outcome to inspect.
  • Do not weaken, skip, or rewrite a failing assertion merely to make the suite green. Fix the product, fixture, or scenario contract.