Skip to content

fix(touch): reveal Home cards from the left during minimization - #19

Merged
doodlewind merged 1 commit into
mainfrom
fix/touch-home-reveal-left
Sep 17, 2026
Merged

doodlewind merged 1 commit into
mainfrom
fix/touch-home-reveal-left

Conversation

@doodlewind

@doodlewind doodlewind commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

A Home-bar swipe during the preceding app's minimization could reuse that app's shrinking icon pose, making Photos grow from its Home icon. Prepare a fresh reveal off the left edge at card size. Preserve visible poses only when catching an already prepared, withdrawing left-edge peek.

Validation:

  • The new regression fails on the previous code: the starting card's right edge is inside the screen instead of left of it.
  • Model coverage spans iPod 320×480 and E7 360×640 / 640×360, 30/60 Hz, dock / Photos / second-page apps, and return-to-Home delays from zero to two seconds.
  • Mounted E7 tests send packed touch input through the guest and verify Photos enters from the left at fixed card scale during an interrupted minimization. Existing cancellation/recatch, icon launch, MRU, direction-lock and paging checks remain covered.
  • bun run check:touch: typecheck, 48 Bun tests / 7,228 assertions, and 7 Python protocol tests pass.

Native E7 validation:

  • Installed a 60 Hz profiling SIS and replayed Today → Home → Photos → Home → a new bottom-bar swipe 200 ms after minimization release. The trace contains all 1,801 frames, 80 input points, viewport=360×640, and inactive_frames=0.
  • Inspected the native framebuffer after reveal release: Photos appears as a card-size strip from the left edge while its Home icon remains in place. It does not expand from the icon.
  • Profile SIS 0.2.33 SHA-256: 09abb482a216e47c9d91beffab4ed0b585261641f930961d768a082fd916d0f9.
  • Installed and launched normal SIS 0.2.34 as p2039 after MTP byte-for-byte readback and CODA package verification. Replay input is empty and the temporary wake helper has been uninstalled.
  • Normal SIS 0.2.34 SHA-256: 0e62191452ae600d5fce2e68ac35c8436d63692373498b4ff7804abd98c5df04; tracing disabled, 60 Hz, VFPv2. Guest SHA-256: 132a49a7c2bef51ab4b6ee86e81b281c71da2ebe9567cdd617b5d3fdc1f0a423.
  • Both builds use PocketJS 2453d60c and the same optimized native core as the preceding E7 deployment. Shared navigation is tested at iPod dimensions; this run's native device validation is E7, not iPod.

Reproduce from the PocketJS runtime checkout:

PATH="$HOME/.cargo/bin:$PATH" bun tools/symbian.ts build app \
  --manifest "$SHELL_CHECKOUT/shells/touch/pocket.json" \
  --project-root "$SHELL_CHECKOUT/shells/touch" \
  --outdir .pocket-build/validation/touch-home-reveal/release \
  --sis-version 0.2.34 --frame-rate 60

For inspection, build with --perf-trace and use the shell's CODA profile command with a packed contact sequence that returns Photos Home and starts a bottom-bar reveal 200 ms later. Replay checks native guest dispatch and rendering; physical touch delivery remains a manual acceptance boundary. Per-run packages, traces and screenshots stay in ignored .pocket-build/validation/touch/home-reveal-left/ and the upstream build checkout's validation directory.

Stacked on #18; no runtime or vendor pin changes.

@doodlewind
doodlewind marked this pull request as ready for review September 17, 2026 20:13
@doodlewind
doodlewind changed the base branch from perf/touch-e7-frame-time to main September 17, 2026 21:20
@doodlewind
doodlewind merged commit b9edd5c into main Sep 17, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant