Skip to content

feat!: remove the slot- and device-addressed services - #1507

Merged
raman325 merged 1 commit into
v6from
chore/remove-deprecated-services
Aug 28, 2026
Merged

feat!: remove the slot- and device-addressed services#1507
raman325 merged 1 commit into
v6from
chore/remove-deprecated-services

Conversation

@raman325

Copy link
Copy Markdown
Owner

Breaking change

Four actions are removed. Each has a replacement that names a person instead of a lock slot:

Removed Use instead
lock_code_manager.set_usercode set_credential
lock_code_manager.clear_usercode clear_credential
lock_code_manager.set_slot_condition set_condition
lock_code_manager.clear_slot_condition clear_condition

All four have logged a deprecation warning since 5.4.0. An automation calling one will fail with "service not found" until it is updated.

The replacements are not drop-in: they take name rather than lock_entity_id + code_slot, or slot. That is the point — a slot number stays valid and comes to address whoever occupies that slot next, so an automation holding one silently starts acting on the wrong person.

Websocket commands used by the dashboard cards are renamed to match. These are internal, but anyone driving them directly is affected:

Old New
lock_code_manager/set_slot_condition lock_code_manager/set_condition
lock_code_manager/clear_slot_condition lock_code_manager/clear_condition
lock_code_manager/set_usercode lock_code_manager/write_unmanaged_code
lock_code_manager/clear_usercode lock_code_manager/clear_unmanaged_code

Proposed change

First of two PRs onto v6.

The condition websocket pair had already outgrown the "slot" in its name — it has accepted name and user_entity_id for a while — so that rename is mostly telling the truth.

The usercode pair is kept, renamed for what it is. Its only caller is the lock-codes card's editor, and that editor is offered for unmanaged slots only (isUnmanaged && !isEditing): codes sitting on a lock that no Lock Code Manager user holds. There is no name to address them by, so the config-level action cannot express them at all. A device-level write there is the entire point of that card rather than a hole in the model — write_unmanaged_code says so.

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New feature (which adds functionality)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

Tests: 2279 passed, 100% coverage held, all hooks pass including the frontend build.

15 test functions covering the removed actions were deleted. Three others used set_slot_condition only as a vehicle to reach unrelated behaviour (a wrong-domain entry, the settle timeout); those were moved onto set_condition and are simpler for it — they no longer look up a slot number.

set_usercode, clear_usercode, set_slot_condition and clear_slot_condition
are gone. Their replacements name a person: set_credential,
clear_credential, set_condition and clear_condition.

The websocket commands the cards use are renamed to match, and the
condition pair loses the "slot" in its name it had already outgrown --
it has accepted a name for a while.

The usercode pair survives as write_unmanaged_code and
clear_unmanaged_code, named for the one thing it is for. Its only caller
is the lock-codes card's editor, which edits UNMANAGED slots: codes on a
lock that no Lock Code Manager user holds, so there is no name to address
them by and the config-level action cannot express them. Keeping a
device-level write there is the point of that card rather than a hole in
the model.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 4cdce1951b8a
Copilot AI lite review requested due to automatic review settings August 27, 2026 21:23

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 reached their quota limit.

@github-actions github-actions Bot added python Pull requests that update Python code javascript Pull requests that update javascript code breaking-change Pull requests that break existing functionality labels Aug 27, 2026
@raman325
raman325 merged commit 2230bbc into v6 Aug 28, 2026
5 checks passed
@raman325
raman325 deleted the chore/remove-deprecated-services branch August 28, 2026 01:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking-change Pull requests that break existing functionality javascript Pull requests that update javascript code python Pull requests that update Python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants