Task file: tasks/issue-74-executor-attribution.md
Problem
Transcript-based executor attribution works intermittently. Across eight consecutive real runs on one machine, six recorded Executor: unknown (source: unknown) while two recorded the correct <model> (source: transcript) — and an earlier stretch of six runs the same week attributed all of them correctly. Same repo, same launch style, so detection regressed or is sensitive to some environmental detail (launch path, transcript location, timing) that fails silently.
The ledger schema supports attribution (executor_model, executor_source); the detection just doesn't land reliably, which erodes exactly the audit trail the field exists for — after the fact there is no way to say which model executed which run.
Proposal
- Add a debug event (or
doctor check) that reports why transcript detection failed when it falls back to unknown — file not found, no matching session, parse failure — so the failure mode is diagnosable instead of silent.
- Provide an explicit override for harnesses that know the answer:
TDD_EXECUTOR_MODEL env var or run start --executor <id>, recorded with source: declared.
- Optionally warn at
run start when detection yields unknown, so the gap is visible at the moment it can still be fixed rather than discovered in a later audit.
Task file:
tasks/issue-74-executor-attribution.mdProblem
Transcript-based executor attribution works intermittently. Across eight consecutive real runs on one machine, six recorded
Executor: unknown (source: unknown)while two recorded the correct<model> (source: transcript)— and an earlier stretch of six runs the same week attributed all of them correctly. Same repo, same launch style, so detection regressed or is sensitive to some environmental detail (launch path, transcript location, timing) that fails silently.The ledger schema supports attribution (
executor_model,executor_source); the detection just doesn't land reliably, which erodes exactly the audit trail the field exists for — after the fact there is no way to say which model executed which run.Proposal
doctorcheck) that reports why transcript detection failed when it falls back tounknown— file not found, no matching session, parse failure — so the failure mode is diagnosable instead of silent.TDD_EXECUTOR_MODELenv var orrun start --executor <id>, recorded withsource: declared.run startwhen detection yieldsunknown, so the gap is visible at the moment it can still be fixed rather than discovered in a later audit.