Overview
Currently, the only blocking operation is writing to the rules file, which already handles errors (though silently — see #10). This issue becomes meaningful once real OS-level blocking (#20) is implemented via iptables, where failures are much more likely (insufficient permissions, iptables not installed, rule already exists).
This issue is blocked by #20. Do not start it until the iptables backend is merged.
What needs to be done
Goal
When a block action fails at the OS level, the user sees a specific and actionable error message instead of a silent failure or a misleading success indicator.
Notes
Blocked by #20 — do not start this until apply_block() / remove_block() exist.
Overview
Currently, the only blocking operation is writing to the rules file, which already handles errors (though silently — see #10). This issue becomes meaningful once real OS-level blocking (#20) is implemented via iptables, where failures are much more likely (insufficient permissions, iptables not installed, rule already exists).
This issue is blocked by #20. Do not start it until the iptables backend is merged.
What needs to be done
apply_block()andremove_block()calls in bothtui.pyandmain.pywith visible error feedbackself.notify()for transient error messagesshow_error()dialog methodiptablesnot found on the system → "iptables is not available on this system"Goal
When a block action fails at the OS level, the user sees a specific and actionable error message instead of a silent failure or a misleading success indicator.
Notes
Blocked by #20 — do not start this until
apply_block()/remove_block()exist.