Feedback: a category, a box, and Send - #58
Merged
Merged
Conversation
YCistak
force-pushed
the
feat/feedback
branch
2 times, most recently
from
August 13, 2026 19:22
176b8f7 to
9f92445
Compare
YCistak
force-pushed
the
feat/gui-update
branch
from
August 13, 2026 19:26
3a46cfa to
5735a20
Compare
Saying something about Pylon meant knowing the project had a tracker, finding it, and having a GitHub account. That selects for contributors and against exactly the users worth hearing from — the ones who hit something once and have no reason to go looking for where to report it. Hakkında now holds the form: pick a category, write what happened, press Send. What comes out is an issue on the project page. Pylon has no server of its own, and inventing one to post through would be a larger promise than this button is worth. So it uses the GitHub token already in the vault — the one there for the GitHub widget — and files the issue under the account that owns it, handing back the URL so the user can go and read what they sent. With no token, or a token that cannot open issues, it opens the prefilled new-issue page in the browser instead. Falling back rather than failing: a token's permissions are not something the user can fix from that screen, and their words are still worth delivering. Nothing else is attempted, and no identity is invented to post under. Nothing is sent that the user has not seen. The diagnostics are one short line — version, OS, desktop, language — shown under the box before Send is pressed, and internal/feedback builds it once so the line on screen and the line in the issue are the same string. No log is read, no config attached, nothing collected off disk. The list is short on purpose: enough to tell a Wayland bug from an X11 one without asking, not enough to identify anybody. "feedback send" answers "<how>\t<url>", the same shape as "update check" and for the same reason — the window acts differently on the two outcomes, and telling them apart by matching on translated prose would break in six languages at once. Verified live against the running daemon: the diagnostics line comes back as "v0.1.0-alpha.1-13-ga05b202-dirty · linux · Hyprland · tr", an empty body is refused before the network, an unknown category is refused, and both malformed requests answer with their usage line.
Owner
Author
|
The real send is now verified. Filed #59 from the daemon against this repository and closed it again: The issue came out with the category in its title and as its label, and the diagnostics after the rule — the same line the form shows under the box: So the token path works end to end. The browser fallback is still only covered by its unit test — reaching it needs a vault without a GitHub token. |
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.
Saying something about Pylon meant knowing the project had a tracker, finding it, and having a GitHub account. That selects for contributors and against exactly the users worth hearing from — the ones who hit something once and have no reason to go looking for where to report it.
Hakkında now holds the form: pick a category, write what happened, press Send. What comes out is an issue on the project page.
How it gets there
Pylon has no server of its own, and standing one up is a larger promise than this button is worth. So it uses the GitHub token already in the vault — the one there for the GitHub widget — files the issue under the account that owns it, and hands back the URL so the user can read what they sent.
With no token, or a token that cannot open issues, it opens the prefilled new-issue page in the browser instead. Falling back rather than failing: a token's permissions are not something the user can fix from that screen, and their words are still worth delivering. Nothing else is attempted, and no identity is invented to post under.
What is attached
One line: version, OS, desktop, language. It is displayed under the box before Send is pressed, and
internal/feedbackbuilds it once, so the line on screen and the line in the issue are the same string —TestWhatIsShownIsWhatIsSentpins that down. No log is read, no config attached, nothing collected off disk. Enough to tell a Wayland bug from an X11 one without asking; not enough to identify anybody.Verification
Ten unit tests over
internal/feedback— title from the first line, truncation, a body with no first line, the diagnostics rule, an Env with missing fields, the prefilled URL carrying title/body/labels, category validation, and both pre-network refusals.Live, against the running daemon:
feedback envv0.1.0-alpha.1-13-ga05b202-dirty · linux · Hyprland · trfeedback send bug " "Gönderilecek bir şey yazılmamış.feedback send acil …unknown category: acilfeedback sendusage: feedback send <category> <body>feedback silunknown operation: silgo test ./...,pylon-ui's tests,npm run check:i18n(7 languages, 188 keys) andmake guiall pass.🤖 Generated with Claude Code