Repository navigation
perf(mobile): reuse the Kilo Pass store-product cache on re-entry - #6570
Conversation
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryThe PR branch was rewritten to a single commit ( Files Reviewed (9 files)
Previous Review Summaries (3 snapshots, latest commit 4d094d6)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 4d094d6)Status: No Issues Found | Recommendation: Merge Files Reviewed (9 files)
Previous review (commit 6b2ad0d)Status: No Issues Found | Recommendation: Merge The incremental delta ( Files Reviewed (4 files)
Previous review (commit dcac7be)Status: 2 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
SUGGESTION
Files Reviewed (7 files)
Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
dcac7be to
6b2ad0d
Compare
|
kilo-review — independent audit of the published diff. Status: 1 Issues
|
|
bot: Accepted. Pushed db4071c (kwf What changed:
|
db4071c to
4d094d6
Compare
|
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. |
4d094d6 to
6a56b99
Compare
Changelog for users
Changelog for maintainers
src/components/kilo-pass/kilo-pass-native-iap-owner.tsx:409— accepted. The auth-epoch effect now seedspreviousAuthEpochRefwith the first epoch, so a re-entry inside the 5-minute window keeps the store-product entry; an actual account change still clears both the native entry and the shared backend catalog.src/components/kilo-pass/kilo-pass-subscription-screen.tsx:538— accepted. The IAP owner is now the route entry: it wraps the loading, error, non-native, and native-IAP variants and mounts before the presentation resolves; onlyKiloPassNativeIapContentstays gated onpresentation.kind === 'native_iap' && isIapPlatform.backendStoreKiloPassProductsQueryOptions(staleTime5 min), so the hook's loader and the owner's recovery fallback share one cache entry instead of each issuinggetMobileStoreProducts.isStoreKiloPassProductsLoading) paints cached products without waiting for the store connection; the skeleton shows only while the chain is unsettled with nothing to paint, and a connection error still replaces it with the retry state.useIAPcall site, but it now mounts for non-native and unavailable presentations — confirm no purchase action is reachable from those variants.E2E proof
[e1] Open Kilo Pass, leave, re-enter it — the second (and third) visit must issue zero kiloPass.getMobileStoreProducts and zero native fetchProducts, tiles from cache — Android emulator-5554, two cold-launch runs of the corrected e1 scene (SCENE e1 OK): e1-live-counts.txt records 'Kilo Pass visit 1: getMobileStoreProducts=1', 'Kilo Pass visit 2: getMobileStoreProducts=0', 'Kilo Pass visit 3: getMobileStoreProducts=0', quoted from e1-live-nextjs.log line 15 'POST /api/trpc/kiloPass.getMobileStoreProducts,kiloPass.getPurchasePresentation?batch=1' and lines 31/45 'POST /api/trpc/kiloPass.getPurchasePresentation?batch=1' (confirmed in e1-live2-nextjs.log lines 17/31/47); native fetchProducts and the cache-painted tiles are not observable on this no-Play-Store…
/home/igor_kilocode_ai/.local/share/kwf/sections/kwf-fix-proof-4d094d6-db34/e2e-backend/backend.log/home/igor_kilocode_ai/.local/share/kwf/sections/kwf-fix-proof-4d094d6-db34/e2e-mobile-app/e1-live-counts.txt/home/igor_kilocode_ai/.local/share/kwf/sections/kwf-fix-proof-4d094d6-db34/e2e-mobile-app/e1-live-nextjs.log/home/igor_kilocode_ai/.local/share/kwf/sections/kwf-fix-proof-4d094d6-db34/e2e-mobile-app/e1-live2-nextjs.logOwner request