Android currently lacks repeatable native process-interruption acceptance at the real checkpoint replacement boundary. This is a bounded acceptance child of #396, linked to the Gold native foundations epic.
A feasibility probe on source 08c1dbed2ebeafa5d665cc212bd3ca213662712f passed on an owned API 35 Play arm64 revision 9 emulator, using stock WebView 124.0.6367.219 only as the native screen script engine. The UI renders native controls. It invokes the public craft.snapshots.get/set interface, and leaves generated storage backends unchanged. An authored debug-only Android wrap.sh preload intercepts the actual libc rename from Files.move.
Retained feasibility receipt: /tmp/craft-396-android-probe-rO6mZL/verification.json, SHA256 4b1bc33a6d8fa25f68f5de90c89870545383cf0ac9a78e2fc0bf95c7fd18a638. The earlier harness command-quoting failure is retained separately.
Acceptance:
- Promote the authored probe into a maintained public-runner native fixture with documented prerequisites and fixed deadlines.
- Require a confirmed worker-thread pre-rename hold with the entire new checkpoint staged, the entire previous checkpoint unchanged, no premature acknowledgement, and a responsive native UI.
- Force-stop that process, verify it is gone, then require a new process/session to recover the complete previous checkpoint through the public API.
- Require an acknowledged retry to survive another process restart.
- Run a pass-through negative control that rejects the held-boundary condition and recovers the newer acknowledged generation, distinguishing interruption from ordinary save/reload.
- Preserve exact source, compiler, SDK/image/provider, APK, generated-backend, command, screenshot and payload identities. Bound all commands and dispose owned app, emulator, process groups and workspace on every exit.
- Add the real fixture to required mobile CI and verify original remote artifacts from the exact source commit. Add meaningful runner failure/cancellation regressions where needed.
- Run owning source checks and retain evidence without replacing the checkpoint implementation or adding a shipped fault hook.
This does not establish every interruption point, OS eviction, power-loss durability, native game acceptance, or the full ordering/background/quota/cancellation matrix in #396. Already-admitted native writes do not acquire a new cancellation rollback guarantee. Keep #396 open until its full contract and delivery are qualified. Source publication and downstream adoption remain separately qualified through existing release gates.