Skip to content

feat: non-blocking async I/O, auto-refresh tokens, YAML include detection, and new brand logo - #2

Merged
spelech merged 11 commits into
mainfrom
feature/async-io-token-refresh-branding
Oct 13, 2026
Merged

spelech merged 11 commits into
mainfrom
feature/async-io-token-refresh-branding

Conversation

@spelech

@spelech spelech commented Oct 13, 2026

Copy link
Copy Markdown
Owner

Summary of Improvements

1. Non-Blocking Async File I/O

  • Eliminates event loop blocking (ASYNC230) across backend views (BlocklistView, BlocklistAddView, AISettingsView, RebuildView, async_fetch_entities_data).
  • Offloads all file reads and writes (gaGen_*.yaml, configuration.yaml, and *.json storage) to thread executor jobs via hass.async_add_executor_job.

2. Live Auth Token Refresh & Iframe Resilience

  • Adds bidirectional postMessage synchronization between panel.js and app.js (HA_TOKEN_UPDATE and REQUEST_HA_TOKEN).
  • Implements an authFetch wrapper in app.js that catches HTTP 401 Unauthorized responses, automatically requests a refreshed access token from the parent Home Assistant window, and retries the request seamlessly.
  • Eliminates 30–60 minute session expiration errors when the dashboard is left open.

3. Missing YAML Include Guidance in UI

  • Detects if configuration.yaml lacks an include statement for the generated YAML file.
  • Displays an interactive alert banner in the restart confirmation dialog with the exact snippet required and a one-click Copy button.

4. Developer Experience & Code Quality

  • Adds pyproject.toml configuring pytest (pythonpath = ['.']) and Ruff linting rules.
  • Resolves all 61 Ruff linter errors/warnings (unused variables, unformatted imports, nested with statements, and mutable class attributes).
  • Bumps integration manifest version to 1.8.0.
  • All 338 unit and integration tests pass cleanly in ~1.2s.

5. Brand & App Logo Redesign

  • Redesigns the brand icon and app logo combining the iconic Home Assistant house network graph with Google Assistant's official four-color palette (Blue #4285F4, Red #EA4335, Yellow #FBBC05, Green #34A853).
  • Generates brand/logo.svg, high-resolution 1024x1024 PNGs (brand/logo.png, brand/icon.png), and web-optimized 512x512 asset (static/logo.png).
  • Fully synchronized to local Home Assistant docker installation.

@spelech
spelech merged commit 60bbfe7 into main Oct 13, 2026
2 checks passed
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