6.0 KiB
Foundation validation record
Initial validation: 2026-09-16; final verification: 2026-09-17. Scope: initial Wristivo source foundation, prior to live adapters.
Passed
| Check | Evidence |
|---|---|
| RemoteCore tests | 6 Swift Testing tests passed: routing/schema, freshness/lifetime/skew, duplicate/sequence, bounded-memory replay protection, session reset, decoded-input validation |
| SamsungProtocol tests | 3 tests passed: command frame encoding, safe candidate endpoint/token encoding, invalid host rejection |
| GestureCore tests | 5 tests passed: direction mapping, disarm/expiry, neutral recovery/debounce, invalid/ambiguous input, invalid configuration |
| Watch app | Unsigned generic watchOS Debug build succeeded, including RemoteCore + GestureCore |
| iPhone app | Unsigned generic iOS Debug build succeeded, including SamsungProtocol and embedded watch app |
| Project generation | Two consecutive regenerations produced identical project and scheme files; final regenerated targets both rebuilt successfully |
| Privacy manifest | plutil syntax validation passed |
| Documentation | Local links checked; independent architecture/agent-ownership review completed and admission ownership clarified |
| CI template | YAML parsed locally; not executed on Gitea |
Toolchain: Xcode 27.0 (27A266a), Apple Swift 6.4, iOS/watchOS SDK 27.0. The app deployment settings are iOS 17 and watchOS 10. Builds are not evidence of runtime behavior on those minimum versions.
Reproduction on this sandboxed host:
WRISTIVO_AGENT_BUILD=1 bash Scripts/check.sh --apps
The full check first completed with exit status 0 on September 16. After fixing deterministic project generation on September 17, the 14 package tests passed again and both final app builds completed with exit status 0. The final app-only rerun used the same flags shown in Scripts/check.sh. Tests totaled 14 passing, 0 failures; Xcode reported BUILD SUCCEEDED for both app checks. The package was also independently tested during its parallel implementation.
Environment limitations encountered
Xcode required local Swift package manifest-cache write permission. Temporary scratch/cache paths avoided build artifacts carrying Finder metadata under Documents. Nested package-manifest and Apple SwiftUI macro sandbox startup failed inside the agent sandbox, so the documented opt-in developer-host overrides were used. These overrides are not set in the app's release build configuration or CI template. CoreSimulator access was unavailable; generic device SDK builds succeeded without simulator access. See SETUP for details.
Not performed / not implemented
- No simulator launch, screenshot inspection, accessibility runtime audit or signed device installation.
- No real iPhone/Watch relay, Core Motion classifier, actual gestures or TV pairing/control.
- No physical verification of the tentative Samsung TV model, firmware or endpoint/certificate behavior.
- No latency, battery, thermal, recognition precision/recall or App Store compatibility claims.
- No distribution archive, TestFlight, paid-account setup, trademark clearance or legal approval.
- No Gitea remote creation, authentication, push or CI execution. Owner will create the private repository.
Current app behavior is explicitly a local demo. The raw-motion pipeline, live adapters, final signing, icons, privacy policy and submission materials remain future milestones. Use Tests/Hardware/session-template.md for dated evidence when those pieces are implemented. Never convert a pending test to passed because a unit test or compilation succeeded.
Integrated live prototype — 2026-09-18
Branch: integration/first-device-prototype. This record supersedes the demo-only state above for the accompanying integration commit. Q's dated plan remains a historical read-only review, not physical acceptance.
- 72 automated tests passed across portable packages: WristivoKit 29 (RemoteCore 12, SamsungProtocol 7, GestureCore 10); WatchBridge 18 (Common 5, Phone 6, Watch 7); TVTransport 12; SecureStorage 6; PhoneControl 7. The combined check ran all packages; final focused runs covered the additional invalid-sample, corrupted-pin and explicit-certificate-consent regressions.
WRISTIVO_AGENT_BUILD=1 bash Scripts/check.sh --apps: both generic unsigned iOS and watchOS app builds passed. Final source changes also passed an incremental iPhone build including its embedded watch target.git diff --check: passed. Privacy plist syntax: passed.- Inspected generated app Info.plists: local-network purpose on phone, motion purpose on watch; both bundle PrivacyInfo.xcprivacy. No UIBackgroundModes or blanket NSAppTransportSecurity exception. Phone declares all four interface orientations.
- Fake tests exercise relay timeout with a suspended coordinator, bounded outstanding requests, stale peer/end/grant handling, reachability disarm, duplicate responses, finite TV writes, ready-socket revocation, stable saved-TV identity, partial deletion recovery, explicit pin consent, changed pin token removal and no replay after ambiguous sends.
Host restrictions: nested manifest sandbox disabled only for these local dependency-free packages; caches redirected to temporary paths, with scoped Xcode manifest-cache permission. CoreSimulator service was unavailable, but generic device compilation succeeded. No simulator launch or UI runtime check is claimed. Compiler emitted the tooling notice that AppIntents metadata extraction was skipped; no AppIntents integration is included.
Still not run: signed installation/Keychain tests, physical pairing or TLS, actual Samsung key behavior, real WatchConnectivity reachability/wake, locked or terminated phone, motion recognition/false triggers, accessibility runtime, battery/latency, signed archive/privacy report and App Store review. Prototype builds do not close those gates.
Use FIRST-DEVICE-PROTOTYPE.md and Q's plan for the next steps. No code was pushed or distributed.