Skip to content

Add shared mutation core preview pipeline#40

Merged
deverman merged 3 commits into
masterfrom
issue-29-shared-mutation-core
Jun 1, 2026
Merged

Add shared mutation core preview pipeline#40
deverman merged 3 commits into
masterfrom
issue-29-shared-mutation-core

Conversation

@deverman

Copy link
Copy Markdown
Owner

Summary

Add the shared mutation core that later task/project write tools can build on without bespoke transport code.

Change

  • add shared typed mutation request/response models in OmniFocusCore
  • extend OmniFocusService with a common performMutation entry point
  • add preview-only mutation transport support in both bridge and JXA backends
  • add cache invalidation hooks to CatalogCache
  • invalidate cached project/tag catalog pages after successful non-preview mutations
  • add model validation/round-trip tests and cache invalidation tests

Scope Notes

This PR intentionally stops at plumbing:

  • no public write MCP tools yet
  • no field-specific task/project mutation execution yet
  • preview-only mutation flow validates IDs and shared request shape

Validation

  • swift test

Why

Issue #29 is about creating one shared mutation pipeline for CLI and MCP before the field-specific write issues begin. This PR gives later issues a stable transport and result envelope without mixing in task/project write behavior.

@deverman

Copy link
Copy Markdown
Owner Author

Merge-order note: PR #40 should merge before issue #30 / the future update_tasks PR. #30 is intentionally stacked on this shared mutation core so task updates reuse the common mutation models, preview/verify flow, and cache invalidation path.

@deverman

deverman commented Jun 1, 2026

Copy link
Copy Markdown
Owner Author

Architecture/stack update: this PR is now retargeted to issue-28-write-contract so the implementation stack is mechanically ordered behind PR #38.

Current intended order: #38 -> #40 -> #41 -> #42 -> #43 -> #44 -> #46.

This keeps the write contract first, then the shared mutation core, then individual mutation tools.

@deverman deverman changed the base branch from issue-28-write-contract to master June 1, 2026 11:57
@deverman

deverman commented Jun 1, 2026

Copy link
Copy Markdown
Owner Author

Updated #40 on top of current master after #37 and #38 merged, and retargeted the PR base to master.

Current focused diff: shared mutation request/response models, bridge mutation request plumbing, cache invalidation hooks, and tests.

Validation:

  • node --check Plugin/FocusRelayBridge.omnijs/Resources/BridgeLibrary.js
  • swift test (73 tests passed; existing MCP SDK deprecation warnings only)
  • ./scripts/install-plugin.sh; fully restarted OmniFocus
  • ./.build/debug/focusrelay bridge-health-check
  • 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 #38 and before #41.

@deverman deverman marked this pull request as ready for review June 1, 2026 12:11
@deverman deverman merged commit 62d94a9 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