Make cloud sync exits and media durable - #145
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Greptile SummaryThis change makes cloud-media uploads durable across restarts, scopes queued media to the signed-in account, and updates cloud sync and exit behavior for retained work. Focused Flutter coverage confirmed that staged media waits for durable strategy persistence, account-A media cannot run under account B, ownerless legacy records remain retained without automatic processing, restored media keeps the active strategy in a syncing state, and a non-durable media reference prevents leaving. The relevant queue, sync-status, and exit-guard test suites passed. Confidence Score: 5/5The validated cloud-media durability, account-isolation, status, and exit flows are safe to merge. The suspected strategy-reference persistence race was disproved by the awaited flush and durable-write chain plus focused execution. Each reviewed failure path was exercised using the repository Flutter SDK and corroborated by focused regression coverage. Files Needing Attention: No remaining file requires corrective attention from the validated behaviors.
What T-Rex did
Reviews (5): Last reviewed commit: "fix: scope durable media to cloud accoun..." | Re-trigger Greptile |
|
Addressed the current Greptile review feedback in 0c8fa6b with focused tests for media-outbox write failure ordering, cross-strategy media isolation, draft staging, and unreliable media-outbox exit. |
|
Addressed the current review findings in 189993c: media jobs stay non-runnable until an exact durable or authoritative server reference exists, restart recovery works without reopening the strategy, orphan cleanup preserves the local source, and lineup jobs are persisted atomically as one batch. Added deterministic regressions for the ACK-before-promotion and partial-batch failure boundaries.\n\n@greptileai |
|
@greptileai Please review current head 189993c. The prior P1 findings are addressed with non-runnable staged media, exact durable/server reference reconciliation, atomic lineup batching, and deterministic restart/failure tests. |
|
@greptileai Please review current head 9e27e71. Restored active-strategy media is now derived directly from the durable media queue for Syncing and Needs attention status, with startup and offline-error regressions. |
|
Addressed the current Greptile review feedback in bd402cc: every new media job has a durable account owner, restore/reconcile/process require an exact active-account match, legacy unknown-owner records remain preserved and visible only for their strategy, and account-scoped keys isolate identical asset IDs. Added deterministic migration, cross-account, same-ID removal, status, and exit-guard regressions.\n\n@greptileai Please review current head bd402cc. |
|
@greptileai Please review current head bd402cc. The account-scoping P1 is fixed with durable account ownership, exact active-account filtering, preserved unknown-owner legacy records, and cross-account regressions. |
What changed
Verification
flutter test test/cloud_media_upload_queue_provider_test.dart test/widgets/cloud_sync_status_chip_test.dart test/unsaved_strategy_guard_test.dart test/strategy_op_queue_provider_test.dart test/strategy_integrity_test.dart(73 passed)flutter test(615 passed, 2 expected environment-only skips)flutter analyze(no errors or warnings; 35 existing info lints)