Feed experiences and grid covers
Dan’s October 13 decision: the feed should show a representative state of the actual experience, with a smooth handoff into control. Better static cover compositions are for /grid and link previews. Do not replace gameplay with unrelated poster art or a recorded loop.
Current pilot
Only four explicitly reviewed successor releases participate: Rimowa Classic Cabin, Mercedes G-Class, Neon Snake and Fountain (Water Jugs). The platform pins exact revision/submission IDs in shared/feed-demo-pilot.js. Unknown or newer releases fail closed to ordinary entry. Other apps retain their existing inert preview until separately migrated. An upload declaration alone never authorizes pre-entry execution.
Presentation
Desktop feed stages cap at 390×780 CSS pixels, centered, with proportional shrinking for shorter windows. Desktop navigation and social controls sit outside the stage. Phones use their available viewport. Each app preserves its media aspect ratio; never stretch a 9:16 film to fill a taller panel. Keep first-frame assets visible during loading, then reveal the real scene only after its renderer reports ready.
Use one short, themed invitation. The app owns the scene, objects and motion. Tier 1 hands over the same visible state; Tier 2 may make a brief, clearly related transition to a defined playable state. Reasonable defaults replace setup screens. Timed challenges wait for a deliberate action and offer an easy restart. Essential rules, warnings, sound control and accessible interaction remain available.
Lifecycle and safety
The feed mounts one trusted player host. Its app remains in its existing artifact/opaque sandbox. The host checks the exact reviewed release before passing feedDemo=1; unsupported editions never receive demo execution authority. No app document replacement or second iframe on entry. Swiping belongs to feed navigation until deliberate tap/keyboard entry; then controls belong to the app.
Demo rendering must not emit gameplay events, consume attempts, write progress, request sensors, unlock sound, join rooms or invoke generated content. Host capability/profile/share/player-service bridges and play activity start only after entry. Demo preview observation, where enabled, remains preview activity. Hidden/offscreen/modal states pause; reduced motion is static. Only the visible app runs. Unload on navigation, invalidate late messages, and retain a usable ordinary app link on failure.
Grid and link frames
Use a clean 900×1200 WebP composition from the actual app renderer and current release. Preserve the full essential subject using contain fit; title/alt/action remain accessible outside the image. Retain provenance. Increment asset names on change and pin the frame to its app version/submission. Do not reuse an obsolete image while labeling it as a capture of a newer release.
Evidence
Verify exact same child frame/document before and after entry, responsive first input, unchanged stage bounds, source/origin checks, pause/hidden/reduced motion and preserved ordinary standalone behavior. Report observed warm-entry latency separately from cold startup. Desktop viewport checks are not physical-phone evidence. Browser tests and agent preferences do not prove engagement. The pilot’s warm-entry target is under 150ms; never claim it without measured results.
See [implementation protocol](docs/feed-mechanics/EXPERIENCE_DEMO_PILOT.md). All other release, ownership, save, sharing, consent and isolation requirements remain in force.
Sponsored feed continuity
The October 13 sponsored-feed refinement uses a small centered spinner with a transparent background during preparation, not a text panel. Keep loading status accessible; show recovery copy only after failure. The first visible artwork and branding must match the live renderer's crop and viewport coordinates. Decode essential opening images and logos before announcing ready; do not replace a temporary wordmark or shift layout after reveal. Fade the complete opening group together, respect reduced motion, and retain the same app document, canvas and visible board when control is handed over. Demonstration motion must not consume timers, attempts, scores, saves or paid/service activity. Exact-release eligibility and existing identity/capability boundaries still apply.