You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Close the review gaps: locked hash re-check, sticky QA cancel, validator parity
Fixes from an independent review of the fix batch.
The audit import checked its pinned content hash in its own short
session, then wrote findings later without re-checking: an in-place
overwrite committing in between still landed old-bytes findings as
SUCCESS on the new bytes, and the stale SUCCESS blocked the None->QUEUED
CAS that would audit them. sync_pre_trial_to_task_version now takes the
expected hash and re-checks it under the version row lock on every
write; the unlocked early check remains only to spare the artifact read.
Cancelling QA during the new admission-deferral window (task RUNNING,
agents settled, audit live) did not stick: cancel only settled
VERDICT_PENDING tasks, so the sweep's advance backstop re-entered
admission minutes later and started a QA run the user had cancelled,
against a brief whose findings the cancel wiped. cancel_task_qa_core now
settles a RUNNING task with no active agent trials the same way.
The shared validator skipped ActionItem's optional fields (id, links_to,
exploit_evidence, exploited, causal), which the importer's parser still
type-checks -- a wrong-typed value passed the sandbox and then failed
import terminally with no retry. The validator now type-checks them.
The with_verdict=False QA brief said "set verdict null" while its output
template still showed the verdict object and schema; with the strict
verifier that contradiction would burn every attempt. The template now
renders null and omits the schema when no verdict is requested. Also
hides the drawer Retry button on qa/audit rows, which could only ever
render the server's 400.
Claude-Session: https://claude.ai/code/session_01ACF6SUXdbLFarpj3qwF1Ki
returnf"""You are the QA auditor for the task `{task_name}`. You are in a clean analysis sandbox, not the task's own environment. The task source, each trial's logs, and each trial's trajectory come from the oddish-query CLI. Do not solve the task.
355
365
356
366
Audit these trials:
@@ -389,13 +399,10 @@ def build_qa_brief(
389
399
"trajectory_summary": <object with the exact shape given in the trajectory summary section>
0 commit comments