Repository navigation
feat(preallow): name the surface that held the match in withheld reasons, and state the output scan boundary - #20
Merged
Conversation
The three paths that withhold a whole output for a credential-shaped match, in the file a large result is saved to, in a hook's note beside the result, and in text the agent reads that the tool's result does not hold, shared one reason. The log could not tell which of them real sessions meet, so whether a branch still earns its place could not be answered from evidence. Each now names its surface; a failed scan and an unreadable full-output file keep their own reasons. What the scan finds is unchanged. The mod's AGENTS.md now states the output scan's boundary: it promises what its patterns find and no more, does not learn this machine's secret values, scan calls the plugin did not allow, or search redacted output for the originals, and leaves keeping a secret out of reach to the engine's sandbox, permission rules, and the user's credential setup. A pattern stays broad and is narrowed only for a false positive that took away what a real session needed, since a false positive costs every copy of the value, the whole output where it cannot be redacted, and the classifier for the same call run again. The file is grouped under headings by what a change touches. The README states that scope beside the redaction it describes, lists the scan's known gaps by what a user meets (unknown formats, known formats gitleaks excludes, output formatting, false positives), and lists the `withheld` reasons. A test titled `no secret: ...` matched the secret-assignment shape and was redacted in a real session's test output; the clean cases are now titled `nothing found: ...`. Cases that fail on the same bug as another test are removed, and two fixtures now reach branches no test did: the walk stopping at its entry count with no folder left, and the last fetch falling back to the common `FETCH_HEAD`.
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.
preallow 0.0.11 names, in a withheld output's reason, where the credential-shaped match was: the full output a large result leaves in a file, a hook's note beside the result, or text the agent reads that the tool's result does not hold. The three shared one reason, so the log could not show which of them real sessions reach, and a proposal to remove one of those branches had no evidence either way. A failed scan and an unreadable full-output file keep their own reasons, and what the scan finds is unchanged.
The mod's AGENTS.md now states the output scan's boundary. It promises what its patterns find and no more. It does not learn this machine's secret values, since finding and maintaining that list is a responsibility of its own and every value the plugin held would be one more place to leak from; nor does it scan calls the plugin did not allow or search redacted output for the originals. A pattern is narrowed only for a false positive that took away what a real session needed, since a narrower shape lets a credential through. The file is grouped under headings by what a change touches.
The README states the scan's scope beside the redaction it describes: only calls the plugin allowed, and finding nothing does not show that the output holds no secret. Its known gaps now describe the scan's misses and false positives by what a user meets, and the
withheldlog entry lists every reason. Output handling moves up to follow what the judge leaves to native approval, and known gaps now come before the log reference.The clean-case test title
no secret: ...itself matched the secret-assignment shape and was redacted in a real session's test output; those titles now readnothing found: .... Cases that fail on the same bug as another test are removed, and two fixtures now reach branches no test reached: the directory walk stopping at its entry count with no folder left unread, and the last fetch falling back to the commonFETCH_HEAD. Each new reason was reverted to the old shared text in turn, and a test failed each time.