Files
fidelity-ai-workspace/project-knowledge/02-work-items/pdiap-16167.md
david.delagneau 2a234701c5 Update work items and daily logs for project fidelity
- Updated work items with new statuses, notes, and dependencies:
  - `PDIAP-15838` moved to Done, draft PR remains unmerged.
  - `PDIAP-15836` status updated to backlog-ready, sequenced after `PDIAP-15838`.
  - `PDIAP-12284` reopened for UIKit removal, dependency for `PDIAP-15836`.
  - Added new backlog items: `PDIAP-11961`, `PDIAP-11962`, `PDIAP-11562`, `PDIAP-12226`, `PDIAP-12227`, `PDIAP-12228`.
- Completed `PDIAP-16167`, documented findings in Confluence.
- Created daily log for 2026-05-05 summarizing work item updates and backlog triage.
- Added diagnostic script for workspace analysis.
2026-05-05 15:54:45 -06:00

2.6 KiB

type, project, status, ticket, title, systems, workstreams, people, related, tags, updated
type project status ticket title systems workstreams people related tags updated
work-item fidelity done PDIAP-16167 AccountLink - XFlow causing web view rewrites investigation
xflowsdk
xflowviewmaker
fttransfer
ao-discourse
consumer-integration
jeff-dewitte
zachary-boutyard
pdiap-15836
work-item
fidelity
discourse
swiftui
2026-05-05

PDIAP-16167 - AccountLink - XFlow causing web view rewrites investigation

Status

  • Done
  • Confluence report published
  • Findings/comment sent to Zachary and posted for Jira/Discourse follow-up

Context

  • Discourse 30181: FTTransfer (Zachary) reported that the AccountLink webview reloads / goes blank when the user taps the exit button in the FTTransfer playground.
  • Zachary believes the issue is "new" and linked to a recent XFlow version change.

Confirmed Findings

  • Root Cause: SwiftUI Identity Reset (Modifier-Site Teardown). The .ftFullScreenCover modifier was anchored to a volatile branch inside BankInformationView. When the webview triggered an exit alert, the environment republish dismantled that volatile branch and rebuilt the presenter off-screen, causing the blank screen.
  • XFlow is NOT the cause: XFlow eventing fires once to toggle a boolean and exits. The teardown happens later on a local JS/alert callback. XFlow does not mutate view identity, host lifecycle, or alert state.
  • v0.1.0 Rollback Proof: The issue persists identically when rolling back XFlowSDK to v0.1.0 (pre-REST, pre-Apollo removal), empirically proving the defect is decoupled from the SDK's recent evolution.
  • Comparative Analysis: The non-XFlow entry point (Zachary's alternative flow) survives because it uses a stable coordinator boundary (BankSetupContainerView / NavigationStack), bypassing the fragile modifier placement.

Verified Resolution

  • Moving the .ftFullScreenCover and the shouldShowWebView observer to the stable root of BankInformationView resolves the issue. Pure SwiftUI fix, no UIKit workarounds needed.
  • Jeff acknowledged the fix and asked to include it in the Confluence report.

Current Guidance

  • Keep future references clear that this was documented as a consumer-side SwiftUI presentation-topology defect, not an XFlow/XFlowViewMaker regression.
  • Include Jeff's preferred clarification that XFlowSDK v0.1.0 predates the REST and Apollo-related changes that were newer additions.

Closure Notes

  • The published recommendation is to move the full-screen cover modifier to the stable root of BankInformationView, outside the conditional branch.
  • David moved the story to Done on 2026-05-05.