Skip to content

v0.6.0 — Files-shaped friendly --set writes (M38)

Choose a tag to compare

@Firer Firer released this 18 May 16:25
· 173 commits to main since this release

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_error carrying details.reason: 'mixed_file_and_value_sets'.
  • 2+ file --set entries → usage_error carrying details.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_type deferred_to: "v0.6" DROPPED for the files-shaped category at the friendly --set form. The rejection row now fires only on item create + bulk paths.
  • --set-raw <file-col>=<json> stays REJECTED (permanent — no deferred_to slot).
  • Multi-level subitem creation slips from "v0.6" → "v0.7" (3rd consecutive slip; Monday's sub_items_board still carries no subtasks column at API 2026-01).
  • Cross-board item move value-overrides slip "v0.6" → "v0.7".
  • Cross-board resumable cursor slips "v0.6" → "v0.7".
  • Stable error-code registry stays at 29.
  • monday auth login placeholder-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 audit flagged a transitive fast-uri@3.1.0 (high severity); npm audit fix cleanly resolved to 3.1.2. npm audit reports 0 vulnerabilities post-fix.

Full release notes in CHANGELOG.md.