You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(plan): Track synchronization state for plan executions - #816
⚠️First-time contributor? This PR cannot be merged until you sign the CLA.
The CLA Assistant bot will post a comment below — reply to it with exactly: I have read the CLA Document and I hereby sign the CLA
(Separate from this: all commits must also be signed off with git commit -s — see the Checklist.)
Summary
Adds synced_at column to plan_executions to track data synchronization state.
Introduces PlanExecutionCodec to manage data mapping for synchronization transfers.
Updates database access logic to use the new synced_at timestamp for data integrity checks.
- Adds `synced_at` column to plan_executions to track data synchronization state.
- Introduces `PlanExecutionCodec` to manage data mapping for synchronization transfers.
- Updates database access logic to use the new `synced_at` timestamp for data integrity checks.
BREAKING CHANGE: The plan execution data model now includes a `synced_at` timestamp, requiring schema migration and updates to data handling logic in `DatabaseManager`.
The reason will be displayed to describe this comment to others. Learn more.
🟡 Changes recommended
Unresolved critical synchronization race and deletion-handling issues, plus a non-reversible codec and missing coverage for new sync paths, could cause data loss or stale remote state.
The reason will be displayed to describe this comment to others. Learn more.
🟡 Changes recommended
Approval is blocked by a critical compatibility issue that makes existing plan executions unreadable and a moderate deletion-flow issue that can leave remote executions undeleted.
The new caller contract is not satisfied by the current call graph: PlanService.deleteExecution (used by PlansViewModel) calls repository.delete directly, and there is no explicit remote-delete call before it. This hard-delete removes the only local evidence of the execution, so a remote copy cannot be removed once execution sync is enabled. Add a tombstone/remote-delete flow before deleting, or make the synchronization scope and this method's contract explicitly local-only rather than documenting a pairing that does not exist.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
synced_atcolumn to plan_executions to track data synchronization state.PlanExecutionCodecto manage data mapping for synchronization transfers.synced_attimestamp for data integrity checks.Related Issue(s)
Type of Change
What Changed & Why
How to Test
./gradlew testScreenshots / Recordings (if applicable)
Checklist
main./gradlew spotlessApplyand./gradlew detektlocally./gradlew testand all tests passgit commit -sAdditional Notes