Repository navigation
fix(retro): restore artifact copying and report failure evidence - #1072
Draft
tbhb-agent wants to merge 1 commit into
Draft
tbhb-agent wants to merge 1 commit into
tbhb-agent wants to merge 1 commit into
Conversation
Dangling extras must not count as copied evidence, and directories containing the destination must fail before copying their own output. Failed reports must keep exactly what the invocation emitted so users can inspect the output after an unsuccessful retrospective creation. Assisted-by: codex:gpt-6.1-sol Signed-off-by: Tony Burns <tony@tonyburns.net>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Skip missing extras, reject directories containing their copy destination, and preserve empty or partial output from failed canned reports. Add artifact regression tests against the unchanged shell.
Why
Dangling links counted as copied extras, self-containing directories recursively copied the output tree, and failed reports discarded their output. These outcomes prevented the Go engine from preserving the expected evidence.
Verification
Delivery head: 51a638c. Commands passed on the tree committed at this head.
go test ./internal/retro ./internal/agentrepopasses TestRetroNew, TestRetroSymlinkedTranscript, and TestRetroDanglingExtra. Checks cover independent transcript content, linked transcripts, and canned report contents against shell expectations.scc4.1.0 confirms the change is within limits, including the complete new test file. The diff keeps all original tests and doesn't change generated copies, gates, exclusions, or shell entry points.., a containing directory, and a path through a symlinked component. Each fails with the self-copy diagnostic, empty standard output, the only transcript copy, and no retrospective document. Assertions use Go outcomes directly.AC5 commands and results:
go vet ./internal/retro ./internal/agentrepo: pass.go test ./internal/retro ./internal/agentrepo: pass.mise run lint-go: pass.mise run check-generated-skills: pass.mise run cover-go: fresh profile passes required coverage floors for files, packages, and total.go run ./cmd/agentrepo size --base origin/main --format json: pass (within bounds).The commit wrapper passed
mise run lint,mise run test, and gitleaks. A separate private-string leak scan passed with the configured lists loaded. SSH verification confirms the signature against the configured public key.No doc impact. Existing docs describe the artifact contract restored here.
Activation belongs to #1002 (No consumer impact). Frozen shell entry points are unchanged.
Risk
Path resolution could reject a valid directory or miss containment. Regression tests cover ordinary directories and paths through symlinked components. Failed reports intentionally leave empty or partial files. Revert this commit to undo the change before activation.
Related
Closes #1031. Follows #1046 and #1048. Separate preflight parity has issue #1032. Activation has issue #1002.