Feedback: boards, reports, and the retest loop
A project declares which Myna products it runs. Feedback collects bug reports, QA findings and suggestions with the context needed to reproduce them, and myna_get_report hands an agent the description, environment, evidence and conversation in one call.
Feedback
Reports live on boards. A board has a type, an intake form, and its own visibility.
myna feedback reports list --status open
myna feedback reports open 42
myna feedback reports resolve 42 --commit 81acbe --reply "Fixed." --retest
myna_get_report returns one report whole: description, environment, every custom field, the full conversation, and the attachment manifest, with images inline.
--retest sends the reporter a private link to confirm the fix. They confirm or reopen without an account. The timeline is append-only, so resolved, reopened and resolved again are three entries, and a report merged as a duplicate keeps its own.
myna feedback digest --release 41 lists what has been reported since a release.
Submission
import { createFeedback } from "@myna-sh/sdk/feedback";
@myna-sh/sdk/feedback is a new subpath: a headless client and an optional form, around 6 KB, carrying neither the management client nor zod. It authenticates with a publishable myna_ik_ key from myna feedback keys create, bound to the project's registered origins. A key carrying feedback:submit submits and reads nothing back.
A report contains what the reporter typed, the files they attached, and the context your application sends with the submission. Myna does not screenshot the page, record the session, read the DOM, wrap fetch, patch console, or fingerprint the browser.
Products
A project declares which products it runs. Project → Products in the dashboard turns one on. A route belonging to a product a project does not run answers PRODUCT_NOT_ENABLED, a 404. Disabling a product hides it and deletes nothing.
Scopes
project:admin covers Content and the project itself, and does not widen to a product added later — enabling Feedback grants an existing key nothing. admin:all covers every product including later ones, and is requested by name.
Roles work differently: an organization owner or admin reaches every product the organization runs.
Dashboard
Project navigation is grouped by product. Feedback's inbox holds filters, the queue and the report on one screen, with j and k moving through the queue. Boards, their intake forms, and the products a project runs are all editable in the app.
Upgrading
Nothing requires action. No route, field, or capability was removed, project:admin grants what it granted before, and every project runs Content. API_VERSION is unchanged; myna doctor reports the new feedback* entries in API_CAPABILITIES.
Affects sdk · cli · mcp · react · api · dashboard
