diff --git a/art/evidence/simulator-e2e-20260819/manifest.json b/art/evidence/simulator-e2e-20260819/manifest.json index 46e1b1d..b38097b 100644 --- a/art/evidence/simulator-e2e-20260819/manifest.json +++ b/art/evidence/simulator-e2e-20260819/manifest.json @@ -4,7 +4,7 @@ "os": "iOS 26.1", "udid": "581ECC01-8E33-4512-B058-A6F31FE5734C", "maestro": "2.8.0", - "sourceRevisions": ["9e1f8aa", "8b954ec"], + "sourceRevisions": ["9e1f8aa", "8b954ec", "c38d3e0"], "flows": { "freshOnboarding": { "flow": "tools/maestro/fresh-onboarding.yaml", @@ -72,6 +72,26 @@ "screenshots": 3, "fixture": "tools/seed_simulator_state.sh ... 360 placed", "coverage": "JSON export Share Sheet -> reset confirmation -> encounter" + }, + "candidateComparisonAndBrowse": { + "flow": "tools/maestro/candidate-compare-and-browse.yaml", + "result": "passed", + "screenshots": 2, + "coverage": "two candidate comparison -> comparison screen -> all species browser" + }, + "profilePreferences": { + "flow": "tools/maestro/profile-preferences.yaml", + "result": "passed", + "screenshots": 4, + "fixture": "tools/seed_simulator_state.sh ... 360 placed", + "coverage": "rename -> expressions -> motion/haptics -> English/Chinese switch" + }, + "memoryManagement": { + "flow": "tools/maestro/memory-management.yaml", + "result": "passed", + "screenshots": 3, + "fixture": "tools/seed_simulator_state.sh ... 360 placed", + "coverage": "monthly note/favorite -> archive note/favorite -> archive history" } }, "visualFindingsFixed": [ @@ -84,7 +104,7 @@ "eslint": "passed", "productionBundle": "497 assets copied", "nativeBuild": "BUILD SUCCEEDED", - "finalBundleRevision": "8b954ec", + "finalBundleRevision": "c38d3e0", "finalBundleAssets": "497" }, "openGates": [ diff --git a/docs/IOS_V1_EXECUTION_PLAN.md b/docs/IOS_V1_EXECUTION_PLAN.md index 754c122..722f796 100644 --- a/docs/IOS_V1_EXECUTION_PLAN.md +++ b/docs/IOS_V1_EXECUTION_PLAN.md @@ -754,11 +754,12 @@ Mossspring Growth and Memory (`ANIM-ASSET-04G`, completed 2026-08-18): iOS bundle with 498 assets, and unsigned iPhone 17 Pro iOS 26.1 Simulator build pass. Physical VoiceOver/Dynamic Type review and full device lifecycle acceptance remain external. -- At `9e1f8aa` and `8b954ec`, Maestro 2.8 real Simulator interaction automation passed ten +- At `9e1f8aa`, `8b954ec`, and `c38d3e0`, Maestro 2.8 real Simulator interaction automation passed thirteen flows on iPhone 17 Pro / iOS 26.1: fresh onboarding, first signal/library, daily record and journey, exploration choice, discovery reveal/place/reuse, timer completion/correction, D360 memory/archive/annual share, iOS system - sharing, world/profile/settings, and export/reset. The run captured 45 + sharing, world/profile/settings, export/reset, candidate comparison/species browse, + profile preferences, and memory notes/favorites/history. The run captured 54 successful screenshots and found/fixed the D360 weekly-memory reachability issue, the baked-in second companion in memory backgrounds, and the overly tall discovery placement list. @@ -843,7 +844,7 @@ For every completed work item: | ANIM-ASSET-04G | `4c65192` | Mossspring Growth/Memory ship 7/7 curated frames; final audits pass with zero edge pixels and min IoU 0.703149/0.821481; 27 Jest suites / 89 tests, TypeScript, ESLint, Metro reports 496 assets, and unsigned iPhone 17 Pro iOS 26.1 Simulator build succeeds | Physical-device motion review remains open | | USABLE-01A | `f81344e`, `24e1a7f`, `41de5dc` | Durable-store first-use/daily-use fixture covers encounter through reset, correction, discovery reuse, exploration memory, export, relaunch, timer restore, sparse D0/D1/D3/D7/D14/D21/D30 dates, monthly continuation, and timezone-shifted imports; reset optional-field persistence bug fixed; 28 Jest suites / 95 tests, TypeScript, ESLint, and `git diff --check` pass | Navigation-container review and physical-device lifecycle gates remain open | | NATIVE-01A | `0326028`, `c1bfbbd` | HealthKit unavailable/denied/error and background-delivery retry paths, notification native failure receipt safety, conflicting timer recovery, and Share Sheet fallback error state are covered; 28 Jest suites / 100 tests, TypeScript, ESLint, Metro reports 496 assets, unsigned iPhone 17 Pro iOS 26.1 Simulator build succeeds | Physical-device permission, background wake-up, share-sheet, and accessibility/lifecycle gates remain open | -| USABLE-02A | `48b653a`, `dd887a6`, `ed86746`, `3de29c2`, `b2cca59`, `1cbcfbe`, `dda86f3`, `8cd2984`, `20a3637`, `246fef0`, `8286460`, `ceb805a`, `cf8de62`, `6dc2ad9`, `c017276`, `9e37a0e`, `a69765d`, `811c944`, `66a0abe`, `8bb2dcc`, `c64d6e5`, `2b1000b`, `5e15317`, `70fa898`, `c02c2b5`, `9e1f8aa`, `8b954ec` | Profile rename, Wardrobe empty state, Pact journey-limit feedback, Data Sources accessibility alert, non-blocking offline state, revisit-able direction actions/hotspots/signatures, grounded companion return reflections, factual recent-pattern summaries, target-specific monthly/archive/annual/full-memory share cards and messages, event-scoped privacy summaries, ordered annual keepsake history, historical monthly/archive/annual share targets, a 27-item life-signal library with six-item replacement and history preservation, complete-library first setup with preset/custom completion and HealthKit fallback, custom signals, notes, saved filtering, D14 monthly-mark preview/revisit and highlighted archive return, no-data note privacy boundary, corrected encounter action layout, persisted reflection focus, D90 archives with chronicle composition/direction arc, D360 annual review, note and collapsed history, personal archive notes, saved archive history, archive history, subdued archive-card art, revisitable Habitat archive marker, deterministic archive keepsakes, persistent direction-specific archive revisits, 10 passing real Simulator interaction flows with 45 screenshots, collapsed weekly memory browsing, companion-free memory/share backgrounds, and compact discovery placement are covered; 54 Jest suites / 173 tests, TypeScript, ESLint, Metro reports 497 assets, unsigned iPhone 17 Pro iOS 26.1 Simulator build succeeds | Physical HealthKit, notifications, VoiceOver/Dynamic Type, share sheet, lifecycle, and iPad gates remain open | +| USABLE-02A | `48b653a`, `dd887a6`, `ed86746`, `3de29c2`, `b2cca59`, `1cbcfbe`, `dda86f3`, `8cd2984`, `20a3637`, `246fef0`, `8286460`, `ceb805a`, `cf8de62`, `6dc2ad9`, `c017276`, `9e37a0e`, `a69765d`, `811c944`, `66a0abe`, `8bb2dcc`, `c64d6e5`, `2b1000b`, `5e15317`, `70fa898`, `c02c2b5`, `9e1f8aa`, `8b954ec`, `c38d3e0` | Profile rename, Wardrobe empty state, Pact journey-limit feedback, Data Sources accessibility alert, non-blocking offline state, revisit-able direction actions/hotspots/signatures, grounded companion return reflections, factual recent-pattern summaries, target-specific monthly/archive/annual/full-memory share cards and messages, event-scoped privacy summaries, ordered annual keepsake history, historical monthly/archive/annual share targets, a 27-item life-signal library with six-item replacement and history preservation, complete-library first setup with preset/custom completion and HealthKit fallback, custom signals, notes, saved filtering, D14 monthly-mark preview/revisit and highlighted archive return, no-data note privacy boundary, corrected encounter action layout, persisted reflection focus, D90 archives with chronicle composition/direction arc, D360 annual review, note and collapsed history, personal archive notes, saved archive history, archive history, subdued archive-card art, revisitable Habitat archive marker, deterministic archive keepsakes, persistent direction-specific archive revisits, 13 passing real Simulator interaction flows with 54 screenshots, collapsed weekly/date memory browsing, companion-free memory/share backgrounds, compact discovery placement, stable candidate-comparison and species-browse actions, profile rename/preferences, and memory notes/favorites/history are covered; 54 Jest suites / 173 tests, TypeScript, ESLint, Metro reports 497 assets, unsigned iPhone 17 Pro iOS 26.1 Simulator build succeeds | Physical HealthKit, notifications, VoiceOver/Dynamic Type, share sheet, lifecycle, and iPad gates remain open | | ACCESS-01A | `1f1203d` | 20 Jest suites / 73 tests, TypeScript, ESLint, `git diff --check`; complete-state render and 200% text layout tested | Modal focus, screen recovery, broader layouts, and device matrix remain open | | ACCESS-01B | `0983610` | 23 Jest suites / 76 tests, TypeScript, ESLint, `git diff --check`; stale-route recovery and destructive reset boundaries tested | Broader 200% layouts, Modal focus on device, and device matrix remain open | | ACCESS-01C | `4192001` | 25 Jest suites / 78 tests, TypeScript, ESLint, `git diff --check`; notification denial/failure and scrollable 200% world-map behavior tested | Remaining load-bearing layouts and physical-device semantics remain open |