Commit Graph

3726 Commits

Author SHA1 Message Date
github-actions[bot]
5f46ba9b1d Update Localized Strings (#4062)
Automatically created by bgoncal.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
2025-12-09 06:23:21 +00:00
Bruno Pantaleão Gonçalves
1788e248d6 Update workflows to use "main" branch instead of "master" (#4066)
<!-- 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. -->
2025-12-08 16:05:22 +01:00
Bruno Pantaleão Gonçalves
ff2372f2df Log URL to be opened on URLOpener (#4063)
<!-- 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. -->
2025-12-08 14:56:06 +00:00
Bruno Pantaleão Gonçalves
16eced6c71 Allow more info dialog navigation through external bus (#4056)
This PR makes use of external bus navigation to allow more info dialogs
to be opened without needing to refresh webview
Depends on: https://github.com/home-assistant/frontend/pull/28375

<!-- 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>
2025-12-07 16:18:34 +01:00
github-actions[bot]
020ec29d95 Update Localized Strings (#4048) 2025-12-05 18:30:08 +01:00
Copilot
e501125eec Add test coverage for openEntityDeeplinkURL empty path behavior (#4053)
## Summary
Adds test coverage for `openEntityDeeplinkURL` to verify the URL
generation with empty navigation path (`navigate/?`) and
`more-info-entity-id` query parameter. This documents the expected
behavior and prevents regressions from the path change in PR #4052.

The test validates:
- Empty path results in `navigate/?` format
- Query parameters include `more-info-entity-id`, `server`,
`avoidUnecessaryReload`, and `isComingFromAppIntent`

## Screenshots
N/A - test-only change

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

## Any other notes
This PR merges into #4052 as part of the stacked PR workflow to address
review feedback.

<!-- 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: Bruno Pantaleão <5808343+bgoncal@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2025-12-05 15:46:07 +00:00
Copilot
0bb92dc9da Fix widget page identifiers causing duplicates and incorrect server names with multiple servers (#4051)
## Summary

Widget pages displayed wrong server names and showed blank names when >6
servers were configured. The issue had two root causes:

1. **Non-unique identifiers**: `IntentPanel` identifiers were set to
just `panel.path`, causing duplicate identifiers when multiple servers
shared the same panel path (e.g., "lovelace")
2. **Widget matching failure**: When widgets reloaded, the matching
logic couldn't handle backward compatibility, causing incorrect server
names to be displayed

**Changes Made:**

- Changed `IntentPanel` identifier from `panel.path` to
`"serverID-path"` format to ensure uniqueness across servers
- Added `extractedPath` computed property to `IntentPanel` for
consistent path extraction supporting both old and new identifier
formats
- Updated widget matching logic in `WidgetOpenPageProvider` to properly
match panels by server + path when reloading widgets
- Ensured backward compatibility with existing widget configurations
that use the old identifier format

**Before:**
```swift
// Server 1: identifier = "lovelace"
// Server 2: identifier = "lovelace"  // Duplicate!
// Widget matching: fails to match correct server
```

**After:**
```swift
// Server 1: identifier = "server1-lovelace"
// Server 2: identifier = "server2-lovelace"  // Unique!
// Widget matching: correctly matches by server + extracted path
```

The fix handles server IDs that contain hyphens and maintains backward
compatibility with widgets configured using the old identifier format.

## Screenshots

N/A - Fix resolves display issue shown in original bug report
screenshots

## Link to pull request in Documentation repository

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

## Any other notes

- Follows existing pattern in `PageAppEntity.swift` (line 69) for
consistency
- Path extraction logic is shared via `IntentPanel.extractedPath`
computed property to eliminate code duplication
- All linters passed (SwiftFormat, SwiftLint)

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



<details>

<summary>Original prompt</summary>

> 
> ----
> 
> *This section details on the original issue you should resolve*
> 
> <issue_title>iOS widget showing wrong page and shows no pages if more
than 6 servers defined.</issue_title>
> <issue_description><!-- Please READ THIS FIRST
> If your issue relates to something not looking right on Home Assistant
within the Companion App, please check if the error is present in Safari
on iOS too. If the issue is also seen in Safari, please open an issue on
the frontend repo
(https://github.com/home-assistant/frontend/issues/new?labels=bug&template=BUG_REPORT.md)
instead -->
> 
> **iOS device model, version and app version**
> 
> Model Name: iPhone 16 Pro Max
> Software Version: 26.0.1
> App version: 2025.9.2 (2025.1423)
> 
> **Home Assistant Core Version**
> 2025.9.4
> 
> **Describe the bug**
> When adding multiple pages to the widget, the correct page description
isn't shown. When I have 5 servers (named Server 1 ... Server 5), and
have added the Overview page for each server, the widget shows, Server 1
Overview, Server 1 Overview, Server 3 Overview, Server 3 Overview, and
Server 5 Overview. Click on the second Server 1 Overview brings up
Server 1 Overview, but the widget configuration shows that its suppose
to bring up Server 2 Overview.
> 
> Additionally, if I also add Server 6 to the list of servers, all of
the page names are now blanks. It doesn't show Server 1 Overview, Server
2, Overview, etc. It would appear that having more than 5 servers
defined causes the widget to not display the names of any of the defined
pages.
> 
> 
> **To Reproduce**
> 
> Add up to 5 servers to the Companion App configuration. Then create a
HA Open Page widget and add the Overview page for the first two servers.
They will both be displayed with the first Server name.
> 
> **Expected behavior**
> 
> Adding the two server's Overview page should show Server 1 Overview
and Server 2 Overview in the widget.
> 
> **Screenshots**
> 
> <img width="660" height="1434" alt="Image"
src="https://github.com/user-attachments/assets/c421d9b4-d1d8-421b-b7b5-b50857a15973"
/>
> <img width="659" height="448" alt="Image"
src="https://github.com/user-attachments/assets/73ad6c2d-5f0c-4d8d-82c5-0006ea74855d"
/>
> <img width="660" height="442" alt="Image"
src="https://github.com/user-attachments/assets/1b891db3-c49a-469c-a82d-59c726964c01"
/>
> <img width="660" height="448" alt="Image"
src="https://github.com/user-attachments/assets/dc469e31-e588-4e24-9e01-09abca6caacc"
/>
> <img width="660" height="446" alt="Image"
src="https://github.com/user-attachments/assets/43e783a2-0f47-4ec2-a363-b6c45c3dab84"
/>
> <img width="660" height="453" alt="Image"
src="https://github.com/user-attachments/assets/92337fd4-1feb-4b3b-9ee9-1c0049cb3bb2"
/>
> <img width="660" height="449" alt="Image"
src="https://github.com/user-attachments/assets/a9d0548c-0e9d-496e-8616-84a6ffdc9fdc"
/>
> 
> **Additional context**
> This problem has been ongoing for a month or so.  
> </issue_description>
> 
> <agent_instructions>Check WidgetOpenPage, there must be some ID that
is not unique or such a thing.</agent_instructions>
> 
> ## Comments on the Issue (you are @copilot in this section)
> 
> <comments>
> </comments>
> 


</details>

- Fixes home-assistant/iOS#3876

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

💬 We'd love your input! Share your thoughts on Copilot coding agent in
our [2 minute survey](https://gh.io/copilot-coding-agent-survey).

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bgoncal <5808343+bgoncal@users.noreply.github.com>
2025-12-05 16:12:28 +01:00
Bruno Pantaleão Gonçalves
c758775e97 Update deeplink path in openEntityDeeplinkURL (#4052)
This fixes the issue where the user does not land on their default
dashboard after using the control "open entity".

<!-- 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. -->
2025-12-05 09:41:37 +00:00
Copilot
3f30b4a4a8 Add "notify when run" toggle to WidgetGauge (#4047)
## Summary

PR #4037 added the "notify when run" toggle to WidgetDetails but missed
WidgetGauge, which also supports script execution. This PR applies the
same pattern to WidgetGauge for feature parity.

Added `showConfirmationNotification` parameter to WidgetGauge:
- Uses existing localization strings
(`app_intents.notify_when_run.title/description`)
- Flows through `WidgetGaugeEntry` to `ScriptAppIntent` when tapped
- Visible only when "Run Script" is enabled
- Defaults to `true` for backward compatibility

**Files changed:**
- `WidgetGaugeAppIntent.swift`: Added parameter and updated all 3 gauge
type parameter summaries
- `WidgetGaugeAppIntentTimelineProvider.swift`: Added field to
`WidgetGaugeEntry` and passed through placeholder/entry creation
- `WidgetGauge.swift`: Set parameter on `ScriptAppIntent` intent
creation

All widgets with script execution (Scripts, Details, Gauge) now have
consistent notification behavior.

## Screenshots

N/A - Configuration-only change, no visual UI modifications

## Link to pull request in Documentation repository

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

## Any other notes

Mirrors the exact implementation from PR #4037 for consistency.

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



<details>

<summary>Original prompt</summary>

> In this pr https://github.com/home-assistant/iOS/pull/4037 you missed
WidgetGauge


</details>



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

💬 We'd love your input! Share your thoughts on Copilot coding agent in
our [2 minute survey](https://gh.io/copilot-coding-agent-survey).

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bgoncal <5808343+bgoncal@users.noreply.github.com>
2025-12-05 10:06:16 +01:00
Bruno Pantaleão Gonçalves
d23d62ea7e Bump 2026.1.0 (#4042) 2025-12-03 22:54:40 +00:00
Copilot
41ca9f3758 Fix local push activation without WiFi reconnection (#4036)
## Plan: Fix Local Push Activation Without WiFi Reconnection

- [x] Explore repository structure and understand local push
implementation
- [x] Identify the root cause: NEAppPushManager configuration updates
don't take effect immediately
- [x] Implement fix to force manager reload when local push is toggled
on
- [x] Add mechanism to start managers immediately when enabled on
internal network
- [x] Address code review feedback (removed unused encoder, explicitly
set isDirty flag)
- [x] Improve code quality (extract magic number, use weak self, safe
error handling)
- [x] Fix memory safety issues in updateManagers method
- [x] Add comprehensive documentation to clarify reload behavior
- [x] Add documentation explaining "dirty" flag meaning
- [x] Fix lint issues (trailing spaces and line wrapping)
- [x] Request final code review
- [x] Run security checks (CodeQL - no issues found)

## Summary

Successfully fixed the issue where activating local push requires
reconnecting to WiFi. The solution ensures that when a user enables
local push while already on their internal network, the
`NEAppPushManager` configuration is properly reloaded so the
NetworkExtension framework picks up the changes immediately.

## Key Changes

Modified `NotificationManagerLocalPushInterfaceExtension.swift`:
- Added `isDirty` flag to track configuration changes
- Added `reloadManagersAfterSave()` method with 0.5s delay to reload
managers
- Improved memory safety with `[weak self]` captures
- Replaced force unwraps with safe error handling
- Added comprehensive documentation including clear explanation of
"dirty" flag
- Fixed all linting issues (trailing spaces and line length)
- Ensured NetworkExtension framework picks up changes without WiFi
reconnection

## Code Quality

All code review feedback has been addressed:
-  No force unwraps
-  Weak self references to prevent retain cycles  
-  Named constants instead of magic numbers
-  Comprehensive documentation with clear explanation of "dirty"
concept
-  No security vulnerabilities (CodeQL clean)
-  All linting issues resolved

The changes are minimal, focused, and solve the reported issue while
improving overall code quality.

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



<details>

<summary>Original prompt</summary>

> 
> ----
> 
> *This section details on the original issue you should resolve*
> 
> <issue_title>Activating local push requires reconnecting to the
WiFi</issue_title>
> <issue_description>**iOS device model, version and app version**
> <!-- Please include your device 'Model Name' and 'Software Version' as
listed in iOS Settings>General>About. Please also give the app version
listed beneath "Home Assistant Companion" in the App Configuration>About
menu within the app, please include the number in brackets -->
> 
> Model Name: iPhone 13 Pro Max
> Software Version: 26.1
> App version: 2025.11.2
> 
> **Home Assistant Core Version**
> 2025.8.2
> 
> **Describe the bug**
> When I activate local push, the status section doesn't immediately
show it as activated. I have to reconnect the phone to the local network
for local push to work.
> 
> **To Reproduce**
> * Disable local push
> * Status "Local push" is disabled
> * Enable local push while you are connected to your local network
> * Status "Local push" still disabled
> * Disconnect from your local network
> * Reconnect to your local network
> * Status "Local push" now is available
> 
> **Expected behavior**
> * When I enable local push while I am connected to my local network,
local push should be initialized without having to reconnect to the
wifi.</issue_description>
> 
> ## Comments on the Issue (you are @copilot in this section)
> 
> <comments>
> </comments>
> 


</details>

- Fixes home-assistant/iOS#4031

<!-- 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>
2025-12-03 11:24:48 +00:00
Copilot
5870438c17 Add visible delete buttons for widgets and widget items on macOS (#4035)
## Summary
Adds visible delete buttons for widgets and widget items to improve
discoverability on macOS. The existing `.onDelete` modifier requires a
non-discoverable 2-finger swipe gesture on macOS. This adds red trash
icon buttons on the right side of each row that can be clicked to
delete, visible only on macOS.

### Changes
- **WidgetBuilderView**: Added a visible delete button (red trash icon)
on the right side of each widget row, shown only on macOS
- **WidgetBuilderViewModel**: Added `deleteWidget(_:)` method for direct
widget deletion
- **WidgetCreationView**: Added a visible delete button (red trash icon)
on the right side of each widget item row, shown only on macOS
- **WidgetCreationViewModel**: Added `deleteItem(_:)` method for direct
item deletion

The delete buttons are conditionally compiled using `#if
targetEnvironment(macCatalyst)` to only appear on macOS. On iOS, the
existing `.onDelete` modifier continues to work with swipe-to-delete
gestures and edit mode. A `Spacer()` is used to ensure proper right-side
positioning of the delete buttons.

```swift
Spacer()
#if targetEnvironment(macCatalyst)
Button {
    viewModel.deleteWidget(widget)
} label: {
    Image(systemSymbol: .trash)
        .foregroundStyle(.red)
}
.buttonStyle(.borderless)
#endif
```

## Screenshots
Widget List (macOS only):
```
┌────────────────────────────────────┐
│ Widget 1          [Spacer]     🗑️ >│
└────────────────────────────────────┘
```

Widget Items (macOS only):
```
┌────────────────────────────────────┐
│ 🔦 Living Room Light [Spacer] 🗑️ ☰ │
└────────────────────────────────────┘
```

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

## Any other notes
Addresses user feedback in issue comments about macOS delete
discoverability. The solution uses visible delete buttons on macOS only,
while iOS users continue to use the existing swipe-to-delete gesture. No
breaking changes - all existing deletion methods continue to work on
their respective platforms.

- Fixes home-assistant/iOS#3890

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



<details>

<summary>Original prompt</summary>

> 
> ----
> 
> *This section details on the original issue you should resolve*
> 
> <issue_title>No way to delete widgets or widget items</issue_title>
> <issue_description>
> **Device model, version and app version**
> <!-- Please include your mac's model and version as listed in 'About
This Mac'. Please also give the app version listed in the Home
Assistant>About Home Assistant, please include the number in brackets.
Safari can be found by launching it in Safari > About Safari. -->
> 
> Model Name: Macbook Pro 16-inch, 2019
> macOS Version: 15.6.1
> App Version: 2025.6 (1305) & 2025.10.0 (1444) pre-release
> Safari Version: 18.6 (20621.3.11.11.3)
> 
> **Home Assistant Core Version**
> 2025.10.2
> 
> **Describe the bug**
> After creating widgets in Preferences -> Widgets there is no obvious
way to delete a widget.
> Also, in a widget's "Create Widget" screen there is no way to remove
an item from the widget.
> 
> **To Reproduce**
> Create a widget in Preferences -> Widgets and try to find a way to
delete it.
> 
> **Expected behavior**
> A somewhat obvious way to delete a widget and to remove items from a
widget (or if non-obvious at least have the methods documented in
https://companion.home-assistant.io/docs/integrations/ios-widgets)
> </issue_description>
> 
> ## Comments on the Issue (you are @copilot in this section)
> 
> <comments>
> <comment_new><author>@bgoncal</author><body>
> Swipe left on the item you want to remove.</body></comment_new>
> <comment_new><author>@bgoncal</author><body>
> Good point, sorry to overlook, can you try the 2 fingers swipe left
gesture from your trackpad? (Not sure how it would be on a mouse)
> 
> But good point, an easier alternative should be added to the
Mac.</body></comment_new>
> </comments>
> 


</details>

- Fixes home-assistant/iOS#3890

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

💬 We'd love your input! Share your thoughts on Copilot coding agent in
our [2 minute survey](https://gh.io/copilot-coding-agent-survey).

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bgoncal <5808343+bgoncal@users.noreply.github.com>
2025-12-03 11:08:40 +00:00
Copilot
df44bad806 Add "notify when run" toggle to Details widget (#4037)
## Summary

The Details widget was missing the "notify when run" toggle available in
the Scripts widget, causing unwanted notifications when scripts were
executed from the widget.

Added `showConfirmationNotification` parameter to
`WidgetDetailsAppIntent` following the same pattern as
`WidgetScriptsAppIntent`:

- Added parameter with existing localization strings
(`app_intents.notify_when_run.title/description`)
- Flows through `WidgetDetailsEntry` to `ScriptAppIntent` when widget
button is tapped
- Only visible in configuration when "Run Script" is enabled
- Defaults to `true` for backward compatibility

## 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. -->

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



<details>

<summary>Original prompt</summary>

> 
> ----
> 
> *This section details on the original issue you should resolve*
> 
> <issue_title>Missing "notify when run" toggle for Details
widget</issue_title>
> <issue_description>**iOS device model, version and app version**
> 
> Model Name: iPhone 16 Pro
> Software Version: iOS 26.1
> App version: 2025.11.2 (2025.1537)
> 
> **Home Assistant Core Version**
> 2025.11.3
> 
> A "notify when run" toggle is missing from the "Details" widget
resulting in unwanted notifications when the script is run.
> This toggle exists in the "Scripts" widget.
> </issue_description>
> 
> ## Comments on the Issue (you are @copilot in this section)
> 
> <comments>
> </comments>
> 


</details>

- Fixes home-assistant/iOS#4018

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

💬 We'd love your input! Share your thoughts on Copilot coding agent in
our [2 minute survey](https://gh.io/copilot-coding-agent-survey).

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bgoncal <5808343+bgoncal@users.noreply.github.com>
2025-12-03 10:46:28 +01:00
Bruno Pantaleão Gonçalves
dcb85537d7 Potential fix for code scanning alert no. 19: Workflow does not contain permissions (#4034) 2025-12-03 04:24:58 +01:00
Bruno Pantaleão Gonçalves
5b1cc51109 Add sheet fallback for navigation links on iOS <26 (#4032)
Replaces NavigationLinks for internal/external URL and privacy pickers
with sheet presentations on iOS versions below 26.0. This ensures
compatibility and consistent user experience across iOS versions by
providing modal sheets as an alternative to navigation-based
presentation.

<!-- 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. -->
2025-12-03 01:00:52 +00:00
Bruno Pantaleão Gonçalves
99c6986fb6 Bump 2025.12.1 (#4033)
<!-- 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. -->
2025-12-02 23:57:45 +00:00
github-actions[bot]
fbd8e134b8 Update Localized Strings (#4030)
Automatically created by zacwest.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
2025-12-02 23:57:23 +00:00
github-actions[bot]
54c01d6106 Update Localized Strings (#4016)
Automatically created by zacwest.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
2025-12-01 11:34:04 +00:00
Bruno Pantaleão Gonçalves
f19d14825d Add back the button to create complication (#4028)
The button was removed by mistake when migrating screens around it to
SwiftUI

<!-- 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. -->
2025-12-01 09:44:40 +00:00
dependabot[bot]
e641b132bc GitHub Actions: Bump fwal/setup-swift from 2.4.0 to 3 in the dependencies group (#4027)
Bumps the dependencies group with 1 update:
[fwal/setup-swift](https://github.com/fwal/setup-swift).

Updates `fwal/setup-swift` from 2.4.0 to 3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/fwal/setup-swift/releases">fwal/setup-swift's
releases</a>.</em></p>
<blockquote>
<h2>3.0.0 Beta 1</h2>
<h2>Beta 1 of using Swiftly to setup Swift</h2>
<ul>
<li>Now uses Swiftly to set up Swift</li>
<li>Added flag <code>skip-verify-signature</code> to disable GPG
verification checks</li>
</ul>
<h2>Features</h2>
<ul>
<li>Setup Swift more Swiftly 🚀 (setup-swift 3.0) (<a
href="https://redirect.github.com/fwal/setup-swift/issues/710">#710</a>)
<a href="https://github.com/fwal"><code>@​fwal</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="364295d9c2"><code>364295d</code></a>
Bump build</li>
<li><a
href="7ef546c485"><code>7ef546c</code></a>
Update readme</li>
<li><a
href="3273319f0f"><code>3273319</code></a>
Bump swiftly</li>
<li><a
href="a90d2583fe"><code>a90d258</code></a>
Pass skip flag</li>
<li><a
href="ded451bd85"><code>ded451b</code></a>
Update workflows</li>
<li><a
href="0dad4e4b3a"><code>0dad4e4</code></a>
Merge pull request <a
href="https://redirect.github.com/fwal/setup-swift/issues/710">#710</a>
from swift-actions/next</li>
<li><a
href="4abecca1bb"><code>4abecca</code></a>
Build</li>
<li><a
href="0c751509fe"><code>0c75150</code></a>
Formatting</li>
<li><a
href="7849873cbf"><code>7849873</code></a>
Update gpg handling</li>
<li><a
href="9005990785"><code>9005990</code></a>
Merge branch 'main' into next</li>
<li>Additional commits viewable in <a
href="7ca6abe6b3...364295d9c2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=fwal/setup-swift&package-manager=github_actions&previous-version=2.4.0&new-version=3)](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>
2025-12-01 10:37:41 +01:00
Bruno Pantaleão Gonçalves
80ec7287a2 Bump HAKit 0.4.8 (#4011)
<!-- 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. -->
2025-11-26 16:26:54 +00:00
github-actions[bot]
b068e2eca1 Update Localized Strings (#4010)
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>
2025-11-26 16:23:03 +00:00
Bruno Pantaleão Gonçalves
9fcdd2b4f4 Bump 2025.12.0 (#4012)
<!-- 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. -->
2025-11-26 16:51:03 +01:00
github-actions[bot]
c125918a1d Update Localized Strings (#4006)
Automatically created by zacwest.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
release/2025.11.2/1537
2025-11-25 16:10:48 +00:00
Bruno Pantaleão Gonçalves
9194cb3815 Bump 2025.11.2 (#4009)
<!-- 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. -->
2025-11-25 16:10:09 +00:00
Bruno Pantaleão Gonçalves
e8dac180e4 Migrate details and gauge widgets to run script instead of legacy iOS Actions (#4008)
<!-- 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>
2025-11-25 16:06:53 +01:00
Bruno Pantaleão Gonçalves
4564b7bd92 Bump 2025.11.1 (#4005)
<!-- 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. -->
2025-11-24 19:28:50 +00:00
Bruno Pantaleão Gonçalves
f2dd241d59 Prevent connection security level migration dialog to display for users with only HTTPS URLs (#4003) 2025-11-24 17:26:27 +01:00
dependabot[bot]
d075f6f31b GitHub Actions: Bump the dependencies group with 4 updates (#4000)
Bumps the dependencies group with 4 updates:
[actions/checkout](https://github.com/actions/checkout),
[ruby/setup-ruby](https://github.com/ruby/setup-ruby),
[peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request)
and [fwal/setup-swift](https://github.com/fwal/setup-swift).

Updates `actions/checkout` from 5.0.0 to 6.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v6.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update README to include Node.js 24 support details and requirements
by <a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li>
<li>Persist creds to a separate file by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li>
<li>v6-beta by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2298">actions/checkout#2298</a></li>
<li>update readme/changelog for v6 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2311">actions/checkout#2311</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v5.0.0...v6.0.0">https://github.com/actions/checkout/compare/v5.0.0...v6.0.0</a></p>
<h2>v6-beta</h2>
<h2>What's Changed</h2>
<p>Updated persist-credentials to store the credentials under
<code>$RUNNER_TEMP</code> instead of directly in the local git
config.</p>
<p>This requires a minimum Actions Runner version of <a
href="https://github.com/actions/runner/releases/tag/v2.329.0">v2.329.0</a>
to access the persisted credentials for <a
href="https://docs.github.com/en/actions/tutorials/use-containerized-services/create-a-docker-container-action">Docker
container action</a> scenarios.</p>
<h2>v5.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Port v6 cleanup to v5 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v5...v5.0.1">https://github.com/actions/checkout/compare/v5...v5.0.1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>V6.0.0</h2>
<ul>
<li>Persist creds to a separate file by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li>
<li>Update README to include Node.js 24 support details and requirements
by <a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li>
</ul>
<h2>V5.0.1</h2>
<ul>
<li>Port v6 cleanup to v5 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li>
</ul>
<h2>V5.0.0</h2>
<ul>
<li>Update actions checkout to use node 24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li>
</ul>
<h2>V4.3.1</h2>
<ul>
<li>Port v6 cleanup to v4 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2305">actions/checkout#2305</a></li>
</ul>
<h2>V4.3.0</h2>
<ul>
<li>docs: update README.md by <a
href="https://github.com/motss"><code>@​motss</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li>Add internal repos for checking out multiple repositories by <a
href="https://github.com/mouismail"><code>@​mouismail</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li>Documentation update - add recommended permissions to Readme by <a
href="https://github.com/benwells"><code>@​benwells</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li>Adjust positioning of user email note and permissions heading by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li>Update CODEOWNERS for actions by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li>
<li>Update package dependencies by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
</ul>
<h2>v4.2.2</h2>
<ul>
<li><code>url-helper.ts</code> now leverages well-known environment
variables by <a href="https://github.com/jww3"><code>@​jww3</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li>
<li>Expand unit test coverage for <code>isGhes</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li>
</ul>
<h2>v4.2.1</h2>
<ul>
<li>Check out other refs/* by commit if provided, fall back to ref by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li>
</ul>
<h2>v4.2.0</h2>
<ul>
<li>Add Ref and Commit outputs by <a
href="https://github.com/lucacome"><code>@​lucacome</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1180">actions/checkout#1180</a></li>
<li>Dependency updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>- <a
href="https://redirect.github.com/actions/checkout/pull/1777">actions/checkout#1777</a>,
<a
href="https://redirect.github.com/actions/checkout/pull/1872">actions/checkout#1872</a></li>
</ul>
<h2>v4.1.7</h2>
<ul>
<li>Bump the minor-npm-dependencies group across 1 directory with 4
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1739">actions/checkout#1739</a></li>
<li>Bump actions/checkout from 3 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1697">actions/checkout#1697</a></li>
<li>Check out other refs/* by commit by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1774">actions/checkout#1774</a></li>
<li>Pin actions/checkout's own workflows to a known, good, stable
version. by <a href="https://github.com/jww3"><code>@​jww3</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1776">actions/checkout#1776</a></li>
</ul>
<h2>v4.1.6</h2>
<ul>
<li>Check platform to set archive extension appropriately by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1732">actions/checkout#1732</a></li>
</ul>
<h2>v4.1.5</h2>
<ul>
<li>Update NPM dependencies by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1703">actions/checkout#1703</a></li>
<li>Bump github/codeql-action from 2 to 3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1694">actions/checkout#1694</a></li>
<li>Bump actions/setup-node from 1 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1696">actions/checkout#1696</a></li>
<li>Bump actions/upload-artifact from 2 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1695">actions/checkout#1695</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1af3b93b68"><code>1af3b93</code></a>
update readme/changelog for v6 (<a
href="https://redirect.github.com/actions/checkout/issues/2311">#2311</a>)</li>
<li><a
href="71cf2267d8"><code>71cf226</code></a>
v6-beta (<a
href="https://redirect.github.com/actions/checkout/issues/2298">#2298</a>)</li>
<li><a
href="069c695914"><code>069c695</code></a>
Persist creds to a separate file (<a
href="https://redirect.github.com/actions/checkout/issues/2286">#2286</a>)</li>
<li><a
href="ff7abcd0c3"><code>ff7abcd</code></a>
Update README to include Node.js 24 support details and requirements (<a
href="https://redirect.github.com/actions/checkout/issues/2248">#2248</a>)</li>
<li>See full diff in <a
href="08c6903cd8...1af3b93b68">compare
view</a></li>
</ul>
</details>
<br />

Updates `ruby/setup-ruby` from 1.267.0 to 1.268.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.268.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Add ruby-4.0.0-preview2 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/825">ruby/setup-ruby#825</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ruby/setup-ruby/compare/v1.267.0...v1.268.0">https://github.com/ruby/setup-ruby/compare/v1.267.0...v1.268.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8aeb6ff803"><code>8aeb6ff</code></a>
Test Ruby 4.0 previews</li>
<li><a
href="09e84e3b9d"><code>09e84e3</code></a>
Add ruby-4.0.0-preview2</li>
<li>See full diff in <a
href="d5126b9b35...8aeb6ff803">compare
view</a></li>
</ul>
</details>
<br />

Updates `peter-evans/create-pull-request` from 7.0.8 to 7.0.9
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/peter-evans/create-pull-request/releases">peter-evans/create-pull-request's
releases</a>.</em></p>
<blockquote>
<h2>Create Pull Request v7.0.9</h2>
<p>⚙️ Fixes an <a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/4228">incompatibility</a>
with the recently released <code>actions/checkout@v6</code>.</p>
<h2>What's Changed</h2>
<ul>
<li>~70 dependency updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a></li>
<li>docs: fix workaround description about <code>ready_for_review</code>
by <a href="https://github.com/ybiquitous"><code>@​ybiquitous</code></a>
in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3939">peter-evans/create-pull-request#3939</a></li>
<li>Docs: <code>add-paths</code> default behavior by <a
href="https://github.com/joeflack4"><code>@​joeflack4</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3928">peter-evans/create-pull-request#3928</a></li>
<li>docs: update to create-github-app-token v2 by <a
href="https://github.com/Goooler"><code>@​Goooler</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/4063">peter-evans/create-pull-request#4063</a></li>
<li>Fix compatibility with actions/checkout@v6 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/4230">peter-evans/create-pull-request#4230</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/joeflack4"><code>@​joeflack4</code></a>
made their first contribution in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3928">peter-evans/create-pull-request#3928</a></li>
<li><a href="https://github.com/Goooler"><code>@​Goooler</code></a> made
their first contribution in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/4063">peter-evans/create-pull-request#4063</a></li>
<li><a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> made
their first contribution in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/4230">peter-evans/create-pull-request#4230</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/peter-evans/create-pull-request/compare/v7.0.8...v7.0.9">https://github.com/peter-evans/create-pull-request/compare/v7.0.8...v7.0.9</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="84ae59a2cd"><code>84ae59a</code></a>
fix: compatibility with actions/checkout@v6 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/4230">#4230</a>)</li>
<li><a
href="b4733b9419"><code>b4733b9</code></a>
build(deps-dev): bump js-yaml from 4.1.0 to 4.1.1 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/4222">#4222</a>)</li>
<li><a
href="0edc001d28"><code>0edc001</code></a>
build(deps-dev): bump the npm group with 2 updates (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/4201">#4201</a>)</li>
<li><a
href="430aea0fb1"><code>430aea0</code></a>
build(deps): bump the github-actions group with 3 updates (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/4200">#4200</a>)</li>
<li><a
href="46cdba753c"><code>46cdba7</code></a>
build(deps-dev): bump the npm group with 3 updates (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/4185">#4185</a>)</li>
<li><a
href="b937339b17"><code>b937339</code></a>
build(deps): bump the github-actions group with 2 updates (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/4184">#4184</a>)</li>
<li><a
href="e9af275c37"><code>e9af275</code></a>
ci: update dependabot config</li>
<li><a
href="d3e081a03a"><code>d3e081a</code></a>
build(deps-dev): bump <code>@​types/node</code> from 18.19.127 to
18.19.128 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/4178">#4178</a>)</li>
<li><a
href="9ec683ee07"><code>9ec683e</code></a>
build(deps-dev): bump <code>@​types/node</code> from 18.19.125 to
18.19.127 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/4165">#4165</a>)</li>
<li><a
href="65d8d10bf7"><code>65d8d10</code></a>
build(deps-dev): bump ts-jest from 29.4.2 to 29.4.4 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/4163">#4163</a>)</li>
<li>Additional commits viewable in <a
href="271a8d0340...84ae59a2cd">compare
view</a></li>
</ul>
</details>
<br />

Updates `fwal/setup-swift` from 2.3.0 to 2.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/fwal/setup-swift/releases">fwal/setup-swift's
releases</a>.</em></p>
<blockquote>
<h2>2.4.0</h2>
<h2>Features</h2>
<ul>
<li>Add missing Swift versions (<a
href="https://redirect.github.com/fwal/setup-swift/issues/789">#789</a>)
<a href="https://github.com/fwal"><code>@​fwal</code></a></li>
</ul>
<h2>Fixes</h2>
<ul>
<li>Fix GPG key import (<a
href="https://redirect.github.com/fwal/setup-swift/issues/772">#772</a>)
<a href="https://github.com/mman"><code>@​mman</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7ca6abe6b3"><code>7ca6abe</code></a>
Bump version to 2.4.0</li>
<li><a
href="482b581f66"><code>482b581</code></a>
Merge pull request <a
href="https://redirect.github.com/fwal/setup-swift/issues/789">#789</a>
from swift-actions/fwal/bump-swift</li>
<li><a
href="df7348aeef"><code>df7348a</code></a>
Bump tests to 6.2</li>
<li><a
href="1aacf6d1a2"><code>1aacf6d</code></a>
Use correct Swift 6.1 version</li>
<li><a
href="ba430f929d"><code>ba430f9</code></a>
Disable gpg check on windows</li>
<li><a
href="062c0511b5"><code>062c051</code></a>
Fix gpg handling on windows</li>
<li><a
href="54b683083c"><code>54b6830</code></a>
Add Swift 6.2.1</li>
<li><a
href="ae1af08f2b"><code>ae1af08</code></a>
Add Swift 6.1.1</li>
<li><a
href="0baf56bca9"><code>0baf56b</code></a>
Fix formatting</li>
<li><a
href="713507daaf"><code>713507d</code></a>
Add missing swift versions</li>
<li>Additional commits viewable in <a
href="682457186b...7ca6abe6b3">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>
2025-11-24 13:50:09 +01:00
Bruno Pantaleão Gonçalves
adece36840 Improve error handling in WebView navigation failure (#4001)
Refactors the didFailProvisionalNavigation delegate method to better
distinguish between URLError, WebKitErrorDomain, and other errors.
Ensures appropriate logging and user feedback for different error types,
and avoids showing error messages for cancelled requests.

<!-- 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. -->
2025-11-24 13:49:47 +01:00
github-actions[bot]
323dacb936 Update Localized Strings (#3996)
Automatically created by bgoncal.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
2025-11-21 13:31:19 +01:00
Bruno Pantaleão Gonçalves
8326e22a51 Fix manual URL entry not presenting webview (#3998)
<!-- 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 -->

At some point this flow needs to be migrated to not be UIKit dependent,
for now this workaround will provide the proper view controller to be
used to present the webview for login

## 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. -->
2025-11-21 11:51:46 +00:00
github-actions[bot]
ad2352b3b2 Update Localized Strings (#3993) 2025-11-20 11:48:37 +00:00
github-actions[bot]
735ee14620 Update Localized Strings (#3992)
Automatically created by zacwest.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
2025-11-19 10:09:37 +01:00
Copilot
c419401cbc Replace hardcoded SFSymbol strings with SFSafeSymbols (#3990) 2025-11-18 21:05:01 +01:00
Bruno Pantaleão Gonçalves
9970b202b3 Add more doc entry points along onboarding (#3991)
<!-- 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. -->
2025-11-18 19:04:23 +01:00
Bruno Pantaleão Gonçalves
f6a87b8ac4 Make sure server changes reflect in settings when navigating back (#3989)
<!-- 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>
2025-11-18 10:49:58 +00:00
Bruno Pantaleão Gonçalves
6ad973b8b7 Present onboarding in a separate window on macOS (#3987) 2025-11-17 19:14:11 +01:00
github-actions[bot]
c12a19bc50 Update Localized Strings (#3984)
Automatically created by bgoncal.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
2025-11-17 17:25:45 +00:00
Bruno Pantaleão Gonçalves
a9442133a7 Update OnboardingServersListViewModel.swift (#3986)
<!-- 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. -->
2025-11-17 17:44:39 +01:00
Bruno Pantaleão Gonçalves
ba286994a8 Fix SelectionOptionView alignment when option text is short (#3985)
<!-- 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="748" height="650" alt="CleanShot 2025-11-17 at 16 46 13@2x"
src="https://github.com/user-attachments/assets/ad8dcd50-0add-400f-ab30-7b2fd84d3c94"
/>

## 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. -->
2025-11-17 16:17:40 +00:00
Luke Butler
e98e22b168 Fix location error recovery for OneShotError wrapper (#3983)
## Summary
Fixes #3691 - kCLErrorDomain errors on macOS with WiFi disabled.

Claude found the problem, but I did build and test to verify.

Root Cause:
- oneShotLocation() wraps CLError in OneShotError enum before throwing
- Error recovery in manuallyUpdate() only checked for raw CLError type
- This type mismatch prevented error recovery from triggering
- Errors propagated to UI instead of being handled gracefully

The Fix:
- Updated error recovery to also handle OneShotError type
- Now location failures are properly caught and sensor updates continue
without location data
- No more error dialogs when WiFi is disabled on macOS

Co-authored-by: Luke <8517289+luke3butler@users.noreply.github.com>
2025-11-17 11:01:36 +01:00
github-actions[bot]
2a33559fe5 Update Localized Strings (#3978)
Automatically created by zacwest.

Co-authored-by: Home Assistant Bot <hello@home-assistant.io>
2025-11-17 09:55:00 +01:00
Bruno Pantaleão Gonçalves
339d88123e Increase CI timeout to 60min (#3977)
<!-- 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. -->
2025-11-14 01:16:29 +00:00
Bruno Pantaleão Gonçalves
f2b1ed16b4 Fix navigation bar for watchOS 10/9/8 (#3976)
<!-- 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. -->
2025-11-13 23:43:04 +00:00
Bruno Pantaleão Gonçalves
6c8d0e40e2 Hack copy-paste logic on mac catalyst (#3975)
Copy/Paste WKWebView on Mac Catalyst apps is known to be buggy and
unreliable, while Apple does not fix this, this PR adds a hack
alternative which links shift + command + c/v to custom copy paste
methods, same used by the new mac top bar copy/paste icons

<!-- 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. -->
2025-11-13 21:50:25 +00:00
Bruno Pantaleão Gonçalves
5d7f370348 Cleanup SettingsDetailsViewController (#3974)
<!-- 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>
2025-11-13 13:30:59 +00:00
Bruno Pantaleão Gonçalves
8b3e8883f4 Use NavigationStack in SettingsView (#3973)
<!-- 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>
2025-11-13 13:15:40 +01:00
Copilot
660db60a83 Extract magic number as named constant in ServersListView (#3971) 2025-11-13 12:23:00 +01:00
github-actions[bot]
97a2eb4c12 Update Localized Strings (#3969)
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>
2025-11-13 11:49:23 +01:00