specverb: multipart formData uploads + untyped-array (names) bodies; name->id dissolved #129

Closed
opened 2026-06-10 18:10:44 +00:00 by coilysiren · 0 comments
Owner

What

The last two specverb shapes from the runtime-foundation plan (coilyco-flight-deck/ward#73):

  • multipart formData - in: formData params promote to flags; file types take a path streamed into a multipart/form-data body with the right boundary content type. Dry-run names the parts ("attachment": "@/path") without reading the file.
  • untyped-array bodies - forgejo's IssueLabelsOption declares items: {} ("ids or names"); these lower to repeatable string flags carrying names verbatim.

New rows: issue-labels list/add/set/remove, release upload-asset.

Design note

The name->id resolution primitive anticipated by the ward runtime-foundation issue is unnecessary: the modern forgejo API accepts label names directly in IssueLabelsOption and {identifier} paths, so the multi-step shape dissolves into a plain row.

Also fits coilyco-bridge/coily#159 (the generalize-name-resolution ask) - resolved upstream.

## What The last two specverb shapes from the runtime-foundation plan (https://forgejo.coilysiren.me/coilyco-flight-deck/ward/issues/73): * **multipart formData** - `in: formData` params promote to flags; `file` types take a path streamed into a multipart/form-data body with the right boundary content type. Dry-run names the parts (`"attachment": "@/path"`) without reading the file. * **untyped-array bodies** - forgejo's IssueLabelsOption declares `items: {}` ("ids or names"); these lower to repeatable string flags carrying names verbatim. New rows: issue-labels list/add/set/remove, release upload-asset. ## Design note The name->id resolution primitive anticipated by the ward runtime-foundation issue is unnecessary: the modern forgejo API accepts label names directly in IssueLabelsOption and `{identifier}` paths, so the multi-step shape dissolves into a plain row. Also fits https://forgejo.coilysiren.me/coilyco-bridge/coily/issues/159 (the generalize-name-resolution ask) - resolved upstream.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-flight-deck/cli-guard#129
No description provided.