Skip to content

Known X11 attached refusals are misreported as uncertain terminal computer failures #404

Description

@Calmingstorm

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions