diff --git a/ai/context/process/communication.md b/ai/context/process/communication.md index b9ca204..a9c8fe9 100644 --- a/ai/context/process/communication.md +++ b/ai/context/process/communication.md @@ -21,6 +21,9 @@ When the format fits, prefer: - Always clarify authenticated vs non-authenticated when behavior depends on it. - Always separate external issues from regressions. - Always state reproducibility and scope. +- For standups, report the previous workday context, not blindly the prior calendar day. +- On Mondays, use Friday's work context unless a later prior day has Mattermost activity. +- If the previous calendar day has no project activity because of weekend, holiday, or OOO, use the latest prior day with Mattermost activity. - Avoid vague phrasing such as: - "same behavior" - "looks fixed" diff --git a/ai/logs/2026-04-10.md b/ai/logs/2026-04-10.md index 6de6876..04709b8 100644 --- a/ai/logs/2026-04-10.md +++ b/ai/logs/2026-04-10.md @@ -32,3 +32,5 @@ - Reviewed another screenshot-based revision after the simplification prompt. The top-level rollout flow is still good and concise, but the lower half of the document still retains most of the extra runbook-style sections, so the latest revision did not yet materially reduce those details. - Clarified the AO/Discourse config explanation for the authenticated `TeenIdentityCheck` DOB issue: the requirement is not to rename the root from `birthDate` to `validations`; instead, the `validation-rules` payload should contain a JSON object whose root key is `validations`, and if the age gate is required it should include `eighteenOrAbove: true`, matching the `CheckIdentity` structure rather than relying on a separate transactional rule boolean like `"eighteen-or-above": true`. - Further clarification for the same AO/Discourse thread: the reply should explicitly state that the earlier comment was referring to the literal `"eighteen-or-above": true` attribute inside the transactional-rules array, while still distinguishing that from the separate `validation-rules` structure. +- Additional clarification for the authenticated `TeenIdentityCheck` config issue: the `validation-rules` attribute is the structure that drives the check. `CheckIdentity` was already configured correctly. The `TeenIdentityCheck` problem had two parts: the wrong root key (`birthDate` instead of the expected `validations`) and the missing `eighteenOrAbove` attribute inside `validation-rules`. +- For the Rashmi reply, the intended closing clarification is that the previous `CheckIdentity` `validation-rules` shape is the expected model for `TeenIdentityCheck`, and a JSON snippet can be shared to show the expected structure directly. diff --git a/ai/logs/2026-04-13.md b/ai/logs/2026-04-13.md new file mode 100644 index 0000000..596f99a --- /dev/null +++ b/ai/logs/2026-04-13.md @@ -0,0 +1,15 @@ +# 2026-04-13 + +## Standup Context + +- Corrected the approved title for `PDIAP-14859` to `Spike - Research strategy to remove final UIKit wrapping from XFlowSDK and XFlowViewMaker without disrupting consumer implementation`. +- Manual clarification for Monday standup: reference Friday work rather than the prior calendar day. +- Friday update for `PDIAP-14859`: created a draft rollout document for removing UIKit in favor of a SwiftUI-only path, including feature-flag planning. +- Today update: publish the rollout document for `PDIAP-14859` and continue with `PDIAP-15838` `Remove Apollo for iOS`. +- Standups should include story titles, not only Jira IDs, when the title is available. + +## Mattermost Sync + +- `PDIAP-14859`: sent Jeff the rollout draft for review after updating it around the global feature flag, broad `XQ1` validation, and the consumer-facing rollout flow. +- Jeff replied that he will review the `PDIAP-14859` document this morning. +- For `PDIAP-15765`, Jeff approved sending the config clarification that `CheckIdentity` was already correct and that `TeenIdentityCheck` needed the `validations` root key plus `eighteenOrAbove` inside `validation-rules`; the message was sent with an expected validation snippet. diff --git a/ai/state/current.md b/ai/state/current.md index c99890a..544e914 100644 --- a/ai/state/current.md +++ b/ai/state/current.md @@ -10,7 +10,7 @@ - Finalize `PDIAP-14859` with a dual UIKit/SwiftUI plan that removes `UIHostingController` dynamically while preserving both flows appropriately - Prioritize `PDIAP-15838` next; `PDIAP-15836` comes later - Include feature-flag planning for the broader UIKit-removal spike, including dismissal sequencing changes that affect consumers -- Focus now on creating a process-oriented rollout document for the UIKit-removal spike that can be shared for feedback +- The process-oriented rollout document for the UIKit-removal spike has been drafted and sent to Jeff for review - The rollout document should frame the work as a more deliberate migration phase toward the SwiftUI-only path, not as a correction to a prior failed attempt - The rollout document should make clear that the migration plan uses a dual-path pattern to switch between the `UIHostingController` path and the SwiftUI-only path during rollout - The rollout should be described as a global feature-flag rollout, not entry-point-based enablement @@ -34,6 +34,7 @@ - Keeping REST deprecation scope explicit while GraphQL fallback still exists - Defining a consumer rollout plan for UIKit-removal sequencing changes, including validation, communication, and feature-flag retirement - Keeping the consumer-facing rollout document aligned with the actual global-flag rollout model and broad XQ1 validation requirement +- Incorporating Jeff's pending review feedback on the `PDIAP-14859` rollout draft once it arrives --- diff --git a/ai/state/work-items.md b/ai/state/work-items.md index bb35e79..85edf5d 100644 --- a/ai/state/work-items.md +++ b/ai/state/work-items.md @@ -8,9 +8,9 @@ Update the per-ticket files first when scope, status, sequencing, or communicati ## Current -- `PDIAP-14859` +- `PDIAP-14859` - Spike - Research strategy to remove final UIKit wrapping from XFlowSDK and XFlowViewMaker without disrupting consumer implementation Detail: `ai/work-items/pdiap-14859.md` - Current note: active spike/planning work for the dual UIKit/SwiftUI path, dynamic `UIHostingController` removal, and consumer rollout planning. + Current note: rollout draft has been shared with Jeff for review; scope centers on the dual UIKit/SwiftUI path, dynamic `UIHostingController` removal, global feature-flag rollout, and broad `XQ1` validation. - `PDIAP-15838` - Remove Apollo for iOS Detail: `ai/work-items/pdiap-15838.md` diff --git a/ai/work-items/index.md b/ai/work-items/index.md index 4e0376a..06f7585 100644 --- a/ai/work-items/index.md +++ b/ai/work-items/index.md @@ -9,7 +9,7 @@ Provide a quick view of active and recently relevant Jira-linked work while keep ## Active - [pdiap-14859.md](./pdiap-14859.md) - `PDIAP-14859` active spike/planning work around dual UIKit/SwiftUI support, dynamic `UIHostingController` removal, and consumer rollout planning. + `PDIAP-14859` `Spike - Research strategy to remove final UIKit wrapping from XFlowSDK and XFlowViewMaker without disrupting consumer implementation` active spike/planning work around dual UIKit/SwiftUI support, dynamic `UIHostingController` removal, and consumer rollout planning. - [pdiap-15838.md](./pdiap-15838.md) `PDIAP-15838` next story to work on; approved scope removes Apollo and GraphQL-specific iOS transport code while leaving REST. diff --git a/ai/work-items/pdiap-14859.md b/ai/work-items/pdiap-14859.md index 50d5f83..5b0981d 100644 --- a/ai/work-items/pdiap-14859.md +++ b/ai/work-items/pdiap-14859.md @@ -1,14 +1,15 @@ -# PDIAP-14859 +# PDIAP-14859 - Spike - Research strategy to remove final UIKit wrapping from XFlowSDK and XFlowViewMaker without disrupting consumer implementation ## Status - Active -- Current focus on April 10, 2026 +- Rollout draft prepared and sent to Jeff for review on April 13, 2026 --- ## Current Framing +- Approved title: `Spike - Research strategy to remove final UIKit wrapping from XFlowSDK and XFlowViewMaker without disrupting consumer implementation`. - This work is currently framed in the workspace as a dual UIKit/SwiftUI plan that removes `UIHostingController` dynamically while preserving both flows appropriately. - The remaining deliverable is process-oriented, not just technical implementation. @@ -20,6 +21,7 @@ - Preserve both UIKit and SwiftUI paths appropriately while introducing the new path safely. - Cover risky entry points such as `FTTransfer`. - Include validation expectations in `XQ1`. +- Use a global feature-flag rollout model rather than entry-point-based enablement. - Include consumer communication expectations. - Include a 30-day production period with no reported bugs before final removal. - Include a follow-up release to remove the feature flag and old code after rollout confidence is achieved. @@ -28,9 +30,10 @@ ## Notes -- The workspace does not currently hold an approved final title for this ticket beyond the Jira ID. - The feature-flag and rollout planning guidance applies to the broader UIKit-removal spike, not only to dismissal-sequencing work. - Jeff suggested sending the process-oriented rollout document to Quy for feedback when ready. +- The draft shared with Jeff already reflects the global feature flag, broad `XQ1` validation, and consumer-facing rollout flow guidance. +- Await Jeff's review feedback before treating the rollout framing as final. --- diff --git a/ai/work-items/pdiap-15765.md b/ai/work-items/pdiap-15765.md index 7689887..6b03582 100644 --- a/ai/work-items/pdiap-15765.md +++ b/ai/work-items/pdiap-15765.md @@ -19,6 +19,7 @@ - The issue reproduces only for authenticated users based on the currently stored evidence. - Root cause was documented. - The original external report was incomplete. +- For the config discussion, `CheckIdentity` was already correct. The `TeenIdentityCheck` issue had two config gaps inside `validation-rules`: the root key should be `validations`, and the age gate also needs `eighteenOrAbove` there when that rule is required. ---