Skip to content

Prototype project reviewed-now mutation#141

Merged
deverman merged 4 commits into
masterfrom
agent/138-project-reviewed-now
Jul 23, 2026
Merged

Prototype project reviewed-now mutation#141
deverman merged 4 commits into
masterfrom
agent/138-project-reviewed-now

Conversation

@deverman

@deverman deverman commented Jul 23, 2026

Copy link
Copy Markdown
Owner

Closes #138

Impact

mutation

Acceptance journey

A user selects active or on-hold project IDs, previews one reviewedNow=true update, then applies it with verification. FocusRelay preflights every target before any write, uses one request-level timestamp, preserves each review interval, and returns OmniFocus-native next-review state.

Implementation

  • Adds projectPatch.reviewedNow=true to MCP and --reviewed-now to the CLI.
  • Rejects false and mixed-field review patches.
  • Preflights every target and makes no writes when any target is missing, ineligible, or lacks a usable interval.
  • Uses one new Date() timestamp for the complete request, matching native Mark Reviewed behavior.
  • Verifies the saved review date, unchanged interval, and OmniFocus-generated next review date.
  • Adds direct MCP argument coverage and deterministic JavaScriptCore execution tests.
  • Documents the proven write contract and CLI/MCP workflows.

Validation

  • swift test — passed, 154 Swift Testing tests.
  • swift run focusrelay-dev validate --impact mutation — passed tests and clean release build.
  • git diff --check — passed.

Live UAT

Passed 2026-07-23 using explicitly disposable project buBqOONyCGB (Drop test):

  • Active-project preview and verified write.
  • On-hold-project verified write after a reversible status transition.
  • Restored the fixture to its original active status.
  • Preserved the one-month review interval.
  • Verified review state persisted after a full OmniFocus restart.
  • Observed a user-invoked native Mark Reviewed action.
  • Compared native and direct results through the same Bridge read boundary.

Native Mark Reviewed recorded Last Reviewed 2026-07-23T03:06:19.156Z and Next Review 2026-08-22T16:00:00.000Z. The final direct implementation recorded Last Reviewed 2026-07-23T03:07:43.801Z and the identical Next Review 2026-08-22T16:00:00.000Z. Both recorded their invocation timestamp, preserved the one-month interval, and let OmniFocus calculate Next Review at local midnight.

An intermediate local-midnight normalization hypothesis was rejected by the native UI evidence and removed in commit d5d1928. No ordinary project was mutated; the supplied fixture remains active.

deverman added 2 commits July 23, 2026 11:07
…eviewed-now

# Conflicts:
#	CHANGELOG.md
#	README.md
#	Tests/OmniFocusIntegrationTests/BridgeMutationExecutionTests.swift
@deverman
deverman marked this pull request as ready for review July 23, 2026 09:19
@deverman
deverman merged commit 7e6c63a into master Jul 23, 2026
4 checks 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.

Mark active and on-hold projects reviewed through edit_projects

1 participant