Repository navigation
Add safe cleanup, offline diagnostics, and dependency queries - #158
Merged
LunaStev merged 3 commits intoOct 16, 2026
Merged
Conversation
Signed-off-by: LunaStev <luna@lunastev.org>
Signed-off-by: LunaStev <luna@lunastev.org>
Signed-off-by: LunaStev <luna@lunastev.org>
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
Add explicit build/dependency cleanup and local diagnostics for day-to-day Vex use, with inverse/depth tree queries, quiet/verbose output, and elimination of redundant fetches after an initial clone.
Closes #49
Closes #88
Closes #53
Closes #62
Closes #64
Closes #43
Related roadmap: #99 (remains open).
Why
Projects need to reclaim generated output and unused checkouts without deleting user changes or disrupting running programs. Local tool diagnostics and resolver decisions should be available without implicit network access or mixing machine-readable output into program streams.
Behavior
vex cleanremoves recorded, unchanged build outputs;--dry-runpreviews without mutation. Existing untracked outputs, modified files, sources, manifests, lockfiles, and live run generations are preserved. Independent inherited OS leases protect running generations after the build lease is released. No automatic GC is introduced.vex prunepreviews unused checkouts and requires--applyfor deletion. It validates a complete current local graph without fetching, refuses pending recovery, and preserves legacy/unrecorded or changed checkouts, including ignored files and Git metadata. Ownership is recorded for newly created checkouts; copying/updating an untrusted checkout cannot restore deletion eligibility. There is no shared cache, so restoring a removed dependency may require fetching from its source.vex doctor [--format=json] [--target <triple>]reports tools, compiler capabilities, local project-plan compatibility, and linker availability without creating, fetching, recovering, compiling, or linking. JSON uses schema v1. Unavailable local graphs remain explicit warning/not-checked results; a successful report does not prove an actual target link.--quiet,-v, and-vvpreserve errors, warnings, program stdio/exit codes, and JSONL records. Verbose decisions and diagnostic context are credential-redacted.tree --invert <name>and--depth <n>retain deterministic shared-node rendering and locked/offline behavior. Metadata continues to expose the underlying graph.Validation
cargo fmt --checkcargo test --workspace --lockedcargo clippy --workspace --locked --all-targets -- -D warningscargo build --workspace --lockedpython3 x.py checkpassed, including 38 Python tests and the workspace Rust suite. Final cleanup regression tests passed (9 clean + 10 prune), including live/orphaned program leases, unknown/modified files, recovery refusal, path containment, and ownership preservation across updates.cargo check --workspace --all-targets --locked --target x86_64-pc-windows-gnupassed; this is a cross-compile check, not native Windows execution.The extended
tests/wave_compatibility.py --reexports --expected-version 0.2.1-pre-betapassed with the installed Linux compiler, executable SHA-256e4439dc77b0a142dd38e22406cf489c2ee123bcf2ec474afbefd072078a0e504. This local binary's build provenance was not independently established. Required PR CI must still validate all nine platforms against the pinned public Wave artifacts.Generated CLI-reference and local documentation-link checks passed. The locked dependency versions are unchanged; the state crate reuses existing serde/SHA-256 dependencies and the license-notice lockfile fingerprint was regenerated.
Checklist
wavefnd/Vex:master.--lockedand--offlinebehavior remains correct.wavecflags were added to the Vex CLI.Signed-off-by:line.