Skip to content

Feedback: a category, a box, and Send - #58

Merged
YCistak merged 1 commit into
masterfrom
feat/feedback
Aug 13, 2026
Merged

YCistak merged 1 commit into
masterfrom
feat/feedback

Conversation

@YCistak

@YCistak YCistak commented Aug 13, 2026

Copy link
Copy Markdown
Owner

Stacked on #57 (which is stacked on #56). Base is feat/gui-update, so this diff is only its own work.

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/feedback builds it once, so the line on screen and the line in the issue are the same string — TestWhatIsShownIsWhatIsSent pins 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:

Request Answer
feedback env v0.1.0-alpha.1-13-ga05b202-dirty · linux · Hyprland · tr
feedback send bug " " Gönderilecek bir şey yazılmamış.
feedback send acil … unknown category: acil
feedback send usage: feedback send <category> <body>
feedback sil unknown operation: sil

go test ./..., pylon-ui's tests, npm run check:i18n (7 languages, 188 keys) and make gui all pass.

⚠️ What is not verified: one real send. Proving it end to end means filing an actual issue on this repository with the maintainer's own token, which is not something to do without being asked — so the POST path itself, and whether that token carries issue permission, are untested. Everything up to the request is. Clicking the form in the built window is also unverified (same window-focus limitation as #55#57).

🤖 Generated with Claude Code

@YCistak
YCistak force-pushed the feat/feedback branch 2 times, most recently from 176b8f7 to 9f92445 Compare August 13, 2026 19:22
@YCistak
YCistak changed the base branch from feat/gui-update to master August 13, 2026 19:27
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.
@YCistak

YCistak commented Aug 13, 2026

Copy link
Copy Markdown
Owner Author

The real send is now verified. Filed #59 from the daemon against this repository and closed it again:

{'ok': True, 'text': 'sent\thttps://github.com/YCistak/pylon/issues/59'}

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:

[other] Hakkında sekmesindeki geri bildirim formunun canlı denemesi.
labels: other

Hakkında sekmesindeki geri bildirim formunun canlı denemesi.

Formun gerçekten issue açtığını doğrulamak için gönderildi, hemen kapatılacak.

---
v0.1.0-alpha.1-16-g9f92445 · linux · Hyprland · tr

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.

@YCistak
YCistak merged commit 042b267 into master Aug 13, 2026
6 checks passed
@YCistak
YCistak deleted the feat/feedback branch August 13, 2026 19:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant