errors-api-e2e
Installation
SKILL.md
Errors API — end-to-end smoke test
Proves the public Errors API against the running webapp with real HTTP. No
mocks. The error data plane is ClickHouse (errors_v1 + error_occurrences_v1,
both materialized-view-fed from task_runs_v2) plus Postgres ErrorGroupState
for lifecycle status; this skill seeds straight into task_runs_v2 and lets the
MVs do the rest.
Code under test:
apps/webapp/app/routes/api.v1.errors.ts—GET /api/v1/errors(list).apps/webapp/app/routes/api.v1.errors.$errorId.ts—GET /api/v1/errors/:errorId(detail).apps/webapp/app/routes/api.v1.errors.$errorId.{resolve,ignore,unresolve}.ts— state actions.apps/webapp/app/presenters/v3/ApiErrorListPresenter.server.ts/ApiErrorGroupPresenter.server.ts.apps/webapp/app/presenters/v3/ApiRunListPresenter.server.ts— thefilter[error]addition onGET /api/v1/runs.apps/webapp/app/v3/services/errorGroupActions.server.ts— resolve/ignore/unresolve (nullableuserId).- Attribution:
api.v1.projects.$projectRef.$env.jwt.tsstampsact:{sub}for PAT and UAT exchanges;@trigger.dev/rbacsurfacesact.subthrough bearer auth; the action handlers readauthentication.actor?.sub.
errorId is error_<fingerprint> (round-trips via ErrorId in @trigger.dev/core/v3/isomorphic).