1516 Commits

Author SHA1 Message Date
Bruno Pantaleão
0008727ff3 WIP 2026-06-15 09:36:28 +02:00
Bruno Pantaleão Gonçalves
e71f746b87 Make app database updates non-blocking and skip redundant writes (#4731)
<!-- 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 -->
Improves `AppDatabaseUpdater` (the per-server fetch + persist pipeline
that runs on
view-appear, pull-to-refresh, and the Settings "refresh" action) so it
does less work
and stops touching the main thread.

## 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: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 14:28:01 +02:00
Bruno Pantaleão Gonçalves
5e553d51b1 Move scripts and sensors widgets to the end of the widget picker (#4732)
## Summary
Reorders the widget options in the iOS widget picker so that the
**Scripts** and **Sensors** widgets appear as the last two options.

The picker order is determined solely by the declaration order of the
widgets in the `WidgetBundle` `body`. This change moves
`WidgetScripts()` and `WidgetSensors()` to the end of the widget list in
both `WidgetsBundle17` (iOS 17) and `WidgetsBundle18` (iOS 18+), so they
no longer appear in the middle of the list. No functional behavior
changes — only presentation order in the picker.

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->
_N/A — this only reorders entries in the system widget picker; the
widgets themselves are 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
`WidgetsBundleLegacy` (iOS < 17) does not include the scripts or sensors
widgets, so it is unaffected.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 11:56:09 +00:00
github-actions[bot]
93100adb52 Update Localized Strings (#4730)
Automatically created by zacwest.

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-06-11 10:15:28 +00:00
Bruno Pantaleão Gonçalves
5320df2813 Update URL port and scheme at the end of webview login (#4728)
<!-- 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 -->
In case the mdns discovery starts the onboarding and suddenly the
onboarded url gets redirected to a different port or scheme, we are not
catching that and updating the onboarded URL to match that, more
information on the upper level task.
https://github.com/home-assistant/iOS/issues/4724

## 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-06-11 11:52:56 +02:00
github-actions[bot]
111fd5187c Update Localized Strings (#4723)
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-06-10 09:27:36 +00:00
Bruno Pantaleão Gonçalves
00d3852f22 Improve "Perform action" App Intent (#4720)
<!-- 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 -->
This PR adds the capability of receive a response from the perform
action App Intent + some small improvements on actions list rendering

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->
<img width="1792" height="1550" alt="CleanShot 2026-06-09 at 21 06
09@2x"
src="https://github.com/user-attachments/assets/3036b9cd-0992-46d3-840f-275725a543ac"
/>

## 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: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 09:13:32 +02:00
Bruno Pantaleão Gonçalves
be35df497a Deprecate older intents and migrate to App Intent (#4718)
<!-- 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 -->
This PR deprecate intents from siri intents definition and migrates them
to App Intent.
## 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-06-09 16:35:30 +00:00
Bruno Pantaleão Gonçalves
89bad79a3d Remove left over from unreleased feature camera list native UI (#4717)
<!-- 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-06-09 13:07:43 +00:00
Shayan Baghban Salehi
7f8de81965 Fix forget password button in sign in view. (#4707)
<!-- 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 -->
There is an issue in the sign in flow in which forget password button is
not doing anything.
This PR fixes the issue.
## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->
Before:


https://github.com/user-attachments/assets/43e9f42c-780d-4ba7-9847-d10f2715d7f6

After:


https://github.com/user-attachments/assets/232d6c46-11f5-4ee8-863e-6abff1ed5191



## 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: Bruno Pantaleão Gonçalves <5808343+bgoncal@users.noreply.github.com>
2026-06-08 17:36:31 +02:00
Bruno Pantaleão Gonçalves
07209ca052 Make version optional on mDNS discovery (#4713)
<!-- 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 -->
landingpage: https://github.com/home-assistant/landingpage/pull/195
android: https://github.com/home-assistant/android/pull/6970
## 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-06-08 17:22:20 +02:00
Bruno Pantaleão Gonçalves
62f1a86adf Add TestFlight communication screen when app opens (#4711)
<!-- 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 - Daily tester
2 - 2026-06-08 at 11 49 31"
src="https://github.com/user-attachments/assets/f4e5e291-2377-46d5-8ac5-bc0c6279bba7"
/>

## 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-06-08 13:22:57 +02:00
github-actions[bot]
85e0c24ad9 Update Localized Strings (#4708) 2026-06-08 09:10:19 +02:00
github-actions[bot]
787d960455 Update Localized Strings (#4698)
Automatically created by zacwest.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
2026-06-05 16:19:45 +02:00
Bruno Pantaleão Gonçalves
9faffde1cd Add test for firebase url (#4706)
<!-- 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-06-05 09:02:50 +00:00
Bruno Pantaleão Gonçalves
1bf28ec458 Improve local push reconnection and add logs (#4702)
<!-- 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 -->
- Added button to retry local push reconnection
- Improves reconnection logic
- Added logs to debug in case of issues
## 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-06-04 21:42:33 +00:00
Bruno Pantaleão Gonçalves
7cbdcb762f Remove legacy actions (#4584)
<!-- 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-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-06-04 15:20:24 +02:00
Bruno Pantaleão Gonçalves
a5e7514a52 Remove mirror entries when deleting servers (#4694)
<!-- 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 -->

Ensure mirrorStore is kept in sync when servers are removed.
ServerManagerImpl now removes per-server mirrorStore entries and updates
restoredMirroredServers when removing an identifier, and clears
mirrorStore and restoredMirroredServers when removeAll() is called. The
allKeys set is captured before mutating the cache so mirror keys are
included in deletedServers. Tests updated to assert mirrorStore is
cleared and that mirror-restore state behaves as expected.

## 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-06-03 15:29:30 +02:00
Bruno Pantaleão Gonçalves
72f0688b95 Add more logs for custom widget interaction (#4692)
<!-- 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 -->
Some users experience their "WidgetCustom" interaction to not happen,
meanwhile the entity states in the widget update normally. This PR adds
more logs to help evaluate what's happening.
## 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-06-03 09:34:59 +00:00
Bruno Pantaleão Gonçalves
fa628036f8 Communicate to frontend when matter commissioning finishes (#4684)
<!-- 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 -->
- This PR adds a frontend bus command to communicate when matter
commissioning finishes and also provides the device name chosen by the
user during the Apple matter flow
## 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-06-03 09:19:26 +00:00
Bruno Pantaleão Gonçalves
918d3affec Add "in_zones" array when reporting zone-only location (#4665)
<!-- 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 -->
To fulfill the new requirements in core we need to send in_zones when we
send a location update using zone only. See
https://github.com/home-assistant/architecture/discussions/1387 for more
details. Implemented in core
https://github.com/home-assistant/core/pull/171814

Android PR: https://github.com/home-assistant/android/pull/6879
## 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 Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-03 11:16:32 +02:00
Bruno Pantaleão Gonçalves
788c7685b9 Fix long URL display in InvitationView (#4691)
<!-- 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-06-03 09:05:55 +00:00
github-actions[bot]
bbb0d21147 Update Localized Strings (#4686)
Automatically created by bgoncal.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
2026-06-03 09:01:08 +00:00
Bruno Pantaleão Gonçalves
9603eed071 Remove unused string (#4690)
<!-- 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-06-03 08:17:47 +00:00
Bruno Pantaleão Gonçalves
62639ebcd0 Improve Home Assistant invitation UI (#4687) 2026-06-02 22:34:21 +02:00
Bruno Pantaleão Gonçalves
5c02410412 Add push commands to open or hide full screen camera view (#4688) 2026-06-02 22:32:08 +02:00
Bruno Pantaleão Gonçalves
efa8c74193 Avoid auto-accepting Home Assistant invitation link (#4685) 2026-06-02 08:39:01 +02:00
Ryan Warner
9779d0576a Fix Live Activity ContentState decoding and Direct push delegate (#4677)
## Summary

Follow-up fixes to two issues surfaced while testing #4671 end-to-end.

1. **`HALiveActivityAttributes.ContentState.countdownEnd` decoded via
Unix epoch.** ActivityKit decodes the `content-state` JSON arriving via
APNs with the default `JSONDecoder`, whose `Date` strategy is
`.deferredToDate` (seconds since the 2001 reference date). HA core sends
`countdown_end` as Unix epoch seconds, matching the documented
`data.when` / `data.when_relative` user contract and the in-app handler
that already does `Date(timeIntervalSince1970:)`. Without a manual
decode the APNs push path renders countdowns ~31 years in the future.
Adds explicit `init(from:)` and `encode(to:)` that map `countdownEnd`
via `timeIntervalSince1970`. All other fields use
`container.decodeIfPresent` so behavior is unchanged for them.

2. **`NotificationManagerLocalPushInterfaceDirect` assigns
`LocalPushManager.delegate`.** The Extension path assigns the delegate
at line 197; the Direct path (used on simulator and Mac Catalyst) never
did. On those platforms that meant silent commands such as
`clear_notification` (no alert title/body) were dropped: iOS doesn't
fire `willPresent` for content-less notifications, and the delegate is
the only fallback that routes into `commandManager`. One-line fix that
brings the Direct factory into line with the Extension's behavior.

Real-device verification (iPhone 13 Mini, iOS 26.5, paid Developer
account): chronometer countdown rendered correctly 60→0 with the Codable
fix in place. Without it the timer rendered as if `Date` were
seconds-since-2001.

## Screenshots

n/a — both fixes affect decode / message routing behavior, not UI
rendering.

## Link to pull request in Documentation repository

Documentation: home-assistant/companion.home-assistant#1303

## Any other notes

Part of the Live Activities effort tracked in home-assistant/epics#61.
Companion server PR: home-assistant/core#166072.
2026-06-01 11:36:33 +02:00
Bruno Pantaleão Gonçalves
f4d5582441 Stop reloading after matter commissioning flow finishes (#4683)
<!-- 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 -->
Stop reloading after matter commissioning flow finishes but it still
reloads when commissioning fails.

## 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-06-01 08:51:27 +00:00
github-actions[bot]
ac18ab4c12 Update Localized Strings (#4679)
Automatically created by zacwest.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
2026-06-01 10:43:46 +02:00
github-actions[bot]
079b203b5b Update Localized Strings (#4674)
Automatically created by zacwest.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
2026-05-28 09:11:25 +00:00
Bruno Pantaleão Gonçalves
d83529d4c4 Fix remote Live Activity token lifecycle (#4671)
## Summary

- Observe ActivityKit activities that are started remotely via APNs
push-to-start notifications.
- Register the stored push-to-start token under `live_activity_token`,
matching Core's expected app data key.
- Send Live Activity token and dismissal webhooks using Core's strict
schema.
- Update Live Activity contract tests for the frozen webhook wire
format.

## Root Cause

APNs could start the Live Activity, but the app was not observing
`Activity<HALiveActivityAttributes>.activityUpdates`. That meant the app
did not attach its normal per-activity push-token and lifecycle
observers to remotely-started activities, so Core could not receive the
per-activity push token needed for subsequent updates.

---------

Co-authored-by: rwarner <kentoe@gmail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-28 10:48:05 +02:00
Bruno Pantaleão Gonçalves
4401f7ca14 Rename live activity tags (#4670)
<!-- 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-05-27 15:49:41 +02:00
github-actions[bot]
415a4e849b Update Localized Strings (#4668)
Automatically created by zacwest.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
2026-05-27 13:27:18 +00:00
Ryan Warner
c80602e643 Remove end_live_activity command (#4616)
## Summary

- Removes `HandlerEndLiveActivity` and its registration in
`NotificationCommandManager`
- `clear_notification` with a `tag` already ends Live Activities via
`HandlerClearNotification` — no separate command needed
- Aligns iOS with Android, which uses `clear_notification` exclusively

Companion docs PR: home-assistant/companion.home-assistant#1303

## Test plan

- [ ] Send a `live_update: true` notification to start a Live Activity
- [ ] Send `clear_notification` with the same `tag` — activity ends
correctly
- [ ] Confirm no regression on standard notification clearing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Part of epic: https://github.com/home-assistant/epics/issues/61
Fixes: https://github.com/home-assistant/iOS/issues/4623

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 15:03:57 +02:00
Ryan Warner
ce65c1e87e Rename live activity webhook types to drop mobile_app_ prefix (#4585)
## Summary

- Renames `webhookTypeToken` from `"mobile_app_live_activity_token"` →
`"live_activity_token"`
- Renames `webhookTypeDismissed` from
`"mobile_app_live_activity_dismissed"` → `"live_activity_dismissed"`

Requested in home-assistant/core#166072 — all other webhooks in the
mobile_app integration use short names without the `mobile_app_` prefix
(e.g. `scan_tag`, `update_location`). This aligns our new webhook types
with that convention.

## Related

- home-assistant/core#166072

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Part of epic: https://github.com/home-assistant/epics/issues/61
Fixes: https://github.com/home-assistant/iOS/issues/4623

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 15:03:14 +02:00
Ryan Warner
ea4c9bf55b Remove unused Live Activity registration fields (#4586)
## Summary

- Removes `supports_live_activities` and
`supports_live_activities_frequent_updates` from the app registration
payload sent to HA

These fields were removed from the HA core side in
home-assistant/core#166072 (the `SCHEMA_APP_DATA` schema no longer
accepts them). Sending data that the server doesn't read wastes
bandwidth on every registration.

## Related

- home-assistant/core#166072

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Part of epic: https://github.com/home-assistant/epics/issues/61
Fixes: https://github.com/home-assistant/iOS/issues/4623

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 15:02:24 +02:00
Bruno Pantaleão Gonçalves
b7c1a5fb93 Ask iOS location permission popup for "less secure" connection level as well (#4669)
<!-- 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 -->
When the user chooses to not share location with Home Assistant + Less
secure connection security level, they never see the iOS native location
permission popup, which keeps their location permission state as
".notDetermined" entering in loop until selected "Most secure" and
choosing an option from the popup.

This PR triggers the popup for both connection security level options,
therefore avoiding the non determined state after the user makes its
decision.

## 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-05-27 12:01:08 +02:00
Bruno Pantaleão Gonçalves
59b87c9b80 Create "What's new" engine (#4664)
<!-- 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 -->
This PR adds the foundation to set and display "What's new" screen
linked to app version.

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->
<img width="5718" height="2966" alt="CleanShot 2026-05-26 at 14 04
20@2x"
src="https://github.com/user-attachments/assets/3b50e976-8166-4d68-9f03-5f312970fd7e"
/>


## 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-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-05-27 10:07:36 +02:00
Bruno Pantaleão Gonçalves
2c2eacb711 Display warning when debug strings is ON (#4666)
<!-- 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-05-26 15:07:43 +00:00
nstefanelli
3293f438de Auto-activate kiosk mode on launch when previously enabled (#4609)
## Summary

Fixes #4608.

When kiosk mode is enabled and the Home Assistant app is then
force-quit, crashes, or the device reboots, kiosk mode does not
re-activate on the next launch. The persisted
`settings.isKioskModeEnabled = true` is loaded into memory by
`KioskModeManager.loadSettings()` but never acted on, so the user has to
manually re-toggle kiosk mode from settings each time. For the
wall-mounted iPad use case kiosk mode is designed for, this leaves an
unattended dashboard silently falling back to the normal UI after any
restart.

## What changed

In `KioskModeManager.setup(using:)` (called from
`WebViewController.viewDidLoad`), if `settings.isKioskModeEnabled` is
`true` and kiosk mode is not already active, call `enableKioskMode()` to
restore it.

`enableKioskMode()` is idempotent — it guards on `!isKioskModeActive` —
so this is safe to call from any path and existing flows are unaffected.

```swift
// Restore kiosk mode if it was enabled before the app was last closed
if settings.isKioskModeEnabled, !isKioskModeActive {
    Current.Log.info("Restoring kiosk mode from persisted settings")
    enableKioskMode()
    return
}
```

## Test plan

- [ ] Enable kiosk mode in the app
- [ ] Force-quit the app from the app switcher
- [ ] Re-launch
- [ ] Verify the screen comes back up in kiosk mode (status bar hidden,
screensaver active, secret exit gesture working)
- [ ] Reboot the device — verify kiosk mode is still on after launch
- [ ] Disable kiosk mode, force-quit, re-launch — verify it stays
disabled

## Notes

- `KioskModeManager` is a singleton with UIKit dependencies and no
existing tests, so I haven't added a unit test here. Happy to add one if
there's a preferred pattern for managers like this.
- Out of scope (per the issue): a "panic recovery" guard so a crash loop
inside kiosk mode does not trap the user. Worth a follow-up.
- Local `xcodebuild` was blocked by an unrelated
`BuildMaterialDesignIconsFont` script failure in my environment, but
`swiftformat --lint` passes and the change uses existing APIs that
mirror the adjacent code path.

---------

Co-authored-by: Nick Stefanelli <nstefanelli@users.noreply.github.com>
2026-05-26 16:15:13 +02:00
github-actions[bot]
6b95480659 Update Localized Strings (#4655)
Automatically created by zacwest.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
2026-05-26 10:00:05 +02:00
Bruno Pantaleão Gonçalves
3cc6d99f67 Fix iOS 15 safe-area inflation breaking WebView layout and taps (#4653)
<!-- 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 -->
On iOS 15, when a WebViewController is hosted in a
UINavigationController with the navigation bar hidden, adding a
full-screen child UIViewController whose subtree contains a
UIHostingController triggers a UIKit safe-area inflation bug:
view.safeAreaInsets.top becomes roughly twice the real status-bar
height, the native statusBarView (pinned to
view.safeAreaLayoutGuide.topAnchor) oversizes, and WKWebView caches a
hit-test region from the inflated value — so taps near the top of the
page (e.g. the dashboard hamburger menu) land at the wrong content
coordinates until the device is rotated. iOS 16+ is unaffected.

Two callsites on main triggered this independently:

1. KioskSecretExitGestureViewController was installed unconditionally
from KioskModeManager.setup(using:) — even when kiosk mode wasn't
active. Now installed in enableKioskMode() and torn down in
disableKioskMode(); setup() only re-anchors it for an already-active
kiosk session.

2. WebViewController+EmptyState.setupEmptyState() called
addChild(emptyState.hostingViewController) unconditionally (added in
#4572 for iOS-16 SwiftUI safe-area propagation). The addChild +
didMove(toParent:) calls are now guarded with #available(iOS 16.0, *).
The empty state still renders on iOS 15; it just skips the parenting
that iOS 15 doesn't honor the same way anyway.

Updated the related test to XCTSkip on iOS 15 with a comment pointing at
this commit.

Fixes #4499.
## 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-05-26 09:46:35 +02:00
github-actions[bot]
cf22114447 Update Localized Strings (#4649)
Automatically created by zacwest.

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-05-20 12:53:40 +00:00
Bruno Pantaleão Gonçalves
9a88cde784 UI improvements for older iPhones (#4652)
<!-- 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 -->
- Fix welcome view title multi line text
- Fix bottom safe are on onboarding base view

## 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 Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-20 14:30:49 +02:00
github-actions[bot]
a7da7e462e Update Localized Strings (#4637)
Automatically created by zacwest.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
2026-05-19 11:05:22 +02:00
Bruno Pantaleão Gonçalves
bc230f5134 Revert "Fix legacy iOS WebView safe areas" (#4636)
Reverts home-assistant/iOS#4632
2026-05-13 20:59:44 +00:00
Bruno Pantaleão Gonçalves
0b5880b31d Add "Assist prompt" option for CarPlay quick access (#4619) 2026-05-13 13:01:06 -03:00
github-actions[bot]
3ed4ddde32 Update Localized Strings (#4630)
Automatically created by zacwest.

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-05-13 10:54:18 -03:00
Bruno Pantaleão Gonçalves
54670a1690 Add DebugSwift via SwiftPM (#4633)
## Summary
- Add DebugSwift as a Swift Package dependency pinned through
`Package.resolved` at 1.15.0
- Link the DebugSwift product to the App target
- Initialize DebugSwift during app launch for Debug builds only
2026-05-13 09:57:00 -03:00