Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Support matrix

This matrix deliberately separates validation levels. “Model tested” means host-side API/model behavior passed deterministic tests; it is not mobile runtime evidence. STATUS records general platform evidence; Goal 3 status is the dated authority for the remote-iPhone continuation and overrides stale Goal 3 prose.

Validation vocabulary

LevelRequired evidence
ImplementedConcrete code path exists; unsupported defaults do not count
Locally testedFocused deterministic tests passed on a development host
Windows-native testedExact behavior passed on a real Windows host
GitHub live validatedReal GitHub mutation/run completed with retained exact identifiers
Apple signed validatedReal Apple credentials produced independently verified signed output
Physical-device validatedThe exact signed artifact was installed, launched, and observed on registered hardware

Build-path tables additionally use compile, artifact, and simulator/emulator evidence. Those narrower results never imply a higher Goal 3 level.

Goal 3 physical-iPhone scenarios

These are the 18 scenarios named by the Goal 3 acceptance specification. A status applies only to the evidence in the last column; for example, the validated GitHub result is an unsigned XCArchive, not a signed IPA or a physical-device run.

Status legend: ✅ artifact validated; 📱 physical-device validated; 🧪 implemented with hardware or signing validation pending; 🟡 partial; 🚫 unsupported; 📋 planned. No current Goal 3 scenario has physical-device validation.

ScenarioStatusExact evidence / limitation
iOS Simulator local macOS✅ artifact validatedarm64 .app and .appex bundles built and independently inspected; no Simulator runtime observation
Physical iPhone local macOS🧪 implemented, hardware/signing validation pendingOfficial local Xcode development-signing/install/launch path exists; no real Team, profile, signed device artifact, or attached iPhone
Physical iPhone from Windows via GitHub🟡 partialDurable control plane, GitSnapshot, artifacts, and native Windows suites pass; no live Windows-to-GitHub physical-iPhone build/download run
Physical iPhone from Linux via GitHub✅ artifact validatedLinux acceptance 31261962599 triggered macOS worker 31262066567, downloaded, hashed, and inspected an unsigned physical-device XCArchive
Physical iPhone via SSH Mac🧪 implemented, hardware/signing validation pendingNamed endpoint and unsigned snapshot session are locally tested; no live SSH Mac compile, SSH artifact, or signing support
Unsigned device compile✅ artifact validatedReal aarch64-apple-ios/iphoneos XCArchive built by the GitHub macOS worker and independently revalidated on Linux
Development signing🧪 implemented, hardware/signing validation pendingSigning engine and protected GitHub phase use synthetic fixtures only; no real Apple identity/profile run
Manual development signing🧪 implemented, hardware/signing validation pendingBounded app/Widget/Live Activity profile mapping, exact target-graph binding, and protected secret transport pass local integration tests; real asset upload remains pending
Personal Team🚫 unsupportedGitHub, SSH, and worker capability reports disable Personal Team; no headless Personal Team flow exists
Widget device signing🧪 implemented, hardware/signing validation pendingRemote manual setup accepts an exact Widget profile and static protected secret; no real development-signed Widget artifact or device run exists
Live Activity device signing🧪 implemented, hardware/signing validation pendingRemote manual setup accepts an exact Live Activity profile and static protected secret; no real development-signed Activity artifact or device run exists
GitHub Actions provider✅ artifact validatedHistorical Linux Push exact-Git unsigned build/download accepted; GitSnapshot, Windows, cancellation/retry, and WorkflowDispatch paths have no live result
SSH provider🧪 implemented, hardware/signing validation pendingHandshake, doctor, source upload, events, cancel, XCArchive receipt, and cleanup pass deterministic tests; v1 is unsigned-only
Windows client artifact download🧪 implemented, live validation pendingDownload/verification/publication and managed artifact commands pass native suites; no live Windows client acceptance run
Linux client artifact download✅ artifact validatedAcceptance 31261962599 automatically downloaded and independently verified artifact 9023136948
Physical install🧪 implemented, hardware/signing validation pendingTyped devicectl install service exists; no signed downloaded IPA or attached-device install was exercised
Physical launch🧪 implemented, hardware/signing validation pendingTyped devicectl launch service exists; no physical launch was exercised
Physical logs🚫 unsupportedStandalone physical-iOS log streaming is not exposed; no device runtime logs were collected

Platform build paths

