Context
Follow-ups from #643 (merged into staging), which consumes the new KycProcessStatus.MergeProcessing value introduced by DFXswiss/api#3807. The functional change and the API contract are correct ('MergeProcessing' matches byte-for-byte, routing and tests are sound). These are the gaps deferred at merge time.
Open items
1. Golden test for KycMergeProcessingPage (required by convention)
Every other KYC subpage has a golden test + baseline under test/goldens/screens/kyc/ (e.g. kyc_account_merge_golden_test.dart + goldens/macos/kyc_account_merge_page_default.png). The new lib/screens/kyc/subpages/kyc_merge_processing_page.dart has none.
- Add
test/goldens/screens/kyc/kyc_merge_processing_golden_test.dart (model it on kyc_account_merge_golden_test.dart).
- Regenerate the macOS baseline via the
golden-regenerate.yaml workflow.
2. Handbook mapping (decide scope)
Per CONTRIBUTING.md ("Handbook screenshots are sourced from Goldens"), a handbook page MUST have a matching golden AND a row in scripts/assemble-handbook-screenshots.sh. The Handbook Build Check only fails on mapped goldens. Decide whether the MergeProcessing waiting screen belongs in the handbook; if yes, add the mapping row.
3. Widget coverage / Coverage Floor Gate
The 56-line page widget is currently untested (only KycCubit routing is covered). Watch the Coverage Floor Gate on staging. The golden test in item 1 also provides widget coverage.
4. Refresh-timeout nuance
The refresh button calls KycCubit.checkKyc(), which carries the 30s timeout and emits KycFailure on timeout. If the merge is still processing when the user taps refresh and the call exceeds 30s, they land back on the error screen — the exact failure mode this page was meant to avoid. Consider one of:
- auto-poll while in
KycMergeProcessing, or
- do not surface a timeout as
KycFailure for this specific state.
References
Context
Follow-ups from #643 (merged into
staging), which consumes the newKycProcessStatus.MergeProcessingvalue introduced by DFXswiss/api#3807. The functional change and the API contract are correct ('MergeProcessing'matches byte-for-byte, routing and tests are sound). These are the gaps deferred at merge time.Open items
1. Golden test for
KycMergeProcessingPage(required by convention)Every other KYC subpage has a golden test + baseline under
test/goldens/screens/kyc/(e.g.kyc_account_merge_golden_test.dart+goldens/macos/kyc_account_merge_page_default.png). The newlib/screens/kyc/subpages/kyc_merge_processing_page.darthas none.test/goldens/screens/kyc/kyc_merge_processing_golden_test.dart(model it onkyc_account_merge_golden_test.dart).golden-regenerate.yamlworkflow.2. Handbook mapping (decide scope)
Per
CONTRIBUTING.md("Handbook screenshots are sourced from Goldens"), a handbook page MUST have a matching golden AND a row inscripts/assemble-handbook-screenshots.sh. TheHandbook Build Checkonly fails on mapped goldens. Decide whether the MergeProcessing waiting screen belongs in the handbook; if yes, add the mapping row.3. Widget coverage / Coverage Floor Gate
The 56-line page widget is currently untested (only
KycCubitrouting is covered). Watch theCoverage Floor Gateonstaging. The golden test in item 1 also provides widget coverage.4. Refresh-timeout nuance
The refresh button calls
KycCubit.checkKyc(), which carries the 30s timeout and emitsKycFailureon timeout. If the merge is still processing when the user taps refresh and the call exceeds 30s, they land back on the error screen — the exact failure mode this page was meant to avoid. Consider one of:KycMergeProcessing, orKycFailurefor this specific state.References