Skip to content

feat!: v3.0.0 .storage-native zero-reboot Google Assistant architecture - #5

Merged
spelech merged 8 commits into
mainfrom
feature/storage-native-zero-reboot-v3
Oct 17, 2026
Merged

spelech merged 8 commits into
mainfrom
feature/storage-native-zero-reboot-v3

Conversation

@spelech

@spelech spelech commented Oct 17, 2026

Copy link
Copy Markdown
Owner

Summary

Upgrades Google Assistant Entity Console to v3.0.0 (major release), replacing the YAML generation + Home Assistant reboot workflow with a 100% .storage-native, zero-reboot live sync architecture.

Key Changes

  1. 100% .storage Persistence (store.py):
    • Stores google_settings (project_id, service_account (client_email, private_key), report_state, secure_devices_pin, auto_sync), synced_entities, blocklist, and ai_settings inside .storage/google_assistant_entity_console via homeassistant.helpers.storage.Store.
    • Automatically imports legacy credentials and exposed entity configurations from configuration.yaml, secrets.yaml, gaGen_*.yaml, SERVICE_ACCOUNT.json, .google_assistant_blocklist.json, and .google_assistant_ai_settings.json on first run.
  2. Zero-Reboot Runtime Manager (runtime.py):
    • Attaches to an existing google_assistant config entry (yaml_attached mode) or bootstraps GoogleConfig + GoogleAssistantView (/api/google_assistant) directly from .storage (storage mode) without requiring google_assistant: in configuration.yaml.
    • Mutates google_config._config["entity_config"] in memory on every entity exposure, nickname, or friendly-name update.
    • Calls await google_config.async_sync_entities_all() (devices:requestSync to Google HomeGraph) on Sync to Google (or via optional 15s debounced async_schedule_google_sync_all()) with zero Home Assistant restarts.
    • Safely removes stale SOURCE_IMPORT google_assistant config entries when switching to standalone .storage mode so Home Assistant boots cleanly after google_assistant: is removed from configuration.yaml.
  3. Backend API & UI (views.py, static/index.html, static/app.js):
    • Added /api/google_assistant_entity_console/sync, /api/google_assistant_entity_console/google_settings, and /api/google_assistant_entity_console/migrate_yaml.
    • Replaced header Sync & Rebuild + restart modal workflow with live Sync to Google.
    • Added Google Assistant Connection (.storage) credentials & Migrate from YAML controls to the Settings modal.

Visual Screenshots

v3.0.0 .storage Live Sync Dashboard

v3.0.0 Live Sync Dashboard

v3.0.0 .storage Google Assistant & AI Settings Modal

v3.0.0 Storage Settings Modal


Verification

  • Unit & E2E Tests: 359 passed (test_store.py, test_runtime.py, test_views.py, test_blocklist.py, test_entities.py, test_yaml.py, test_config_flow.py, test_playwright_e2e.py).
  • Linter: ruff check . passed with 0 errors.
  • Live Home Assistant Container Verification: Verified store.py, runtime.py, and views.py against the running homeassistant container (GoogleConfig, GoogleAssistantView, Store, and live /config YAML/secrets/service-account extraction).

@spelech
spelech merged commit 0626862 into main Oct 17, 2026
6 checks passed
@spelech
spelech deleted the feature/storage-native-zero-reboot-v3 branch October 17, 2026 20:46
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