31d5b202bc
* feat(mobile): compile TypeScript cores and services for mobile targets The external core and service compile drivers admit the pinned compiler's three mobile triples — aarch64 iOS device and simulator (macOS build host, iOS 15.0 floor) and aarch64 Android (any desktop host, API 26 floor) — as library archives only, mapping the build graph's Zig triples onto the compiler's own spellings and threading the Android NDK location the way the graph already threads its zig. The service executable lane refuses mobile targets with the in-process pointer: no child process exists there, so the carrier resolution turns "auto" into the in-process pool on iOS/Android and teaches on an explicit "child", while desktop behavior is unchanged. Mobile app builds stage a generated mobile entry beside the desktop wiring: it satisfies the embed host's AppDef contract over the same mirror, markup, and registry, drives the canonical mobile scene plus the manifest's declared chrome, owns the service pool (markers and stream relays live in the shim-installed app-data directory), and delivers that directory through envMsgs. The compiled archives merge into the embed static library the host tiers already link — flattened to plain objects on Android, where Zig's ELF static-library emission stores archive inputs as nested members the NDK link would skip. A mobile execution lane (scripts/mobile-e2e.sh, NATIVE_SDK_MOBILE=1 in either gate tier) stages a battery over the service fixture's compiled core and service archives, packages the fixture app for both mobile targets and a services-free example for Android, then executes the battery on a booted iPhone simulator and a headless arm64 emulator: typed pool results across update round trips, trap isolation poisoning exactly one instance, and a journal replay that reproduces the recorded model without initializing the archive. All checks pass on both device classes. The TypeScript and services chapters and the ts-core/ts-services skills state the mobile matrix; persistence, boot images, and URL media caching remain unwired on mobile. * fix mobile TypeScript app wiring * fix(mobile): validate TypeScript package outputs