Skip to content

Improve bridge timeout diagnostics#49

Merged
deverman merged 10 commits into
masterfrom
issue-47-mutation-dispatch-reliability
Jun 2, 2026
Merged

Improve bridge timeout diagnostics#49
deverman merged 10 commits into
masterfrom
issue-47-mutation-dispatch-reliability

Conversation

@deverman

@deverman deverman commented Jun 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • reworks this PR to diagnostics only
  • removes the periodic mutation redispatch workaround and removes the tuning env var
  • keeps existing read/write dispatch behavior unchanged
  • improves bridge timeout messages with pickupState and whether the existing single stranded redispatch was attempted

Why

After the machine restart, the original #46 branch completed and restored the test project without the #49 workaround. That points to local machine / OmniFocus dispatch pressure rather than a proven deterministic code bug. This PR should therefore improve observability only, not change retry behavior.

Validation

  • swift test
  • safe live preview: swift run focusrelay set-projects-completion jdiFnpbNXj- --state active --preview-only --verify --return-fields id,name,status,completionDate

Scope Discipline

No periodic redispatch. No new env var. No query behavior change. No plugin JavaScript change.

Stack order: merge after #46, before #35 only if we still want better diagnostics before project moves. Related to #47.

@deverman

deverman commented Jun 1, 2026

Copy link
Copy Markdown
Owner Author

Scope correction: this PR is now diagnostics-only.

It no longer adds periodic redispatch or any new tuning env var. It only improves timeout errors with pickupState and strandedRedispatched. Parent #46 succeeded after machine restart without the workaround, so this PR should not be treated as a root-cause fix.

@deverman deverman changed the title Harden mutation dispatch recovery Improve bridge timeout diagnostics Jun 1, 2026
@deverman

deverman commented Jun 1, 2026

Copy link
Copy Markdown
Owner Author

Stack note: #50 (move_projects for issue #35) is now stacked on this branch. Merge this PR first, then #50.

@deverman deverman changed the base branch from issue-34-set-projects-completion to master June 2, 2026 03:39
@deverman

deverman commented Jun 2, 2026

Copy link
Copy Markdown
Owner Author

Merge-order note: #46 is merged into master, and this PR has been retargeted directly to master. This should merge before #35 only if we want the improved timeout diagnostics in place before structural project moves.

Scope check after rework:

  • diagnostics only
  • final diff vs master is limited to Sources/OmniFocusAutomation/BridgeClient.swift and Tests/OmniFocusIntegrationTests/BridgeClientTests.swift
  • no plugin JavaScript change
  • no periodic redispatch
  • no new timeout env var
  • no mutation-specific timeout default
  • no query behavior change

What changed:

  • bridge timeout errors now include pickupState, derived from request/response/lock files
  • bridge timeout errors now include strandedRedispatched, indicating whether the existing single stranded redispatch path was attempted
  • added Swift Testing coverage for pickupState labels

Validation:

  • swift test passed (89 tests; existing MCP Content.text deprecation warnings remain)
  • safe live preview passed: swift run focusrelay set-projects-completion jdiFnpbNXj- --state active --preview-only --verify --return-fields id,name,status,completionDate

@deverman deverman marked this pull request as ready for review June 2, 2026 03:40
@deverman deverman merged commit 1f5b563 into master Jun 2, 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