Skip to content

trace: field-report findings 3-5 — command evidence, container warnings, width control - #26

Open
lroolle wants to merge 4 commits into
mainfrom
fix/trace-field-report
Open

trace: field-report findings 3-5 — command evidence, container warnings, width control#26
lroolle wants to merge 4 commits into
mainfrom
fix/trace-field-report

Conversation

@lroolle

@lroolle lroolle commented Jul 29, 2026

Copy link
Copy Markdown
Member

Summary

Closes out the 0.11.0 field report (findings 1-2 shipped in c9c9a7b for v0.12.0). One commit per finding:

Closes #21, closes #22, closes #23.

Test plan

  • go test ./... green, go build ./... clean
  • New tests: git-root provenance (fallback success, direct hit, nothing-resolves), command summary on mutation/error evidence (collapse + bound + non-command tools), width control (default truncates, 0 disables, cap applies to turn and step headlines)

🤖 Generated with Claude Code

lroolle and others added 4 commits July 28, 2026 22:36
session_git_root_missing fired whenever the session's recorded cwd
didn't resolve on the current filesystem — even when the process-cwd
fallback then found the right repo. In containerized/remote setups the
recorded path is a host path, so every trace carried the warning
despite correct correlation.

A successful fallback now records git.resolved_from ("session_cwd" |
"process_cwd") on the correlation block; the warning fires only when
nothing resolves.

Closes #22

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ToolCallEvidence answered "did this call touch the workspace" (paths,
mutation flags) while hiding how: for Bash only redirect targets
survive path extraction, so auditing a Bash mutation meant opening the
raw JSONL. An audit trace's whole job is "what did it touch".

Evidence now carries a bounded one-line summary of the command for
command-carrying tools (providers normalize their shell dialects onto
the "command" input key). Paths are unchanged; non-command tools carry
no summary.

Closes #21

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
outlineHeadlineRunes was a constant: headlines cut mid-word at 160
runes and the only escape was --full, which dumps the entire bundle.
The cap also ran before JSON marshaling, so script/skill consumers got
the same truncation with no recourse.

BuildOutline now takes the width; `ccx trace --width N` sets it, 0
disables truncation, default stays 160, and it applies to text and
JSON outlines alike.

Closes #23

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant