v0.6.0 — Files-shaped friendly --set writes (M38)
The "agents can write to files-shaped columns inline" milestone — v0.4-M31's monday item upload verb-shaped multipart wire surface gains the friendly translator-boundary inline form (monday item set <iid> <file-col>=<path> + monday item update <iid> --set <file-col>=<path>), closing the v0.4 → v0.5 → v0.6 carry-over across two prior release-preps. Single-item paths only at M38; bulk + create + multi-file + stdin paths reject with details.reason discriminators (defer to v0.6.x carve-outs). No breaking changes vs 0.5.0 — every v0.6 surface is additive. Built as a single feature milestone (M38).
Breaking changes vs 0.5.0
None. Every command, error code, envelope key, and warning shape shipped in v0.5.0 is preserved byte-for-byte. v0.6 only adds.
Surface
117 commands shipped (unchanged from v0.5). M38 extends two existing verbs (monday item set + monday item update) with a new dispatch leg rather than introducing new noun namespaces or verbs.
M38 — monday item set <iid> <file-col>=<path> + monday item update <iid> --set <file-col>=<path>
Sibling-branch dispatch at the column-resolution boundary (per D1 closure): after column metadata loads, if column.type === 'file' AND single---set AND no other writes, route to executeFileColumnSet (the new multipart-wire fetcher); otherwise route to the standard translator + executeItemMutation path. Routes into v0.4-M31's add_file_to_column multipart wire verbatim.
Mutex rules (per D2 closure)
- File
--set+ ANY value--set/--set-raw/--name→usage_errorcarryingdetails.reason: 'mixed_file_and_value_sets'. - 2+ file
--setentries →usage_errorcarryingdetails.reason: 'multi_file_set_unsupported'(defers to v0.6.x).
Bulk + create paths REJECT at M38
monday item update --board <bid> (--where ...) --set <file-col>=<path>→usage_error.details.reason: 'file_set_on_bulk_unsupported'(D5 — defers to v0.6.x).monday item create --board <bid> --name <n> --set <file-col>=<path>→usage_error.details.reason: 'file_set_on_create_unsupported'(D6 — defers to v0.6.x).
--set-raw <file-col>=<json> STAYS REJECTED at M38 (D3 closure — PERMANENT)
Monday's wire has no JSON shape for change_column_value on file columns. The rejection now carries details.hint pointing at BOTH the M38 friendly --set form AND the M31 verb-shaped monday item upload.
Upgrade notes
unsupported_column_typedeferred_to: "v0.6"DROPPED for the files-shaped category at the friendly--setform. The rejection row now fires only on item create + bulk paths.--set-raw <file-col>=<json>stays REJECTED (permanent — nodeferred_toslot).- Multi-level subitem creation slips from
"v0.6"→"v0.7"(3rd consecutive slip; Monday'ssub_items_boardstill carries nosubtaskscolumn at API2026-01). - Cross-board
item movevalue-overrides slip"v0.6"→"v0.7". - Cross-board resumable cursor slips
"v0.6"→"v0.7". - Stable error-code registry stays at 29.
monday auth loginplaceholder-guard unchanged.
Tests + quality gates
- 4100 unit/integration + E2E tests at v0.6.0 (+1 skipped; was 4054+1 at v0.5.0; ~46 new tests for M38).
- Coverage at 99.26 / 96.46 / 99.31 / 99.52 (statements / branches / functions / lines) against the floor 95 / 95.45 / 95 / 95. Branches margin 1.01pp at v0.6.0 (was 1.00pp at v0.5.0).
- Audit-fix folded into release-prep.
npm auditflagged a transitivefast-uri@3.1.0(high severity);npm audit fixcleanly resolved to3.1.2.npm auditreports0 vulnerabilitiespost-fix.
Full release notes in CHANGELOG.md.