Confirmed known-refusal misclassification
Reviewed master at 886c36d8ebe861aa987059a1744d45b78797baae (v4.7.0). Suggested priority: P2.
X11 attached source-selection/export refusals raise AttachedFailure, which is not in the facade's bounded exception set. A known pre-input refusal therefore takes the unexpected-exception path: attempt to stop the context and return terminal outcome_unknown/uncertain outcome.
Sources: source refusal, export refusal, facade exception handling.
Mock-only confirmation
Use the real facade with a fake controller whose observe method raises AttachedFailure('capture_source_not_granted'), an authorized synthetic foreground context and no backend/session.
result.error == 'outcome_unknown'
result.uncertain_outcome is True
controller.session called once with {'operation': 'stop'}
Both confirming reviewer and parent ran the assertion test: 1 passed. Controller/source ordering was independently traced; export was not dynamically exercised. No desktop, input, real controller session or active graphical state was touched.
Acceptance criteria
- Translate only known pre-dispatch attached-backend refusals into truthful bounded typed outcomes.
- Do not invent unknown input effects or require recovery for a refused source selection/export.
- Preserve conservative terminal handling for genuinely unknown errors and unknown release states.
- Add facade/controller integration tests, not only adapter exception tests.
- Do not alter accepted X11/Hyprland release limitations or bypass input guards.
Behavior change: these known refusals stop being falsely terminal; no new input authority is granted. No source changes were made.
Confirmed known-refusal misclassification
Reviewed
masterat886c36d8ebe861aa987059a1744d45b78797baae(v4.7.0). Suggested priority: P2.X11 attached source-selection/export refusals raise
AttachedFailure, which is not in the facade's bounded exception set. A known pre-input refusal therefore takes the unexpected-exception path: attempt to stop the context and return terminaloutcome_unknown/uncertain outcome.Sources: source refusal, export refusal, facade exception handling.
Mock-only confirmation
Use the real facade with a fake controller whose observe method raises
AttachedFailure('capture_source_not_granted'), an authorized synthetic foreground context and no backend/session.Both confirming reviewer and parent ran the assertion test: 1 passed. Controller/source ordering was independently traced; export was not dynamically exercised. No desktop, input, real controller session or active graphical state was touched.
Acceptance criteria
Behavior change: these known refusals stop being falsely terminal; no new input authority is granted. No source changes were made.