Repository navigation
feat(mobile): native phone shell instead of a scaled desktop (#329) - #330
Conversation
Phone user agents get a thumb-first org/command/settings surface. Turns still run on the desktop app.
|
CI on this PR is green: Node 24 ubuntu/macOS Ready for review. Turns still run on the desktop app; this slice is the phone shell plus the example-org preview. |
|
Web shell (#330) and native Android (#342) stay as two surfaces for now:
They share |
|
补充修复: 验证: @PeterGuy326 @Bindy-lbb 请在本轮 CI 完成后对最终 head 做独立正式 review。 |
sun-970
left a comment
There was a problem hiding this comment.
Review — Approve
Head 1893b50. Required CI on this head is green (verify Node 24, installers, unpacked smoke, layout parity, CodeQL, dependency review, Scorecard).
Requested fix
/?surface=desktop no longer serves the mobile shell.
resolvePublicAsset("/", { surface: desktop }) returns null, so the mobile preview server does not emit data-surface="mobile". Covered by desktop surface falls through instead of serving the mobile shell in scripts/test/mobile-web.test.mjs. /mobile still serves the phone entry, which is the explicit path.
#329 AC
- Phone /
ASteamAppUA → mobile shell (isMobileUserAgent+ HTMLdata-surface="mobile"). - Desktop UA on
/does not get the phone shell. - Org tab is a read-only
examples/oss-maintainersnapshot (name, reporting line, budget, skill excerpt). Snapshot JSON does not include host paths. - Four tabs; tab/button min-height 48px;
env(safe-area-inset-*);prefers-reduced-motion. - Turns stay on the already-open desktop host (
phone-linkpair +command.submit). No hire / org edit / boot token. - Org preview HTML goes through
escapeHtml.
Non-blocking
- The same CHANGELOG bullet is inserted in three
### Addedsections (Unreleased plus two older blocks). Only Unreleased needs it; the extra copies can be cleaned in a follow-up. - WebSocket
closesays it will retry but does not reconnect. Pairing still works on the next submit.
Not a CODEOWNER; merge still needs whatever branch protection requires.
Closes #329
What
Phone user agents get a native RoleWeave shell instead of a scaled desktop.
examples/oss-maintainer/api/mobile/workspacereturns names, budgets, and skill excerpts onlyPORT=4173 node scripts/mobile-web.mjsTurns still run on the desktop app. This slice does not hire, edit the org tree, or expose the control-plane token.
Verify
Notes
Desktop browsers keep the existing workbench. Force the phone shell with
/?surface=mobilewhen both surfaces are served.