Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Bug] Quarantine Vault "Release" button always crashes: ModalScreen has no push_screen

Open Beginner friendly
#733 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
84/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
python
Domain
desktop, testing

Research direction

Read app/ui/tui.py around QuarantineVaultModal.action_release_selected and the existing test in tests/test_quarantine_vault_modal.py. Start by reproducing the crash with the Release button, then check how the app opens other screens. Done means the directory picker opens, the selected file is released to the chosen destination, and a pilot test verifies the released status and file location.

Written by the indexing model from the issue text.

Description

bug

Summary

QuarantineVaultModal.action_release_selected calls self.push_screen(DirectorySelectModal(...), callback). QuarantineVaultModal is a ModalScreen, and Textual Screen objects have no push_screen method; only App does. Every attempt to release a quarantined file therefore raises AttributeError, so files can never be released from quarantine through the TUI.

Location

  • app/ui/tui.py:5489: class QuarantineVaultModal(A11yMixin, ModalScreen[None])
  • app/ui/tui.py:5931-5969: action_release_selected, ending with self.push_screen(DirectorySelectModal(base_dir), _dir_selected_callback)

Evidence / reproduction

A scratch script stages a file through QuarantineInterceptorService.stage_incoming_file, opens QuarantineVaultModal, selects the job and calls action_release_selected():

RELEASE EXC: AttributeError 'QuarantineVaultModal' object has no attribute 'push_screen'
$ uv run python -c "from textual.screen import ModalScreen; print(hasattr(ModalScreen,'push_screen'))"
False

mypy reports app/ui/tui.py:5969: error: "QuarantineVaultModal" has no attribute "push_screen", but the error is hidden by ignore_errors for app.ui.*. tests/test_quarantine_vault_modal.py:68 only asserts that the button exists; it never presses it.

Expected vs actual

  • Expected: pressing Release opens the directory picker and then moves the staged file to the chosen directory.
  • Actual: an unhandled AttributeError occurs in the button handler, and nothing is released.

Suggested fix

Use self.app.push_screen(DirectorySelectModal(base_dir), _dir_selected_callback). Add a pilot test that clicks #btn-quarantine-release, submits a directory in the picker, and asserts the record status becomes RELEASED and the file exists at the destination.

Severity

high

Dominant language
Python
Stars
1
Forks
0
Avg merge
16h 3m
Merged PRs (30d)
255

Getting set up

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from fderuiter/sortify

All issues in fderuiter/sortify

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.