fix(kilo-pass): survive and report a store product that fails to query - #6618
Merged
Merged
Conversation
Contributor
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryThe incremental commit now probes and reports identifiers a store omits from a successful combined query, resolving the previously flagged silent-drop path with no new defects in the changed production code. Files Reviewed (2 files)
Notes
Previous Review Summary (commit 2bb2c11)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 2bb2c11)Status: 1 Issue Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
Files Reviewed (11 files)
Notes
Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
iscekic
marked this pull request as draft
September 23, 2026 05:09
iscekic
force-pushed
the
kwf/req-iap-ea28
branch
from
September 23, 2026 06:09
442e231 to
bdbd112
Compare
iscekic
marked this pull request as ready for review
September 23, 2026 06:32
Collaborator
Author
|
This description names a scenario the proof did not capture:
A repeated proof run rebuilds the same evidence, so no proof run is dispatched for a named gap. Merging with this gap open is your decision. |
eshurakov
approved these changes
Sep 23, 2026
This was referenced Sep 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changelog for users
Changelog for maintainers
KiloPassProductQueryErrorrecords the platform, storefront, store code, response code, and failing identifiers.kilo-pass-product-query/<kind>/<platform>/<storefront>/<code>groups one store answer into one issue.codeandresponseCodescalars are read; its message, any receipt, and any token are never recorded.reportAppErrorreads a validated self-description from a typed error; a malformed value keeps the genericapp-errorfingerprint.~/Android/sdk,~/Android/Sdk,/usr/local/lib/android/sdk) so the emulator resource starts on Linux dev hosts, fixing a pre-existing resolution gap.E2E proof
[p1] Device: open the Kilo Pass paywall on a build whose store cannot resolve one tier; Metro logs the decisive line `[kilo-pass] store product query platform=<ios|android>… — On android/emulator-5554 with the one-tier store failure injected at the expo-iap boundary by a temporary fixture (e2e-mobile-app/apply-fixture.py, reverted afterwards; git status clean), the scene passed (SCENE p1 OK, p1.longrun.log); Metro logged '[kilo-pass] store product query unresolved-identifiers platform=android storefront=play code=query-product productIds=[kilopass_tier49]' naming the platform and the failing identifier with no receipt or token (p1-metro.log); both resolvable tiers still rendered ('$199 in credits, $99.99/mo' and '$19 in credits, $24.99/mo', p1-tiers.longrun.log)…
[e1] Device: Kilo Pass paywall with a store that cannot resolve one tier (android) — On android/emulator-5554 the paywall logged
[kilo-pass] store product query unresolved-identifiers platform=android storefront=play code=query-product productIds=[kilopass_tier49](e1-metro.log), the two resolvable tiers still rendered ($19 in credits,$199 in credits— e1-paywall-resolved-tiers.txt), and Restore purchases completed the owned tier-49 purchase (sceneSCENE e1 OK, e1-scene.log) by routing off(app)/kilo-passto(app)/(tabs)/(3_profile)— the 'restored' branch, not 'empty' (e1-metro.log). The one-tier store failure was injected at the expo-iap boundary by a temporary…[p1] Device: open the Kilo Pass paywall on a build whose store cannot resolve one tier; Metro logs the decisive line `[kilo-pass] store product query platform=<ios|android>…
[e1] Device: Kilo Pass paywall with a store that cannot resolve one tier (android)
E2E proof — log excerpts
/home/igor_kilocode_ai/.local/share/kwf/sections/req-iap-ea28/e2e-mobile-app/p1-metro.log/home/igor_kilocode_ai/.local/share/kwf/sections/req-iap-ea28/e2e-mobile-app/p1.longrun.log/home/igor_kilocode_ai/.local/share/kwf/sections/req-iap-ea28/e2e-mobile-app/p1-tiers.longrun.log/home/igor_kilocode_ai/.local/share/kwf/sections/req-iap-ea28/e2e-mobile-app/p1-empty-no-purchases.txtOwner request
[e1] Device: Kilo Pass paywall with a store that cannot resolve one tier (android) — On android/emulator-5554 the paywall logged
[kilo-pass] store product query unresolved-identifiers platform=android storefront=play code=query-product productIds=[kilopass_tier49](e1-metro.log), the two resolvable tiers still rendered ($19 in credits,$199 in credits— e1-paywall-resolved-tiers.txt), and Restore purchases completed the owned tier-49 purchase (sceneSCENE e1 OK, e1-scene.log) by routing off(app)/kilo-passto(app)/(tabs)/(3_profile)— the 'restored' branch, not 'empty' (e1-metro.log). The one-tier store failure was injected at the expo-iap boundary by a temporary…Follow-ups (not changed here)