Bugs
Bug reports, voting, comments, and moderation labels.
POST
/api/community/bugscommunity:writeFile a bug report.
Request
{ title: string, description: string, severity: 'low'|'medium'|'high'|'critical' }Response
201 { id, title, description, authorId, status: 'open', severity, createdAt, updatedAt }title 1-100 chars, description 1-1000 chars.
PATCH
/api/community/bugs/{id}community:write · admin/moderatorUpdate a bug's status and/or severity.
Request
{ status?: 'open'|'in_progress'|'resolved'|'wontfix', severity?: 'low'|'medium'|'high'|'critical' }Response
{ status?, severity? }At least one field required.
DELETE
/api/community/bugs/{id}community:write · admin/moderatorDelete a bug report.
Response
{ id }POST
/api/community/bugs/{id}/votecommunity:writeUpvote, downvote, or clear your vote on a bug.
Request
{ value: 1 | -1 | 0 }Response
{ score: number, myVote: 1|-1|0 }0 removes an existing vote. Idempotent upsert per (bug, user).
POST
/api/community/bugs/{id}/commentscommunity:writePost a comment on a bug.
Request
{ body: string }Response
201 { id, bugId, authorId, authorUsername, body, createdAt }body 1-1000 chars.
DELETE
/api/community/bugs/{id}/comments/{commentId}community:writeDelete your own comment (or any comment, as a moderator/admin).
Response
{ id }POST
/api/community/bugs/{id}/labelscommunity:write · admin/moderatorAttach a label to a bug.
Request
{ labelId: string }Response
{ bugId, labelId }Idempotent: attaching an already-attached label is a no-op.
DELETE
/api/community/bugs/{id}/labels/{labelId}community:write · admin/moderatorDetach a label from a bug.
Response
{ bugId, labelId }