fix(cli): record skipped files in the report bundle manifest - #1161
Merged
Merged
Conversation
report bundle skipped oversized, symlinked, non-regular, unsafely named, or unreadable files with only a CLI diagnostic, so a recipient holding just the ZIP could not tell which evidence was missing or why. The manifest now carries an omitted_files list with the run-relative path (engine logs under their neutral engine-logs/ prefix), a reason code, and the source size when known. The field is optional in the v3 schema so existing bundles still validate, and must be empty for report-only bundles. Closes #1101 Co-Authored-By: Claude Opus 5.5 <[email protected]>
…ission reason Directory walks now route FIFOs, sockets and devices through addBundleFile so they are recorded as not-regular-file instead of disappearing, and a file that is both oversized and badly named is recorded as unsafe-path, matching the check that actually rejects it first. Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
Want your agent to iterate on Greptile's feedback? Start a greploop in Claude Code and it will work through the open comments and keep going until this PR reviews clean. |
aviggiano
approved these changes
Sep 28, 2026
aviggiano
left a comment
Collaborator
There was a problem hiding this comment.
Both Greptile findings reproduced and fixed in cdd41a5: FIFOs/sockets/devices in walked directories are now recorded as not-regular-file, and an oversized file with an unsafe archive name is recorded as unsafe-path (the check that rejects it first). The extended test covers both and fails on the previous head; the source-log-stays-on-disk assertion is kept.
This was referenced Sep 28, 2026
Merged
Merged
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.
Closes #1101
Problem
ultrafuzz report bundleskips files it cannot safely package (e.g. an engine log over the 64 MiB per-file limit) and reports that only as aREPORT_BUNDLE_FILE_SKIPPED/REPORT_BUNDLE_SYMLINK_SKIPPEDCLI diagnostic. Nothing is written intobundle-manifest.json, so a recipient holding only the ZIP cannot tell which evidence is missing or why.Change
bundle-manifest.jsonnow carriesomitted_files: [{ path, reason, bytes? }], recorded at exactly the points that already emit a skip diagnostic.pathis run-relative; engine logs use their neutralengine-logs/<name>source path (same form aspath_mappings), so the manifest does not name the orchestration engine.reasonis one offile-size-limit,symlink,not-regular-file,unsafe-path,unreadable.bytesis the source size when it is known.excluded_roots/excluded_patterns, so they stay distinct from skipped files.omitted_filesis an optional, closed property of the v3 manifest (same approach asscope/verificationin feat(runtime): default to best-effort runs with agent-written PARTIAL reports #1120), so existing v3 bundles still validate. It must be empty forscope: "report-only"bundles.Testing
report bundle manifest records files it could not package: a 64 MiB + 1 sparse engine log and a symlinked log are listed with the right reasons and size, the manifest validates against the schema, an unknown reason is rejected, and the source log stays on disk.bad\name.txtis recorded asunsafe-path.verify-schema-registry), the otherreport bundletests, the stats bundle test, andcli-contracts(14/14) pass. ESLint and Prettier are clean.Trace.log/trace.logassertion, because APFS is case-insensitive. The new assertion in that test passes. It should pass on Linux CI.Not changed
The CLI skip diagnostic still includes the absolute
smithers/logs/...path. That is pre-existing and left for a separate change.🤖 Generated with Claude Code
The PR appears safe to merge; no new actionable issue remains, and both previous threads are resolved.
Summary
The PR adds skipped-file details to full report-bundle manifests and documents the new field. The changes since the previous review route non-regular entries through omission recording, align unsafe-path classification with packaging order, and extend the test coverage.
Reviews (2) · Last reviewed commit: "fix(cli): record non-regular and unsafe-..."