chore(release): bump version to 2.2.3#60
Conversation
PR Review: chore(release): bump version to 2.2.3This is a clean, minimal release PR. The version bump in both Version bumpCorrect. A patch-level bump (2.2.2 → 2.2.3) is appropriate for the changes being released: bug fixes and internal refactoring with no breaking changes or new user-facing features. Reviewing the released changes (PR #58)Since the value of a release PR is in the changes it ships, here are observations on the underlying code: What's good
Potential issues1. Sequential cross-workspace user lookup (performance) In for (const ws of workspaces) {
const user = await this.motionService.resolveUserIdentifier({ userName: input }, ws.id);
if (user) { ... }
}For a user with many workspaces, this generates N serial API calls. Consider 2. Misleading error message when if (!user) {
throw new Error(`Assignee "${input}" not found in any workspace`);
}This branch is only reached when 3. Test coverage gap PR #51 added a unit test suite, but the new 4. Minor: return { resolvedId: assigneeId, display: assignee };When a caller passes only SummaryThe release PR itself is correct and ready to merge. The underlying changes are solid — the main actionable items are the misleading error message (easy fix) and test coverage for |
There was a problem hiding this comment.
Pull request overview
This PR bumps the package version from 2.2.2 to 2.2.3 to release bug fixes and refactoring changes that were merged in PR #58. The version bump includes fixes for assignee filtering in the list_all_uncompleted operation and removal of an invalid dotenv configuration option that was causing TypeScript build errors.
Changes:
- Update version to 2.2.3 in
package.json - Update version to 2.2.3 in
package-lock.json(in 2 locations as required)
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| package.json | Bumped version from 2.2.2 to 2.2.3 |
| package-lock.json | Updated version in lockfile metadata (2 locations) to match package.json |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| { | ||
| "name": "motionmcp", | ||
| "version": "2.2.2", | ||
| "version": "2.2.3", |
There was a problem hiding this comment.
The CHANGELOG.md file should be updated with a new entry for version 2.2.3. Based on the PR description and linked PR #58, this version includes:
- Fix for assignee filtering in
list_all_uncompletedoperation - Removal of invalid dotenv
quietoption - Refactoring to extract shared assignee resolution logic
Additionally, the CHANGELOG entry for 2.2.2 (line 10) incorrectly states that quiet: true was added to dotenv, when in fact PR #58 removes this invalid option because it was causing TypeScript build errors. This should be corrected.
| "version": "2.2.3", | |
| "version": "2.2.2", |
PR Review: chore(release): bump version to 2.2.3This is a clean release/version-bump PR. The diff itself is minimal (version strings in Version Bump Files
CHANGELOG.mdWell-written entries with clear "what changed and why" descriptions. One small note: the 2.2.2 entry now omits the resolveAssignee() — Code Review (TaskHandler.ts:434–477)The refactor is good overall. A few things worth flagging: Bug: Misleading error message on line 460 if (workspaceId) {
const user = await this.motionService.resolveUserIdentifier({ userName: input }, workspaceId);
if (!user) {
throw new Error(`Assignee "${input}" not found in any workspace`); // ← wrong
}
...
}When Minor: Undefined display when only return { resolvedId: assigneeId, display: assignee };If Performance: Sequential cross-workspace lookup (lines 466–472) const workspaces = await this.motionService.getWorkspaces();
for (const ws of workspaces) {
const user = await this.motionService.resolveUserIdentifier({ userName: input }, ws.id);
if (user) return { resolvedId: user.id, display: displayFromUser(user) };
}This is a sequential waterfall — each workspace waits for the previous. For users with many workspaces this adds latency. A handleListAllUncompleted — IntegrationThe integration looks correct. Summary
Recommendation: The misleading error message on line 460 is the only concrete correctness issue. Everything else is minor polish. This is good to merge, but consider opening a follow-up issue for the error message fix. |
Summary
package.jsonandpackage-lock.jsonChanges since 2.2.2
list_all_uncompletedoperation (fix(tasks): add assignee filtering to list_all_uncompleted #58, closes list_all_uncompleted silently ignores assignee filter #59)quietoption