--- type: work-item project: fidelity status: in-progress ticket: PDIAP-15836 title: "Modernize dismissal delegate lifecycle sequencing for pure SwiftUI environment" systems: [xflowsdk, xflowviewmaker, ftframeworks] workstreams: [xflow-swiftui-migration, consumer-integration] people: [jeff-dewitte] related: [pdiap-14859, pdiap-12284, pdiap-15838] updated: 2026-05-08 tags: - work-item - fidelity - xflow - swiftui --- # PDIAP-15836 - Modernize dismissal delegate lifecycle sequencing for pure SwiftUI environment ## Status - Moved to In Progress on May 7. - David found a possible minimal dismissal fix path that would not require removing `UIHostingController`, and was validating it. - Jeff directed David to do this dismissal/lifecycle work together with `PDIAP-12284` in the same branch because both changes are disruptive enough to require consumer testing. - Sequenced after `PDIAP-15838` source work, but merge/release is delayed until after REST-transition consumer validation - Sized at `8` points --- ## Context - This story came out of the `AccountLink` root cause investigation. - It is tied to the dismissal sequencing problem found after UIKit removal in SwiftUI-only paths. - The root cause document was updated and the revised wording was approved. --- ## Approved Scope - Modernize dismissal delegate lifecycle sequencing for pure SwiftUI flows. - Cover the missing lifecycle contract where delegate callbacks can happen before the view is fully removed. - Validate the change across affected SwiftUI flows rather than only in one narrow reproduction. --- ## Sequencing And Dependencies - This story should come after `PDIAP-15838`. - `PDIAP-12284` is the original UIKit-wrapping removal story and was reopened after rollback. - Current working relationship: implement and validate `PDIAP-15836` together with `PDIAP-12284` in the same branch unless direction changes. David identified a possible isolated/minimal fix path, but Jeff prefers combined branch work because consumer testing is required either way. - It is aligned with epic `26Q2 - Updating XFlowSDK to Decouple and Fix ApexKit Dependencies (Split Part 2)`. - If possible, it should use the same consumer-impact feature flag strategy as the broader UIKit-removal rollout. - Expect a long-lived branch: after implementation, maintain the branch until consumer-testing approval. Jeff expects the GraphQL-removal branch to merge first after the REST validation period, then that branch should be merged into the `PDIAP-15836` / `PDIAP-12284` branch. Current estimate is roughly 90-100 days from 2026-05-05 unless Fidelity shortens the review windows. --- ## Communication Notes - Keep the scope framed as lifecycle sequencing in a pure SwiftUI environment, not only as a symptom like multiple modal presentation. - If mentioned externally, keep it separate from `PDIAP-15838`. - The Confluence/root-cause document was updated to reflect that FTTransfer changes are not the primary need anymore. - The primary recommendation is to adjust the dismissal handling/sequencing correctly in the hosting path. - FTTransfer improvements can still be mentioned as a secondary improvement, but not as a required change to reproduce the same visual behavior. - When explaining why code still remains, clarify that the spike identified and documented the root cause, but implementation changes have not yet been published.