Commit Graph

3726 Commits

Author SHA1 Message Date
Bruno Pantaleão Gonçalves
5f1ae83d05 Make app database update in settings on-demand trigger (#4244)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-21 12:58:22 +01:00
Bruno Pantaleão Gonçalves
ac1687bcc1 Add pending configuration strings for widget controls (#4239) 2026-01-20 18:49:55 +01:00
Bruno Pantaleão Gonçalves
5885ba85c4 Fix Cmd+R key command to refresh WebView (#4240)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-20 18:31:04 +01:00
dependabot[bot]
57f4508953 GitHub Actions: Bump the dependencies group with 2 updates (#4236)
Bumps the dependencies group with 2 updates:
[ruby/setup-ruby](https://github.com/ruby/setup-ruby) and
[actions/cache](https://github.com/actions/cache).

Updates `ruby/setup-ruby` from 1.281.0 to 1.284.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ruby/setup-ruby/releases">ruby/setup-ruby's
releases</a>.</em></p>
<blockquote>
<h2>v1.284.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix compatibility to ruby-3.2 by <a
href="https://github.com/larskanis"><code>@​larskanis</code></a> in <a
href="https://redirect.github.com/ruby/setup-ruby/pull/861">ruby/setup-ruby#861</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ruby/setup-ruby/compare/v1.283.0...v1.284.0">https://github.com/ruby/setup-ruby/compare/v1.283.0...v1.284.0</a></p>
<h2>v1.283.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Add restriction and validation for download urls by <a
href="https://github.com/ntkme"><code>@​ntkme</code></a> in <a
href="https://redirect.github.com/ruby/setup-ruby/pull/856">ruby/setup-ruby#856</a></li>
<li>Add ruby-3.2.10 by <a
href="https://github.com/ruby-builder-bot"><code>@​ruby-builder-bot</code></a>
in <a
href="https://redirect.github.com/ruby/setup-ruby/pull/860">ruby/setup-ruby#860</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ruby/setup-ruby/compare/v1.282.0...v1.283.0">https://github.com/ruby/setup-ruby/compare/v1.282.0...v1.283.0</a></p>
<h2>v1.282.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Add ruby-4.0.1 by <a
href="https://github.com/ruby-builder-bot"><code>@​ruby-builder-bot</code></a>
in <a
href="https://redirect.github.com/ruby/setup-ruby/pull/859">ruby/setup-ruby#859</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ruby/setup-ruby/compare/v1.281.0...v1.282.0">https://github.com/ruby/setup-ruby/compare/v1.281.0...v1.282.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="80740b3b13"><code>80740b3</code></a>
Add new RubyInstaller releases 4.0.1-1 and 3.2.10-1</li>
<li><a
href="5fcbc91943"><code>5fcbc91</code></a>
Fix compatibility to ruby-3.2</li>
<li><a
href="708024e6c9"><code>708024e</code></a>
Add ruby-3.2.10</li>
<li><a
href="757ecf59ea"><code>757ecf5</code></a>
Give a proper name to CI jobs checking generated files</li>
<li><a
href="6963d48fc7"><code>6963d48</code></a>
Use Regexp.escape to not need to manually escape (error-prone)</li>
<li><a
href="3fc6249beb"><code>3fc6249</code></a>
Match more strictly with \A and \z</li>
<li><a
href="b939495830"><code>b939495</code></a>
Add restriction and validation for download urls</li>
<li><a
href="4fc31e1c82"><code>4fc31e1</code></a>
Add ruby-4.0.1</li>
<li>See full diff in <a
href="675dd7ba1b...80740b3b13">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/cache` from 5.0.1 to 5.0.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/cache/releases">actions/cache's
releases</a>.</em></p>
<blockquote>
<h2>v.5.0.2</h2>
<h1>v5.0.2</h1>
<h2>What's Changed</h2>
<p>When creating cache entries, 429s returned from the cache service
will not be retried.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/cache/blob/main/RELEASES.md">actions/cache's
changelog</a>.</em></p>
<blockquote>
<h1>Releases</h1>
<h2>Changelog</h2>
<h3>5.0.2</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v5.0.3 <a
href="https://redirect.github.com/actions/cache/pull/1692">#1692</a></li>
</ul>
<h3>5.0.1</h3>
<ul>
<li>Update <code>@azure/storage-blob</code> to <code>^12.29.1</code> via
<code>@actions/cache@5.0.1</code> <a
href="https://redirect.github.com/actions/cache/pull/1685">#1685</a></li>
</ul>
<h3>5.0.0</h3>
<blockquote>
<p>[!IMPORTANT]
<code>actions/cache@v5</code> runs on the Node.js 24 runtime and
requires a minimum Actions Runner version of <code>2.327.1</code>.
If you are using self-hosted runners, ensure they are updated before
upgrading.</p>
</blockquote>
<h3>4.3.0</h3>
<ul>
<li>Bump <code>@actions/cache</code> to <a
href="https://redirect.github.com/actions/toolkit/pull/2132">v4.1.0</a></li>
</ul>
<h3>4.2.4</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.5</li>
</ul>
<h3>4.2.3</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.3 (obfuscates SAS token in
debug logs for cache entries)</li>
</ul>
<h3>4.2.2</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.2</li>
</ul>
<h3>4.2.1</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.1</li>
</ul>
<h3>4.2.0</h3>
<p>TLDR; The cache backend service has been rewritten from the ground up
for improved performance and reliability. <a
href="https://github.com/actions/cache">actions/cache</a> now integrates
with the new cache service (v2) APIs.</p>
<p>The new service will gradually roll out as of <strong>February 1st,
2025</strong>. The legacy service will also be sunset on the same date.
Changes in these release are <strong>fully backward
compatible</strong>.</p>
<p><strong>We are deprecating some versions of this action</strong>. We
recommend upgrading to version <code>v4</code> or <code>v3</code> as
soon as possible before <strong>February 1st, 2025.</strong> (Upgrade
instructions below).</p>
<p>If you are using pinned SHAs, please use the SHAs of versions
<code>v4.2.0</code> or <code>v3.4.0</code></p>
<p>If you do not upgrade, all workflow runs using any of the deprecated
<a href="https://github.com/actions/cache">actions/cache</a> will
fail.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8b402f58fb"><code>8b402f5</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/cache/issues/1692">#1692</a>
from GhadimiR/main</li>
<li><a
href="304ab5a070"><code>304ab5a</code></a>
license for httpclient</li>
<li><a
href="609fc19e67"><code>609fc19</code></a>
Update licensed record for cache</li>
<li><a
href="b22231e43d"><code>b22231e</code></a>
Build</li>
<li><a
href="93150cdfb3"><code>93150cd</code></a>
Add PR link to releases</li>
<li><a
href="9b8ca9f07e"><code>9b8ca9f</code></a>
Bump actions/cache to 5.0.3</li>
<li>See full diff in <a
href="9255dc7a25...8b402f58fb">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-19 15:53:10 +01:00
Copilot
241826177c Add frontend cache reset on consecutive pull-to-refresh within 10 seconds (#4235)
## Summary

Enables resetting the frontend cache via a double pull-to-refresh
gesture (within 10 seconds) in WebViewController, providing a
discoverable alternative to navigating through debug settings.

**Implementation:**
- Tracks pull-to-refresh timestamps to detect consecutive gestures
within 10-second window
- Triggers `cleanCache()` on second pull, provides haptic feedback
- Subsequent pulls within window continue resetting cache
- Pulls after 10+ seconds treated as new first pull

**Technical Details:**
- Added `lastPullToRefreshTimestamp` property to `WebViewController`
- Enhanced `pullToRefresh(_:)` method with time-window detection logic
- Uses existing `Current.websiteDataStoreHandler.cleanCache()`
infrastructure
- Comprehensive test coverage with mock `WebsiteDataStoreHandler`

```swift
@objc func pullToRefresh(_ sender: UIRefreshControl) {
    let now = Current.date()
    
    if let lastTimestamp = lastPullToRefreshTimestamp,
       now.timeIntervalSince(lastTimestamp) < 10 {
        // Cache reset path
        Current.websiteDataStoreHandler.cleanCache { [weak self] in
            self?.refresh()
            self?.updateSensors()
        }
        lastPullToRefreshTimestamp = now
    } else {
        // Normal refresh path
        lastPullToRefreshTimestamp = now
        refresh()
        updateSensors()
    }
}
```

## Screenshots
N/A - Internal behavior change with haptic feedback only

## Link to pull request in Documentation repository
Documentation: home-assistant/companion.home-assistant#

## Any other notes
Minimal change (+33 lines in WebViewController), leverages existing
cache clearing mechanism, testable via `Current.date()` abstraction.

<!-- START COPILOT CODING AGENT SUFFIX -->



<!-- START COPILOT ORIGINAL PROMPT -->



<details>

<summary>Original prompt</summary>

> Reset frontend cache (DebugView) when user pull to refresh more than
once in WebViewController under 10 seconds


</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

 Let Copilot coding agent [set things up for
you](https://github.com/home-assistant/iOS/issues/new?title=+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bgoncal <5808343+bgoncal@users.noreply.github.com>
2026-01-19 11:08:04 +01:00
Bruno Pantaleão Gonçalves
007604c9a9 Queue server database updates for sequential processing (#4232) 2026-01-16 22:53:24 +00:00
Bruno Pantaleão Gonçalves
4a7df098cd Add profiling and improve database update in bg (#4231)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-16 16:42:35 +00:00
Bruno Pantaleão Gonçalves
6b3419ea23 Display dynamic island indication when db is updating (#4230)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->
<img width="1796" height="804" alt="CleanShot 2026-01-16 at 13 11 31@2x"
src="https://github.com/user-attachments/assets/4c0be252-f3b6-4ff5-b27e-8b11f19eaee4"
/>

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-16 12:50:22 +00:00
Copilot
591f5a6021 Add server switcher to experimental HomeView toolbar menu (#4227)
## Summary
Adds a submenu to the experimental HomeView toolbar that displays
available servers below the Settings option. When multiple servers are
configured, users can switch between them directly from the toolbar
menu, with the currently selected server indicated by a checkmark.
Server switching logic is implemented using the ViewModel pattern for
proper separation of concerns and state management.

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes

### Implementation Details

**HomeView Changes**
(`Sources/App/WebView/ExperimentalSpace/Home/HomeView.swift`):
- Modified the "..." toolbar menu to include a "Servers" section below
Settings
- Server list only appears when multiple servers are configured
- Checkmark indicates the currently active server
- `switchToServer` method delegates to ViewModel for server switching

```swift
if Current.servers.all.count > 1 {
    Section("Servers") {
        ForEach(Current.servers.all, id: \.identifier) { server in
            Button { switchToServer(server) } label: {
                HStack {
                    Text(server.info.name)
                    if viewModel.server.identifier == server.identifier {
                        Spacer()
                        Image(systemSymbol: .checkmark)
                    }
                }
            }
        }
    }
}

private func switchToServer(_ server: Server) {
    guard server.identifier != viewModel.server.identifier else { return }
    viewModel.switchToServer(server)
}
```

**HomeViewModel Changes**
(`Sources/App/WebView/ExperimentalSpace/Home/HomeViewModel.swift`):
- Server switching logic moved to ViewModel for better architecture
- `server` property with `didSet` observer triggers
`handleServerChange()` when server changes
- `switchToServer(_ newServer: Server)` public method for initiating
server switches
- `handleServerChange()` private method that:
  - Stops all current subscriptions
  - Resets all state (entities, configuration, etc.)
  - Loads configuration for the new server
  - Reloads entities automatically

**Architecture Improvements**:
- **Separation of Concerns**: Server switching logic resides in
ViewModel instead of View
- **State Management**: Proper state reset and cleanup when switching
servers
- **Data Reloading**: Automatic entity and configuration reload for new
server
- **Subscription Management**: Stops old server subscriptions before
switching
- **Code Organization**: Improved ViewModel structure with clear section
markers

Single server configurations see no change in behavior - the menu
continues to show existing options without the server list.

<!-- START COPILOT CODING AGENT SUFFIX -->



<!-- START COPILOT ORIGINAL PROMPT -->



<details>

<summary>Original prompt</summary>

> In HomeView toolbar, blow settings, add a submenu to switch between
Current.servers.all


</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

 Let Copilot coding agent [set things up for
you](https://github.com/home-assistant/iOS/issues/new?title=+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bgoncal <5808343+bgoncal@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-16 10:59:54 +01:00
Bruno Pantaleão Gonçalves
b6214104ad Add updateDatabaseAndPanels call on viewDidAppear (#4229)
Introduces updateDatabaseAndPanels, which updates the app database and
panels for the current server. This method is now called in
viewDidAppear and after certain actions to ensure data is refreshed
without blocking app launch.

<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-16 10:23:46 +01:00
Bruno Pantaleão Gonçalves
de371a67d8 Refactor AppDatabaseUpdater for per-server updates (#4224) 2026-01-15 20:01:43 +01:00
Bruno Pantaleão Gonçalves
f7780f6937 Removing cameras list entry from control center (#4211) 2026-01-15 10:07:41 +01:00
Bruno Pantaleão Gonçalves
9ee8ac4419 Add summaries and area context to native dashboard (#4221)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->
<img width="1206" height="2622" alt="Simulator Screenshot - iPhone 17 -
2026-01-14 at 16 42 40"
src="https://github.com/user-attachments/assets/0e023ce2-f767-40a8-900f-1b1a00a127f5"
/>

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-14 16:39:46 +00:00
Bruno Pantaleão Gonçalves
6f577ebb6f Add rooms layout option to native dashboard (#4220)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->
<img width="2568" height="1688" alt="CleanShot 2026-01-14 at 14 45
37@2x"
src="https://github.com/user-attachments/assets/a1deb196-c51d-47e1-a2a3-15f6b82b697f"
/>

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-14 15:58:43 +01:00
Bruno Pantaleão Gonçalves
5546cbed80 Improve entity picker information and filtering options (#4217) 2026-01-14 12:43:48 +01:00
Copilot
aae751f4b2 Fix macOS menu bar text not updating after connection loss (#4106) 2026-01-12 23:49:32 +01:00
Copilot
4f0b4ecdef Add mute TTS setting for Assist - allow text-only responses (#4212) 2026-01-12 23:47:02 +01:00
Bruno Pantaleão Gonçalves
3f2727411c Improve cameras list view (#4210)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->
- Add fallback support to HLS and MJPEG
- Improve UI
- Move WebRTC known issues disclaimer to a sheet view

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

<img width="3160" height="1068" alt="CleanShot 2026-01-12 at 15 43
49@2x"
src="https://github.com/user-attachments/assets/77d445d7-88f0-40fb-8b0d-b1eab3c56e3d"
/>


## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-12 17:05:13 +01:00
Bruno Pantaleão Gonçalves
61a31ecc42 Allow frontend to display native toasts through external bus (#4191)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
2026-01-12 10:49:22 +01:00
dependabot[bot]
14ef361801 GitHub Actions: Bump ruby/setup-ruby from 1.278.0 to 1.281.0 in the dependencies group (#4208)
Bumps the dependencies group with 1 update:
[ruby/setup-ruby](https://github.com/ruby/setup-ruby).

Updates `ruby/setup-ruby` from 1.278.0 to 1.281.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ruby/setup-ruby/releases">ruby/setup-ruby's
releases</a>.</em></p>
<blockquote>
<h2>v1.281.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Generate test matrix dynamically by <a
href="https://github.com/ntkme"><code>@​ntkme</code></a> in <a
href="https://redirect.github.com/ruby/setup-ruby/pull/854">ruby/setup-ruby#854</a></li>
<li>Add truffleruby-33.0.0,truffleruby+graalvm-33.0.0 by <a
href="https://github.com/ruby-builder-bot"><code>@​ruby-builder-bot</code></a>
in <a
href="https://redirect.github.com/ruby/setup-ruby/pull/857">ruby/setup-ruby#857</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ruby/setup-ruby/compare/v1.280.0...v1.281.0">https://github.com/ruby/setup-ruby/compare/v1.280.0...v1.281.0</a></p>
<h2>v1.280.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Test ruby 4.0 on windows by <a
href="https://github.com/ntkme"><code>@​ntkme</code></a> in <a
href="https://redirect.github.com/ruby/setup-ruby/pull/853">ruby/setup-ruby#853</a></li>
<li>Add token input for downloading release assets by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/ruby/setup-ruby/pull/851">ruby/setup-ruby#851</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
made their first contribution in <a
href="https://redirect.github.com/ruby/setup-ruby/pull/851">ruby/setup-ruby#851</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ruby/setup-ruby/compare/v1.279.0...v1.280.0">https://github.com/ruby/setup-ruby/compare/v1.279.0...v1.280.0</a></p>
<h2>v1.279.0</h2>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ruby/setup-ruby/compare/v1.278.0...v1.279.0">https://github.com/ruby/setup-ruby/compare/v1.278.0...v1.279.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="675dd7ba1b"><code>675dd7b</code></a>
Add truffleruby-33.0.0,truffleruby+graalvm-33.0.0</li>
<li><a
href="5dd816ae01"><code>5dd816a</code></a>
Tweaks for the generated CI matrix</li>
<li><a
href="c2f29a7833"><code>c2f29a7</code></a>
Generate test matrix dynamically</li>
<li><a
href="d5f787ce33"><code>d5f787c</code></a>
Define a helper to download to avoid duplication</li>
<li><a
href="1010da45f3"><code>1010da4</code></a>
Tweaks</li>
<li><a
href="7f50f6e3b3"><code>7f50f6e</code></a>
Add token input and pass it to release assets download.</li>
<li><a
href="be19563477"><code>be19563</code></a>
Test ruby 4.0 on windows</li>
<li><a
href="b90be12699"><code>b90be12</code></a>
Rename 3.4-asan to asan-release</li>
<li>See full diff in <a
href="4c24fa5ec0...675dd7ba1b">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ruby/setup-ruby&package-manager=github_actions&previous-version=1.278.0&new-version=1.281.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-12 10:10:57 +01:00
Bruno Pantaleão Gonçalves
5def43e776 Revert "Block external domain navigation and handle 404 errors in webview" (#4194)
Reverts home-assistant/iOS#4137
2026-01-09 12:47:28 +00:00
Bruno Pantaleão Gonçalves
af979b0dfb Prevent database lock in background which caused crash (#4190)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-08 17:12:54 +01:00
Bruno Pantaleão Gonçalves
44bcaf255c Add dynamic island toasts component from Kavsoft (#4187)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->
<img width="1206" height="2622" alt="Simulator Screenshot - iPhone 17 -
2026-01-08 at 14 38 09"
src="https://github.com/user-attachments/assets/09d1c24d-15b7-4cbe-8709-b9d6089f3557"
/>

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
2026-01-08 15:54:15 +00:00
Bruno Pantaleão Gonçalves
27b6d009d3 Fix crash on entity device class logic inside experimental dash (#4189)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-08 16:44:42 +01:00
Bruno Pantaleão Gonçalves
1c38329f09 Refactor deletions to use deleteAll with keys parameter (#4186)
Updated database deletion logic to use the deleteAll(db, keys:) method
instead of filtering with contains and then calling deleteAll. This
simplifies the code and leverages the keys-based deletion API.

<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-08 14:21:10 +00:00
Bruno Pantaleão Gonçalves
9c645dffbc Remove Homebrew installation step from distribution workflow (#4185)
Removed the step to install Homebrew packages.

<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-08 13:09:09 +00:00
github-actions[bot]
d73b83c986 Update Localized Strings (#4172)
Automatically created by zacwest.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
2026-01-08 12:36:51 +00:00
Copilot
8ed3a88a5f Block external domain navigation and handle 404 errors in webview (#4137)
## Summary

Implements navigation validation in the webview to prevent users from
navigating to URLs outside the Home Assistant server domain and handles
HTTP errors (404, etc.) by going back and displaying an alert.

**Implementation:**

- **Domain validation** (`decidePolicyFor navigationAction`): Intercepts
user link clicks and blocks navigation to external domains
  - Only validates `.linkActivated` navigation type (user clicks)
- Programmatic navigation, back/forward, and special schemes (about:,
file:) unaffected
  - Uses `URL.baseIsEqual()` to compare domains (host, port, scheme)

- **Error handling** (`decidePolicyFor navigationResponse`): Detects
HTTP errors (status >= 400)
  - Cancels navigation, calls `webView.goBack()` if possible
  - Shows alert for both 404s and domain violations
  
- **Alert presentation** (`showNavigationErrorAlert()`):
  - Prevents duplicate alerts by checking `presentedViewController`
  - Thread-safe presentation on main queue

**Localization:**
```
"alerts.navigation_error.title" = "Navigation Error"
"alerts.navigation_error.message" = "This page cannot be displayed because it's outside your Home Assistant server or the page was not found."
```

## Screenshots
N/A - Alert UI uses standard system presentation

## Link to pull request in Documentation repository
Documentation: home-assistant/companion.home-assistant#

## Any other notes
No unit tests added - existing test infrastructure focuses on external
message handlers and doesn't cover WKNavigationDelegate methods. Manual
testing recommended for:
- External link clicks
- 404 navigation attempts
- Internal link navigation (should be unaffected)
- Back/forward navigation (should be unaffected)

<!-- START COPILOT CODING AGENT SUFFIX -->



<!-- START COPILOT ORIGINAL PROMPT -->



<details>

<summary>Original prompt</summary>

> If webviewcontroller navigates to a 404 or any URL that does mot
beling to the current activateURL domain, navigate the user back and
display an alert


</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

💡 You can make Copilot smarter by setting up custom instructions,
customizing its development environment and configuring Model Context
Protocol (MCP) servers. Learn more [Copilot coding agent
tips](https://gh.io/copilot-coding-agent-tips) in the docs.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bgoncal <5808343+bgoncal@users.noreply.github.com>
2026-01-08 13:07:28 +01:00
Copilot
b3888c527e Improve database explorer column ordering for better readability (#4182)
## Summary
Database explorer in settings now displays priority columns first (`id`,
`entityId`, `serverId`, `name`, `areaId`, `uniqueId`) followed by
remaining columns alphabetically, improving information density and
scannability.

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->
N/A - Backend sorting logic only, UI layout unchanged

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes

**Implementation:**
- Added private `Dictionary` extension with `sortedKeys()` method for
`[String: String]`
- Applied to both list view (first 3 columns) and detail view (all
columns)
- Priority keys maintain specified order; remaining keys sorted
alphabetically

**Before:**
```swift
ForEach(row.keys.sorted(), id: \.self) { key in
    // Keys sorted alphabetically: areaId, entityId, id, name, other, serverId
}
```

**After:**
```swift
ForEach(row.sortedKeys(), id: \.self) { key in
    // Keys sorted by priority: id, entityId, serverId, name, areaId, other
}
```

<!-- START COPILOT CODING AGENT SUFFIX -->



<!-- START COPILOT ORIGINAL PROMPT -->



<details>

<summary>Original prompt</summary>

> In database explorer inside settings, improve the information
readability, prefer displaying table columns named "id", "entityId,
"serverId", "name", "areaId, "uniqueId" first


</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

 Let Copilot coding agent [set things up for
you](https://github.com/home-assistant/iOS/issues/new?title=+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bgoncal <5808343+bgoncal@users.noreply.github.com>
2026-01-08 10:08:27 +00:00
Copilot
5797f38f21 Add camera name display to WebRTC player and camera card views (#4181) 2026-01-07 23:58:25 +01:00
mat1th
a9bf90ec93 Remove usage of old api and use DesignSytem class (#4183) 2026-01-07 23:00:06 +01:00
Bruno Pantaleão Gonçalves
5ae4dfb563 Improve cameras list view (#4175)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->
<img width="2756" height="1368" alt="CleanShot 2026-01-07 at 14 27
46@2x"
src="https://github.com/user-attachments/assets/092f6241-06b1-47b5-802f-468d22fa4473"
/>

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-07 13:58:09 +00:00
Bruno Pantaleão Gonçalves
b513091f51 Bump WebRTC v140 (#4174)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-07 13:01:21 +01:00
Bruno Pantaleão Gonçalves
3ba8bfda23 Include arm64 for watchOS (#4165) 2026-01-07 03:12:29 +01:00
Bruno Pantaleão Gonçalves
94da1e42ed Add EntityConfigurationWebView and integrate in dialog (#4171)
Introduces EntityConfigurationWebView for entity configuration via web
view. Integrates a toolbar button in EntityMoreInfoDialogView to present
the new configuration view as a sheet.

<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-07 02:00:30 +00:00
Bruno Pantaleão Gonçalves
74749909c4 Remove background from native more info dialog (#4170) 2026-01-06 23:52:19 +00:00
Bruno Pantaleão Gonçalves
266d41e2b9 Update app database per server in order, not parallel (#4166) 2026-01-06 23:28:52 +01:00
Copilot
77fa34669c Add Database Explorer to debugging menu (#4167)
## Summary

Adds a "Database Explorer" feature to the debugging settings. When
tapped, displays a list of GRDB database tables. Selecting a table shows
all entries (up to 1000 rows) with:
- Text search across all columns
- Server ID filter (when table has `serverId` column and multiple
servers configured)
- Tap-through to view all fields for any row

### Changes
- **DatabaseExplorerView.swift** - Lists all tables from `sqlite_master`
- **DatabaseTableDetailView.swift** - Table entry viewer with filtering,
uses `@StateObject` ViewModel pattern
- **DebugView.swift** - Added navigation link in the existing section
with Event Log and Location History
- Localization strings added for new UI elements

### Security
- Table names validated via parameterized query before use
- SQL identifier quoting applied
- Row limit (1000) prevents memory issues on large tables

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
Documentation: home-assistant/companion.home-assistant#

## Any other notes

Uses existing patterns from `ClientEventsLogView` and
`ServersPickerPillList`. Follows `DesignSystem.Spaces` convention.

<!-- START COPILOT CODING AGENT SUFFIX -->



<!-- START COPILOT ORIGINAL PROMPT -->



<details>

<summary>Original prompt</summary>

> Inside app settings, inside debugging, let's add a "Database explorer"
feature, which when you tap opens a list of GRDB database tables, then
on tap on it it shows all entries for that table with filter by text and
serverId.
> 
> Check GRDB+Initialization so understand the database


</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

 Let Copilot coding agent [set things up for
you](https://github.com/home-assistant/iOS/issues/new?title=+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bgoncal <5808343+bgoncal@users.noreply.github.com>
2026-01-06 22:13:23 +00:00
Bruno Pantaleão Gonçalves
1b0d17c8d7 Add active and problem state groups for entity icons (#4169)
Introduces Domain.activeStates and Domain.problemStates to group entity
states for icon color logic. Updates EntityIconColorProvider to use
these groups, showing red for problem states and secondary color for
inactive states. Also changes the MoreInfoDialogView background to be
fully transparent.

<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-06 22:05:58 +00:00
Bruno Pantaleão Gonçalves
1155f0c6a3 Experiment: HomeView, add domain fan and domain specific colors (#4168)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-06 20:34:09 +00:00
Bruno Pantaleão Gonçalves
6b2118f487 Improve database updater (#4163) 2026-01-06 17:04:07 +01:00
github-actions[bot]
2b39b10489 Update Localized Strings (#4158)
Automatically created by bgoncal.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
Co-authored-by: Bruno Pantaleão Gonçalves <5808343+bgoncal@users.noreply.github.com>
2026-01-06 15:38:19 +01:00
Bruno Pantaleão Gonçalves
d512fb5c94 Bump 2026.1.2 (#4164)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-06 15:36:02 +01:00
Bruno Pantaleão Gonçalves
4f6fbac384 Remove click action from shadow DOM element handler (#4162)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-06 14:00:52 +01:00
Bruno Pantaleão Gonçalves
3a23d4bc28 Remove unused string (#4161)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-06 11:17:10 +00:00
Bruno Pantaleão Gonçalves
eca93130f8 Fix database insert for Entity and Device registry (#4160)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-06 11:01:43 +00:00
Bruno Pantaleão Gonçalves
39be820fb9 Persist Entity and Device registry (#4157)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-06 04:00:08 +00:00
Copilot
8cdfb4f294 Experiment: Native HomeView/dashboard (#4142)
Basic implementation of a native dashboard - WIP

- [ ] Support more domains toggle action when tapping icon
  - [x] Light
  - [x] Cover
  - [x] Switch
- [ ] Create the equivalent of "more info dialog" for each domain
  - [x] Light
  - [x] Cover
  - [x] Switch
- [x] Add haptics
- [ ] Add more cards such as a camera card
- [ ] Find a way to display sensors information such as humidity and
temperature
- [ ] Allow customizing background
- [x] Allow opening the native dashboard from iOS controls
- [ ] Allow opening the native dashboard from Shortcuts
- [ ] Add an advanced option somewhere in settings that allow user to
see the native dashboard first instead of web UI
- [ ] Add error state
- [x] Add empty state
- [x] Add loading state
- [x] Allow reordering rooms
- [x] Allow reordering cards

<img width="1232" height="1158" alt="CleanShot 2026-01-05 at 16 19
59@2x"
src="https://github.com/user-attachments/assets/84ae8748-ec40-430c-a820-fcb6a88a6270"
/>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bgoncal <5808343+bgoncal@users.noreply.github.com>
2026-01-05 22:38:09 +00:00
Bruno Pantaleão Gonçalves
345f57bc75 Bump 2026.1.1 (#4154)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-01-05 13:13:20 +00:00
github-actions[bot]
7bf1201e4c Update Localized Strings (#4149)
Automatically created by zacwest.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
2026-01-05 10:48:11 +00:00