Skip to content

feat(map): plan V1 dynamic element page updates - #1010

Open
Lash-L wants to merge 1 commit into
mainfrom
codex/v1-dynamic-map-element-state
Open

Lash-L wants to merge 1 commit into
mainfrom
codex/v1-dynamic-map-element-state

Conversation

@Lash-L

@Lash-L Lash-L commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator

Add pure cursor and page planners for V1 dynamic map elements, following #1001 and #1005. Track the accepted generation and logical offset, then return explicit decisions for appends, replacements, empty generations, stale or gapped pages, and bounded generation-reset retries. An overlapping path page contributes only its unseen suffix; other element overlaps are rejected.

Port the element-level portion of the existing local planner, with signed/unsigned 32-bit nonce comparisons, the merged result == 0 or count == 0 acceptance rule, and checks that malformed pages cannot advance a cursor. Whole-map orchestration, byte merging, and device polling follow separately.

Also address Allen's #1005 review: explain how incremental updates keep the displayed path and robot position current, and rename the model/test modules to dynamic_map.py and test_dynamic_map.py under their existing V1 directories.

Validation:

  • Focused planner/model/block tests: 149 passed.
  • Full suite on Python 3.14: 2,067 passed, 53 xfailed, 11 deselected; 99 snapshots passed.
  • All pre-commit hooks passed, including Ruff, Mypy, and Codespell.
  • Replayed four saved response cases: path overlap, pose-only path, empty element, and element-generation mismatch. Input captures remained unchanged; capture contents are not included in this PR.

Copilot AI balanced review requested due to automatic review settings November 1, 2026 23:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

@codecov

codecov Bot commented Nov 1, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.73418% with 6 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
roborock/map/dynamic_state.py 97.05% 3 Missing and 3 partials ⚠️
Files with missing lines Coverage Δ
roborock/data/v1/__init__.py 100.00% <100.00%> (ø)
roborock/data/v1/dynamic_map.py 100.00% <ø> (ø)
tests/data/v1/test_dynamic_map.py 100.00% <ø> (ø)
tests/map/test_dynamic_state.py 100.00% <100.00%> (ø)
roborock/map/dynamic_state.py 97.05% <97.05%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.


PATH_ARGS_BLOCK_TYPE = 57

PAGE_LIMITS: dict[int, int] = {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

whats the key?

This branch has not been deployed

No deployments
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.

3 participants