v0.13.0 — the two Jira repairs a hand-off died on
Two repairs, both measured on a real instance, both of the kind that fail quietly.
assign takes the name that stands on the ticket. Cloud wants an accountId in the assignee field and answers anything else with a 404 that reads like a permission problem — "the specified user does not exist or you do not have permission". An agent has the name from the ticket, not the id, so seven assignments in a row failed on covey.work and the hand-off back to the reporter never happened. The name is resolved before the PUT: the assignable search first, because that list is narrowed to the people who may actually hold this issue, the site-wide search as the fallback where the endpoint is not offered. An accountId is passed straight through — the lookup is for names, not a toll on every call. An ambiguous name is an error naming the candidates: assigning the wrong person is quiet, and the agent is the last one to notice.
An id that is a number in the response and a string in the docs. GET /rest/api/3/attachment/{id} answers with "id": 248819 while the same attachment inside the issue carries "id": "248819". The struct insisted on the documented shape, so the whole response failed to decode and download_attachment died on cannot unmarshal number into Go struct field rawAttachment.id. The agent then reported that it could not see the screenshot and guessed a proxy problem, which was not what happened. flexString reads both and keeps the string, applied to the ids that come off the wire (attachment, comment, transition).
Beside it: a media node without an alt text carried only the media id, which is not the attachment id download_attachment takes. It now points at list_attachments instead of inviting a call that cannot work.