feat(insights): split guardrail rejections from tool failures #12
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/insights-guardrail-class"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Probleem
Het Worker Insights-dashboard telt elke
is_error=trueMCP tool_result als "tool-fout". Maar veel daarvan zijn bedoelde guardrails die de agent juist moet zien en afhandelen: verify-gate (Plan vereist ALIGNED maar verify gaf DIVERGENT…),MISSING_BASE_SHA,already in terminal state,JOB_CANCELLED, enz. Die vertekenen de error-rate (een tool lijkt kapot terwijl het platform bewust een actie weigerde).Aanpak (alleen metrics — MCP-server ongewijzigd)
We veranderen
is_errorin de MCP-server niet (de agent moet die meldingen blijven zien als "fix dit"). In plaats daarvan classificeren we ze in de insights-laag:lib/worker-insights/taxonomy.ts: nieuweisGuardrailRejection(text)+GUARDRAIL_PATTERNS(met comment die het verschil metclassifyErroruitlegt).lib/worker-insights/queries.ts:getToolFrictionhaalt nu ook de fout-teksten op (parallelle query, zelfde join/scoping als de aggregate), classificeert ze, en splitsterrors(echte fouten) vanrejections(guardrails).errorRate = errors / (calls − rejections)met divide-by-zero-guard; NULL-tool rijen worden symmetrisch onder'unknown'geteld.components/worker-insights/insights-view.tsx: extra kolom "Rejections (guardrail)" (semantischetext-warning-token), error-rate gebruikt de nieuwe noemer. Rejection-volume blijft zichtbaar.Test
taxonomy.test.ts(6) + uitgebreidequeries.test.ts(incl. mixed real+guardrail én all-guardrail → errorRate 0).npm run verify: 206 tests + lint + typecheck groen.