From e5d41c876e2a3d7a5f975fda27804d09475182a0 Mon Sep 17 00:00:00 2001 From: "david.delagneau" Date: Tue, 21 Apr 2026 11:52:13 -0600 Subject: [PATCH] feat: Update work items and daily log for Apollo removal progress and SwiftUI migration cleanup --- project-knowledge/02-work-items/pdiap-15836.md | 5 ++++- project-knowledge/02-work-items/pdiap-15838.md | 3 +++ project-knowledge/06-daily/2026-04-21.md | 13 +++++++++++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/project-knowledge/02-work-items/pdiap-15836.md b/project-knowledge/02-work-items/pdiap-15836.md index 012c9d8..0a6dcd6 100644 --- a/project-knowledge/02-work-items/pdiap-15836.md +++ b/project-knowledge/02-work-items/pdiap-15836.md @@ -8,7 +8,7 @@ systems: [xflowsdk, xflowviewmaker, ftframeworks] workstreams: [xflow-swiftui-migration, consumer-integration] people: [jeff-dewitte] related: [pdiap-14859] -updated: 2026-04-16 +updated: 2026-04-21 tags: - work-item - fidelity @@ -53,3 +53,6 @@ tags: - 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. diff --git a/project-knowledge/02-work-items/pdiap-15838.md b/project-knowledge/02-work-items/pdiap-15838.md index d780f1d..28ef0ec 100644 --- a/project-knowledge/02-work-items/pdiap-15838.md +++ b/project-knowledge/02-work-items/pdiap-15838.md @@ -63,6 +63,9 @@ tags: - The current implementation state is cleaner on the model side: Apollo-generated production models have now been replaced with native Swift models/enums for the active path, so the next focus should move from model decoupling to remaining Apollo runtime/infrastructure dependencies. - The `XFlowInitManager` runtime/init cleanup step has now been applied successfully: the three `NetworkClient.shared.updateAppSyncURL(...)` calls were removed from the start/session lifecycle paths, `getAppSyncEndPoint()` was removed after becoming unused, and the project still compiles with `getEndPoint()` left intact for current REST selection. - `NetworkClient.swift` can likely stay temporarily in the tree as a disconnected compatibility shim until broader package/project cleanup, and `XFlowInitManagerConfig.swift` may need to keep AppSync getter/config surface temporarily to avoid an accidental public API break. +- Follow-up runtime scan now suggests `GraphQL/NetworkClient.swift` has no live production callers and only self-references remain inside the file. The proposed next removal order is to delete `GraphQL/NetworkClient.swift` first, build/reference-check, then delete `GraphQL/ApolloGeneratedCode`, while keeping the AppSync members in `XFlowInitManagerConfig.swift` temporarily as compatibility-only surface. +- Current local state after broader cleanup: runtime Apollo decoupling and most Apollo-specific test cleanup now appear complete, production code compiles cleanly aside from a pre-existing environment issue, and no live Apollo imports/references remain in production code. Remaining work is mainly package/build cleanup plus the deferred compatibility API surface in `XFlowInitManagerConfig.swift`. +- Current local state now also indicates the test target compiles cleanly after a minimal follow-up update to `XFlowTransportSelectionTests.swift`, preserving REST-relevant transport tests while removing obsolete GraphQL/Apollo assertions. The remaining Apollo-removal work appears concentrated in package/build cleanup plus the deferred compatibility API surface in `XFlowInitManagerConfig.swift`. - Apollo source-level cleanup appears sequenced as: replace `XFlow.Slot` with a transport-agnostic model first, decouple `XFlowInitManager` from `NetworkClient` while preserving current REST endpoint behavior, then remove runtime GraphQL code, project wiring, Apollo-only tests/scripts/docs, and finally treat any transitive PicoSDK Apollo dependency as a separate dependency-exit task. - Apollo may still remain in the pod graph transitively through PicoSDK even after source-level cleanup, so "Apollo removed" should be framed carefully unless the dependency graph is also cleared. diff --git a/project-knowledge/06-daily/2026-04-21.md b/project-knowledge/06-daily/2026-04-21.md index 147e350..49f3e2f 100644 --- a/project-knowledge/06-daily/2026-04-21.md +++ b/project-knowledge/06-daily/2026-04-21.md @@ -3,8 +3,8 @@ type: daily project: fidelity date: 2026-04-21 status: active -focus: [rest-migration] -work-items: [pdiap-15838] +focus: [rest-migration, xflow-swiftui-migration] +work-items: [pdiap-15838, pdiap-15836] blockers: [] tags: - daily @@ -24,6 +24,8 @@ updated: 2026-04-21 - Cleaned up the active production model layer so it no longer depends on Apollo-generated models for the current path. - Removed the three `NetworkClient.shared.updateAppSyncURL(...)` calls from `XFlowInitManager` and removed `getAppSyncEndPoint()` after it became unused; the project still compiles. +- Updated the Confluence/root-cause document for the FTTransfer discussion so it now reflects the current recommendation. +- Removed the `ApolloGeneratedCode` runtime tree and its project wiring from XFlowSDK. --- @@ -34,6 +36,12 @@ updated: 2026-04-21 - Any Apollo dependency that remains only through PicoSDK should be treated separately from source-level cleanup. - Copilot's focused runtime/init guidance says the safest next source-level step is to remove only the three `updateAppSyncURL(...)` calls from `XFlowInitManager`, then delete internal `getAppSyncEndPoint()` if it becomes unused, while leaving `NetworkClient.swift` and `XFlowInitManagerConfig.swift` in place temporarily as disconnected compatibility surface until later cleanup. - After that step, no live init/session runtime wiring from `XFlowInitManager` into Apollo/AppSync remains; the remaining Apollo surface appears to be disconnected compatibility/runtime code plus later package/build/test cleanup. +- Follow-up scan says `GraphQL/NetworkClient.swift` now appears runtime-dead for production, `GraphQL/ApolloGeneratedCode` appears unreferenced by production runtime after model cleanup, and the safest next step is to remove `NetworkClient.swift` first, then validate before removing `ApolloGeneratedCode`. +- Broader Apollo cleanup has now removed `NetworkClient.swift`, `ApolloGeneratedCode`, Apollo-specific test files/mocks, and related project-file entries. Current reported state says production code has zero live Apollo imports/references and retained REST behavior, while remaining follow-up work is package/build cleanup plus the deferred compatibility API surface in `XFlowInitManagerConfig.swift`. +- Test-target cleanup is now also in a good state: a minimal update to `XFlowTransportSelectionTests.swift` removed obsolete GraphQL/Apollo assertions, preserved REST-oriented coverage, and left no remaining non-environment test-target compile errors. +- The current FTTransfer communication should say the primary fix is the dismissal adjustment in the UIKit hosting path; FTTransfer-side improvements are secondary and not strictly required to reproduce the same visual behavior. +- After the `ApolloGeneratedCode` removal, local compilation still succeeds for David; the Copilot-reported `ApexKitSwiftUI` blocker should be treated as environment-specific noise unless it becomes reproducible in the real local build. +- No live production Apollo runtime references remain in `XFlowSDK/XFlowSDK`; the next cleanup surface is deferred test references plus any intentionally retained AppSync compatibility APIs. --- @@ -44,6 +52,7 @@ updated: 2026-04-21 - Identify the runtime Apollo files that can now be removed safely after the model and init cleanup. - Remove Apollo-only tests, mocks, codegen scripts, and build wiring once runtime references are gone. - Treat any transitive PicoSDK Apollo dependency as a separate dependency-exit step. +- Continue cleanup by removing GraphQL/Apollo-era test references and related test-only helpers without changing production runtime behavior. ---