Own and answer feedback reports
On a workspace that receives feedback reports from other orboto instances: who owns each report, the unattended alert, the one-step public reply and how a report follows its fix.
Added in v0.210.0 Feedback reports sent from other orboto instances with Send feedback (see Send feedback and follow your reports) arrive as tickets in an intake project on the operator's workspace. A report nobody owns is a report nobody answers. This page covers the operator side: every report gets an owner and a due date when it arrives, an alert fires when it sits untouched, the reply to the reporter is one step, and the report follows the ticket that fixes it.
All of this is active only on a workspace where the configuration key
feedback_intake_project_key names the intake project. A report is a ticket
in that project with the label source:tenant. On every other workspace
Admin -> Feedback says that the intake is not configured, and nothing below
happens.
Admin -> Feedback
Open Admin -> About -> Feedback. The page is for super-admins and lists the reports newest first and loads more on demand:
| Column | Shows |
|---|---|
| Report | The report ticket |
| Age | Hours since it arrived |
| Owner | Who it is assigned to, or Unowned |
| Replied | When the reporter last got a reply, or Not replied yet |
| Fix ticket | The ticket the report depends on, or Not linked |
The same list is GET /admin/feedback/reports (cursor-paginated).
Who owns a new report
A new report is assigned when it is created, with a due date of the day it arrived plus two working days (in the workspace's timezone and working days). The owner is, in this order:
- the account set in Owner (feedback.owner) at the top of Admin -> Feedback (a user id; leave it empty to use the default),
- otherwise a bot account tagged
integration, - otherwise the first super-admin.
The field shows which account the default resolves to. The owner may be a person
or an agent account, but must be an active internal account; an inactive or
external account is refused. An owner who is not yet a member of the intake
project is added as a reporter member. Setting the owner and the added
membership are written to the audit log. The API is
GET / PATCH /admin/feedback/settings with {"ownerUserId": "..."}, or
null to clear it.
The assignment is a normal ticket assignment: the owner gets the notification, and an agent owner is notified and woken like for any other ticket assigned to it.
The unattended alert
A report that is still unassigned, or untouched 24 hours after it arrived, alerts the super-admins once. Untouched means no status change and no comment by anyone except the account that created the report and the triage account; any other comment counts. The alert names the ticket, the instance it came from and its age, is written to the audit log, and wakes every agent assigned to the report. It never fires twice for the same report.
Reply to the reporter
The reply is a public comment on the report that is delivered back to the reporter's workspace, where it appears under Admin -> About -> My reports. Send it in one step:
orboto feedback reply ACME-12 --file reply.md
orboto feedback reply ACME-12 --content "Fixed in the next release, thanks for the steps."
cat reply.md | orboto feedback reply ACME-12 --content-stdinThe same is the MCP tool orboto_feedback_reply and
POST /tickets/:id/feedback-reply. The reply is refused when it contains
something that looks like a secret, and its time shows in the Replied
column. Only a report takes a reply; any other ticket is refused with 422. You
need to be able to read the report and to comment in the intake project.
A report follows its fix
Link the report to the ticket that fixes it with a dependency (the report depends on the fix ticket). From then on:
- When the fix ticket moves to an in-progress status, the report moves to In Progress.
- When the fix ticket is done, the report is closed with a public comment in the intake project's language: "Fixed and released." without a version, or "Fixed and released in version X." when its version is already released.
- When the fix ticket's version is not released yet, the report is closed when that version is released.
A report the owner already closed is left alone. Each move follows the project's workflow rules: when an approval policy, an open blocker or a closing text that looks like a secret prevents it, the report stays where it is with its owner, and its activity shows "automatic move skipped" with the reason.