Repository navigation
Commit ea6fffa
fix(evals): bind HTTP resumes to experiment identity (#4707)
* fix(evals): bind HTTP resumes to experiment identity
* fix(evals): publish only validated complete HTTP samples
Serialize each result and raw sample before writing them. Stage samples
in the destination directory and publish them without overwriting existing
captures, so malformed responses or failed writes cannot leave a poisoned
sample that prevents a later valid resume. Cover invalid probabilities,
non-finite raw extras, successful retry, and existing sample preservation.
* fix(evals): refuse dangling samples and honor file umask
Reject unusable existing sample destinations before inference and after
an atomic-link race. Create staged files with ordinary exclusive-open
permissions instead of mkstemp's forced 0600; preserve the current umask
without modifying process-global settings. Test dangling links, clean
staging after refusal, and normal shared-readable sample modes.
* fix(evals): score sparse subsets without fabricated coverage
* fix(evals): validate resumed metrics before publishing results
Use one row admission path for fresh responses and resumed rows. Reject
nonfinite JSON, invalid timings and malformed token counts before inference,
partial-log appends, samples or final-output creation. Preserve absent server
timing and valid zero counts.
The new regressions fail on the previous implementation. All 23 HTTP runner
tests and Python compilation pass locally on hash-verified source; hosted
Bazel and the full platform matrix remain required.
* fix(evals): validate calibrated replay evidence
Require calibrated partial rows to retain the exact raw probabilities
that produce their reported calibrated values. Refuse fabricated raw
probabilities on uncalibrated runs, before HTTP calls or file writes.
Add behavioral resume regressions for missing, changed and unexpected
raw values, tampered calibrated values and successful exact replay.
* fix(evals): preserve unknown usage in resumed reports
Keep input, state and dropped-token counts distinct. Missing server
telemetry stays null; reported zeroes remain measured zeroes. Score
observed values with explicit coverage and refuse full-cohort truncation
claims when some cases are unmeasured.
Advance HTTP experiment identity to version 2 and refuse ambiguous older
partial and completed results instead of relabeling their metrics.
All 43 Python runner and scoring tests pass, including interrupted
resume and CLI reporting with controlled HTTP responses. Baseline source
reproduced the telemetry failures. Python parsing and whitespace checks
pass; Bazel execution and live model qualification were not performed.
* fix(evals): put intent engine modules on the test import path
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>1 parent 68c1dd5 commit ea6fffa
7 files changed
Lines changed: 1153 additions & 83 deletions
File tree
- evals/intent_engine
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
8 | | - | |
9 | | - | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
13 | 16 | | |
14 | 17 | | |
15 | 18 | | |
| |||
24 | 27 | | |
25 | 28 | | |
26 | 29 | | |
27 | | - | |
28 | | - | |
| 30 | + | |
| 31 | + | |
29 | 32 | | |
30 | 33 | | |
31 | 34 | | |
32 | 35 | | |
33 | | - | |
34 | | - | |
35 | | - | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
36 | 39 | | |
37 | | - | |
| 40 | + | |
0 commit comments