Repository navigation
needs_capture_file was a requirement enforced by nothing - #104
Merged
Merged
Conversation
aircrack-ng declared needs_capture_file=True and the preflight's ToolContext had a matching capture_file slot, but PreflightRunner.prepare_tool never resolved it (root/target/interface/wordlist/api_key/gpu all are) and nothing read the slot. aircrack-ng is driven from the CLI and the chain with its .cap passed in, so it never reaches the preflight: the flag connected to nothing, the dangling- declaration shape of #90/#102. Remove the dead flag, its aircrack-ng setter and the unused ToolContext slot, and add test_requirement_flags_enforced: every needs_* field on ToolRequirement must be read by the preflight or named carried-for-documentation (only needs_network). It caught needs_capture_file. Bump 12.1.9 -> 12.1.10.
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.
What
needs_capture_filewas a requirement declared and enforced by nothing. aircrack-ng carriedneeds_capture_file=Trueand the preflight'sToolContexthad a matchingcapture_fileslot, butPreflightRunner.prepare_toolnever resolved it (its siblings root/target/interface/wordlist/api_key/gpu all are), and nothing read the slot. aircrack-ng is driven from the CLI and the chain with its.cappassed in, so it never reaches the preflight and the flag connected to nothing.Same dangling-declaration shape as the root defect in #90/#102, found by continuing that audit into the preflight's requirement flags.
Change
needs_capture_filefield, its aircrack-ng setter, and the unusedToolContext.capture_fileslot. aircrack-ng's.capstill comes from the caller (CLI/chain), unchanged.test_requirement_flags_enforced.py: a reachability guard in the style oftest_reachability/test_db_schema. Everyneeds_*field onToolRequirementmust be referenced by the preflight, or named as carried-for-documentation with a reason (onlyneeds_network, which the preflight cannot meaningfully pre-check). A new requirement flag that nothing enforces now fails a test rather than sitting dead.Verified the guard catches the defect: it flagged
needs_capture_filebefore removal, passes after. No behaviour change to any tool. Bump 12.1.9 -> 12.1.10.Audit status
This closes the declared-flag enforcement audit that #102/#103 began. Both flag surfaces are now sound: the manifest cost-flags (
destructive/requires_confirmationenforced,needs_hardwareintentionally informational, pinned in #103) and the preflight requirement flags (all enforced exceptneeds_network, now guarded here).