Conversation
|
On hold following the review feedback on #933: please do not review the current cumulative diff. Once the read-only map stack lands, this draft will be rebased and repartitioned into focused changes:
Each part will be submitted sequentially against |
|
@hCoureau This branch has conflicts that must be resolved. |
|
Resolved the merge conflicts with current Validation: 1,150 tests passed, 92 snapshots passed, all pre-commit hooks passed, and sdist/wheel builds passed. GitHub CI was triggered for the new head. Required maintainer approval still applies. #933 has already merged. This branch still contains the stacked Q10 archive/obstacle/current-room work, which remains visible for maintainer review. Conflict resolution and validation performed with OpenAI Codex assistance. |
|
@allenporter PR #934 has been conflict-free since Sep 10, and everything checks out:
Ready for your review and merge approval when you get to it. |
# Conflicts: # roborock/devices/traits/b01/q10/maps.py # tests/devices/traits/b01/q10/test_clean_history.py
|
Physical-device validation of the restriction/wall write path, on an ss07
Not tested: room rename, saved-map apply. Happy to run this branch itself on Update: also exercised add and delete from a client through the same dpCommon |
Q10 map management needs typed overlay data and commands that preserve the device's authoritative state. This adds read-only restrictions and walls, full-collection replacement setters, room rename, and saved-map apply.
Scope and dependencies
This is a cumulative branch containing the archive, obstacle, and current-room work from #937–#939; archive parser support from #936 is merged. It now uses the composed
Q10CleanRecordDetailAPI and shares the archive lifecycle fixes with those PRs.After the archive stack lands, the planned partition is:
The common-coordinate
Q10RoborockPoint, current position, zoned cleaning, and goto support are already upstream through #908. This branch reuses that coordinate convention. #965 is merged. Upstreammainthroughb3a98b9(7.12.0) is integrated.Behavior
applychanges the active map asynchronously;selectrequests a preview.Allen’s follow-up feedback on merged #936 is addressed by separate clean-record and saved-map decoder tests, with no conditional assertions.
Validation
Validation of
fe0bfaa:uv run pytest -qon Python 3.13: 1,575 passed, 53 xfailed, 92 snapshots passed.uv buildpassed for both wheel and sdist.No physical-device run was performed for this revision.
Earlier physical Q10 S5+ validation exercised temporary no-go zones, virtual walls, room rename, and saved-map apply/readback, then restored the original values. A single saved map prevented validation of a cross-map transition. An earlier wheel was also exercised in Home Assistant.
Limitations
Inherited archive requests now have bounded waits and teardown recovery. Clean-history selection remains blocked after an uncertain outcome until the abandoned response is drained, because responses carry no record ID. Room split/merge, map deletion/reset, and map rename are outside this contribution. Customized cleaning controls are tracked in #935.
No credentials, personal room labels, floorplans, or private packet captures are included. Related: #767.