Enhance device state verification#13
Merged
Merged
Conversation
…c provider handlers.py: - Return error immediately when all device operations fail - Add _expected_state_after_service: infer expected state by domain/service (light/switch/fan on/off, cover open/closed, lock locked/unlocked, etc.) - Add _verify_device_operation: poll state 3 times (0.15/0.35/0.7s) after service call to confirm device reached expected state - _execute_device_operations: record pre-call state, use blocking=True, verify post-call state, count verification failures as errors anthropic_compatible.py: - Remove extended thinking (reasoning_content) support — not stable upstream - Remove _extract_reasoning_content method - Remove thinking budget injection in request builder - Simplify assistant message tool_calls serialization
Keep handlers.py device state verification changes intact.
- Add stream_client_timeout() with generous total and strict per-chunk sock_read limit for streaming LLM responses - Increase first_chunk_timeout from 15s to 30s - Add retry on aiohttp.ServerDisconnectedError, ClientPayloadError, and ClientOSError with 3s backoff before retry
Remove _expected_state_after_service and _verify_device_operation methods along with the error response on full verification failure. State verification added unnecessary latency and false negatives for devices with delayed state updates.
Add _log_request_payload static method to log model, message count, tool count, message contents (truncated at 2000 chars), and tool definitions at INFO level. Also log response preview and stream URL for end-to-end request tracing.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.