PvZ experience review — September 10
Scope: first Adventure visit, Dave dialogue/actions/recovery, the shared Yumina model controls, and phone touch comfort. The native 4:3 lawn, Adventure's weighted 4× difficulty, private lobby art and regional relay protocol are retained.
Reproduced and corrected
- At 568×320, a longer Dave reply pushed the model selector and settings out of view. Short canvases now scroll the speech separately while retaining the composer and model controls. Notebook/settings move beside Dave's name; the full relationship remains in the notebook. Guest views have no empty model row.
- The shared model modal gave its actual model list only 15 pixels of height at 320px. Its short-screen sheet now scrolls with a reachable close control, and the game opens this platform modal across the available viewport. Model text and balance have more room in the game's trigger.
- The modal could close before the game acknowledged a model selection. It now waits for acknowledgment, shows switching progress, and recovers from an absent acknowledgment after ten seconds. A selection never starts a generation.
- The free opening needed three pages before its planting instruction. The same English, Simplified Chinese and Spanish opening now introduces Dave, warns of the crowded street, and gives one planting step in two short paragraphs.
- A successful 50-sun gift followed by an unavailable model looked like a wholly failed action. The native action now has a visible receipt; retrying Dave's reaction is separate from sending a newly typed message. Neither retry path repeats the gift/bonk/item action.
- Expiration of authentication between an action and its AI reaction could resume the reaction as an ordinary player message. Login recovery retains the interaction trigger and binds the continuation to the original account/lawn.
Verification
Actual WASM and the built React model picker were exercised with fresh, isolated browser storage and a fixture account/provider. No player credentials or paid generations were used for these tests.
- English, Chinese and Spanish: guest entry, cancelled login, one pending reply after login, long replies at 568×320 / 667×375 / 844×390 / 1280×800, model selection, gift failure and retry, expired-login bonk recovery, apology, notebook/settings, keyboard layout, and returning to actual planting.
- Native touch at 844×390 and 568×320: select/cancel/reselect, no ghost following a finger, swipe/multifinger/long-hold cancellation, Menu, release-only planting, Versus card switching/shovel/zombie summon. Desktop dragging remains working.
- An actual level-six idle timer can produce a remark or silence while the lawn advances. Reopening the remark and repeated events do not cause extra calls. Guests cross the same timer without an AI request or sign-in interruption.
- Native tins: purchase with notebook failure/retry, empty outcome, 150-sun outcome, and Dave's free demonstration. Sun totals, recipient, once-only opening and retained pitch are checked.
- 50 NPC/server/billing checks, 47 browser-shell tests, four model-handoff tests; full monorepo build and typecheck.
Browser evidence and reproducible fixture drivers are retained locally under output/dave-ui-rebuild/audit-* in the main workspace. The fixture provider proves UI and effect handling; it does not establish live Sonnet quality or availability.
Product assessment
The game has a coherent playable guest-to-account path, and the reproduced interaction faults above are fixed. This is still a public-beta candidate. Physical iPhone/Android comfort over sustained play and observation of genuinely new players remain unverified. Short-screen speech must still scroll, and the original lawn keeps its side gutters. Campaign-scale capacity and physical Asia–Asia / Asia–US quality are separate from this experience review.
No new art direction, widened-lawn prototype, public matchmaking, economic changes or database migration is included in this pass.
Delivery
- Platform commit
756a2b0a2and game commit4f59b9ewere pushed to main. Railway deployment66d988cd-3b74-44bf-bd60-4e9e0fc37c81succeeded. - S3 release
b880ac661ewas published after the platform deployment. The public HTML matches the staged file byte for byte and is served withno-store. Existing supported engine releases remain allowed; regional hosts were not redeployed by this change. - The public phone guest smoke test at
https://yumina.io/pvz/reached the new free Adventure opening with zero paid requests and zero page errors. Production health reported the database, read database and Redis healthy. Evidence:output/dave-ui-rebuild/audit-production.logandedge-phone-intro.png.
