Skip to content

Implement update_tasks mutation flow#41

Merged
deverman merged 4 commits into
masterfrom
issue-30-update-tasks
Jun 1, 2026
Merged

Implement update_tasks mutation flow#41
deverman merged 4 commits into
masterfrom
issue-30-update-tasks

Conversation

@deverman

Copy link
Copy Markdown
Owner

Summary:

  • implement update_tasks in the shared mutation pipeline from Add Shared Mutation Core for CLI and MCP #29
  • expose the new operation through CLI and MCP
  • add task patch validation and tests for the v1 homogeneous-bulk contract

Validation:

  • node --check Plugin/FocusRelayBridge.omnijs/Resources/BridgeLibrary.js
  • swift test
  • swift run focusrelay bridge-health-check
  • swift run focusrelay list-tasks --fields id,name --limit 1
  • swift run focusrelay update-tasks --name Preview Only Rename --preview-only --verify --return-fields id,name,flagged

Notes:

@deverman

Copy link
Copy Markdown
Owner Author

Merge-order note: this PR is intentionally stacked on #40 and should not merge before #40 lands. After #40 merges, retarget or rebase this branch onto master before final review/merge.

@deverman

Copy link
Copy Markdown
Owner Author

Behavior note from live validation: renaming did not move the test task. The structural side effect appeared after the tag add/remove test on an inbox item. OmniFocus can automatically clean up tagged inbox items into a default single-action project depending on the user Organization preference named Clean up inbox items which have. On this machine that resulted in the task leaving Inbox and appearing under Personal single actions, with the project-level Mac Computer tag then visible in the task payload and UI. This is an OmniFocus-side cleanup effect that should be documented for inbox tag mutations. It is not a rename-specific mutation bug in update_tasks.

@deverman

Copy link
Copy Markdown
Owner Author

Merge-order note: the follow-up work for issue #31 is being stacked on top of this PR because task completion reuses the CLI and MCP mutation surfaces introduced here. Merge #41 before the future #31 PR.

@deverman deverman changed the base branch from issue-29-shared-mutation-core to master June 1, 2026 13:08
@deverman

deverman commented Jun 1, 2026

Copy link
Copy Markdown
Owner Author

Updated #41 on top of current master after #40 merged, resolved squash-merge conflicts, and retargeted the PR base to master.

Validation:

  • node --check Plugin/FocusRelayBridge.omnijs/Resources/BridgeLibrary.js
  • swift test (78 tests passed; existing MCP SDK deprecation warnings only)
  • ./scripts/install-plugin.sh; fully restarted OmniFocus
  • ./.build/debug/focusrelay bridge-health-check
  • Preview-only live check: ./.build/debug/focusrelay update-tasks mveToEQy4AJ --name "Preview only test - should not apply" --preview-only --return-fields id,name
  • Confirmed no mutation with ./.build/debug/focusrelay get-task mveToEQy4AJ --fields id,name
  • swift run focusrelay benchmark-gate-check --tool task-counts
  • swift run focusrelay benchmark-gate-check --tool list-tasks
  • swift run focusrelay benchmark-gate-check --tool project-counts
  • git diff --check

Merge order note: this should merge after #40 and before #42.

@deverman deverman marked this pull request as ready for review June 1, 2026 14:40
@deverman deverman merged commit ecf9a8c into master Jun 1, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant