Attach a transcript to a change that already exists

agent backfill, and the difference between a proven link and an asserted one.

Written By Dustin

Last updated About 3 hours ago

You have an agent transcript and a change it plainly produced, but the two were never connected — the capture was off, the run predated the repository's provenance setup, or the work happened outside TOVIO.

tovio agent backfill <chg-id> --session-from ./transcript.jsonl

Nothing rewrites history

A content-addressed commit cannot gain an attachment. So backfill does not touch the commit at all: it stores the run record and appends a signed audit entry recording who asserted the association and on what evidence.

What it does and does not establish

This is the whole reason the tier exists, and it is worth being blunt about.

EstablishedNot established
Who claimed the associationThat the transcript produced the change
That the claim has not been altered sinceThat the transcript is complete or truthful
When the claim was madeAnything cryptographic about the run itself

Nothing can establish the right-hand column retroactively. That is not a limitation of the implementation; it is what "after the fact" means. Every read surface labels the result backfilled (link asserted, not proven) so nobody downstream mistakes it for the attested tier.

Refusals worth knowing

  • TVO-PROV-012 — that change already carries a run record. A commit-time record is strictly stronger, and shadowing it with an asserted one would be a downgrade the reader could not see.
  • TVO-PROV-013 — there is no signing identity, so nobody can be recorded as the asserting party. An unsigned assertion would be worthless.
  • TVO-PROV-014 — the change touched protected paths, and a clear transcript may not be stored beside protected content. Refused fail-closed.
  • TVO-PROV-008 — capture is off for this repository. Backfill honours the same policy slot as commit-time capture, so turning capture off also turns backfill off. Re-enable it for the repository, backfill, and set it back.
  • TVO-PROV-007 — the transcript failed the mandatory secret scan. Backfill runs the same pipeline commit-time capture does, and because the file is always explicitly named, a finding is always an error rather than a warning.

When to use it, and when not to

Use it when the provenance genuinely exists somewhere and the alternative is losing it. Do not use it to manufacture a paper trail: the signed entry names you as the party who asserted the link, permanently, and the label travels with the record everywhere it is read.

If you want proven provenance, the answer is upstream — commit under a capability token, and let the attested tier record itself.