Commit 4bb4577
release: 0.22.0 (root capabilities, extend, idempotent materialization) (#71)
Bumps __version__ to 0.22.0 (single source of truth), promotes Unreleased
to [0.22.0], and adds the tag link definition.
#64 node_id callable, so one device can carry two instances of a
capability
#65 DeviceTreeBuilder contract: model ownership, and the limit of
add()'s ordering
#66 the builder replaced properties in a model it does not own,
discarding live values, callbacks and entity_setters. A producer
that wired inbound control lost the actuator while $description
kept advertising settable: true. Data loss in 0.21.0's headline
feature.
#67 a child could silently shadow an ancestor's id, or a sibling's,
putting two devices on the same topics. Plus the feature it was
filed for: add_root_capabilities(), so a root can carry its own
capabilities rather than only parenting children.
#68 extend(), so a device that already exists can grow a capability.
The previous workaround dropped properties from $description while
leaving their retained topics on the broker.
Minor rather than patch: three new public methods. #66's fix is the
reason not to sit on it, since 0.21.0 is live with that data loss.
Materialization is now idempotent at three levels (node, property, and
the state transition itself), which is what makes a re-fired incremental
lifecycle a genuine no-op. The third matters most: an empty
state_transition still emits init -> ready, and that edge forces every
controller on the bus to resync.
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent cbed918 commit 4bb4577
2 files changed
Lines changed: 4 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
7 | 9 | | |
8 | 10 | | |
9 | 11 | | |
| |||
369 | 371 | | |
370 | 372 | | |
371 | 373 | | |
| 374 | + | |
372 | 375 | | |
373 | 376 | | |
374 | 377 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
86 | | - | |
| 86 | + | |
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
| |||
0 commit comments