Public: anyone can read this; the crew can change it.
Migrated from github.com/Trevato/SO-ARM100
Mobile shell: video pinned on top, one status strip, bottom tabs, a snap-point drive sheet - and exactly ONE stop button #49
Parked by the crew: the preview's deploy failed in the place it ran, not in the change, and it could not be run again (pull #62 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.
Owner, 21:50Z: the camera and the 3D model must be visible AT THE SAME TIME on a phone - the model is the main control. Portrait layout: camera on top (16:9, full width), the 3D model below it filling the space down to the tab bar (or the camera as a draggable picture-in-picture over the model - pick whichever tests better one-handed and show both in the pull), status strip between them, the single STOP always reachable. Landscape: camera and model side by side. No joysticks (see #50).
Parked by the crew: the preview's deploy failed in the place it ran, not in the change, and it could not be run again (pull #82 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.
Parked by the crew: the preview's deploy failed in the place it ran, not in the change, and it could not be run again (pull #83 closed).
Parked twice since a person last spoke here, so it is the planner's now. Every reason:
- the preview's deploy failed in the place it ran, not in the change, and it could not be run again (pull #82 closed)
- the preview's deploy failed in the place it ran, not in the change, and it could not be run again (pull #83 closed)
The planner splits it, replaces it with a fresh issue, or defers it; a person can also say what to try. Nothing starts here until then, and the board lists it.
Steward (a person): the parks were the preview test step hitting its 2-core default (browser tests), not this work. forge.json now gives the app and its checks 6 cores / 6 GiB (8190a910). Strikes reset - please run again.
Steward (a person): the parks were the preview test step hitting its 2-core default (browser tests), not this work. forge.json now gives the app and its checks 6 cores / 6 GiB (8190a910). Strikes reset - please run again.
Parked by the crew: the preview's deploy failed in the place it ran, not in the change, and it could not be run again (pull #84 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.
Parked by the crew: the preview's deploy failed in the place it ran, not in the change, and it could not be run again (pull #85 closed).
Parked twice since a person last spoke here, so it is the planner's now. Every reason:
- the preview's deploy failed in the place it ran, not in the change, and it could not be run again (pull #84 closed)
- the preview's deploy failed in the place it ran, not in the change, and it could not be run again (pull #85 closed)
The planner splits it, replaces it with a fresh issue, or defers it; a person can also say what to try. Nothing starts here until then, and the board lists it.
Split into #90 (portrait shell: pinned video, one status strip, bottom tabs), #91 (exactly one STOP on every layout, pointerdown, confirmed resume, stopped banner), #92 (drive sheet with two snap points) and #93 (landscape overlay). Both parks were the preview deploy dying, not the change (browser tests now get 6 cores, 8190a91); each piece is now one pull with its own playwright test instead of the whole shell at once. #90 and #91 can start in parallel; #92 and #93 wait on them.
Owner, 2026-10-20 21:05Z: "mobile is slowly improving but really not amazing. press on the gas for mobile. i want to start sending this out!" and "there are also two stop buttons on mobile...". Borrow from Twitch/TikTok Live (video + chat overlay), DJI Fly / cloud-gaming touch overlays (Xbox Cloud, Steam Link), Apple Maps / Vaul bottom sheets with snap points (vaul MIT, shadcn Drawer), nipple.js virtual joystick (MIT). No new heavy deps unless they earn it. Test with playwright at 390x844 (iPhone) and 412x915 (Android), portrait + landscape, light/dark; screenshots of every state in the pull.
Portrait: video full-bleed 16:9 sticky at top (aspect-ratio reserved, no layout shift); under it ONE status strip (driver name + time left, your queue place, live/reconnecting); bottom tab bar Drive · Queue · Chat (· Mod for admins), 56 px + env(safe-area-inset-bottom), targets ≥ 44 px. The Drive tab is a bottom sheet with two snap points: peek ~96 px (status, STOP, gripper) and open ~45dvh (joint controls). Landscape (max-height 500px): video fills 100dvh, controls overlay the lower corners, STOP top-right. STOP: exactly one instance in the DOM per layout (remove the duplicate), red, ≥ 56 px, fires on pointerdown, always reachable in every state; resume needs a second confirming tap; stopped = full-width banner. Use dvh/svh, env(safe-area-inset-*), viewport-fit=cover, touch-action on control surfaces, prefers-reduced-motion. Test: exactly one [data-stop] visible at each viewport; sheet snaps; nothing is covered by the forge pill.