Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .github/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,27 @@
## Architecture
- Workflows should mirror local CI and release/package validation.
- Release automation depends on version checks, packaging manifests, Nix/package checks, artifact upload, and repository publishing behavior.
- `ISSUE_TEMPLATE/` uses GitHub issue forms (YAML), not Markdown templates, so
reporters get fields instead of a wall of text to edit.

## Invariants
- Keep CI aligned with `./tools/lint-and-test.sh`.
- Issue-form field `id`s are a public API: `https://wayscriber.com/report`
prefills them by query parameter, and the About dialog in every shipped
binary points at that page. Renaming or removing an id silently drops the
prefill for binaries that can never be updated retroactively.
- Keep Linux system dependencies aligned with real build needs for Wayland, Cairo, Pango, GTK4/libadwaita, D-Bus, packaging, and Nix checks.
- Do not weaken release checks or skip package layout/version validation without a documented reason.

## Coupled Changes
- Workflow dependency changes may require updates to `tools/`, `packaging/`, `flake.nix`, and setup docs.
- Release workflow changes may require updates to version scripts and packaging manifests.
- Issue-form field ids are coupled with `wayscriber-website/report/index.html`
and with `REPORT_URL` in `src/about_window/content.rs`.

## Validation
- Prefer local script validation before changing CI.
- For workflow-only edits, run `git diff --check` and inspect YAML carefully.
- After editing an issue form, confirm the prefill contract still holds:
`issues/new?template=bug_report.yml&diagnostics=hello` must show `hello` in
the Diagnostics box.
69 changes: 0 additions & 69 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

82 changes: 82 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# The field `id`s below are a public API.
#
# https://wayscriber.com/report links here with query parameters that prefill
# them (`?template=bug_report.yml&diagnostics=…`). Renaming or removing an id
# silently drops the prefill for every already-shipped binary, so treat an id
# change as a coupled change with `wayscriber-website/report/index.html`.
name: Bug report
description: Something broke or behaved wrong
title: "[BUG] "
labels: [bug]
assignees: [devmobasa]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time. You do not need to fill in every box —
what happened, and roughly how to see it happen, is already useful.

- type: textarea
id: what-happened
attributes:
label: What happened?
description: What were you doing, and what went wrong?
placeholder: I pressed my overlay hotkey and the screen stayed black.
validations:
required: true

- type: textarea
id: steps
attributes:
label: Steps to reproduce
placeholder: |
1. …
2. …
3. …

- type: textarea
id: diagnostics
attributes:
label: Diagnostics
description: >
In Wayscriber, open About → "Report a problem" (or "Copy diagnostics")
and paste here. It contains only your version, install source, desktop,
and enabled features.
render: text

- type: dropdown
id: compositor
attributes:
label: Compositor / desktop
options:
- Hyprland
- Sway
- GNOME
- KDE Plasma
- Niri
- River
- Wayfire
- COSMIC
- Other / not sure

- type: dropdown
id: install-method
attributes:
label: How did you install Wayscriber?
options:
- APT (deb)
- RPM
- AUR
- Nix
- Tarball
- Built from source
- Not sure

- type: textarea
id: logs
attributes:
label: Logs (optional)
description: >
If you can, follow https://wayscriber.com/docs/troubleshooting/logs.html
and paste the output.
render: text
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: Not sure it's a bug? Ask first
url: https://github.com/devmobasa/wayscriber/discussions
about: Questions and "is this expected?" go here.
- name: Report without a GitHub account
url: https://wayscriber.com/report
about: The website lists every way to reach the project.
49 changes: 49 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# See the note at the top of `bug_report.yml`: field ids here are not prefilled
# by the website today, but the same rule applies if that ever changes.
name: Feature request
description: Ask for something Wayscriber does not do yet
title: "[FEATURE] "
labels: [enhancement]
body:
- type: markdown
attributes:
value: |
Requests are welcome when they are clear. If a request does not fit the
project or the timing, the answer may still be no — that is normal and
not personal. See
[How to Ask for Features](https://wayscriber.com/docs/ethos/asking.html).

- type: textarea
id: problem
attributes:
label: What problem are you trying to solve?
description: The problem, not the solution you have in mind.
validations:
required: true

- type: textarea
id: workflow
attributes:
label: The workflow you want
description: Walk through it step by step, as you would do it.

- type: textarea
id: alternatives
attributes:
label: Why do the existing features not fit?
description: What did you try, and where did it fall short?

- type: input
id: environment
attributes:
label: Compositor and distro
placeholder: Hyprland 0.44 on Arch Linux

- type: checkboxes
id: help
attributes:
label: Can you help?
options:
- label: I can test a build
- label: I can share screenshots or a short recording
- label: I could contribute a PR
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

## Unreleased

### Added

- About dialog: a "Report a problem" row. It copies your diagnostics to the clipboard and opens `https://wayscriber.com/report`, which hands them straight into a prefilled bug form. Nothing is sent automatically, and the diagnostics travel in the URL fragment, so they never reach a server log.

### Breaking (Rust source)

- The unified top toolbar is now the only layout. Panel-era typed config fields and order groups are removed from the serde model (`side_*` placement/pin/pane keys, `show_settings_section` / mode overrides, and `ui.toolbar.items.order.{side_sections,actions,pages,boards,presets,tool_options,sessions}`). Authored values at those exact paths remain in `config.toml` as retired settings and no longer affect the overlay. Matching keys under `runtime-ui.toml`'s recognized `item_order` map are pruned on rewrite.
Expand Down
9 changes: 9 additions & 0 deletions src/about_window/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@
- Chrome colors come from `crate::ui::theme`, never hardcoded literals.
- Every outbound link points at wayscriber.com (no code-host links); the update
card never installs anything.
- Nothing leaves the machine without the user asking. "Report a problem" copies
the diagnostics and opens a page; it never submits anything.
- Diagnostics ride in the URL *fragment* (`#d=<base64>`), never a query string,
so they cannot reach wayscriber.com access logs.
- The window is sized from `layout::plan`, so adding a row must not need a
constant edit elsewhere.
- Blocking work (the update fetch) runs in the event loop, never in a handler.
Expand All @@ -31,6 +35,11 @@
- About dialog changes may affect app metadata, clipboard behavior, docs, and Wayland handler dependencies.
- Update-status wording is shared with `src/update_check/`; the dialog only
reads its cache.
- `REPORT_URL` is a contract with `wayscriber-website/report/index.html`, which
decodes the `#d=` fragment and forwards it into the GitHub issue form's
`diagnostics` field (`.github/ISSUE_TEMPLATE/bug_report.yml`). Released
binaries cannot be told about a new address, so the page moves the channel,
never the constant.

## Validation
- Add focused tests if logic becomes testable (`content`, `layout`,
Expand Down
Loading
Loading