# Native timestamp procedure

Use a leased Pixel 9 and the checkout's cached development client installed through mobile:install. Start the checkout's Metro and pair it to the checkout's synthetic backend using the repository pairing helper. Do not record pairing credentials or connection addresses.
Set the device system zone to America/New_York in Android Settings before opening the seeded proof thread. Start recording, change the system zone to Asia/Bangkok without terminating the app, wait more than one second, then return to the app, send the same new-message text, switch threads and return. Inspect the older timestamp and date prefix.

The Android before/after runs follow android-proof.py, with matched Pixel 9 devices at 1080x2424 in light appearance. Both worktrees resolve the same native fingerprint; each serves its own JavaScript through a separate Metro instance and its own synthetic backend. The head app data is cleared before switching bundles; the final base recording uses a fresh lease after the first worker stopped responding, and is paired only to the base backend. Both recordings start with five preceding synthetic new-message turns plus the older fixture; a CLI replay message aligns the base's preceding turn count after an earlier head recording export failed.
The script initializes the zone to New York and cold-starts the client before recording. During the recording it never requests a relaunch or reload: it changes Android Settings to Thailand/Bangkok, waits 1.5 seconds, foregrounds the running app, sends, switches threads and returns. Final stills require matching screenshots separated by 500ms. The recording omits static time after Android's last encoded frame; the final still preserves the settled result.
Public native captures replace the header subtitle containing the environment identifier with a fixed Synthetic environment label. Timestamp pixels and system time-zone controls are unchanged.
iOS: the dev client was installed and the Settings General page and direct Date & Time route were inspected. This simulator does not expose Date & Time; the pool CLI's supported settings do not include time zone. No iOS live-change pass is claimed.

The final base setup needed longer app-open/action timeouts. The driver retries a failed app-open with --foreground --timeout 60000; this only foregrounds during the recording, with no relaunch flag. The zone-prepared option skips the initial Settings selection when New York has already been selected manually; it still cold-starts the client before recording. The recorded sequence remains New York to Bangkok, wait, send, switch away and back, and inspect.

The base Settings app returned home when foregrounded during recording. The DateTimeSettingsActivity route restored its New York time-zone page, then android-base-resume.py continued the same zone-change/send/thread-switch sequence without restarting T3 Code. The before recording concatenates the two consecutive chunks returned by Android screenrecord.
