Skip to content

Port canonical coordinates to cloud - #143

Merged
SunkenInTime merged 9 commits into
icarus-cloudfrom
codex/canonical-coordinates-cloud
Sep 1, 2026
Merged

Port canonical coordinates to cloud#143
SunkenInTime merged 9 commits into
icarus-cloudfrom
codex/canonical-coordinates-cloud

Conversation

@SunkenInTime

Copy link
Copy Markdown
Owner

Summary

  • port the canonical coordinate implementation from main while preserving the cloud branch's media sizing and collaboration paths
  • make side switching change only the Page isAttack value, with no placed-element or undo/redo coordinate rewrites
  • preserve the final side intent when a Page patch is already in flight, including across process restarts
  • migrate v96 local strategies and historical .ica files to v97 before their first cloud upload
  • intentionally skip legacy cloud-row compatibility because cloud has not deployed yet

Verification

  • fvm flutter test --no-pub: 602 passed, 2 skipped
  • npm run test:convex: 33 passed
  • fvm flutter analyze --no-pub: no errors or warnings, 35 existing info-level lints
  • git diff --check

@coderabbitai

coderabbitai Bot commented Sep 1, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: ab6569df-e199-4074-a117-a565e571273c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@greptile-apps

greptile-apps Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This change keeps strategy content in a canonical attack-side coordinate system while rendering either tactical perspective, migrates legacy defense pages before cloud upload, and retains the latest selected page side during overlapping cloud updates.

Focused Flutter coverage verified final-side recovery across an in-flight request and restart, side-switch persistence and undo/redo preservation, defense-side drag round-trips, and pre-v97 Hive-to-cloud migration. No defects were reproduced on the PR head.

Confidence Score: 5/5

The verified coordinate, migration, and synchronization paths are safe to merge.

Focused tests exercised every identified failure mode. The defense-side lineup drag regression fails on the parent commit and passes on this PR, while durable page updates and legacy upload migration passed controlled persistence scenarios.

Files Needing Attention: No files require follow-up for the reviewed behavior. The real web rendering attempt produced a hidden page body, but Flutter widget and focused integration-style tests covered the affected interactions.

T-Rex T-Rex Logs

What T-Rex did

  • Validated that the page-descriptor queue stores a successor while the predecessor is in flight, and that restart recovery reloads, replays interrupted work, and promotes the rebased final descriptor after acknowledgement; focused Flutter tests covered both the in-flight final-side and restart-recovery paths.
  • Confirmed the persisted objects and history remain stable during defense-side changes; regression tests pass; focused Flutter coverage preserves drawings, text positions, and undo/redo snapshots; persisted-data checks work independently of the unavailable browser capture.
  • Validated the migration path for old defense coordinates: a pre-v97 coordinate was migrated to canonical form, cloud migration persists the migrated model to Hive, and end-to-end tests seed and verify canonical positions.
  • Replaced the old defense-side lineup drag logic with a side-aware inverse projection; the focused test suite passed all text, image, and defense drag checks; a browser render was attempted but the app body remained hidden, with Flutter tests providing the valid behavior evidence.
  • UI tests and Playwright evidence show the expected behavior; the tests validate the defense-side interactions and are complemented by logs indicating where the UI capture was limited by a blank surface.

View all artifacts

T-Rex Ran code and verified through T-Rex

Reviews (2): Last reviewed commit: "fix: store lineup drags in canonical coo..." | Re-trigger Greptile

@SunkenInTime

Copy link
Copy Markdown
Owner Author

Addressed both Defense-side saved-lineup drag findings in 2088895, with a widget test covering canonical storage and Attack re-rendering for the agent and ability. @greptileai

@SunkenInTime
SunkenInTime merged commit b364914 into icarus-cloud Sep 1, 2026
5 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.

1 participant