monday-cli 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +675 -2
- package/README.md +223 -31
- package/dist/api/assets.d.ts +326 -0
- package/dist/api/assets.d.ts.map +1 -0
- package/dist/api/assets.js +519 -0
- package/dist/api/assets.js.map +1 -0
- package/dist/api/board-favorites.d.ts +329 -0
- package/dist/api/board-favorites.d.ts.map +1 -0
- package/dist/api/board-favorites.js +353 -0
- package/dist/api/board-favorites.js.map +1 -0
- package/dist/api/board-mutation-result.d.ts +9 -5
- package/dist/api/board-mutation-result.d.ts.map +1 -1
- package/dist/api/board-mutation-result.js +9 -5
- package/dist/api/board-mutation-result.js.map +1 -1
- package/dist/api/board-relation-validation.d.ts +161 -0
- package/dist/api/board-relation-validation.d.ts.map +1 -0
- package/dist/api/board-relation-validation.js +317 -0
- package/dist/api/board-relation-validation.js.map +1 -0
- package/dist/api/cache.d.ts +14 -5
- package/dist/api/cache.d.ts.map +1 -1
- package/dist/api/cache.js +8 -10
- package/dist/api/cache.js.map +1 -1
- package/dist/api/column-mapping.js +2 -2
- package/dist/api/column-mapping.js.map +1 -1
- package/dist/api/column-mutation-result.d.ts +9 -5
- package/dist/api/column-mutation-result.d.ts.map +1 -1
- package/dist/api/column-mutation-result.js +9 -5
- package/dist/api/column-mutation-result.js.map +1 -1
- package/dist/api/column-types.d.ts +37 -14
- package/dist/api/column-types.d.ts.map +1 -1
- package/dist/api/column-types.js +47 -6
- package/dist/api/column-types.js.map +1 -1
- package/dist/api/column-values.d.ts +234 -31
- package/dist/api/column-values.d.ts.map +1 -1
- package/dist/api/column-values.js +560 -124
- package/dist/api/column-values.js.map +1 -1
- package/dist/api/cross-board-search.d.ts +501 -0
- package/dist/api/cross-board-search.d.ts.map +1 -0
- package/dist/api/cross-board-search.js +547 -0
- package/dist/api/cross-board-search.js.map +1 -0
- package/dist/api/dev-conventions.d.ts +1038 -0
- package/dist/api/dev-conventions.d.ts.map +1 -0
- package/dist/api/dev-conventions.js +1556 -0
- package/dist/api/dev-conventions.js.map +1 -0
- package/dist/api/documents.d.ts +519 -0
- package/dist/api/documents.d.ts.map +1 -0
- package/dist/api/documents.js +586 -0
- package/dist/api/documents.js.map +1 -0
- package/dist/api/dry-run.d.ts +32 -5
- package/dist/api/dry-run.d.ts.map +1 -1
- package/dist/api/dry-run.js +149 -32
- package/dist/api/dry-run.js.map +1 -1
- package/dist/api/errors.d.ts.map +1 -1
- package/dist/api/errors.js +28 -7
- package/dist/api/errors.js.map +1 -1
- package/dist/api/group-mutation-result.d.ts +9 -5
- package/dist/api/group-mutation-result.d.ts.map +1 -1
- package/dist/api/group-mutation-result.js +9 -5
- package/dist/api/group-mutation-result.js.map +1 -1
- package/dist/api/item-history-projection.d.ts +919 -0
- package/dist/api/item-history-projection.d.ts.map +1 -0
- package/dist/api/item-history-projection.js +1104 -0
- package/dist/api/item-history-projection.js.map +1 -0
- package/dist/api/item-mutation-execute.d.ts +82 -0
- package/dist/api/item-mutation-execute.d.ts.map +1 -0
- package/dist/api/item-mutation-execute.js +199 -0
- package/dist/api/item-mutation-execute.js.map +1 -0
- package/dist/api/item-watch.d.ts +263 -0
- package/dist/api/item-watch.d.ts.map +1 -0
- package/dist/api/item-watch.js +709 -0
- package/dist/api/item-watch.js.map +1 -0
- package/dist/api/multipart-transport.d.ts +223 -0
- package/dist/api/multipart-transport.d.ts.map +1 -0
- package/dist/api/multipart-transport.js +274 -0
- package/dist/api/multipart-transport.js.map +1 -0
- package/dist/api/notifications.d.ts +156 -0
- package/dist/api/notifications.d.ts.map +1 -0
- package/dist/api/notifications.js +215 -0
- package/dist/api/notifications.js.map +1 -0
- package/dist/api/oauth-test-helper.d.ts +64 -0
- package/dist/api/oauth-test-helper.d.ts.map +1 -0
- package/dist/api/oauth-test-helper.js +179 -0
- package/dist/api/oauth-test-helper.js.map +1 -0
- package/dist/api/oauth.d.ts +198 -0
- package/dist/api/oauth.d.ts.map +1 -0
- package/dist/api/oauth.js +471 -0
- package/dist/api/oauth.js.map +1 -0
- package/dist/api/parallel-dispatch.d.ts +155 -0
- package/dist/api/parallel-dispatch.d.ts.map +1 -0
- package/dist/api/parallel-dispatch.js +243 -0
- package/dist/api/parallel-dispatch.js.map +1 -0
- package/dist/api/partial-success-bulk.d.ts +480 -0
- package/dist/api/partial-success-bulk.d.ts.map +1 -0
- package/dist/api/partial-success-bulk.js +436 -0
- package/dist/api/partial-success-bulk.js.map +1 -0
- package/dist/api/partial-success-mutation.d.ts +13 -1
- package/dist/api/partial-success-mutation.d.ts.map +1 -1
- package/dist/api/partial-success-mutation.js +5 -1
- package/dist/api/partial-success-mutation.js.map +1 -1
- package/dist/api/people.d.ts +54 -1
- package/dist/api/people.d.ts.map +1 -1
- package/dist/api/people.js +27 -3
- package/dist/api/people.js.map +1 -1
- package/dist/api/probes.d.ts +487 -0
- package/dist/api/probes.d.ts.map +1 -0
- package/dist/api/probes.js +881 -0
- package/dist/api/probes.js.map +1 -0
- package/dist/api/raw-document.d.ts.map +1 -1
- package/dist/api/raw-document.js +2 -2
- package/dist/api/raw-document.js.map +1 -1
- package/dist/api/raw-write.d.ts +12 -4
- package/dist/api/raw-write.d.ts.map +1 -1
- package/dist/api/raw-write.js +32 -14
- package/dist/api/raw-write.js.map +1 -1
- package/dist/api/resolution-context.d.ts +23 -11
- package/dist/api/resolution-context.d.ts.map +1 -1
- package/dist/api/resolution-context.js +53 -12
- package/dist/api/resolution-context.js.map +1 -1
- package/dist/api/resolution-pass.d.ts +30 -1
- package/dist/api/resolution-pass.d.ts.map +1 -1
- package/dist/api/resolution-pass.js +36 -1
- package/dist/api/resolution-pass.js.map +1 -1
- package/dist/api/resolve-client.d.ts +22 -0
- package/dist/api/resolve-client.d.ts.map +1 -1
- package/dist/api/resolve-client.js +9 -1
- package/dist/api/resolve-client.js.map +1 -1
- package/dist/api/response-root.d.ts +92 -46
- package/dist/api/response-root.d.ts.map +1 -1
- package/dist/api/response-root.js +93 -41
- package/dist/api/response-root.js.map +1 -1
- package/dist/api/tag-directory.d.ts +154 -0
- package/dist/api/tag-directory.d.ts.map +1 -0
- package/dist/api/tag-directory.js +325 -0
- package/dist/api/tag-directory.js.map +1 -0
- package/dist/api/time-tracking.d.ts +165 -0
- package/dist/api/time-tracking.d.ts.map +1 -0
- package/dist/api/time-tracking.js +135 -0
- package/dist/api/time-tracking.js.map +1 -0
- package/dist/api/transport.js +3 -3
- package/dist/api/transport.js.map +1 -1
- package/dist/api/usage.d.ts +190 -0
- package/dist/api/usage.d.ts.map +1 -0
- package/dist/api/usage.js +194 -0
- package/dist/api/usage.js.map +1 -0
- package/dist/api/users-fan-out-mutation.d.ts.map +1 -1
- package/dist/api/users-fan-out-mutation.js +10 -5
- package/dist/api/users-fan-out-mutation.js.map +1 -1
- package/dist/api/webhooks.d.ts +357 -0
- package/dist/api/webhooks.d.ts.map +1 -0
- package/dist/api/webhooks.js +333 -0
- package/dist/api/webhooks.js.map +1 -0
- package/dist/cli/envelope-out.d.ts +18 -1
- package/dist/cli/envelope-out.d.ts.map +1 -1
- package/dist/cli/envelope-out.js +16 -2
- package/dist/cli/envelope-out.js.map +1 -1
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +120 -1
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/run.d.ts +32 -0
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +3 -0
- package/dist/cli/run.js.map +1 -1
- package/dist/commands/account/tags.d.ts +37 -0
- package/dist/commands/account/tags.d.ts.map +1 -0
- package/dist/commands/account/tags.js +84 -0
- package/dist/commands/account/tags.js.map +1 -0
- package/dist/commands/auth/login.d.ts +14 -0
- package/dist/commands/auth/login.d.ts.map +1 -0
- package/dist/commands/auth/login.js +314 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/auth/logout.d.ts +28 -0
- package/dist/commands/auth/logout.d.ts.map +1 -0
- package/dist/commands/auth/logout.js +94 -0
- package/dist/commands/auth/logout.js.map +1 -0
- package/dist/commands/board/archive.d.ts.map +1 -1
- package/dist/commands/board/archive.js +14 -14
- package/dist/commands/board/archive.js.map +1 -1
- package/dist/commands/board/column-create.d.ts +9 -8
- package/dist/commands/board/column-create.d.ts.map +1 -1
- package/dist/commands/board/column-create.js +61 -51
- package/dist/commands/board/column-create.js.map +1 -1
- package/dist/commands/board/column-delete.d.ts.map +1 -1
- package/dist/commands/board/column-delete.js +15 -16
- package/dist/commands/board/column-delete.js.map +1 -1
- package/dist/commands/board/column-update.d.ts.map +1 -1
- package/dist/commands/board/column-update.js +23 -22
- package/dist/commands/board/column-update.js.map +1 -1
- package/dist/commands/board/create.d.ts.map +1 -1
- package/dist/commands/board/create.js +14 -17
- package/dist/commands/board/create.js.map +1 -1
- package/dist/commands/board/delete.d.ts.map +1 -1
- package/dist/commands/board/delete.js +12 -15
- package/dist/commands/board/delete.js.map +1 -1
- package/dist/commands/board/describe.d.ts.map +1 -1
- package/dist/commands/board/describe.js +30 -0
- package/dist/commands/board/describe.js.map +1 -1
- package/dist/commands/board/duplicate.d.ts.map +1 -1
- package/dist/commands/board/duplicate.js +12 -13
- package/dist/commands/board/duplicate.js.map +1 -1
- package/dist/commands/board/favorites.d.ts +33 -0
- package/dist/commands/board/favorites.d.ts.map +1 -0
- package/dist/commands/board/favorites.js +74 -0
- package/dist/commands/board/favorites.js.map +1 -0
- package/dist/commands/board/find.d.ts +1 -1
- package/dist/commands/board/group-archive.d.ts.map +1 -1
- package/dist/commands/board/group-archive.js +12 -16
- package/dist/commands/board/group-archive.js.map +1 -1
- package/dist/commands/board/group-create.d.ts.map +1 -1
- package/dist/commands/board/group-create.js +9 -19
- package/dist/commands/board/group-create.js.map +1 -1
- package/dist/commands/board/group-delete.d.ts.map +1 -1
- package/dist/commands/board/group-delete.js +12 -16
- package/dist/commands/board/group-delete.js.map +1 -1
- package/dist/commands/board/group-duplicate.d.ts.map +1 -1
- package/dist/commands/board/group-duplicate.js +12 -16
- package/dist/commands/board/group-duplicate.js.map +1 -1
- package/dist/commands/board/group-update.d.ts.map +1 -1
- package/dist/commands/board/group-update.js +12 -11
- package/dist/commands/board/group-update.js.map +1 -1
- package/dist/commands/board/list.d.ts +1 -1
- package/dist/commands/board/update.d.ts.map +1 -1
- package/dist/commands/board/update.js +16 -11
- package/dist/commands/board/update.js.map +1 -1
- package/dist/commands/cache/list.d.ts +2 -0
- package/dist/commands/cache/list.d.ts.map +1 -1
- package/dist/commands/cache/list.js +2 -2
- package/dist/commands/cache/list.js.map +1 -1
- package/dist/commands/completion.d.ts +188 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +418 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/dev/_shared.d.ts +40 -0
- package/dist/commands/dev/_shared.d.ts.map +1 -0
- package/dist/commands/dev/_shared.js +104 -0
- package/dist/commands/dev/_shared.js.map +1 -0
- package/dist/commands/dev/configure.d.ts +36 -0
- package/dist/commands/dev/configure.d.ts.map +1 -0
- package/dist/commands/dev/configure.js +145 -0
- package/dist/commands/dev/configure.js.map +1 -0
- package/dist/commands/dev/discover.d.ts +34 -0
- package/dist/commands/dev/discover.d.ts.map +1 -0
- package/dist/commands/dev/discover.js +117 -0
- package/dist/commands/dev/discover.js.map +1 -0
- package/dist/commands/dev/doctor.d.ts +39 -0
- package/dist/commands/dev/doctor.d.ts.map +1 -0
- package/dist/commands/dev/doctor.js +91 -0
- package/dist/commands/dev/doctor.js.map +1 -0
- package/dist/commands/dev/epic/items.d.ts +24 -0
- package/dist/commands/dev/epic/items.d.ts.map +1 -0
- package/dist/commands/dev/epic/items.js +103 -0
- package/dist/commands/dev/epic/items.js.map +1 -0
- package/dist/commands/dev/epic/list.d.ts +36 -0
- package/dist/commands/dev/epic/list.d.ts.map +1 -0
- package/dist/commands/dev/epic/list.js +120 -0
- package/dist/commands/dev/epic/list.js.map +1 -0
- package/dist/commands/dev/release/list.d.ts +21 -0
- package/dist/commands/dev/release/list.d.ts.map +1 -0
- package/dist/commands/dev/release/list.js +73 -0
- package/dist/commands/dev/release/list.js.map +1 -0
- package/dist/commands/dev/sprint/current.d.ts +24 -0
- package/dist/commands/dev/sprint/current.d.ts.map +1 -0
- package/dist/commands/dev/sprint/current.js +90 -0
- package/dist/commands/dev/sprint/current.js.map +1 -0
- package/dist/commands/dev/sprint/items.d.ts +34 -0
- package/dist/commands/dev/sprint/items.d.ts.map +1 -0
- package/dist/commands/dev/sprint/items.js +118 -0
- package/dist/commands/dev/sprint/items.js.map +1 -0
- package/dist/commands/dev/sprint/list.d.ts +41 -0
- package/dist/commands/dev/sprint/list.d.ts.map +1 -0
- package/dist/commands/dev/sprint/list.js +104 -0
- package/dist/commands/dev/sprint/list.js.map +1 -0
- package/dist/commands/dev/task/block.d.ts +29 -0
- package/dist/commands/dev/task/block.d.ts.map +1 -0
- package/dist/commands/dev/task/block.js +106 -0
- package/dist/commands/dev/task/block.js.map +1 -0
- package/dist/commands/dev/task/done.d.ts +30 -0
- package/dist/commands/dev/task/done.d.ts.map +1 -0
- package/dist/commands/dev/task/done.js +113 -0
- package/dist/commands/dev/task/done.js.map +1 -0
- package/dist/commands/dev/task/list.d.ts +42 -0
- package/dist/commands/dev/task/list.d.ts.map +1 -0
- package/dist/commands/dev/task/list.js +227 -0
- package/dist/commands/dev/task/list.js.map +1 -0
- package/dist/commands/dev/task/start.d.ts +29 -0
- package/dist/commands/dev/task/start.d.ts.map +1 -0
- package/dist/commands/dev/task/start.js +90 -0
- package/dist/commands/dev/task/start.js.map +1 -0
- package/dist/commands/doc/get.d.ts +46 -0
- package/dist/commands/doc/get.d.ts.map +1 -0
- package/dist/commands/doc/get.js +95 -0
- package/dist/commands/doc/get.js.map +1 -0
- package/dist/commands/doc/list.d.ts +83 -0
- package/dist/commands/doc/list.d.ts.map +1 -0
- package/dist/commands/doc/list.js +248 -0
- package/dist/commands/doc/list.js.map +1 -0
- package/dist/commands/emit.d.ts.map +1 -1
- package/dist/commands/emit.js +5 -3
- package/dist/commands/emit.js.map +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +141 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/item/archive.d.ts.map +1 -1
- package/dist/commands/item/archive.js +11 -0
- package/dist/commands/item/archive.js.map +1 -1
- package/dist/commands/item/clear.d.ts.map +1 -1
- package/dist/commands/item/clear.js +15 -0
- package/dist/commands/item/clear.js.map +1 -1
- package/dist/commands/item/create.d.ts.map +1 -1
- package/dist/commands/item/create.js +41 -8
- package/dist/commands/item/create.js.map +1 -1
- package/dist/commands/item/delete.d.ts.map +1 -1
- package/dist/commands/item/delete.js +11 -0
- package/dist/commands/item/delete.js.map +1 -1
- package/dist/commands/item/duplicate.d.ts.map +1 -1
- package/dist/commands/item/duplicate.js +12 -0
- package/dist/commands/item/duplicate.js.map +1 -1
- package/dist/commands/item/history.d.ts +60 -0
- package/dist/commands/item/history.d.ts.map +1 -0
- package/dist/commands/item/history.js +309 -0
- package/dist/commands/item/history.js.map +1 -0
- package/dist/commands/item/list.d.ts.map +1 -1
- package/dist/commands/item/list.js +16 -13
- package/dist/commands/item/list.js.map +1 -1
- package/dist/commands/item/move.d.ts.map +1 -1
- package/dist/commands/item/move.js +41 -7
- package/dist/commands/item/move.js.map +1 -1
- package/dist/commands/item/search.d.ts +99 -15
- package/dist/commands/item/search.d.ts.map +1 -1
- package/dist/commands/item/search.js +480 -36
- package/dist/commands/item/search.js.map +1 -1
- package/dist/commands/item/set.d.ts.map +1 -1
- package/dist/commands/item/set.js +52 -8
- package/dist/commands/item/set.js.map +1 -1
- package/dist/commands/item/time-track/start.d.ts +61 -0
- package/dist/commands/item/time-track/start.d.ts.map +1 -0
- package/dist/commands/item/time-track/start.js +138 -0
- package/dist/commands/item/time-track/start.js.map +1 -0
- package/dist/commands/item/time-track/stop.d.ts +32 -0
- package/dist/commands/item/time-track/stop.d.ts.map +1 -0
- package/dist/commands/item/time-track/stop.js +97 -0
- package/dist/commands/item/time-track/stop.js.map +1 -0
- package/dist/commands/item/update.d.ts +2 -0
- package/dist/commands/item/update.d.ts.map +1 -1
- package/dist/commands/item/update.js +164 -113
- package/dist/commands/item/update.js.map +1 -1
- package/dist/commands/item/upload.d.ts +108 -0
- package/dist/commands/item/upload.d.ts.map +1 -0
- package/dist/commands/item/upload.js +370 -0
- package/dist/commands/item/upload.js.map +1 -0
- package/dist/commands/item/upsert.d.ts.map +1 -1
- package/dist/commands/item/upsert.js +48 -1
- package/dist/commands/item/upsert.js.map +1 -1
- package/dist/commands/item/watch.d.ts +90 -0
- package/dist/commands/item/watch.d.ts.map +1 -0
- package/dist/commands/item/watch.js +342 -0
- package/dist/commands/item/watch.js.map +1 -0
- package/dist/commands/notification/send.d.ts +60 -0
- package/dist/commands/notification/send.d.ts.map +1 -0
- package/dist/commands/notification/send.js +147 -0
- package/dist/commands/notification/send.js.map +1 -0
- package/dist/commands/parse-argv.d.ts.map +1 -1
- package/dist/commands/parse-argv.js +14 -4
- package/dist/commands/parse-argv.js.map +1 -1
- package/dist/commands/raw/index.d.ts.map +1 -1
- package/dist/commands/raw/index.js +13 -15
- package/dist/commands/raw/index.js.map +1 -1
- package/dist/commands/run-by-id-lookup.d.ts.map +1 -1
- package/dist/commands/run-by-id-lookup.js +2 -2
- package/dist/commands/run-by-id-lookup.js.map +1 -1
- package/dist/commands/schema/index.d.ts +2 -0
- package/dist/commands/schema/index.d.ts.map +1 -1
- package/dist/commands/status.d.ts +120 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +365 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/update/body-source.d.ts.map +1 -1
- package/dist/commands/update/body-source.js +2 -2
- package/dist/commands/update/body-source.js.map +1 -1
- package/dist/commands/update/create.d.ts +2 -3
- package/dist/commands/update/create.d.ts.map +1 -1
- package/dist/commands/update/create.js +15 -3
- package/dist/commands/update/create.js.map +1 -1
- package/dist/commands/update/delete.d.ts.map +1 -1
- package/dist/commands/update/delete.js +11 -0
- package/dist/commands/update/delete.js.map +1 -1
- package/dist/commands/update/edit.d.ts.map +1 -1
- package/dist/commands/update/edit.js +11 -0
- package/dist/commands/update/edit.js.map +1 -1
- package/dist/commands/update/list.d.ts.map +1 -1
- package/dist/commands/update/list.js +15 -12
- package/dist/commands/update/list.js.map +1 -1
- package/dist/commands/update/reply.d.ts.map +1 -1
- package/dist/commands/update/reply.js +11 -0
- package/dist/commands/update/reply.js.map +1 -1
- package/dist/commands/update/toggle.d.ts.map +1 -1
- package/dist/commands/update/toggle.js +13 -0
- package/dist/commands/update/toggle.js.map +1 -1
- package/dist/commands/update/upload.d.ts +69 -0
- package/dist/commands/update/upload.d.ts.map +1 -0
- package/dist/commands/update/upload.js +235 -0
- package/dist/commands/update/upload.js.map +1 -0
- package/dist/commands/usage.d.ts +58 -0
- package/dist/commands/usage.d.ts.map +1 -0
- package/dist/commands/usage.js +94 -0
- package/dist/commands/usage.js.map +1 -0
- package/dist/commands/webhook/create.d.ts +74 -0
- package/dist/commands/webhook/create.d.ts.map +1 -0
- package/dist/commands/webhook/create.js +150 -0
- package/dist/commands/webhook/create.js.map +1 -0
- package/dist/commands/webhook/delete.d.ts +46 -0
- package/dist/commands/webhook/delete.d.ts.map +1 -0
- package/dist/commands/webhook/delete.js +141 -0
- package/dist/commands/webhook/delete.js.map +1 -0
- package/dist/commands/webhook/list.d.ts +23 -0
- package/dist/commands/webhook/list.d.ts.map +1 -0
- package/dist/commands/webhook/list.js +68 -0
- package/dist/commands/webhook/list.js.map +1 -0
- package/dist/commands/workspace/create.d.ts.map +1 -1
- package/dist/commands/workspace/create.js +16 -0
- package/dist/commands/workspace/create.js.map +1 -1
- package/dist/commands/workspace/delete.d.ts.map +1 -1
- package/dist/commands/workspace/delete.js +13 -13
- package/dist/commands/workspace/delete.js.map +1 -1
- package/dist/commands/workspace/list.d.ts +1 -1
- package/dist/commands/workspace/update.d.ts.map +1 -1
- package/dist/commands/workspace/update.js +15 -15
- package/dist/commands/workspace/update.js.map +1 -1
- package/dist/config/credentials.d.ts +189 -0
- package/dist/config/credentials.d.ts.map +1 -0
- package/dist/config/credentials.js +300 -0
- package/dist/config/credentials.js.map +1 -0
- package/dist/config/profiles.d.ts +125 -0
- package/dist/config/profiles.d.ts.map +1 -0
- package/dist/config/profiles.js +227 -0
- package/dist/config/profiles.js.map +1 -0
- package/dist/types/global-flags.d.ts +1 -1
- package/dist/types/global-flags.d.ts.map +1 -1
- package/dist/types/global-flags.js +28 -16
- package/dist/types/global-flags.js.map +1 -1
- package/dist/types/ids.d.ts +4 -0
- package/dist/types/ids.d.ts.map +1 -1
- package/dist/types/ids.js +12 -3
- package/dist/types/ids.js.map +1 -1
- package/dist/utils/errors.d.ts +57 -3
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +69 -2
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/fs.d.ts +35 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +36 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/json.d.ts +60 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +86 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/mime.d.ts +24 -0
- package/dist/utils/mime.d.ts.map +1 -0
- package/dist/utils/mime.js +64 -0
- package/dist/utils/mime.js.map +1 -0
- package/dist/utils/output/envelope.d.ts +30 -0
- package/dist/utils/output/envelope.d.ts.map +1 -1
- package/dist/utils/output/envelope.js +26 -0
- package/dist/utils/output/envelope.js.map +1 -1
- package/dist/utils/output/ndjson.d.ts +90 -3
- package/dist/utils/output/ndjson.d.ts.map +1 -1
- package/dist/utils/output/ndjson.js +33 -0
- package/dist/utils/output/ndjson.js.map +1 -1
- package/dist/utils/redact.d.ts.map +1 -1
- package/dist/utils/redact.js +31 -0
- package/dist/utils/redact.js.map +1 -1
- package/dist/utils/signal.d.ts +42 -0
- package/dist/utils/signal.d.ts.map +1 -0
- package/dist/utils/signal.js +45 -0
- package/dist/utils/signal.js.map +1 -0
- package/package.json +2 -1
- package/dist/commands/account/client-helper.d.ts +0 -37
- package/dist/commands/account/client-helper.d.ts.map +0 -1
- package/dist/commands/account/client-helper.js +0 -55
- package/dist/commands/account/client-helper.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,10 +3,674 @@
|
|
|
3
3
|
All notable changes to `monday-cli` are recorded here. Format follows
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versioning
|
|
5
5
|
follows [SemVer](https://semver.org/spec/v2.0.0.html). The CLI's
|
|
6
|
-
output envelope (`{ ok, data, meta, ... }`) and
|
|
6
|
+
output envelope (`{ ok, data, meta, ... }`) and 29 stable error
|
|
7
7
|
codes are part of the public contract — the SemVer rules in
|
|
8
8
|
[`docs/cli-design.md`](./docs/cli-design.md) §6 govern bumps.
|
|
9
9
|
|
|
10
|
+
## [0.4.0] - 2026-05-14 — Operational features: long-poll watch, parallel bulk, asset upload, workdocs reads, shell completion
|
|
11
|
+
|
|
12
|
+
The "agents can drive long-running workflows + multipart wire +
|
|
13
|
+
shell completion" milestone — v0.3's "drive a real backlog"
|
|
14
|
+
foundation gains long-poll item activity streaming (NDJSON), bounded
|
|
15
|
+
parallel bulk dispatch, the first multipart wire surface (asset
|
|
16
|
+
uploads), Monday workdocs reads, and per-shell completion script
|
|
17
|
+
generation. **No breaking changes vs `0.3.0` — every v0.4 surface
|
|
18
|
+
is additive.** Built incrementally across M29–M33.
|
|
19
|
+
|
|
20
|
+
### Breaking changes vs `0.3.0`
|
|
21
|
+
|
|
22
|
+
**None.** Every command, error code, envelope key, and warning
|
|
23
|
+
shape shipped in v0.3.0 is preserved byte-for-byte. v0.4 only adds.
|
|
24
|
+
|
|
25
|
+
### Surface
|
|
26
|
+
|
|
27
|
+
**~101 commands shipped (was ~95 in v0.3).** Six new verbs +
|
|
28
|
+
one orthogonal flag extension on an existing verb. The new noun
|
|
29
|
+
namespaces are `doc` (workdocs reads) and `completion` (CLI-
|
|
30
|
+
internal, shell completion script generator).
|
|
31
|
+
|
|
32
|
+
**Long-poll item activity streaming (M29) — `monday item watch
|
|
33
|
+
<iid>`.** Long-polls Monday's `boards.activity_logs(item_ids:)`
|
|
34
|
+
with a polling cadence floor of `MIN_WATCH_INTERVAL_MS` (1000ms)
|
|
35
|
+
and emits one NDJSON event record per emitted activity-log row
|
|
36
|
+
plus a trailing `{"_meta": {...}}` record carrying the seven
|
|
37
|
+
M29-specific session counters flat under `_meta`:
|
|
38
|
+
`events_emitted`, `polls_made`, `failed_polls`,
|
|
39
|
+
`last_seen_event_id`, `circuit_broken_at`, `exit_reason`,
|
|
40
|
+
`watch_duration_seconds` (plus the standard meta keys + a
|
|
41
|
+
`warnings: [...]` slot accumulating `poll_failed` /
|
|
42
|
+
`circuit_breaker_armed` warnings). Modes: `--once` drains backlog
|
|
43
|
+
and exits without polling further; `--max-events <N>` /
|
|
44
|
+
`--max-duration <duration>` ceilings exit cleanly with the matching
|
|
45
|
+
`exit_reason`; `--since <event-id>` looks up the event's
|
|
46
|
+
`created_at` once and starts the loop from there; `--include
|
|
47
|
+
<kind>` filter narrows emitted events (v0.5+ may extend with
|
|
48
|
+
comment polling via `--include update_posted` once Monday's
|
|
49
|
+
`activity_logs` surfaces those). SIGINT drains gracefully + exits
|
|
50
|
+
130. Circuit-breaker trips after 5 consecutive `complexity_exceeded`
|
|
51
|
+
polls (emits an `exit_reason: circuit_broken` trailer + a §6.5
|
|
52
|
+
failure envelope on stderr + exit code 2; a successful poll between
|
|
53
|
+
failures resets the consecutive counter). Walker-side
|
|
54
|
+
`entity === 'pulse'` filter drops board-scoped rows per Decision 2
|
|
55
|
+
closure.
|
|
56
|
+
|
|
57
|
+
**Parallel bulk dispatch (M30) — `monday item update --where ...
|
|
58
|
+
--concurrency <N>`.** Extends the M25 partial-success bulk path
|
|
59
|
+
with bounded parallel dispatch via a new `--concurrency <N>` flag
|
|
60
|
+
(range 1..32; default 1). `--concurrency 1` routes through
|
|
61
|
+
`dispatchSequential` (byte-equivalent to the M25 default);
|
|
62
|
+
`--concurrency > 1` routes through `dispatchParallel` (semaphore-
|
|
63
|
+
bounded worker pool). The envelope is byte-equivalent across both
|
|
64
|
+
paths — `--concurrency` is a dispatch-mode flag, not a contract
|
|
65
|
+
extension. **Input-order preservation**: `data.results[]` lists
|
|
66
|
+
per-target outcomes in the original matched-item order regardless
|
|
67
|
+
of completion order, so agents can correlate `results[i]` ↔
|
|
68
|
+
`matched_items[i]` deterministically. `--concurrency` is mutually
|
|
69
|
+
exclusive with the single-item shape (rejected with `usage_error`
|
|
70
|
+
at `validateInputShape` before any network call) and requires
|
|
71
|
+
`--continue-on-error` on the bulk shape (the fail-fast bulk path
|
|
72
|
+
keeps its v0.1 envelope).
|
|
73
|
+
|
|
74
|
+
**Asset uploads (M31) — `monday item upload` + `monday update
|
|
75
|
+
upload`.** First multipart wire surface (`add_file_to_column` /
|
|
76
|
+
`add_file_to_update`). Per-verb shapes:
|
|
77
|
+
|
|
78
|
+
- `monday item upload <iid> --column <col> <file>` uploads the
|
|
79
|
+
local file as a Monday asset attached to the named column on
|
|
80
|
+
the item. Column type is validated against the writable-files
|
|
81
|
+
allowlist (`file` only at v0.4 — Monday's `add_file_to_column`
|
|
82
|
+
doesn't generalise to other types).
|
|
83
|
+
- `monday update upload <update-id> <file>` uploads the local
|
|
84
|
+
file as an asset attached to a Monday "update" (comment).
|
|
85
|
+
|
|
86
|
+
Both verbs do a JSON-leg pre-read (item-board lookup + board
|
|
87
|
+
metadata for column resolution, or update lookup) followed by
|
|
88
|
+
the multipart `add_file_to_*` mutation. The success envelope
|
|
89
|
+
carries Monday's full `Asset` projection (`id`, `name`, `url`,
|
|
90
|
+
`public_url`, `file_extension`, `file_size`, `uploaded_by`, etc.).
|
|
91
|
+
Pre-checks: `file_not_readable` (ENOENT or directory), `file_empty`
|
|
92
|
+
(zero-byte). `file_too_large` rewrap on Monday's
|
|
93
|
+
`FILE_SIZE_LIMIT_EXCEEDED` (non-retryable; the underlying
|
|
94
|
+
multipart wire is retryable, but the file-size error isn't —
|
|
95
|
+
M31 IMPL round-1 P2-1 closure). MIME content-type sniffed via the
|
|
96
|
+
new lifted `src/utils/mime.ts` (R-NEW-NEW shipped at M31 IMPL —
|
|
97
|
+
2-consumer trigger ahead of v0.4-plan §22's typical 3-consumer
|
|
98
|
+
threshold). `--dry-run` previews the planned change envelope
|
|
99
|
+
without firing the multipart wire (file path + filename +
|
|
100
|
+
file_size_bytes echoed; argv path preserved verbatim for relative
|
|
101
|
+
inputs per the R-class round-2/round-3 closure). Uploads are
|
|
102
|
+
**non-idempotent**: each successful call mints a fresh `Asset`
|
|
103
|
+
ID — re-running uploads the file a second time. Agents needing
|
|
104
|
+
register-once dedupe pre-read `Item.assets` / `Update.assets`
|
|
105
|
+
(read-side `item assets` / `update assets` verbs deferred to
|
|
106
|
+
v0.4.x per M31 Decision D6). Cache invalidation fires single-leg
|
|
107
|
+
on item-upload success (the parent item's board metadata cache
|
|
108
|
+
invalidates per §8); update-upload doesn't touch board metadata
|
|
109
|
+
so there's no invalidation step.
|
|
110
|
+
|
|
111
|
+
**Monday workdocs reads (M32) — `monday doc list [--workspace
|
|
112
|
+
<wid>,...] [--order-by <created_at|used_at>] [--limit <n>]
|
|
113
|
+
[--page <n>]` + `monday doc get <did>`.** First read-only access
|
|
114
|
+
to Monday's workdocs surface (`Query.docs(...)`). `doc list` is
|
|
115
|
+
paginated via page/limit (no cursor on Monday's workdocs surface);
|
|
116
|
+
defaults to `--limit 25 --page 1`; range 1..100. `--workspace
|
|
117
|
+
<wid>,...` accepts a comma-separated `WorkspaceId` list and maps
|
|
118
|
+
to wire `workspace_ids: [ID]` — Monday silently drops inaccessible
|
|
119
|
+
IDs (best-effort, no resolver warning). `--order-by <created_at|
|
|
120
|
+
used_at>` is a closed 2-value enum; both sort `desc` server-side.
|
|
121
|
+
`doc list` emits a wrapped record envelope: `data:
|
|
122
|
+
{ documents: [...], page, limit, returned_count, has_more }`
|
|
123
|
+
where `has_more === (returned_count === limit)` (Monday's wire
|
|
124
|
+
has no `total_count` slot). `doc get <did>` emits the direct-
|
|
125
|
+
unwrap `data: <Document with blocks>` shape; empty `docs: []` →
|
|
126
|
+
`not_found` with `details.doc_id` per D8 closure (Monday returns
|
|
127
|
+
empty when the doc doesn't exist OR is inaccessible — single
|
|
128
|
+
error code per the closure). `DocId` joins the brand registry
|
|
129
|
+
(`src/types/ids.ts`) as the 9th brand. **The full workdocs CRUD
|
|
130
|
+
mutation surface (9 mutations: `create_doc` / `update_doc_name`
|
|
131
|
+
/ `delete_doc` / `duplicate_doc` / `import_doc_from_html` /
|
|
132
|
+
`add_content_to_doc_from_markdown` / `create_doc_block` /
|
|
133
|
+
`update_doc_block` / `delete_doc_block`) is deferred to v0.5 per
|
|
134
|
+
D8 closure** — each mutation has enough surface area to warrant
|
|
135
|
+
its own milestone cluster.
|
|
136
|
+
|
|
137
|
+
**Shell completion (M33) — `monday completion <bash|zsh|fish>`.**
|
|
138
|
+
First raw-bytes-carve-out verb (cli-design §3.1 #2). The default
|
|
139
|
+
mode emits the install-time script bytes on stdout regardless of
|
|
140
|
+
TTY/pipe context — `monday completion bash >> ~/.bashrc` writes
|
|
141
|
+
the bash script to bashrc as a sourceable file. The `--json` /
|
|
142
|
+
`--output json` / `MONDAY_OUTPUT=json` paths opt INTO the §6
|
|
143
|
+
envelope with `data: { shell, script }` + `meta.source: "none"`
|
|
144
|
+
(CLI-internal verb — no Monday wire call, no cache, no auth
|
|
145
|
+
requirement). `--table` / `--output table` / `--output text` /
|
|
146
|
+
`--output ndjson` reject with `usage_error` at the parse boundary
|
|
147
|
+
(only `--json` and `--table` are global shorthand flags per
|
|
148
|
+
cli-design §4.4). Per-shell scripts are hand-rolled templates
|
|
149
|
+
(commander 14.0.3 ships **no** built-in completion machinery,
|
|
150
|
+
verified by empirical probe at M33 pre-flight) generated by
|
|
151
|
+
walking the registered command tree at runtime so agents adding a
|
|
152
|
+
new verb get completion for free. ERROR_CODES count stays at 29
|
|
153
|
+
per D4 closure. No new runtime dependency added per cli-design §1
|
|
154
|
+
"minimum deps".
|
|
155
|
+
|
|
156
|
+
### Output contract additions
|
|
157
|
+
|
|
158
|
+
**No new stable error codes — registry stays at 29.** Every v0.4
|
|
159
|
+
milestone closed the new-error-code question NEGATIVE: M29 routes
|
|
160
|
+
poll failures through the existing `complexity_exceeded` /
|
|
161
|
+
`rate_limited` / `network_error` codes (the trailer's
|
|
162
|
+
`exit_reason: circuit_broken` is an envelope-level discriminator,
|
|
163
|
+
not a `error.code`); M30 routes per-item failures through the M25
|
|
164
|
+
codes (`column_archived` / `validation_failed` / etc.); M31 routes
|
|
165
|
+
file-IO pre-checks through `usage_error.details.reason` discriminator
|
|
166
|
+
(`file_not_readable` / `file_empty` / `file_too_large`); M32
|
|
167
|
+
routes empty-array `doc get` through the existing `not_found`; M33
|
|
168
|
+
routes invalid shells through `usage_error` from the `parseArgv`
|
|
169
|
+
boundary.
|
|
170
|
+
|
|
171
|
+
**New NDJSON trailer shape** (M29 — `monday item watch`). NDJSON-
|
|
172
|
+
streaming verbs emit a final `{"_meta": {...}}` record carrying the
|
|
173
|
+
seven M29-specific session counters flat alongside the standard
|
|
174
|
+
meta keys (per cli-design §6.3 trailer contract). Pinned by the
|
|
175
|
+
envelope-snapshot suite + dedicated per-command suite.
|
|
176
|
+
|
|
177
|
+
**New wrapped-paginated-record envelope** (M32 — `monday doc
|
|
178
|
+
list`). `data: { documents, page, limit, returned_count, has_more
|
|
179
|
+
}` carries the pagination wrapper alongside the projection list.
|
|
180
|
+
Mirrors the M22 `monday usage` wrapped-record shape but on a
|
|
181
|
+
read-paginated surface. R-NEW-74 watch-item tracks the
|
|
182
|
+
`kind: 'record'` candidate for a future `emitSuccess` shape
|
|
183
|
+
extension (`emit.ts` ships only `kind: 'single' | 'collection'`
|
|
184
|
+
today; `'single'` does double-duty for wrapped records). JSON
|
|
185
|
+
output works correctly today; the watch-item fires only on a
|
|
186
|
+
table-UX complaint + 3rd consumer.
|
|
187
|
+
|
|
188
|
+
**New raw-bytes-default verb** (M33 — `monday completion`). First
|
|
189
|
+
verb whose default stdout payload is NOT a §6 envelope. The
|
|
190
|
+
carve-out at cli-design §3.1 #2 enumerates the rule: raw-bytes
|
|
191
|
+
mode is opt-out (`--json` / `--output json` / `MONDAY_OUTPUT=json`
|
|
192
|
+
opts INTO the envelope). The §6 envelope shape on the opt-in path
|
|
193
|
+
is byte-identical to other CLI-internal verbs:
|
|
194
|
+
`data: { shell, script }` + `meta.source: "none"`.
|
|
195
|
+
|
|
196
|
+
**New multipart-mutation planned-change envelope** (M31 —
|
|
197
|
+
`item upload --dry-run` + `update upload --dry-run`). The
|
|
198
|
+
`planned_changes[]` entry shape extends the standard dry-run
|
|
199
|
+
envelope with multipart-specific slots: `operation:
|
|
200
|
+
"add_file_to_column"` / `"add_file_to_update"`, `file_path`,
|
|
201
|
+
`filename`, `file_size_bytes`, plus the standard `item_id` /
|
|
202
|
+
`column_id` (or `update_id`) keys.
|
|
203
|
+
|
|
204
|
+
### Upgrade notes
|
|
205
|
+
|
|
206
|
+
- **`unsupported_column_type` `deferred_to: "v0.4"` slips to
|
|
207
|
+
`"v0.5"`** for the files-shaped category (`file` column type via
|
|
208
|
+
`--set` / `--set-raw`). v0.4-M31 shipped the verb-shaped path
|
|
209
|
+
(`monday item upload`) — that's the alternative path agents
|
|
210
|
+
should use today — but NOT the friendly `--set
|
|
211
|
+
<file-col>=<path>` / `--set-raw <file-col>=<json>` form (which
|
|
212
|
+
would need a separate dispatch from the translator boundary
|
|
213
|
+
into the multipart wire). Agents that previously caught the
|
|
214
|
+
v0.3.0 envelope's `deferred_to: "v0.4"` for the files-shaped
|
|
215
|
+
reject path should update their comparison to `"v0.5"`; the
|
|
216
|
+
`error.code: "unsupported_column_type"` + the hint pointing at
|
|
217
|
+
`monday item upload` are unchanged. **The hint is the load-
|
|
218
|
+
bearing routing surface — agents key off the hint, not the
|
|
219
|
+
`deferred_to` value.**
|
|
220
|
+
- **Multi-level subitem creation slips from `"v0.4"` → `"v0.5"`.**
|
|
221
|
+
Originally slipped from v0.3 → v0.4 at v0.3-M28 audit. v0.4
|
|
222
|
+
didn't pick it up — Monday's `sub_items_board` carries no
|
|
223
|
+
`subtasks` column at API `2026-01`, so depth-2 subitems still
|
|
224
|
+
have no data-model home. Single-level subitems (`item create
|
|
225
|
+
--parent <iid>` against classic boards) continue to work
|
|
226
|
+
byte-identically. The `error.code: "usage_error"` +
|
|
227
|
+
`details.hierarchy_type: "multi_level"` keys are unchanged.
|
|
228
|
+
- **Cross-board `item move` value-overrides slip from `"v0.4"` →
|
|
229
|
+
`"v0.5"`.** Originally v0.3-M11-targeted, slipped to v0.4 at
|
|
230
|
+
v0.3-M28 audit, slipped to v0.5 at v0.4 release-prep. Monday's
|
|
231
|
+
`ColumnMappingInput` still carries no value slot; supporting it
|
|
232
|
+
would need a non-atomic post-move `change_multiple_column_
|
|
233
|
+
values` with cross-leg partial-failure envelope shapes that
|
|
234
|
+
have no precedent at v0.4 close. Agents needing overrides
|
|
235
|
+
continue to fire `monday item set <iid> <target>=<value>`
|
|
236
|
+
post-move.
|
|
237
|
+
- **Cross-board resumable cursor slips from `"v0.4"` → `"v0.5"`.**
|
|
238
|
+
The `cross_board_truncated` warning's `details.hint` continues
|
|
239
|
+
to recommend narrowing via `--workspace` / `--favorites` /
|
|
240
|
+
`--max-boards`; v0.5 may pick the resumable surface up if
|
|
241
|
+
per-board cursor-lifetime under aggregation gets a clean design.
|
|
242
|
+
- **Stable error-code registry stays at 29.** Existing codes'
|
|
243
|
+
shapes are unchanged across v0.3 → v0.4.
|
|
244
|
+
- **`--concurrency <N>` is a new global-ish flag on bulk
|
|
245
|
+
`item update`.** Default `1` preserves the M25 sequential
|
|
246
|
+
envelope byte-for-byte; agents only opt INTO parallel dispatch
|
|
247
|
+
by passing the flag.
|
|
248
|
+
- **`monday auth login` placeholder-guard unchanged.** The verb
|
|
249
|
+
is still registered and still surfaces `usage_error.details.
|
|
250
|
+
reason: oauth_unregistered` pointing at `MONDAY_API_TOKEN`
|
|
251
|
+
(unchanged from v0.3.0). The OAuth deferral revisits in v0.4.x
|
|
252
|
+
/ v0.5 contingent on user demand.
|
|
253
|
+
|
|
254
|
+
### Internals worth highlighting
|
|
255
|
+
|
|
256
|
+
- **First multipart wire surface (M31)** introduces a new
|
|
257
|
+
transport seam (`MultipartTransport`) alongside the JSON
|
|
258
|
+
`transport` slot in `ResolvedClient`. Test seam mirrors the
|
|
259
|
+
JSON path's pattern (`ctx.multipart` injection wins;
|
|
260
|
+
production builds fresh via `createMultipartTransport(...)`).
|
|
261
|
+
The `add_file_to_column` / `add_file_to_update` fetchers share
|
|
262
|
+
an inline `dispatchMultipartOnce` helper + an inline retry-
|
|
263
|
+
thunk rewrap pattern for the non-retryable file_too_large case
|
|
264
|
+
(the wrap-vs-thunk placement is invariant — round-1 P2-1
|
|
265
|
+
closure). Codex pre-pre-flight checklist R-v0.4-W2 ratified
|
|
266
|
+
for "new transport seam" milestones.
|
|
267
|
+
|
|
268
|
+
- **R-class refactors shipped during v0.4.** R-NEW-41 (asymmetric
|
|
269
|
+
wire-vs-CLI semantics documentation pattern) shipped at M31
|
|
270
|
+
pre-flight as a new `docs/architecture.md` "Wire-vs-CLI
|
|
271
|
+
semantics documentation conventions" section enumerating the
|
|
272
|
+
three documented asymmetries (M27 webhook.config wire-typing
|
|
273
|
+
+ M27 NotificationTargetType + M31 multipart-vs-JSON
|
|
274
|
+
transport). R-NEW-NEW `sniffContentType` lift to
|
|
275
|
+
`src/utils/mime.ts` (M31 IMPL — 2-consumer trigger ahead of
|
|
276
|
+
the typical 3-consumer threshold; coverage from integration
|
|
277
|
+
tests alone would have failed the branches floor). R-NEW-56
|
|
278
|
+
ratified for the 3rd consecutive IMPL milestone (cross-doc
|
|
279
|
+
grep at IMPL kickoff catches prose-drift surface ahead of
|
|
280
|
+
Codex review). R-NEW-58 ratified via positive case at M31
|
|
281
|
+
+ negative case at M32. R-NEW-72 (cross-doc grep after every
|
|
282
|
+
contract-flipping Codex fix-up) graduated to a permanent
|
|
283
|
+
CLAUDE.md "Workflow rules" entry at M33 IMPL close. R-NEW-75
|
|
284
|
+
(5-dimension candidate-selection framework) graduated at the
|
|
285
|
+
post-M33 candidate-selection session that picked release-prep
|
|
286
|
+
over team writers. Full register with shipped commit SHAs +
|
|
287
|
+
consumer counts lives in [`docs/v0.4-plan.md`](./docs/v0.4-plan.md) §22.
|
|
288
|
+
|
|
289
|
+
- **Empirical probes** ratified across every novel v0.4 surface:
|
|
290
|
+
M29 `activity_logs` polling shape, M31 multipart `add_file_to_*`
|
|
291
|
+
wire, M32 `Query.docs(...)` filter + ordering enum + pagination
|
|
292
|
+
shape, M33 commander capability check (returned ZERO hits,
|
|
293
|
+
flipping the cli-design §13 entry from "via commander" to
|
|
294
|
+
"hand-rolled templates" before any pre-flight contract claim
|
|
295
|
+
could drift). R-NEW-77 (CLI-internal milestone empirical-probe-
|
|
296
|
+
slot equivalent) filed at M33 pre-flight as a 1-consumer
|
|
297
|
+
watch-item.
|
|
298
|
+
|
|
299
|
+
- **Two-AI review** (cli-design pre-flight + implementation
|
|
300
|
+
review) ran for every milestone M29–M33. M30 IMPL took 5
|
|
301
|
+
rounds to converge (the lesson driving R-NEW-56's pre-IMPL
|
|
302
|
+
cross-doc grep + R-NEW-72's post-fix-up grep). M31 took 7
|
|
303
|
+
pre-flight rounds (two distinct surface classes plus
|
|
304
|
+
substantive transport-seam gaps at rounds 6-7) + 3 IMPL rounds.
|
|
305
|
+
M32 / M33 each converged in 3 IMPL rounds. The cumulative
|
|
306
|
+
finding count + per-milestone Codex-round breakdown lives in
|
|
307
|
+
the per-milestone post-mortems in
|
|
308
|
+
[`docs/v0.4-plan.md`](./docs/v0.4-plan.md) §3 + §13–§15.
|
|
309
|
+
|
|
310
|
+
### Tests + quality gates
|
|
311
|
+
|
|
312
|
+
- **3634 unit/integration + E2E tests** at v0.4.0 (+1 skipped;
|
|
313
|
+
was 3249+1 ≈ 3250 in v0.3.0; ~385 new tests across M29–M33 +
|
|
314
|
+
the v0.4 release-prep envelope-snapshot refresh). All green on
|
|
315
|
+
Node 22 + 24.
|
|
316
|
+
- **Coverage at 99.26 / 96.33 / 99.34 / 99.53** (statements /
|
|
317
|
+
branches / functions / lines) against the floor 95 / 95.45 / 95
|
|
318
|
+
/ 95. Branches margin **0.88pp** at v0.4.0 (was 0.95pp at
|
|
319
|
+
v0.3.0; the v0.4 surface introduced novel branch-heavy areas
|
|
320
|
+
like M29's circuit-breaker progression + M30's parallel
|
|
321
|
+
dispatcher, both of which carry full integration-test coverage
|
|
322
|
+
but eat margin). Floor unchanged across v0.3.0 → v0.4.0.
|
|
323
|
+
- **Envelope-snapshot suite refreshed** for v0.4 surfaces — adds
|
|
324
|
+
11 snapshots covering item watch (NDJSON trailer shape),
|
|
325
|
+
doc list (wrapped record), doc get (direct unwrap + D8
|
|
326
|
+
not_found), completion bash/zsh/fish --json (raw-bytes-carve-
|
|
327
|
+
out envelope opt-in), completion --table + invalid-shell
|
|
328
|
+
rejections. Item upload / update upload pinned by the per-
|
|
329
|
+
command suites (multipart transport scaffolding stays out
|
|
330
|
+
of the envelope-snapshot suite per the v0.3-M28 cross-board /
|
|
331
|
+
dev precedent). `--concurrency` envelope byte-equivalent to
|
|
332
|
+
the existing M25 sequential snapshot — pinned by the per-
|
|
333
|
+
command bulk suite.
|
|
334
|
+
- **Five test layers held**: unit, integration (in-process
|
|
335
|
+
`FixtureTransport` + `MultipartFixtureTransport`), E2E
|
|
336
|
+
(subprocess against fixture server), envelope-shape snapshot
|
|
337
|
+
suite, published-tarball E2E.
|
|
338
|
+
|
|
339
|
+
### Documentation
|
|
340
|
+
|
|
341
|
+
- **[`docs/v0.4-plan.md`](./docs/v0.4-plan.md)** new — the v0.4
|
|
342
|
+
active plan with M29–M33 milestones, decisions log, R-class
|
|
343
|
+
register (R-NEW-44 through R-NEW-81), per-milestone post-
|
|
344
|
+
mortems (§3 + §13–§15 + §22).
|
|
345
|
+
- **[`docs/cli-design.md`](./docs/cli-design.md)** §4.3 grew six
|
|
346
|
+
new verb entries; §3.1 #2 raw-bytes carve-out documented; §13
|
|
347
|
+
v0.4 entry closed out + the v0.5 frame pinned (team writers +
|
|
348
|
+
doc CRUD mutation surface deferred to v0.5).
|
|
349
|
+
- **[`docs/architecture.md`](./docs/architecture.md)** gained
|
|
350
|
+
the "Wire-vs-CLI semantics documentation conventions" section
|
|
351
|
+
(R-NEW-41 shipped at M31 pre-flight).
|
|
352
|
+
- **[`docs/output-shapes.md`](./docs/output-shapes.md)** — every
|
|
353
|
+
shipped v0.4 command has a per-section data shape entry,
|
|
354
|
+
snapshot-backed.
|
|
355
|
+
- **README.md** quickstart expanded with v0.4 examples (`monday
|
|
356
|
+
completion`, `monday item watch`, `monday item upload`,
|
|
357
|
+
`--concurrency`, `monday doc list/get`).
|
|
358
|
+
|
|
359
|
+
[0.4.0]: https://github.com/Firer/monday-cli/releases/tag/v0.4.0
|
|
360
|
+
|
|
361
|
+
## [0.3.0] - 2026-05-13 — Monday Dev + multi-profile + diagnostics + outbound writes
|
|
362
|
+
|
|
363
|
+
The "agent can drive a real backlog with a real workflow" milestone —
|
|
364
|
+
v0.2's mutating core gains the Monday Dev convention layer (sprints /
|
|
365
|
+
epics / releases / tasks), multi-profile auth, diagnostics
|
|
366
|
+
(`monday status` / `monday usage`), cross-board search + favorites,
|
|
367
|
+
per-item history, partial-success bulk updates, and outbound writes
|
|
368
|
+
(webhooks + notifications). **No breaking changes vs `0.2.0` — every
|
|
369
|
+
v0.3 surface is additive.** Built incrementally across M19–M28.
|
|
370
|
+
|
|
371
|
+
### Breaking changes vs `0.2.0`
|
|
372
|
+
|
|
373
|
+
**None.** Every command, error code, envelope key, and warning shape
|
|
374
|
+
shipped in v0.2.0 is preserved byte-for-byte. v0.3 only adds.
|
|
375
|
+
|
|
376
|
+
### Surface
|
|
377
|
+
|
|
378
|
+
**~95 commands shipped (was ~75 in v0.2).** Four new noun-namespaces
|
|
379
|
+
(`tag` reads under `account`, `auth`, `dev`, `webhook`,
|
|
380
|
+
`notification`) plus two new top-level diagnostics verbs
|
|
381
|
+
(`monday status` / `monday usage`).
|
|
382
|
+
|
|
383
|
+
**Friendly-translator close-out (M19) — three new writable column
|
|
384
|
+
types.** `tags`, `board_relation`, `dependency` graduate from the v0.2
|
|
385
|
+
tentative row to first-class `--set` writers. The friendly tokens
|
|
386
|
+
resolve through per-account / per-board directories with cache
|
|
387
|
+
fallbacks. `WRITABLE_COLUMN_TYPES` reaches 13. M19 also ships
|
|
388
|
+
`monday account tags` (the read verb that closes the
|
|
389
|
+
`tag_not_found.details.hint` forward-reference from v0.2) and adds
|
|
390
|
+
`tag_not_found` to the stable error-code registry.
|
|
391
|
+
|
|
392
|
+
**Time-tracking placeholders (M20) — documentation-only.** `monday item
|
|
393
|
+
time-track start <iid>` / `monday item time-track stop <iid>` are
|
|
394
|
+
registered so agent scripts targeting these verbs are stable across
|
|
395
|
+
the eventual swap when Monday ships API support. They reject every
|
|
396
|
+
invocation today with `usage_error` carrying the empirical-probe
|
|
397
|
+
context as the hint — an empirical probe (2026-05-10, API `2026-01`)
|
|
398
|
+
confirmed Monday's public API does not currently support writing to
|
|
399
|
+
`time_tracking` columns.
|
|
400
|
+
|
|
401
|
+
**Multi-profile auth (M21).** `monday auth login --profile <name>` /
|
|
402
|
+
`monday auth logout --profile <name>` implement the OAuth flow + the
|
|
403
|
+
`~/.monday-cli/credentials` mode-`0600` cache; `~/.monday-cli/config.toml`
|
|
404
|
+
ships per-profile metadata with the new `--profile <name>` global
|
|
405
|
+
flag resolving through `cli/program.ts`'s preAction hook. `oauth_failed`
|
|
406
|
+
joins the stable error-code registry. **OAuth login is deferred in
|
|
407
|
+
v0.3.0** (see "Internals worth highlighting" → OAuth deferral); the
|
|
408
|
+
`monday auth login` command surfaces a clear `usage_error` pointing
|
|
409
|
+
agents at `MONDAY_API_TOKEN` until the canonical OAuth app is
|
|
410
|
+
registered. The redaction runtime folds credentials-cache tokens into
|
|
411
|
+
the secret-bag so the two-layer scrub covers them on every emission
|
|
412
|
+
path.
|
|
413
|
+
|
|
414
|
+
**Diagnostics cluster (M22).** `monday status` runs a seven-probe
|
|
415
|
+
matrix (DNS / TCP / TLS / auth / cache writability / redaction
|
|
416
|
+
self-test / env-var pickup) for "is everything working?" without
|
|
417
|
+
touching account state; `--no-probe` skips the four network probes.
|
|
418
|
+
`monday usage` reports the daily Monday API operation budget remaining
|
|
419
|
+
from `platform_api.daily_limit` + `platform_api.daily_analytics`
|
|
420
|
+
(operations-per-day on free tier; an empirical probe pivoted this
|
|
421
|
+
away from `account.complexity`, which does not exist on the `Account`
|
|
422
|
+
type at API `2026-01`).
|
|
423
|
+
|
|
424
|
+
**Cross-board search + favorites (M23).** `monday item search` gains
|
|
425
|
+
cross-board mode when `--board` is omitted: `--workspace <wid>` /
|
|
426
|
+
`--favorites` / `--max-boards <n>` (default 25; hard cap 100) scope
|
|
427
|
+
the fan-out. `monday board favorites` reads the current user's
|
|
428
|
+
starred boards. Both fan-outs use single-call cross-board semantics
|
|
429
|
+
(no resumable cross-board cursor in v0.3 — per-board cursor lifetime
|
|
430
|
+
under cross-board aggregation is genuinely thorny; agents narrow with
|
|
431
|
+
`--workspace` / `--favorites` or use the v0.1 `--board <bid>` path
|
|
432
|
+
which carries its own resumable cursor). Four new load-bearing
|
|
433
|
+
warnings: `inaccessible_boards`, `column_not_found_on_board`,
|
|
434
|
+
`cross_board_truncated`, `board_favorites_stale`.
|
|
435
|
+
|
|
436
|
+
**Per-item activity history (M24).** `monday item history <iid>`
|
|
437
|
+
merges Monday's `boards.activity_logs(item_ids:)` with `items.updates`
|
|
438
|
+
chronologically by `created_at` ascending (lexicographic `id` tie-
|
|
439
|
+
break). Event taxonomy is a zod discriminated union over Monday's
|
|
440
|
+
observed `event` slot (`update_column_value`, board-scoped variants,
|
|
441
|
+
synthesized `update_posted` / `update_replied`); unrecognised events
|
|
442
|
+
surface under `kind: 'unknown'` carrying raw `event` + `entity` slots,
|
|
443
|
+
with one bounded `unknown_event_kind` warning per unique unrecognised
|
|
444
|
+
event. Per-source pagination (`--activity-logs-page` /
|
|
445
|
+
`--updates-page`; independent denominators) + `--since` / `--until`
|
|
446
|
+
ISO8601 wall-clock filters + `--stream` NDJSON output reusing R52's
|
|
447
|
+
`startNdjsonStream`. Eventual-consistency lag is empirically >30s on
|
|
448
|
+
freshly-edited boards — the verb's `--help` text documents the
|
|
449
|
+
caveat.
|
|
450
|
+
|
|
451
|
+
**Partial-success bulk updates (M25).** `monday item update --where
|
|
452
|
+
... --continue-on-error` attempts every matched item regardless of
|
|
453
|
+
per-item failure and emits a partial-success envelope (cli-design
|
|
454
|
+
§6.4): `ok: true` whenever dispatch ran, per-target outcomes in
|
|
455
|
+
`data.results: [{ item_id, ok, error? }]`, with
|
|
456
|
+
`data.summary.failed_count` joining the existing
|
|
457
|
+
`matched_count`/`applied_count` invariant
|
|
458
|
+
(`matched_count === applied_count + failed_count`). The flag is
|
|
459
|
+
orthogonal to the `--yes` confirmation gate. ERROR_CODES registry
|
|
460
|
+
stays at 29 — per-item failures route through existing codes
|
|
461
|
+
(`column_archived`, `validation_failed`, `complexity_exceeded`, etc.).
|
|
462
|
+
The pre-existing fail-fast bulk path is unchanged.
|
|
463
|
+
|
|
464
|
+
**Monday Dev convention layer (M26).** Thirteen verbs land under the
|
|
465
|
+
`monday dev` namespace — the workflow-namespace three-level carve-out
|
|
466
|
+
(cli-design §5.2 carve-out 1; §5.9 mechanics). Three setup verbs at
|
|
467
|
+
two-level depth: `dev discover [--apply]` (auto-detect Tasks /
|
|
468
|
+
Sprints / Epics / Releases / Bugs boards by name), `dev configure
|
|
469
|
+
--tasks-board <bid> [...]` (pin board IDs per profile), `dev doctor`
|
|
470
|
+
(11-reason structured health-check enum surfaced via
|
|
471
|
+
`monday schema dev.doctor`). Ten workflow verbs at three-level depth:
|
|
472
|
+
`dev sprint current/list/items`, `dev epic list/items`, `dev release
|
|
473
|
+
list`, `dev task list/start/done/block`. Every workflow verb
|
|
474
|
+
translates to standard board / item CRUD against the per-profile
|
|
475
|
+
configured board IDs — no new Monday GraphQL mutations introduced. Two
|
|
476
|
+
new stable error codes activate (`dev_not_configured`,
|
|
477
|
+
`dev_board_misconfigured`; reserved on the v0.1 registry, now live).
|
|
478
|
+
|
|
479
|
+
**Outbound writes (M27).** Webhook lifecycle: `monday webhook list
|
|
480
|
+
[--board <bid>]` / `webhook create --board <bid> --url <url> --event
|
|
481
|
+
<type> [--config <json>]` (event-type validated against the 21-value
|
|
482
|
+
`WEBHOOK_EVENT_TYPES` closed enum, probed against API `2026-01`) /
|
|
483
|
+
`webhook delete <wid>` (destructive — `--yes` required;
|
|
484
|
+
`enforceDestructiveGate` fires BEFORE the resolver per the M10
|
|
485
|
+
invariant). Notifications: `monday notification send --user <uid>
|
|
486
|
+
--target <id> --target-type item|board --text <body>` (single-
|
|
487
|
+
recipient at v0.3). Webhooks are live-only — outside cli-design §8's
|
|
488
|
+
cache scope. The CLI never receives — webhooks land on the user's own
|
|
489
|
+
HTTPS endpoint (cli-design §1 permanent non-goal: hosting webhooks).
|
|
490
|
+
ERROR_CODES registry unchanged.
|
|
491
|
+
|
|
492
|
+
**Subitem multi-level creation — deferred out of v0.3 (M28).** Closed
|
|
493
|
+
at M28 pre-flight on empirical grounds: an empirical probe
|
|
494
|
+
(2026-05-13, API `2026-01`) confirmed Monday's `sub_items_board` does
|
|
495
|
+
NOT carry a `subtasks` column at the pinned API version, so a depth-2
|
|
496
|
+
subitem has structurally no place to live in the data model. Single-
|
|
497
|
+
level subitems remain first-class via the existing M9 carve-in (`item
|
|
498
|
+
create --parent <iid>`, `item subitems <iid>`, and every standard
|
|
499
|
+
item verb operating uniformly on subitems). v0.3.x / v0.4 picks the
|
|
500
|
+
feature up if Monday surfaces the capability.
|
|
501
|
+
|
|
502
|
+
### Output contract additions
|
|
503
|
+
|
|
504
|
+
**Two new stable error codes — registry grows from 27 to 29.**
|
|
505
|
+
|
|
506
|
+
1. **`tag_not_found`** (M19) — `monday item set <iid> tags=<token>`
|
|
507
|
+
when the token doesn't resolve through the per-account tag
|
|
508
|
+
directory. `details.hint` points the agent at `monday account
|
|
509
|
+
tags` for discovery.
|
|
510
|
+
2. **`oauth_failed`** (M21) — umbrella for OAuth-flow failures
|
|
511
|
+
(`monday auth login`). `details.reason` discriminates per failure
|
|
512
|
+
mode (`port_in_use`, `code_exchange_failed`, `state_mismatch`,
|
|
513
|
+
`redirect_invalid`, `oauth_unregistered` for the v0.3.0
|
|
514
|
+
placeholder-guard path, etc.) so agents key off the structured
|
|
515
|
+
reason rather than the umbrella code alone.
|
|
516
|
+
|
|
517
|
+
The two `dev_*` codes reserved on the v0.1 registry
|
|
518
|
+
(`dev_not_configured`, `dev_board_misconfigured`) activate at M26 —
|
|
519
|
+
they were registry-stable but inactive in v0.1/v0.2.
|
|
520
|
+
|
|
521
|
+
**Per-item history envelope shape** (M24). New under
|
|
522
|
+
`docs/cli-design.md` §6 for the merged activity stream: event objects
|
|
523
|
+
carry `created_at` (ISO), `actor_id`, `kind` (discriminator —
|
|
524
|
+
`update_column_value` / `update_posted` / `update_replied` /
|
|
525
|
+
board-scoped variants / `unknown`), `before`, `after` (typed where
|
|
526
|
+
M24 ships the projector, raw JSON elsewhere — agents read `kind` and
|
|
527
|
+
case on it).
|
|
528
|
+
|
|
529
|
+
**Partial-success bulk envelope** (M25 — §6.4 sub-section).
|
|
530
|
+
`data.summary.failed_count` joins the bulk-summary fields; per-item
|
|
531
|
+
`data.results: [{ item_id, ok, error? }]`. The fail-fast bulk path
|
|
532
|
+
(`details.applied_to` decoration on the error envelope) is unchanged
|
|
533
|
+
— agents who haven't migrated to read `data.results[]` continue to
|
|
534
|
+
receive the v0.1 envelope shape.
|
|
535
|
+
|
|
536
|
+
**Cross-board search envelope** (M23 — additive on `item search`).
|
|
537
|
+
The data shape is unchanged; the cross-board path adds per-board
|
|
538
|
+
`state` breakdown inside `cross_board_truncated.details`
|
|
539
|
+
(`exhausted` / `has_more` / `not_started`).
|
|
540
|
+
|
|
541
|
+
**Four new warnings** (cross-board search + favorites):
|
|
542
|
+
`inaccessible_boards`, `column_not_found_on_board`,
|
|
543
|
+
`cross_board_truncated`, `board_favorites_stale`. Plus
|
|
544
|
+
`unknown_event_kind` (item history). All warnings carry structured
|
|
545
|
+
`details` agents can route on.
|
|
546
|
+
|
|
547
|
+
### Upgrade notes
|
|
548
|
+
|
|
549
|
+
- **`unsupported_column_type` `deferred_to: "v0.3"` resolves** for
|
|
550
|
+
the v0.2 tentative row (`tags`, `board_relation`, `dependency`
|
|
551
|
+
shipped at M19). The `--set-raw` escape hatch on these types
|
|
552
|
+
continues to work byte-identically; agents using the friendly form
|
|
553
|
+
pick it up automatically.
|
|
554
|
+
- **Multi-level subitem creation slips to `deferred_to: "v0.4"`.**
|
|
555
|
+
M28 Decision 11 closure: Monday's `sub_items_board` carries no
|
|
556
|
+
`subtasks` column at API `2026-01`, so depth-2 subitems have no
|
|
557
|
+
data-model home. Agents that previously caught the v0.2.0
|
|
558
|
+
envelope's `deferred_to: "v0.3"` should update the comparison;
|
|
559
|
+
the `error.code: "usage_error"` + `details.hierarchy_type:
|
|
560
|
+
"multi_level"` keys are unchanged. Single-level subitems (`item
|
|
561
|
+
create --parent <iid>` against classic boards) continue to work
|
|
562
|
+
byte-identically.
|
|
563
|
+
- **Cross-board `item move` value-overrides slip to v0.4.**
|
|
564
|
+
`--columns-mapping`'s string-to-string form is unchanged. The
|
|
565
|
+
richer `{id, value?}` form was originally v0.3-targeted at M11
|
|
566
|
+
close; no v0.3 milestone picked up the extension because
|
|
567
|
+
Monday's `ColumnMappingInput` carries no value slot. Agents
|
|
568
|
+
needing overrides continue to fire `monday item set <iid>
|
|
569
|
+
<target>=<value>` post-move.
|
|
570
|
+
- **Stable error-code registry expanded from 27 to 29.** Existing
|
|
571
|
+
codes' shapes are unchanged.
|
|
572
|
+
- **`--profile <name>` is a new global flag.** Resolved through
|
|
573
|
+
`cli/program.ts`'s preAction hook; profile precedence is documented
|
|
574
|
+
at `docs/cli-design.md` §7.4. Single-profile installs (the v0.2
|
|
575
|
+
shape) need no change — the implicit default profile preserves the
|
|
576
|
+
v0.2 behaviour.
|
|
577
|
+
- **`monday auth login` placeholder-guard.** The verb is registered
|
|
578
|
+
but returns `usage_error.details.reason: oauth_unregistered`
|
|
579
|
+
pointing at `MONDAY_API_TOKEN` until the canonical Monday OAuth app
|
|
580
|
+
is registered. `monday auth logout` works against any locally
|
|
581
|
+
cached credentials. The deferral is documented at cli-design §7.3.
|
|
582
|
+
|
|
583
|
+
### Internals worth highlighting
|
|
584
|
+
|
|
585
|
+
- **OAuth deferral.** `OAUTH_CLIENT_ID` / `OAUTH_CLIENT_SECRET` ship
|
|
586
|
+
as `<UNREGISTERED_PENDING_OAUTH_APP>` placeholders in `src/api/oauth.ts`
|
|
587
|
+
at v0.3.0. The full M21 OAuth source + test infrastructure stays as
|
|
588
|
+
dormant infrastructure (the `__test_oauth_helper` seam keeps the
|
|
589
|
+
M21 round-trip tests green). Whether a canonical `monday-cli`
|
|
590
|
+
OAuth app gets registered at v0.3.x / v0.4 is a separate product
|
|
591
|
+
decision — the CLI works fully with API tokens today, which is the
|
|
592
|
+
shape every agent harness already consumes. If registration lands,
|
|
593
|
+
the swap is one-sided in `src/api/oauth.ts` and the placeholder
|
|
594
|
+
guard drops in one edit.
|
|
595
|
+
|
|
596
|
+
- **R-class refactors shipped during v0.3.** R-NEW-1 (`isENOENT`
|
|
597
|
+
lift), R-NEW-4 (`statusOutputSchema` / `probeResultSchema`
|
|
598
|
+
import-from-api lift), R-NEW-5 (`introspectType()` probe helper),
|
|
599
|
+
R-NEW-6 (`.claude/templates/codex-pre-flight-review.md` template
|
|
600
|
+
lift after M21 + M22 + M23 converged on the same prompt shape),
|
|
601
|
+
R-NEW-7 (`formatMode` lift), R-NEW-14 / R-NEW-15 / R-NEW-16
|
|
602
|
+
(`errorMessage` / `asError` / `errorCode` consolidation across 17
|
|
603
|
+
inline duplicates), R-NEW-17 (W1 redactor-pattern audit folded
|
|
604
|
+
template-stable), R-NEW-19 (manual `safeParse → ApiError` sites
|
|
605
|
+
migrated to `unwrapOrThrow`), R-NEW-21 (`trialQuery()` /
|
|
606
|
+
`ProbeRawErrors` probe lift), R-NEW-25 (W1's "findings up front"
|
|
607
|
+
Codex-prompt directive), R-NEW-27 (`isPlainObject`
|
|
608
|
+
consolidation), R-NEW-29 (`executeItemMutation` lift —
|
|
609
|
+
three-consumer trigger across single-item + fail-fast bulk + M25
|
|
610
|
+
partial-success bulk), R-NEW-30 (`resolveActiveDevProfile` —
|
|
611
|
+
13-consumer trigger across M26a + M26b), R-NEW-35
|
|
612
|
+
(`requireDevBoard` slot-check helper), R-NEW-36 (seven dev-conventions
|
|
613
|
+
workflow helpers), R-NEW-37 (Codex template W2 audit-point for
|
|
614
|
+
GraphQL operationName parity — caught the M27 IMPL caller-
|
|
615
|
+
overridable operationName slot), R-NEW-38 (sprint date-range
|
|
616
|
+
helpers consolidation), R-NEW-42 (`parseJsonArg` argv-JSON-parse-
|
|
617
|
+
boundary helper). Full register with shipped commit SHAs lives in
|
|
618
|
+
[`docs/v0.3-plan.md`](./docs/v0.3-plan.md) §22.
|
|
619
|
+
|
|
620
|
+
- **Empirical probes** ratified as always-run-for-novel-API-surface
|
|
621
|
+
pre-flight discipline. v0.3 fired the pattern across M21 OAuth /
|
|
622
|
+
M22 `platform_api.daily_*` reshape / M23 cross-board + favorites /
|
|
623
|
+
M24 history kinds / M26 dev-board discovery / M27 webhook
|
|
624
|
+
event-type enum / M28 multi-level subitems. Multiple milestones
|
|
625
|
+
pivoted contract surfaces at pre-flight on probe findings rather
|
|
626
|
+
than discovering API drift at IMPL.
|
|
627
|
+
|
|
628
|
+
- **Two-AI review** (cli-design pre-flight + implementation review)
|
|
629
|
+
ran for every milestone M19–M27. Catches contract drift before
|
|
630
|
+
it reaches `main`; the cumulative finding count + per-milestone
|
|
631
|
+
Codex-round breakdown is in the per-milestone post-mortems in
|
|
632
|
+
[`docs/v0.3-plan.md`](./docs/v0.3-plan.md) §11–§20.
|
|
633
|
+
|
|
634
|
+
### Tests + quality gates
|
|
635
|
+
|
|
636
|
+
- **3249 unit/integration + E2E tests** at v0.3.0 (+1 skipped; was
|
|
637
|
+
2280+38 ≈ 2318 in v0.2.0). All green on Node 22 + 24.
|
|
638
|
+
- **Coverage at 99.26 / 96.40 / 99.37 / 99.51** (statements /
|
|
639
|
+
branches / functions / lines) against the floor 95 / 95.45 / 95
|
|
640
|
+
/ 95. The branches floor was raised at M22 (94% → 95.45%) and
|
|
641
|
+
held through M28; the M28 close-out shipped six branch-coverage
|
|
642
|
+
residual tests closing the three deferred file-level gaps
|
|
643
|
+
(`item/search.ts` 88.23% → 100% stmts; `errors.ts` 95.37% → 100%
|
|
644
|
+
lines; `dry-run.ts` 96.26% → 100% branches). Branches margin is
|
|
645
|
+
0.95pp at v0.3.0.
|
|
646
|
+
- **Envelope-snapshot suite refreshed** for v0.3 surfaces — every
|
|
647
|
+
new v0.3 command + the partial-success / history / cross-board /
|
|
648
|
+
dev / webhook / notification envelopes are pinned for byte-shape
|
|
649
|
+
regressions.
|
|
650
|
+
- **Five test layers** held: unit, integration (in-process
|
|
651
|
+
`FixtureTransport`), E2E (subprocess against fixture server),
|
|
652
|
+
envelope-shape snapshot suite, published-tarball E2E.
|
|
653
|
+
|
|
654
|
+
### Documentation
|
|
655
|
+
|
|
656
|
+
- **[`docs/v0.3-plan.md`](./docs/v0.3-plan.md)** new — the v0.3
|
|
657
|
+
active plan with M19–M28 milestones, decisions log, R-class
|
|
658
|
+
register (R-NEW-1 through R-NEW-43), per-milestone post-mortems
|
|
659
|
+
(§11–§21).
|
|
660
|
+
- **[`docs/cli-design.md`](./docs/cli-design.md)** §4.3 grew ~25 new
|
|
661
|
+
verb entries; §6.4 added the M25 bulk partial-success sub-section;
|
|
662
|
+
§6.5 added two new error codes; §7.3 added the OAuth deferral
|
|
663
|
+
block; §7.4 added the multi-profile resolution surface; §11.5
|
|
664
|
+
added the seven-probe `monday status` matrix; §13 v0.3 entry
|
|
665
|
+
closed out.
|
|
666
|
+
- **[`docs/output-shapes.md`](./docs/output-shapes.md)** — every
|
|
667
|
+
shipped v0.3 command has a per-section data shape entry, snapshot-
|
|
668
|
+
backed.
|
|
669
|
+
- **README.md** quickstart expanded with v0.3 examples (`monday
|
|
670
|
+
status`, `monday dev sprint current`, `monday webhook list`).
|
|
671
|
+
|
|
672
|
+
[0.3.0]: https://github.com/Firer/monday-cli/releases/tag/v0.3.0
|
|
673
|
+
|
|
10
674
|
## [0.2.0] - 2026-05-08 — Mutating core: agents can drive a backlog
|
|
11
675
|
|
|
12
676
|
The "agents can drive a backlog" milestone — v0.1's read-only core
|
|
@@ -215,7 +879,7 @@ once and skip subsequent metadata lookups.
|
|
|
215
879
|
|
|
216
880
|
[0.2.0]: https://github.com/Firer/monday-cli/releases/tag/v0.2.0
|
|
217
881
|
|
|
218
|
-
## [0.1.0] —
|
|
882
|
+
## [0.1.0] — Foundation milestone (git tag — npm publish slipped to 0.2.0)
|
|
219
883
|
|
|
220
884
|
The "read-only core + safe mutations" milestone — an agent can read
|
|
221
885
|
everything the CLI surfaces, make small scoped idempotent changes,
|
|
@@ -223,6 +887,15 @@ and post comments narrating its work. Built incrementally across
|
|
|
223
887
|
M0–M7 (M5 split into M5a + M5b; M2.5 inserted post-M2 as a
|
|
224
888
|
structural-debt cleanup pass).
|
|
225
889
|
|
|
890
|
+
> **Publication note**: 0.1.0 shipped to `main` as a tagged git
|
|
891
|
+
> release but was not published to npm. The first public npm
|
|
892
|
+
> release of `monday-cli` is **0.2.0** (which contains the full
|
|
893
|
+
> v0.1 surface as its foundation — nothing in 0.1.0 was lost or
|
|
894
|
+
> rolled back). The `monday-cli` npm namespace had a brief
|
|
895
|
+
> pre-history (`monday-cli@0.0.1`, published and unpublished
|
|
896
|
+
> within hours on 2026-01-12) before being claimed for this
|
|
897
|
+
> project at the v0.2.0 release.
|
|
898
|
+
|
|
226
899
|
### Surface
|
|
227
900
|
|
|
228
901
|
**Five reader nouns + 35 commands shipped.**
|