Skip to content

[PM-39514] Fix debounce task to not use .task(id:)#2841

Merged
fedemkr merged 1 commit into
mainfrom
PM-39514/fix-update-xcode-26-5
Jun 29, 2026
Merged

[PM-39514] Fix debounce task to not use .task(id:)#2841
fedemkr merged 1 commit into
mainfrom
PM-39514/fix-update-xcode-26-5

Conversation

@fedemkr

@fedemkr fedemkr commented Jun 29, 2026

Copy link
Copy Markdown
Member

🎟️ Tracking

PM-39514

📔 Objective

Fix debounce task to not use .task(id:) because of update to Xcode 26.5.

debouncedTask in View+Task.swift was still called .task(id:) internally. Even without @inlinable, the some View opaque return type descriptor for that function encodes _TaskModifier2 — the new @isolated(any) overload Swift 6.3.2 selects from the iOS 26 SDK. That type descriptor isn't present in the iOS 15 runtime, so the linker fails anywhere that calls debouncedTask/searchDebouncedTask, including ItemListView.swift in AuthenticatorShared.

Fix: Replaced the internal .task(id:) call with a private DebouncedTaskModifier struct that uses @State private var currentTask + .onAppear / .onChange / .onDisappear — the same pattern applied to all the other views in this branch. The public debouncedTask and searchDebouncedTask signatures are unchanged, so all call sites are unaffected.

@fedemkr
fedemkr requested review from a team and matt-livefront as code owners June 29, 2026 20:03
@github-actions github-actions Bot added app:password-manager Bitwarden Password Manager app context app:authenticator Bitwarden Authenticator app context labels Jun 29, 2026
@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

🤖 Bitwarden Claude Code Review

Overall Assessment: APPROVE

Reviewed the single-file change in BitwardenKit/UI/Platform/Application/Extensions/View+Task.swift that replaces the internal .task(id:) call in debouncedTask with a private DebouncedTaskModifier using @State + onAppear/onChange/onDisappear. This avoids the iOS 26 SDK @isolated(any) overload that broke linking at the iOS 15 deployment target. The public debouncedTask/searchDebouncedTask signatures are unchanged, so call sites are unaffected, and the debounce/cancel/restart semantics are preserved (cancel-and-replace on id change, cancel on disappear). The new modifier follows the same pattern already used by other views in this branch and matches the existing onChange usage convention across the codebase.

Code Review Details

No findings. The change is well-scoped, correctly preserves the prior behavior, and is consistent with established codebase patterns.

@codecov

codecov Bot commented Jun 29, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 35.00000% with 13 lines in your changes missing coverage. Please review.
✅ Project coverage is 78.89%. Comparing base (bb13b2e) to head (c44ce4a).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
...UI/Platform/Application/Extensions/View+Task.swift 35.00% 13 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2841      +/-   ##
==========================================
- Coverage   81.17%   78.89%   -2.29%     
==========================================
  Files        1026     1149     +123     
  Lines       65871    73183    +7312     
==========================================
+ Hits        53472    57735    +4263     
- Misses      12399    15448    +3049     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@fedemkr fedemkr added the enhancement New feature or request label Jun 29, 2026
@fedemkr
fedemkr enabled auto-merge (squash) June 29, 2026 20:26
@fedemkr
fedemkr merged commit 9325c63 into main Jun 29, 2026
23 of 26 checks passed
@fedemkr
fedemkr deleted the PM-39514/fix-update-xcode-26-5 branch June 29, 2026 20:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app:authenticator Bitwarden Authenticator app context app:password-manager Bitwarden Password Manager app context enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants