Which agent did it?
Redacted action records describe programs, paths, hosts, MCP calls, verbs, and agent identity. Queries cover the legacy runs directory by default or repository refs with --repo PATH. They describe recorded evidence, not activity the capture never observed.
tine who --program git --since 7d --by agent,model --json
tine touched --path src/main.py --json
tine actions result.tine --json
tine audit --policy action-policy.toml --strictPolicy files support TOML or JSON deny/warn rules. Deny matches fail; --strict also fails on warnings. Unreadable runs or action-cap limits fail coverage unless --allow-partial is explicit. SQLite action indexes are rebuildable caches with per-user keyed trust stamps; trust states are recomputed from runs and signed manifests.
Agent identity and signed actions
tine keygen --agent release-agent
tine agent id --agent release-agent
tine agent keys
tine actions result.tine --sign --agent release-agent
tine audit --policy action-policy.toml --require-signedopentine-agent/1 records harness, model, provider, digests of definition files, optional key fingerprint, instance nonce, and claimed parent links. Definition contents are hashed rather than stored. Named agent keys live in user configuration outside repositories. Agent pin files are inert until tine agent trust; edits revoke trust.
tine-actions/1 signs a hash-chained action manifest bound to the run and step graph. Outputs expose unsigned, verified, mismatch, or unknown-key states. Use trusted keys or pins to verify before relying on a claimed identity; a did:key names a key rather than an owner.
who and touched support --agent-ref, --lineage, --verified-only, and grouping by agent_ref. Verified lineage requires evidence from both runs and the parent spawn step. A trusted-key child naming a real spawn step still carries the documented lineage limit; signatures do not establish everything about an execution.
Use blame and git links to connect recorded writes to code, or in-toto evidence to attest a run's content address.