Skip to content

feat(evals): add completion-rate baseline harness - #1032

Merged
TheGreatAxios merged 4 commits into
mainfrom
cl-7932-baseline-task-completion-rate-before-the-04x-line-and-re
Sep 15, 2026
Merged

TheGreatAxios merged 4 commits into
mainfrom
cl-7932-baseline-task-completion-rate-before-the-04x-line-and-re

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Collaborator

Summary

  • Adds a repeatable harness running a frozen task set end to end through the agent loop
  • Reports completion rate plus turns, retries, compaction, doom-loop and thrash signals
  • Records the pre-restructure baseline at fifty percent with commit SHA and provider details

Verification

  • bun run check passes (lint, typecheck, build, guarded suite)
  • Harness re-run reproduces the fifty percent baseline deterministically

Fixes CL-7932

@linear-code

linear-code Bot commented Sep 14, 2026

Copy link
Copy Markdown

CL-7932

Summary: repeatable harness runs a frozen 4-task set end to end through the production agent loop with scripted mock responders, reporting completion rate plus control-layer signals (turns, retries, compaction events, doom-loop/thrash interventions, wall clock). Baseline on b509ed3: 50.0% (4/8 runs, 2 repeats), deterministic across repeats. Task set frozen as tasks.json v1 for the post-0.4.x re-measure.

Verification: bun scripts/eval-completion.ts --repeats 2 --out evals/completion/baseline-2026-09-14.json; bun test evals/completion/lib.test.ts (7 pass); bun run check (exit 0).
…dline

The sync finally cleared the timer before Promise.race settled, so RunStatus timeout was unreachable and --timeout-ms was a no-op. Await the race so the timer clears on settle, export withTimeout for testing, and guard main() with import.meta.main. Adds scripts/eval-completion.test.ts proving a hung run rejects after the timeout. Baseline re-run still 50.0% (4/8).
@TheGreatAxios
TheGreatAxios force-pushed the cl-7932-baseline-task-completion-rate-before-the-04x-line-and-re branch from 5983dc2 to 77b8c30 Compare September 14, 2026 17:54
…e suspensions (#1047)

A run that times out after emitting a failure signal kept the timeout status instead of being recorded failed. The deadline now aborts the in-flight send and the runner quiesces the agent pump and collector before grading, so verify never runs on partial state. Gate suspensions are summed into completion totals and printed in the human summary instead of being collected and dropped.
#1049)

* fix(evals): contain completion-harness task paths and validate timeout

Confine custom task-set fixture/script/verify references to the harness directory, mark the version-controlled grading trust boundary, reject degenerate timeout values, and re-record the baseline against the current tree.

* fix(evals): align baseline and totals with gate-suspension signal

Carry the gate-suspension total through schema, aggregation, and summary so the checked-in baseline validates. Add a regression test asserting the frozen baseline against the current report schema.

* fix(evals): label estimated turns and failed tool calls honestly (#1062)
@TheGreatAxios
TheGreatAxios merged commit 71d9052 into main Sep 15, 2026
13 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