feat: Bug reports page in Privacy & security #62

Open
Breadway wants to merge 1 commit from feature/breadbug-page-v2 into main
Owner

Closes BSET-50. Part of ECO-EP1. Based on fix/v2-review-gaps (the v2 UI work, 30 commits ahead of main), because the page uses the v2 components and Hub layout; retarget to main when that lands.

What

A Bug reports tab in Privacy & security, and the backend behind it (commands/breadbug.rs):

  • Allow sending bug reports (off by default; says each report is still only sent when you press Send), tell me when a bug I reported is fixed, and Open the reporter (what Super+Shift+B runs).
  • Apps included in reports: switch an app off and nothing is stored for it and its existing data is deleted; applied immediately through the new bug.reload IPC (bread PR #32).
  • What a report contains: the shared consent text from bread_bug::consent.
  • Your reports: history of sent and saved reports (receipt prefix, status, fix version) with Delete from server. The deletion token stays in the backend; the webview never sees it. Refuses to contact the server while sending is off.
  • On this computer: stored data size with Delete local data (via the daemon when it is up, files otherwise) and the offline queue with Discard. Turning sending off while reports are queued asks whether to discard them (OK discards, Cancel keeps them).
  • Config edits are non-destructive (toml_edit): only upload_enabled, notify_fixed and excluded_apps change; comments and other keys survive. App ids are validated.
  • Search entry and a breadbug / bugreports alias.

Checked

  • cargo test breadbug: exclusion validation, non-destructive save keeps comments/other keys/sections, defaults.
  • svelte-check: 0 errors, 0 warnings.
  • Rendered and driven in headless Chromium with mocked Tauri calls (no desktop involved): the page lays out inside the hub; toggling sending sends save_breadbug_settings{uploadEnabled:true,...,excludedApps:["search"]}; turning it off with 2 queued shows the discard prompt and calls breadbug_clear_queue then saves; excluding pad saves ["search","pad"].
  • Not exercised against the real backend in a running Tauri window (that needs the nested-Hyprland setup; skipped on purpose).

Dependency note

bread-bug is a git dependency on bread's feature/breadbug-reload branch (pinned in Cargo.lock) until the next bread release is tagged; then repoint it to the tag. Building needs network access to git.breadway.dev.

Closes BSET-50. Part of ECO-EP1. **Based on `fix/v2-review-gaps`** (the v2 UI work, 30 commits ahead of `main`), because the page uses the v2 components and `Hub` layout; retarget to `main` when that lands. ## What A **Bug reports** tab in Privacy & security, and the backend behind it (`commands/breadbug.rs`): - **Allow sending bug reports** (off by default; says each report is still only sent when you press Send), **tell me when a bug I reported is fixed**, and **Open the reporter** (what `Super+Shift+B` runs). - **Apps included in reports**: switch an app off and nothing is stored for it and its existing data is deleted; applied immediately through the new `bug.reload` IPC (bread PR #32). - **What a report contains**: the shared consent text from `bread_bug::consent`. - **Your reports**: history of sent and saved reports (receipt prefix, status, fix version) with **Delete from server**. The deletion token stays in the backend; the webview never sees it. Refuses to contact the server while sending is off. - **On this computer**: stored data size with **Delete local data** (via the daemon when it is up, files otherwise) and the offline queue with **Discard**. **Turning sending off while reports are queued asks whether to discard them** (OK discards, Cancel keeps them). - Config edits are non-destructive (`toml_edit`): only `upload_enabled`, `notify_fixed` and `excluded_apps` change; comments and other keys survive. App ids are validated. - Search entry and a `breadbug` / `bugreports` alias. ## Checked - `cargo test breadbug`: exclusion validation, non-destructive save keeps comments/other keys/sections, defaults. - `svelte-check`: 0 errors, 0 warnings. - **Rendered and driven in headless Chromium with mocked Tauri calls** (no desktop involved): the page lays out inside the hub; toggling sending sends `save_breadbug_settings{uploadEnabled:true,...,excludedApps:["search"]}`; turning it off with 2 queued shows the discard prompt and calls `breadbug_clear_queue` then saves; excluding `pad` saves `["search","pad"]`. - Not exercised against the real backend in a running Tauri window (that needs the nested-Hyprland setup; skipped on purpose). ## Dependency note `bread-bug` is a git dependency on bread's `feature/breadbug-reload` branch (pinned in Cargo.lock) until the next bread release is tagged; then repoint it to the tag. Building needs network access to git.breadway.dev.
feat: Bug reports page in Privacy & security
Some checks failed
check / check (push) Failing after 3s
2955f3da55
A new tab with the controls for breadbug: allow sending (off by default),
tell me when a reported bug is fixed, which apps are included in reports
(excluding one deletes its stored data and takes effect immediately via
bug.reload), the consent text, the history of reports sent or saved with a
delete-from-server action, stored data size with delete local data, the
offline queue (turning sending off while reports are queued asks whether to
discard them), and a button that opens the reporter.

The backend edits breadbug.toml non-destructively (only the three modelled
keys), validates app ids, never exposes a deletion token to the webview, and
refuses to contact the server while sending is off.

Refs BSET-50
Breadway changed target branch from fix/v2-review-gaps to main 2026-10-13 19:05:27 +08:00
Author
Owner

Retargeted to main now that #53 and #46 are merged. On hold until bread tags a release containing bug.reload (bread PR #32); then repoint the bread-bug dependency to that tag and merge.

Retargeted to main now that #53 and #46 are merged. On hold until bread tags a release containing bug.reload (bread PR #32); then repoint the bread-bug dependency to that tag and merge.
Some checks failed
check / check (push) Failing after 3s
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feature/breadbug-page-v2:feature/breadbug-page-v2
git switch feature/breadbug-page-v2

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff feature/breadbug-page-v2
git switch feature/breadbug-page-v2
git rebase main
git switch main
git merge --ff-only feature/breadbug-page-v2
git switch feature/breadbug-page-v2
git rebase main
git switch main
git merge --no-ff feature/breadbug-page-v2
git switch main
git merge --squash feature/breadbug-page-v2
git switch main
git merge --ff-only feature/breadbug-page-v2
git switch main
git merge feature/breadbug-page-v2
git push origin main
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Breadway/bos-settings!62
No description provided.