Repository navigation
Closed
Labels
enhancementNew feature or requestNew feature or requestready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agent
Description
This was generated by AI during a grill-with-docs session.
Parent
What to build
Record Custom runner sessions into OTLP Session traces and enforce accounting_gap and web-search Void Trial checks (#1468 Q1.6, Q2.4, Q2.6; ADR 0032).
- In-sandbox live
record_command: expose the recorder command passed inrequest.jsoninside the Trial sandbox so a Custom runner can wrap supported Harness CLI calls with--role <role>, streaming live into the Trial's session folder so mid-Trial 85% quota monitoring pauses the Experiment onusage_limitand finished streams cannot be deleted by the runner. - Post-run
output_dir/sessions.jsonconversion: acceptoutput_dir/sessions.jsonlisting top-level raw Harness streams ({ role, harness, stream_file, started_at, ended_at }) and/or direct-SDK session records ({ role, transcript_file, started_at, ended_at, models: { <model>: { uncached_input_tokens, cache_read_tokens, cache_write_tokens, output_tokens } } }). Convert both into standard OTLP.logs.jsonland.spans.jsonlin the Trial's session folder (convertinguncached_input_tokensinto cache-inclusive input tokens for pricing from the Experiment's frozenprices.json, and scanning converted Claude/Codex streams for quota rejections), feeding per-role accounting, fix-leak scanning, Waterfall, Trial Peek, and OTLP export through one trace representation. - Web-search and
accounting_gapVoid checks: void any Trial whose normalized session transcripts contain a web-search tool call. Count outbound provider connections throughHTTPS_PROXYand non-probe Harness invocations through the sandbox'sPATHwrappers; if provider traffic occurred (or a Custom runner with declaredharnesses/providersendeddeliveredorstopped_to_ask) with zero recorded sessions—or fewer Harness session entries than non-probe Harness runs that crossed the proxy—mark the Trial as a Void Trial (accounting_gap).
Acceptance criteria
- Wrapping a Harness CLI call with
record_command --role <role>streams.logs.jsonland.spans.jsonllive into the Trial's session folder and triggers live 85%usage_limitpauses. - Both raw Harness stream entries and direct-SDK
uncached_input_tokensentries inoutput_dir/sessions.jsonconvert into.logs.jsonland.spans.jsonl, price tokens accurately from frozenprices.json(never trusting runner-reported USD), scan transcripts for fix leaks, and render in Trial Peek and Waterfall. - A Trial whose session transcript records a web-search tool call is voided.
- A Custom runner that sends provider traffic over
HTTPS_PROXY, runs a Harness across the proxy without recording a matching session, or endsdelivered/stopped_to_askwith declaredharnesses/providersand zero recorded sessions becomes aVoidTrial (accounting_gap).
Blocked by
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agent
Activity
JacobStephens2 commentedon Nov 14, 2026
Closed by #2227, merged into issue-1468 by a thirdshift Ticket run with Self-merge.