fix: add empty-ID guard to delete_model to prevent wiping engine models directory#100
Merged
BeckettFrey merged 2 commits intoreleasefrom Apr 14, 2026
Merged
Conversation
…ls directory Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/0cce5a70-83a5-4c00-b1e8-19f85cb895d1 Co-authored-by: BeckettFrey <[email protected]>
Copilot
AI
changed the title
[WIP] Add empty ID guard to delete_model function
fix: add empty-ID guard to delete_model to prevent wiping engine models directory
Apr 14, 2026
BeckettFrey
added a commit
that referenced
this pull request
Apr 14, 2026
* fixes #64: add ai optimized documentation file * fix: replace localhost help_url defaults with production URL (#92) * Initial plan * fix: replace localhost help_url defaults with production URL Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/496f7ed1-fdaa-4df9-b574-5ab55254c136 Co-authored-by: BeckettFrey <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: BeckettFrey <[email protected]> * fix: dataset panel empty state non-responsive when splitter resized (#94) * Initial plan * fix: prevent helper_label and empty_label from resizing with splitter Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/ede8fa76-ccf4-4940-bd76-7f46adde44c5 Co-authored-by: BeckettFrey <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: BeckettFrey <[email protected]> * setup-logging (#95) * Refactor configuration and update release workflow process (#96) * refactor: remove shadowed config * replace: move to invoke for os agnostic clarity * remove release workflow in favor of more manual steps * Configure shredguard for blocking regex patterns (#98) * fix: don't mark first launch complete on startup script error (#99) * Initial plan * fix: don't mark first launch complete on startup script error Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/e51a7557-a81e-4972-a7e6-45133b115413 Co-authored-by: BeckettFrey <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: BeckettFrey <[email protected]> * fix: readable_from_unique_id handles prefixed IDs from generate_unique_id (#101) * Initial plan * fix: handle prefixed IDs in readable_from_unique_id Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/f6936450-f9a2-4df8-b75a-b403d98db565 Co-authored-by: BeckettFrey <[email protected]> * fix: raise descriptive ValueError when no timestamp found in readable_from_unique_id Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/f6936450-f9a2-4df8-b75a-b403d98db565 Co-authored-by: BeckettFrey <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: BeckettFrey <[email protected]> * Initial plan (#103) Co-authored-by: copilot-swe-agent[bot] <[email protected]> * Revert "Initial plan (#103)" (#106) This reverts commit b9ab4a0. * Fix problem with dedicated internal function (#107) * fix: add empty-ID guard to delete_model to prevent wiping engine models directory (#100) * Initial plan * fix: add empty-ID guard to delete_model to prevent wiping engine models directory Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/0cce5a70-83a5-4c00-b1e8-19f85cb895d1 Co-authored-by: BeckettFrey <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: BeckettFrey <[email protected]> * fix: validate_dataset checks stem-name pairing between audio and label files (#102) * Initial plan * fix: validate_dataset checks stem-name pairing between audio and label files Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/73d34692-65d9-48a2-9621-7127982837a2 Co-authored-by: BeckettFrey <[email protected]> * chore: remove accidentally committed root conftest.py Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/46f1cfe0-1564-47a8-85ea-4c404b6b23f8 Co-authored-by: BeckettFrey <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: BeckettFrey <[email protected]> * 82/fix view btn width (#105) * Fix button width inconsistency * Migrate to table style --------- Co-authored-by: Copilot <[email protected]>
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.
delete_modeldid not validate emptyengine_id/model_idbefore path construction. With an emptymodel_id,_get_model_rootresolves to the engine's entire models root directory — which exists — soshutil.rmtreesilently deletes every model for that engine.delete_datasetalready had this guard;delete_modeldid not.Changes
src/voxkit/storage/models.py— Added early-return guard at the top ofdelete_model, matching thedelete_datasetpattern:Updated docstring Notes to document the validation.
tests/storage/test_models.py— Addedtest_delete_model_empty_idscovering: emptymodel_id, emptyengine_id, and both empty.Testing
Testing Notes: New test covers all three empty-ID permutations (empty
model_idonly, emptyengine_idonly, both empty), assertingsuccess is Falseand"cannot be empty" in msg.Documentation
Documentation Notes: Docstring
Notessection updated to reflect the new validation behavior.Checklist
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
astral.sh/usr/bin/curl curl -LsSf REDACTED(dns block)If you need me to access, download, or install something from one of these locations, you can either: