Skip to content

[bug] whole-home fidelity guard rejects "turn on/off the lights" — on/off not benign, so a valid command fails to actuate #742

Description

@ultrahighsuper

Summary

entity_fidelity::whole_home_resolution_is_trustworthy treats the command verbs turn/switch/set/get as benign (they don't pin a request to a place), but NOT the state particles on/off/up/down that pair with them. So a valid whole-home command like "turn on the lights" fails the guard on the stray on token, the whole-home resolution is judged untrustworthy, and resolve_domain_target returns None — the lights never actuate.

Steps to reproduce

Resolve a bare-domain command through the runtime whole-home path (ha::provider::resolve_domain_targetwhole_home_resolution_is_trustworthy):

  • turn on the lights
  • turn off all the lights
  • turn on the kitchen lights

Expected

Trustworthy → the command resolves to the light group and actuates. turn is already benign; on/off should be too (they name no place).

Actual

whole_home_resolution_is_trustworthy(home, "turn on the lights") returns false because on is neither a domain word, a benign word, nor a valid place — so the guard rejects a correct resolution and the lights stay unchanged.

Notes

The BENIGN_QUERY_TOKENS list already whitelists the verbs (turn, switch, set, get, status), which shows it's meant to tolerate command-like text — it just misses the on/off/up/down particles. crates/genie-core/src/ha/entity_fidelity.rs. This is real-HA tool-dispatch/actuation correctness.

Hardware

Non-Jetson (x86_64 dev / cross-build host)

GenieClaw version / commit

2ad90f4 (main)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions