Report
A bug, feature request, or question filed against Drop. Each Report is backed by a GitHub issue in `himarley/drop`; the case number is the issue number.
A Report is how anyone files a bug, feature request, or question about Drop. Filing a report opens a GitHub issue in himarley/drop (labeled by kind), and the case number is that issue number. A thin Postgres row bridges the reporter (a Drop user, not a GitHub account) to the issue — that's what powers "my reports" listing, attribution, and email notifications. GitHub stays the source of truth for the body, comment thread, and authoritative status, which are reconciled on read. The conversational AI intake (drop report interactively, or POST /api/reports/intake) and the inbound GitHub webhook are hand-written surfaces and are not listed among the methods below.
The Report object
Every Report carries these attributes.
Attributes
himarley/drop. Stable for the lifetime of the report; appears in every API path (/api/reports/{caseNumber}) and in drop reports commands.BUG — something is broken; FEATURE — a request for new behavior; QUESTION — a how-do-I / clarification.OPEN at filing. Admins move it through TRIAGED → IN_PROGRESS → RESOLVED / WONT_FIX (each writes the matching GitHub label/state and emails the reporter). Reporters can open/close their own report via state but cannot set status.get), reconciled on read.More attributes+ Show 7− Hide
get / create); omitted from the list summary. Source of truth is the GitHub issue body.cli | drop-bar | web | slack | mcp. Provenance only — does not affect routing.{
"caseNumber": 142,
"kind": "BUG",
"status": "IN_PROGRESS",
"title": "PDF export spins forever on the Q3 board",
"body": "**Steps**: open q3-board, click Export PDF.\n**Expected**: a PDF.\n**Actual**: spinner never resolves.",
"appSlug": "q3-board",
"source": "cli",
"reporterName": "Dana Reyes",
"reporterEmail": "dana.reyes@himarley.com",
"githubUrl": "https://github.com/himarley/drop/issues/142",
"commentCount": 2,
"closedAt": null,
"createdAt": "2026-06-18T15:02:00.000Z",
"updatedAt": "2026-06-18T16:20:00.000Z"
}Methods
Endpoints to operate on a Report. The example switches between curl, drop CLI, and MCP via the dropdown — your choice persists across the page.
List Reports
List reports you filed (most recent first). Admins can pass all=true to list every reporter's reports. Filter by status and/or kind.
Parameters
drop reports list --status OPEN[
{
"caseNumber": 142,
"kind": "BUG",
"status": "OPEN",
"title": "PDF export spins forever on the Q3 board",
"appSlug": "q3-board",
"source": "cli",
"reporterName": "Dana Reyes",
"reporterEmail": "dana.reyes@himarley.com",
"githubUrl": "https://github.com/himarley/drop/issues/142",
"createdAt": "2026-06-18T15:02:00.000Z",
"updatedAt": "2026-06-18T15:02:00.000Z"
}
]File a Report
File a report — creates a GitHub issue in himarley/drop (labeled with the kind) and returns the case number (= the issue number). Takes an already-structured { kind, title, body }; the conversational AI intake that produces that structure runs separately (drop report interactively, or POST /api/reports/intake). Optionally link a Droplet via appSlug.
Parameters
drop reports create --kind BUG --title "PDF export spins forever on the Q3 board" --body "**Steps**: open q3-board, click Export PDF.
**Expected**: a PDF.
**Actual**: spinner never resolves (since this morning)." --app-slug q3-board --source cli{
"caseNumber": 142,
"kind": "BUG",
"status": "OPEN",
"title": "PDF export spins forever on the Q3 board",
"body": "**Steps**: open q3-board…",
"appSlug": "q3-board",
"source": "cli",
"reporterName": "Dana Reyes",
"reporterEmail": "dana.reyes@himarley.com",
"githubUrl": "https://github.com/himarley/drop/issues/142",
"createdAt": "2026-06-18T15:02:00.000Z",
"updatedAt": "2026-06-18T15:02:00.000Z",
"closedAt": null,
"commentCount": 0
}Get a Report
Fetch one report by case number, including its current status (reconciled from GitHub on read), body, and comment count. Returns 404 if the report isn't yours (and you're not an admin) — no enumeration leak.
Parameters
drop reports get 142{
"caseNumber": 142,
"kind": "BUG",
"status": "IN_PROGRESS",
"title": "PDF export spins forever on the Q3 board",
"body": "**Steps**: open q3-board…",
"appSlug": "q3-board",
"source": "cli",
"reporterName": "Dana Reyes",
"reporterEmail": "dana.reyes@himarley.com",
"githubUrl": "https://github.com/himarley/drop/issues/142",
"createdAt": "2026-06-18T15:02:00.000Z",
"updatedAt": "2026-06-18T16:20:00.000Z",
"closedAt": null,
"commentCount": 2
}Update a Report
Change a report's triage status or open/closed state. Setting status (TRIAGED / IN_PROGRESS / RESOLVED / WONT_FIX) is admin only and writes the corresponding GitHub label/state, then notifies the reporter. state (open / closed) lets the reporter withdraw or reopen their own report.
Parameters
drop reports set-status 142 --status IN_PROGRESS{
"caseNumber": 142,
"kind": "BUG",
"status": "IN_PROGRESS",
"title": "PDF export spins forever on the Q3 board",
"body": null,
"appSlug": "q3-board",
"source": "cli",
"reporterName": "Dana Reyes",
"reporterEmail": "dana.reyes@himarley.com",
"githubUrl": "https://github.com/himarley/drop/issues/142",
"createdAt": "2026-06-18T15:02:00.000Z",
"updatedAt": "2026-06-18T16:20:00.000Z",
"closedAt": null,
"commentCount": 2
}Comment on a Report
Add a comment to a report. Posts to the GitHub issue attributed to the reporter (Drop's bot identity writes it; the reporter's name is in the body). Allowed for the reporter or an admin.
Parameters
drop reports comment 142 --body "Still happening on prod this morning."{
"caseNumber": 142,
"author": "Dana Reyes",
"body": "Still happening on prod this morning.",
"url": "https://github.com/himarley/drop/issues/142#issuecomment-1",
"createdAt": "2026-06-18T17:00:00.000Z"
}List Report Comments
List the comment thread on a report (from the GitHub issue), oldest first. Allowed for the reporter or an admin.
Parameters
drop reports comments 142[
{
"author": "Dana Reyes",
"body": "Still happening on prod this morning.",
"url": "https://github.com/himarley/drop/issues/142#issuecomment-1",
"createdAt": "2026-06-18T17:00:00.000Z",
"fromReporter": true
}
]