PathImplementedCompileArtifactSimulator/emulatorDevice
Host config/runtime/testsYesHost workspace checks; see STATUSN/AN/AN/A
Android direct APKBuild plus typed devices/install/run/logs implemented; user project remains Rust-only without Gradle or Android Studioaarch64-linux-android generated Rust app plus Java/DEX bridgeGitHub-hosted Ubuntu run 31590994094 artifact-validated the retained v2/v3-signed, basic/16 KiB-aligned arm64 APK from exact production source ed45328d6fc375e81b20ab10c1014c4b8d224a85; the Windows-built Calculator artifact was independently inspectedEmulator runtime not validatedCalculator startup, JNI dispatch, and interaction confirmed on one physical Android device; generic install/run/log flow and broader runtime remain unvalidated
iOS Simulator .appBuild plus typed devices/install/run/logs implementedarm64 Slint executablesPublic-CLI starter and Kitchen Sink .app/.appex bundles independently inspectedDeployment runtime not validatedN/A
iOS physical-device app, local MacOfficial development-signing build/install/run implemented; explicit Team and provisioning controlsDeterministic arm64/Xcode plan tested; no local signing identity availableSigned app not validatedN/ANot validated
iOS physical-device archive, GitHub remote macOSExact-Git and explicit public GitSnapshot submission, trusted macOS compile, automatic download, independent client validation, and durable jobs implementedReal aarch64-apple-ios archive compiled only from a historical Linux exact-Git requestUnsigned .xcarchive validated for historical exact-Git; GitSnapshot and development signing not live-validatedN/ANot validated
Deterministic snapshot transportInspect/create/verify plus explicit GitHub GitSnapshot consent/staging/recovery implementedHost and Windows-native tests onlySource ZIP/descriptor round-trip validated in tests; no GitSnapshot-built GitHub artifactN/AN/A
SSH Mac providerPinned endpoint, handshake/doctor, snapshot-v1 unsigned build, and private Unix/Windows config/operation staging implemented; deterministic local tests onlyNo live SSH Mac compileNo SSH-produced artifact; protocol returns unsigned XCArchive onlyN/ANot validated

Goal 3 Windows control plane

AreaImplementedLocally testedWindows-native testedGitHub live validatedApple signed validatedPhysical-device validated
Durable jobs and sanitized logsYesYesYesNo Windows resultN/AN/A
Fresh-process cancel/retry/pruneYesYesYesNoNoNo
Managed local artifactsYesYesYesNo Windows management result; historical Linux download onlyNoNo
Explicit GitHub GitSnapshotYesYesYesNoNoNo
VS Code Remote JobsYesYesYesNoNoNo
Signing readinessYesYesCLI path tested; no configured ready resultNo signed runNoNo

Capability evidence

CapabilityHost model/testsAndroid backend/artifactiOS backend/artifactRuntime observation
Lifecycle/event busImplementedBackend and DEX/native callback bridge compiled into inspected APKBackend and dynamic framework artifact-inspectedNone
Network status/probeImplemented model and mockConnectivity/HTTP backend enabled and bridge artifact-inspectedNWPath/URLSession backend and framework artifact-inspectedNone
JSON storageIn-memory/file backend testsApplication-private file backend installed by Android host; target-compiledApplication Support file backend and framework artifact-inspectedNone
HapticsAPI and mockBackend enabled and bridge artifact-inspectedBackend and framework artifact-inspectedNone
Clipboard/share/systemAPI and mockBackends compiled; enabled share provider artifact-inspectedBackends and framework artifact-inspectedNone
Deep linksParser/policy/event testsIntent filter/allowlist backend and bridge artifact-inspectedURL scheme/delegate allowlist and framework artifact-inspectedNone
Local notificationsAPI/model/mockBackend/receiver enabled and artifact-inspectedUserNotifications backend and framework artifact-inspectedNone
PermissionsAPI/model/mockEnabled purpose strings, exact permissions, and bridge artifact-inspectedSupported permission backends and framework artifact-inspectedNone
WidgetSnapshot model/tests + standalone exampleProvider/backend enabled and artifact-inspectedPublisher, timeline renderer, and WidgetKit .appex artifact-inspectedNone
Live ActivityState model/tests + standalone exampleOngoing-notification fallback enabled in an inspected Kitchen Sink APKActivityKit lifecycle bridge and .appex artifact-inspectedNone

Application notification remote push is unavailable; schema version 1 rejects push = true. This is unrelated to the GitHub provider’s Push workflow trigger. Device discovery and deployment use exact stable IDs, validated artifacts, bounded application-filtered logs, and official ADB/simctl/devicectl commands. No device behavior is inferred from those implemented paths.

CI interpretation

Linux, macOS, and Windows host jobs run independently. Android and Apple artifact jobs are not repository-variable gates: they install/select their build prerequisites, invoke real pipelines, repeat independent checks, and upload only non-empty expected artifacts. The remote physical-iPhone acceptance additionally proves that a Linux client has no local Apple toolchain, binds an exact source revision, and revalidates the macOS-produced archive after automatic download. A cancelled or skipped job means “no evidence,” never “passed”; missing prerequisites, a failed build, or a missing/invalid artifact fails the job.

Distribution is a public pre-release. Registry installations generate starters with the matching exact rustferry version and require no checkout path override. Release preparation built and independently validated a signed/aligned arm64 APK from a fresh Windows source-checkout project, while a separate Calculator artifact has one physical-device launch and interaction acceptance. Generic Android device install/run/log coverage and Windows-originated GitHub/macOS iPhone acceptance remain unvalidated. iPhone builds require local or remote macOS with full Xcode and the official Apple toolchain; the live-proven output is unsigned XCArchive evidence, not a signed IPA, install, launch, logs, or physical-device runtime result.