breadbug: CLI and report builder (app picker, preview, notes, save to file) #18

Closed
opened 2026-10-08 20:14:14 +08:00 by Breadway · 2 comments
Owner

Part of ECO-EP1 (see ECO-66).

The breadbug binary, in the bread repo.

Requirements

  • App picker limited to installed bread apps (from the bakery/installed manifest), recently crashed or frozen apps first.
  • Builds the report from the breadd store (or directly from the on-disk store if breadd is down). Report schema is versioned (schema defined in ECO-66).
  • Contents: scrubbed backtrace/frames, panic info, app and breadd and BOS versions, build-id, kernel, GPU/driver, compositor version, bakery channel, installed bread app versions, non-personal current state, recent event names, filtered logs.
  • Preview shows the full payload exactly as it would be sent (scrollable, with sections). Payload built once, hashed, hash displayed. What is sent is those bytes.
  • Optional user notes field; notes are scrubbed and a warning is shown not to paste secrets.
  • Report type: crash / freeze / wrong behavior.
  • Actions: Send, Save to file (works offline, plain JSON, human readable), Cancel. Never sends without explicit action.
  • Non-interactive flags for scripting: --app, --save PATH, --dry-run (print payload).
  • TTY fallback UI for when the desktop is what broke.
  • Screenshots: not in v1.

Acceptance

  • Dry-run payload byte-identical to what the upload path sends (test).
  • Works with breadd stopped.
Part of ECO-EP1 (see ECO-66). The `breadbug` binary, in the bread repo. ## Requirements - App picker limited to installed bread apps (from the bakery/installed manifest), recently crashed or frozen apps first. - Builds the report from the breadd store (or directly from the on-disk store if breadd is down). Report schema is versioned (schema defined in ECO-66). - Contents: scrubbed backtrace/frames, panic info, app and breadd and BOS versions, build-id, kernel, GPU/driver, compositor version, bakery channel, installed bread app versions, non-personal current state, recent event names, filtered logs. - Preview shows the full payload exactly as it would be sent (scrollable, with sections). Payload built once, hashed, hash displayed. What is sent is those bytes. - Optional user notes field; notes are scrubbed and a warning is shown not to paste secrets. - Report type: crash / freeze / wrong behavior. - Actions: Send, Save to file (works offline, plain JSON, human readable), Cancel. Never sends without explicit action. - Non-interactive flags for scripting: `--app`, `--save PATH`, `--dry-run` (print payload). - TTY fallback UI for when the desktop is what broke. - Screenshots: not in v1. ## Acceptance - Dry-run payload byte-identical to what the upload path sends (test). - Works with breadd stopped.
Author
Owner

Independent review PASS, persisted on the PR: #23 (comment)

Reviewed exact head bba90c3785, base aea9879d61. Merged with Do=merge. merged=true, merge SHA 6699643099. feature/breadbug-report kept (PR 24 still based on it).

BREAD-19 report builder, CLI, preview, notes, save, dry-run, TTY fallback and breadd-down path accepted on that head. Report-time scrub exists (scrub_report) and the store-plus-report composition on this branch keeps distinct markers across a reopen and scrubs notes (IP:1/IP:2 logs, IP:3 and in notes). That does not close BREAD-15 or BREAD-37: two-pass verification on integrated main is still required.

Card stays in review. Not done.

Independent review PASS, persisted on the PR: https://git.breadway.dev/Breadway/bread/pulls/23#issuecomment-4672 Reviewed exact head bba90c3785dc95385e4e0bd71181b3d418b64172, base aea9879d61deaf55000ec7b5a377e79299170232. Merged with Do=merge. merged=true, merge SHA 6699643099a82023ab1334b2e1bd0304b8e9d862. feature/breadbug-report kept (PR 24 still based on it). BREAD-19 report builder, CLI, preview, notes, save, dry-run, TTY fallback and breadd-down path accepted on that head. Report-time scrub exists (scrub_report) and the store-plus-report composition on this branch keeps distinct markers across a reopen and scrubs notes (<IP:1>/<IP:2> logs, <IP:3> and <CRED> in notes). That does not close BREAD-15 or BREAD-37: two-pass verification on integrated main is still required. Card stays in review. Not done.
Breadway reopened this issue 2026-10-14 10:45:44 +08:00
Author
Owner

Integrated verification at PR23 merge 6699643099: cargo test --locked -p bread-bug -p breadbug --lib passed 47+11 tests in clean detached worktree. Includes reopened_store_markers_and_report_notes_remain_distinct (stored IP:1/IP:2, notes IP:3), seeded PII absence, exact preview/save bytes and consent defaults. Dev-release success at this merge SHA.

Integrated verification at PR23 merge 6699643099a82023ab1334b2e1bd0304b8e9d862: cargo test --locked -p bread-bug -p breadbug --lib passed 47+11 tests in clean detached worktree. Includes reopened_store_markers_and_report_notes_remain_distinct (stored IP:1/IP:2, notes IP:3), seeded PII absence, exact preview/save bytes and consent defaults. Dev-release success at this merge SHA.
Sign in to join this conversation.
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/bread#18
No description provided.