name: Bug report description: Something behaves differently from how CLAUDE.md section 1 describes it title: "" labels: ["bug"] body: - type: markdown attributes: value: | Two failure modes matter most here, and they need different fixes. - **A block that should have fired but did not.** - **A block that fired but should not have.** Please pick which one you are reporting in the first question. - type: dropdown id: mode attributes: label: Which kind of failure is this? description: The two modes below need completely different investigations. options: - A blocked app was not blocked - A block fired when it should not have - Enforcement stopped working entirely - The app crashed or would not start - Something else - type: dropdown id: platform attributes: label: Platform options: - Linux (KDE Plasma / Wayland) - Linux (KDE Plasma / X11) - Linux (other compositor) - Windows - Android - More than one - Not yet implemented on any - type: input id: version attributes: label: Version or commit description: Output of `blocker-daemon --version`, or the commit SHA for a build from source. validations: required: true - type: textarea id: repro attributes: label: Steps to reproduce description: | Concrete steps, starting from a known state. "Open Discord during Focus" is reproducible; "it blocks sometimes" is not. placeholder: | 1. Start a schedule named "Focus", 09:00-17:00, targeting Discord 2. Focus Discord 3. Nothing happens validations: required: true - type: textarea id: expected attributes: label: Expected behaviour description: What does CLAUDE.md section 1 say should happen? Quote the requirement if you can. validations: required: true - type: textarea id: actual attributes: label: Actual behaviour description: What happened instead, including any error output. validations: required: true - type: textarea id: backend attributes: label: Which enforcement backend is active? description: | The troubleshooting screen shows this. If you cannot find it, say so — that is itself useful information, because it suggests the daemon started with no backend and cannot block anything. placeholder: "kwin: KWin script loaded successfully" - type: textarea id: logs attributes: label: Daemon log output description: | From `journalctl --user -u blocker -n 100`. Redact anything private. Do not paste API tokens, keys, or credentials. render: shell - type: checkboxes id: checks attributes: label: Before submitting options: - label: I searched existing issues for this. - label: I removed secrets and personal paths from anything I pasted above. - label: I am not asking to block ADB, safe mode, factory reset, or OS recovery. description: | Those are never blocked, by design (CLAUDE.md section 6.7 and ADR-11). Such a request will be closed with a link to the ADR rather than implemented.