FILE 15894.compat-summary.log Local commit: 1598f41e06a212a01938e45d38e639a9c536ee36 Branch: takeover/ssh-relay-remote-07-15894 Parent: aa3340ec0c2f22d53790db0a21079ed5cefdb4fd Fix: iOS without the native protected-data method waits for AppState active; Android starts immediately based on Platform.OS. Preserved: positive iOS native check allows background startup, rejected check waits for active, cached readiness lasts for the launch. Changes: protectedData.ts, protectedData.test.ts, storage.test.ts (foreground AppState fixture only). Focused tests after restoration: 5 files / 41 passed. Startup table: 12 cases; prior baseline: 8 cases / 37 total. Mutation: temporarily restored missing-method bypass; exactly 3 missing-method iOS cases failed, 9 passed. Fixed source restored and compared byte-for-byte. Checks: mobile typecheck, three-file lint, three-file format check, diff check all exit 0. Working tree clean after commit. Prior CloudAuthProvider and documentation fixes unchanged; native Swift check unchanged. Limits: no native iOS/Android build or device verification available on Linux. No pushes, branch switches, GitHub mutations, servers, delegation, dependency installations, or other-worktree changes. FILE 15894.compat-tests.log note: You are running `vp test` as a Vite+ built-in command. If you meant to run the test npm script, use `vpr test` instead. RUN v5.0.1 /home/ubuntu/wt/ssh-relay-remote-07 Test Files 5 passed (5) Tests 41 passed (41) Start at 07:33:34 Duration 4.71s (import 47%, transform 38%, setup 8%, tests 7%, worker 1%) Transform transforming modules took 4.19s · 38% of tracked time, re-done on every run persist transforms across runs with fsModuleCache: true learn more: https://vitest.dev/guide/improving-performance#caching-between-reruns FILE 15894.compat-mutation.log note: You are running `vp test` as a Vite+ built-in command. If you meant to run the test npm script, use `vpr test` instead. RUN v5.0.1 /home/ubuntu/wt/ssh-relay-remote-07 ❯ apps/mobile/src/lib/protectedData.test.ts (12 tests | 3 failed) 240ms ❯ protected storage startup (12) × keeps a locked background without a native check launch usable after activation without rebuilding its runtime 5ms × keeps a locked unknown without a native check launch usable after activation without rebuilding its runtime 2ms × keeps a locked unset without a native check launch usable after activation without rebuilding its runtime 1ms ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 3 ⎯⎯⎯⎯⎯⎯⎯ FAIL apps/mobile/src/lib/protectedData.test.ts > protected storage startup > keeps a locked background without a native check launch usable after activation without rebuilding its runtime FAIL apps/mobile/src/lib/protectedData.test.ts > protected storage startup > keeps a locked unknown without a native check launch usable after activation without rebuilding its runtime FAIL apps/mobile/src/lib/protectedData.test.ts > protected storage startup > keeps a locked unset without a native check launch usable after activation without rebuilding its runtime AssertionError: expected "vi.fn()" to not be called at all, but actually been called 1 times Received: 1st vi.fn() call: Array [ undefined, ] Number of calls: 1 ❯ apps/mobile/src/lib/protectedData.test.ts:111:37 109| // A missing gate finishes startup with a cached storage failure… 110| await Promise.race([mocks.subscribed.promise, startup]); 111| expect(mocks.readStorage).not.toHaveBeenCalled(); | ^ 112| mocks.appState = "inactive"; 113| for (const listener of mocks.listeners) listener("inactive"); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/3]⎯ Test Files 1 failed (1) Tests 3 failed | 9 passed (12) Start at 07:33:15 Duration 625ms (tests 53%, setup 21%, transform 20%, import 5%, worker 1%) Mutation exit: 1 (expected 1)