Repository navigation
feat: copy a bug report with versions, displays, access and crashes - #341
Merged
Merged
Conversation
A useful bug report needs the StableBar version, macOS, displays, the workspace manager, the theme and packages, StableBar's access and its current errors, and people gathered them by hand. Settings → Status → Report a problem copies them as Markdown, or opens the bug report form with them as its Environment. `StableBar --report` prints the same report. With no bar running for the configuration, it still lists what it can read and says what is missing. Home folders become ~ and no configuration values are included. Crashes from the last 30 days get one line each. `StableBar triage` now shares these facts, and the bug report form points to the report. Fixes #93
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
A useful bug report needs the StableBar version, macOS, the displays, the workspace manager, the theme and packages, StableBar's access and its current errors. Reporters gather these by hand: the form sends them to Finder's Get Info for the version, and Copy snapshot gives none of them. Fixes #93.
Stacked on #338 (crash visibility), whose crash list this report includes. Merge #338 first; this PR's diff is its one commit.
Changes
BugReportproduces Markdown with:--versionand path;A running bar adds its access (Accessibility, Calendars), workspace connection, active profiles, and configuration and widget errors. Home folders become
~, and no configuration values are included, so package secrets stay out.Settings → Status → Report a problem sits at the bottom of the overview. Copy bug report copies the report. Report on GitHub… opens
bug_report.ymlwith the report as its Environment and sends nothing until the user submits. Long lists and lines are cut so the link stays under 8,000 characters.StableBar --reportprints the same report. It asks a bar running with the configuration for its live facts through a newreportcontrol action. If no bar runs, it prints what it can read alone and says that access, connections and problems are missing. If a bar runs but doesn't answer, as one from before this change wouldn't, it says so ("didn't answer (an older StableBar?)"). The bar's reply decodes with missing fields read as empty, so a CLI and a bar of different versions still understand each other.Shared facts.
MacFactsandConfigurationSummaryreplace the copies inTriage.swift.StableBar triagenow also says whether each display is built-in or external.Docs and form.
docs/settings.mddescribes Report a problem,docs/command-line.mdlists--report, and the bug report form's Environment field asks for the report. Searching settings for "bug" or "issue" finds Status.Testing
New tests in
BugReportTestscover:ConfigurationSummaryfor a valid file, an invalid file (theme and packages still named), a bundled theme and a missing file;aerospaceon a scratchPATH;reportreply, and decoding a reply with missing and extra fields;--reportparsing.Each failed before the change. The triage tests pass on the shared facts.
swift teston this branch: 294 XCTest and 491 Swift Testing tests pass..build/debug/StableBar --config <scratch>/config.json --reportwith no bar running printed the partial report: two displays (built-in and external, notch), "valid, 2 widgets in 1 file", "Theme: Built-in", the installed AeroSpace's version and path, and "Running bar: none with this configuration…".The Status overview, drawn offscreen from a scratch configuration with sample crash reports, before (feat: show StableBar's crashes in Settings and copy them into a bug report #338) and after:
--reportagainst a running bar, which a unit test covers through the bar'sreportreply;git diff --checkand commitlint on the full message pass.Merging
After #338. A merge commit or rebase merge, which keeps the one commit. As a
feat, it makes a minor release.Claude Opus 5.5 via Claude Code