Repository navigation
fix(deps): move to @todoist/comms-sdk - #120
Merged
Merged
Conversation
@doist/comms-sdk is no longer released; @todoist/comms-sdk 5.0.0 is the same code as @doist/comms-sdk 4.0.1 under the new name. Swap the dependency, every import and vi.mock, the update-comms-sdk workflow and the docs that name it. This crosses comms-sdk 4.0.0, where attachments.upload() requires a workspaceId (sent as workspace_id; the API refused uploads without it). uploadAttachments() now takes the destination workspace, and thread create, thread reply and conversation reply pass the workspace of the channel, thread or conversation they already fetch, so --file uploads go to that workspace without an extra request.
doistbot
reviewed
Nov 11, 2026
doistbot
left a comment
Member
There was a problem hiding this comment.
Clean move of the dependency from @doist/comms-sdk to @todoist/comms-sdk, plus the migration across comms-sdk 4.0.0's breaking change: all imports, mocks, docs, and the update workflow now name the new package, and every uploadAttachments call site passes the required workspaceId from a channel/thread/conversation object that was already being fetched — no extra requests, and tests pin the new behavior with preflight/no-orphan-upload coverage. No inline issues were flagged.
I also included a few optional follow-up notes in the details below.
Optional follow-up notes (2)
src/commands/conversation/conversation.test.ts:1417: This assertion can't distinguish the conversation's workspace from the current one:
createConversationhardcodesworkspaceId: 1and thegetCurrentWorkspaceIdmock also resolves to1, so the test would still pass ifreplyToConversationusedgetCurrentWorkspaceId()instead of the fetched conversation'sworkspaceId. Give this conversation a workspaceId that differs from the current-workspace mock (e.g. 9) and assertworkspaceId: 9so the target-workspace behavior is actually pinned.src/commands/thread/thread.test.ts:2492:
toHaveBeenCalledWithonly needs one of the two uploads to match, so this passes even if one of the two files is uploaded without (or with a wrong)workspaceId. Thethread reply --filetest pins the exact args on a single call, andattachments.test.tspins each upload withtoHaveBeenNthCalledWith— mirroring that here (assert both calls carryworkspaceId: 10, ideally with theirfileNames) would make the two-file case fully covered.
doist-release-bot Bot
added a commit
that referenced
this pull request
Nov 11, 2026
## [5.0.1](v5.0.0...v5.0.1) (2026-11-11) ### Bug Fixes * **deps:** move to @todoist/comms-sdk ([#120](#120)) ([ff38e57](ff38e57))
Contributor
|
🎉 This PR is included in version 5.0.1 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
@doist/comms-sdkgets no more releases.@todoist/comms-sdk@5.0.0is the same code as@doist/comms-sdk@4.0.1, published under the new scope. comms-cli was on@doist/comms-sdk@3.11.0, so the move also crosses comms-sdk 4.0.0's breaking change.What changed
@doist/comms-sdk3.11.0→@todoist/comms-sdk5.0.0(exact pin, as before). The lockfile diff is just the removed@doist/comms-sdkentries and the added@todoist/comms-sdkones, with the same transitive dependencies.@doist/comms-sdkimport, type import,vi.mockandimportActualnow names@todoist/comms-sdk. oxfmt re-sorted the imports this touched.update-comms-sdk.ymlinstalls and reports@todoist/comms-sdk.renovate.jsonhas no rule naming the SDK, so it is unchanged.AGENTS.md,CODEBASE.md,docs/SPEC.mdand the.agentsverify/review-changes/evidence notes name the new package.Migration across comms-sdk 4.0.0
fix(attachments)!: send workspace_id with uploads(fix(attachments)!: send workspace_id with uploads comms-sdk-typescript#136):attachments.upload()now requiresworkspaceId, sent as theworkspace_idform field.uploadAttachments()takes the destination workspace and passes it through.thread createuses the channel's workspace,thread replythe thread's, andconversation replythe conversation's. Each command already fetched that object before uploading (the conversation preflight now keeps its result), so there are no extra requests.feat(workspaces): expose the workspace's upload limit(feat(workspaces): expose the workspace's upload limit comms-sdk-typescript#137): adds an optionaluploadLimitMbtoWorkspace. Nothing to migrate; the CLI doesn't read it.User-visible: per comms-sdk #136, the API refused uploads without
workspace_id, so--fileonthread create,thread replyandconversation replyshould now succeed, with files uploaded to the workspace of the thread, channel or conversation they are attached to. Nothing else changes for users.Tests updated:
uploadAttachmentsasserts the workspace reaches every upload, the command tests assert each--filepath sends the target's workspace, and the write-guard upload tests pass the now-required argument.Checked locally
npm run type-check: passes.npm test: 59 files, 1482 tests pass.oxfmt@0.72.0 --checkon the changed files: clean.Left on
@doist@doist/sdk-kmp, a transitive dependency of@todoist/comms-sdk(not a direct dependency here).@doist/comms-clipackage, and the CHANGELOG history.