From a375b3c3b11e2ecf670793a067fa1b081536cb29 Mon Sep 17 00:00:00 2001 From: "david.delagneau" Date: Thu, 16 Apr 2026 07:07:21 -0600 Subject: [PATCH] feat: Add PR template and drafting context for xflow-for-ios repository --- ai/context/process/index.md | 3 +++ ai/context/process/pull-requests.md | 34 +++++++++++++++++++++++++++++ ai/logs/2026-04-15.md | 7 ++++++ 3 files changed, 44 insertions(+) create mode 100644 ai/context/process/pull-requests.md diff --git a/ai/context/process/index.md b/ai/context/process/index.md index 76b75bf..825dea8 100644 --- a/ai/context/process/index.md +++ b/ai/context/process/index.md @@ -13,3 +13,6 @@ - [context-maintenance.md](./context-maintenance.md) How this workspace should be kept current as living memory. + +- [pull-requests.md](./pull-requests.md) + PR template and framing notes for repositories such as `xflow-for-ios`. diff --git a/ai/context/process/pull-requests.md b/ai/context/process/pull-requests.md new file mode 100644 index 0000000..29edf6a --- /dev/null +++ b/ai/context/process/pull-requests.md @@ -0,0 +1,34 @@ +# Pull Requests + +## xflow-for-ios PR Template + +The `xflow-for-ios` repo PR form uses this structure: + +- `## What` + - What does the PR do? + - Is it a bug fix, new feature, refactor, or something else? +- `## Why` + - Why this PR is needed? +- `## How` + - How is it doing what it does? + - How to test, how to integrate, any relevant compromises, etc.? +- `### Changes details` + - bullet list such as `Detail one`, `Detail two` +- `## Missed anything?` + - checklist including: + - explained the purpose of the PR + - self-reviewed the PR + - added or updated test cases + - informed of breaking changes, testing, and migrations if applicable + - updated documentation if applicable + - attached screenshots if applicable + - resolved SwiftLint warnings introduced by the commit + +## Current Small-Fix Example + +For the April 15, 2026 iOS validation fallback fix, the code change is a one-line update in `XFlowViewAdapterRepresentable.swift` for `.apxDateSelect`: + +- before: only `validationDictionary?["validations"]` +- after: `validationDictionary?["validations"] ?? validationDictionary?["birthDate"]` + +This should be framed as a small compatibility bug fix for AO-style payloads, not as a broader Android-parity refactor. diff --git a/ai/logs/2026-04-15.md b/ai/logs/2026-04-15.md index e7200d7..9130c99 100644 --- a/ai/logs/2026-04-15.md +++ b/ai/logs/2026-04-15.md @@ -33,3 +33,10 @@ - Jeff's project history note: AO is the oldest service integration and has older, harder-to-change payload conventions, while newer consumer services were largely built through Slate and were the primary validation target during the SwiftUI refactor. - That history explains why `validations` aligned better with newer SwiftUI work, while older AO payload shapes can still require explicit iOS fallback handling. - Jeff's practical guidance: when the issue is AO-consumer-specific, iOS-only, and caused by a mismatch between what the AO service sends and what the SDK expects, the easiest fix is often to add the minimal compatibility fallback on iOS. + +## PR Drafting Context + +- The `xflow-for-ios` PR template currently uses sections `## What`, `## Why`, `## How`, `### Changes details`, and `## Missed anything?` with a final checklist. +- The April 15 iOS fix PR is a one-line change in `XFlowViewAdapterRepresentable.swift` for `.apxDateSelect`, adding `birthDate` as a fallback after `validations`. +- This PR should be described as a small compatibility bug fix for older AO-style payloads rather than as a broader Android-parity refactor. +- David opened the PR for this minimal iOS compatibility fix.