Skip to content

fix: decode product families when generating feature docs - #1033

Open
hCoureau wants to merge 4 commits into
Python-roborock:mainfrom
hCoureau:fix/feature-docs-nickname-decoding
Open

hCoureau wants to merge 4 commits into
Python-roborock:mainfrom
hCoureau:fix/feature-docs-nickname-decoding

Conversation

@hCoureau

@hCoureau hCoureau commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

The feature-doc generator passes YAML nickname strings into a decoder keyed by RoborockProductNickname, so family-derived flags differ from runtime decoding. Resolve known names to enum members and report invalid names before writing the output. When family metadata is missing, empty or Unknown, use the runtime model lookup and its PEARLPLUS fallback for unrecognised models.

Keep raw capability metadata as values rather than replacing it with X, then regenerate SUPPORTED_FEATURES.md from the branch catalogue and existing Home API fixtures. Tests compare generated flags with the actual HomeDataProduct.product_nickname lookup, covering known and unknown models with missing family metadata, as well as invalid names and raw metadata. Runtime decoding and catalogue data remain unchanged. The existing non-V1 columns describe V1 decoder results.

Validation: 2,289 tests passed on each of Python 3.11 and 3.14; pre-commit, commitlint and source/wheel builds passed. Repeated generation is byte-identical. The combined checkout passes 2,310 tests on each Python version.

The reconnect test now waits for the ready callback rather than transport connection, which can precede initialization. This fixes the timing race exposed by the Python 3.11 CI run and ensures the manager closes if an assertion fails.

Related to #1016.

@hCoureau
hCoureau marked this pull request as ready for review November 11, 2026 19:55

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.

1 participant