EFKey 2.2 build 450 · iOS 27.2.0 · iPhone17,2 · exported 2026-10-14 11:17:15 · 120 records langpacks: es v4 #39524f 2026-09-29 · enabled: en es system shortcuts: 14 text replacements, 2 with a digit, 8 with a symbol keyboard crumb at export: launch: built, waiting for presentation (memory 23 MB) · set 11:17:06, 9 s before export — a keyboard instance was built and iOS has not shown it (or its process ended before its next start) Stability report Generated 2026-10-14 11:17:15 iPhone17,2 · 7.4 GB RAM · iOS 27.2.0 · build 450 Keyboard memory limit 176 MB (measured on this device) Recording since 2026-10-09 18:19:29 SUMMARY (last 24 h) Keyboard opened 300× · 7 process start(s) Restarts: 7 normal background cleanup ✓ No crashes or kills while typing — restarts were normal (iOS freeing a closed keyboard, updates). Lowest headroom 132 MB at 10-14 01:38:21 (peak 44 MB) Memory drift between openings: +0.3 MB on average (294 samples) Openings without teardown 4 · controllers left behind 4 · views outlived 7 · memory warnings 0 RESTARTS (newest first, 59 recorded) [1] 2026-10-14 10:49:18 — normal — iOS freed the closed keyboard closed at 32 MB of 176 MB, freed by iOS within 33m 3s process ran 3h 46m · opened 108× · build 450 · en,es [2] 2026-10-14 06:29:58 — normal — iOS freed the closed keyboard closed at 38 MB of 176 MB, freed by iOS within 4h 44m process ran 5h 4m · opened 77× · build 450 · en,es [3] 2026-10-13 20:40:37 — normal — iOS freed the closed keyboard closed at 22 MB of 176 MB, freed by iOS within 30m 0s process ran 23m 55s · opened 3× · build 450 · en,es [4] 2026-10-13 19:46:41 — normal — iOS freed the closed keyboard closed at 23 MB of 176 MB, freed by iOS within 21m 21s process ran 30m 6s · opened 8× · build 450 · en,es [5] 2026-10-13 18:55:13 — normal — iOS freed the closed keyboard closed at 33 MB of 176 MB, freed by iOS within 38m 11s process ran 6h 13m · opened 89× · build 450 · en,es [6] 2026-10-13 12:04:00 — normal — iOS freed the closed keyboard closed at 24 MB of 176 MB, freed by iOS within 15m 26s process ran 0s · opened 0× · build 450 · en,es [7] 2026-10-13 11:23:53 — normal — iOS freed the closed keyboard closed at 25 MB of 176 MB, freed by iOS within 45m 20s process ran 0s · opened 0× · build 450 · en,es [8] 2026-10-13 08:50:29 — normal — iOS freed the closed keyboard closed at 26 MB of 176 MB, freed by iOS within 11m 37s process ran 0s · opened 0× · build 450 · en,es [9] 2026-10-13 07:55:45 — normal — iOS freed the closed keyboard closed at 29 MB of 176 MB, freed by iOS within 1h 33m process ran 0s · opened 0× · build 450 · en,es [10] 2026-10-12 21:28:59 — normal — iOS freed the closed keyboard closed at 27 MB of 176 MB, freed by iOS within 34m 15s process ran 0s · opened 0× · build 450 · en,es [11] 2026-10-12 18:47:01 — normal — iOS freed the closed keyboard closed at 24 MB of 176 MB, freed by iOS within 6m 6s process ran 0s · opened 0× · build 450 · en,es [12] 2026-10-12 17:46:47 — normal — iOS freed the closed keyboard closed at 21 MB of 176 MB, freed by iOS within 7m 23s process ran 0s · opened 0× · build 450 · en,es [13] 2026-10-12 17:33:55 — normal — iOS freed the closed keyboard closed at 21 MB of 176 MB, freed by iOS within 14m 56s process ran 0s · opened 0× · build 450 · en,es [14] 2026-10-12 16:48:22 — normal — iOS freed the closed keyboard closed at 25 MB of 176 MB, freed by iOS within 5m 44s process ran 0s · opened 0× · build 450 · en,es [15] 2026-10-12 15:27:30 — normal — iOS freed the closed keyboard closed at 28 MB of 176 MB, freed by iOS within 21m 26s process ran 0s · opened 0× · build 450 · en,es [16] 2026-10-12 12:55:58 — normal — iOS freed the closed keyboard closed at 34 MB of 176 MB, freed by iOS within 24m 26s process ran 0s · opened 0× · build 450 · en,es [17] 2026-10-12 11:17:32 — app update (normal) app updated from build 435 process ran 0s · opened 0× · build 435 · en,es [18] 2026-10-12 10:16:59 — normal — iOS freed the closed keyboard closed at 60 MB of 176 MB, freed by iOS within 22m 43s process ran 0s · opened 0× · build 435 · en,es [19] 2026-10-12 09:38:39 — normal — iOS freed the closed keyboard closed at 53 MB of 176 MB, freed by iOS within 18m 53s process ran 0s · opened 0× · build 435 · en,es [20] 2026-10-12 09:16:38 — normal — iOS freed the closed keyboard closed at 68 MB of 176 MB, freed by iOS within 4h 58m process ran 0s · opened 0× · build 435 · en,es [21] 2026-10-12 00:02:40 — normal — iOS freed the closed keyboard closed at 64 MB of 176 MB, freed by iOS within 1h 31m process ran 0s · opened 0× · build 435 · en,es [22] 2026-10-11 20:42:31 — CRASH last operation: launch: built, waiting for presentation (memory 67 MB) process ran 0s · opened 0× · build 435 · en,es [23] 2026-10-11 19:37:30 — normal — iOS freed the closed keyboard closed at 66 MB of 176 MB, freed by iOS within 5m 46s process ran 0s · opened 0× · build 435 · en,es [24] 2026-10-11 18:35:42 — normal — iOS freed the closed keyboard closed at 64 MB of 176 MB, freed by iOS within 25m 48s process ran 0s · opened 0× · build 435 · en,es [25] 2026-10-11 17:59:27 — normal — iOS freed the closed keyboard closed at 67 MB of 176 MB, freed by iOS within 14m 21s process ran 0s · opened 0× · build 435 · en,es [26] 2026-10-11 17:08:21 — normal — iOS freed the closed keyboard closed at 47 MB of 176 MB, freed by iOS within 48m 50s process ran 0s · opened 0× · build 435 · en,es [27] 2026-10-11 16:19:22 — normal — iOS freed the closed keyboard closed at 66 MB of 176 MB, freed by iOS within 18m 57s process ran 0s · opened 0× · build 435 · en,es [28] 2026-10-11 14:43:34 — normal — iOS freed the closed keyboard closed at 72 MB of 176 MB, freed by iOS within 27m 17s process ran 0s · opened 0× · build 435 · en,es [29] 2026-10-11 13:48:49 — normal — iOS freed the closed keyboard closed at 67 MB of 176 MB, freed by iOS within 9m 20s process ran 0s · opened 0× · build 435 · en,es [30] 2026-10-11 13:08:37 — normal — iOS freed the closed keyboard closed at 56 MB of 176 MB, freed by iOS within 18m 53s process ran 0s · opened 0× · build 435 · en,es OPENINGS (oldest first, within each process run) -- process start 10-14 06:29:58 · build 450 · 7 MB -- #4 10-14 06:30:26 20 → 20 MB (±0) peak 20 · headroom 156 · 0s field text heap ±0 · other ±0 · controllers 1→1 · views 3→3 #5 10-14 06:30:27 20 → 20 MB (±0) peak 20 · headroom 156 · 1s field text heap ±0 · other ±0 · controllers 2→1 · views 4→4 #6 10-14 06:30:30 20 → 21 MB (+1) peak 21 · headroom 155 · 1s field text heap ±0 · other +1 · controllers 1→1 · views 5→5 #7 10-14 06:30:51 21 → 23 MB (+2) peak 23 · headroom 153 · 2s field email heap +1 · other +1 · controllers 1→1 · views 6→6 #8 10-14 06:30:55 22 → 22 MB (±0) peak 23 · headroom 153 · 6s field email→text heap ±0 · other ±0 · controllers 1→1 · views 7→7 #9 10-14 06:32:20 21 → 22 MB (+1) peak 22 · headroom 154 · 1s field text heap ±0 · other +1 · controllers 1→1 · views 8→8 #10 10-14 06:32:57 24 → 23 MB (−1) peak 25 · headroom 151 · 45s field text heap +1 · other −2 · controllers 1→1 · views 9→9 #11 10-14 06:34:05 24 → 23 MB (−1) peak 24 · headroom 152 · 56s field text heap +1 · other −2 · controllers 1→1 · views 10→10 #12 10-14 06:35:02 23 → 23 MB (±0) peak 24 · headroom 152 · 8s field text heap ±0 · other ±0 · controllers 1→1 · views 10→10 #13 10-14 06:35:14 23 → 24 MB (+1) peak 24 · headroom 152 · 15s field text heap ±0 · other +1 · controllers 1→1 · views 11→11 #14 10-14 06:35:43 23 → 24 MB (+1) peak 25 · headroom 151 · 58s field text heap ±0 · other +1 · controllers 1→1 · views 12→12 #15 10-14 06:37:05 24 → 25 MB (+1) peak 26 · headroom 150 · 1m 29s field text heap ±0 · other +1 · controllers 1→1 · views 13→13 #16 10-14 06:38:34 26 → 25 MB (−1) peak 26 · headroom 150 · 4s field text heap ±0 · other −1 · controllers 2→1 · views 14→14 #17 10-14 06:38:40 25 → 25 MB (±0) peak 25 · headroom 151 · 35s field text heap ±0 · other ±0 · controllers 2→1 · views 15→15 #18 10-14 06:39:16 26 → 25 MB (−1) peak 26 · headroom 150 · 1s field text heap ±0 · other −1 · controllers 2→1 · views 16→16 #19 10-14 06:39:18 25 → 25 MB (±0) peak 27 · headroom 149 · 5m 54s field text heap +1 · other −1 · controllers 2→1 · views 17→17 #20 10-14 06:45:47 24 → 24 MB (±0) peak 26 · headroom 150 · 20s field text heap ±0 · other ±0 · controllers 1→1 · views 18→18 #21 10-14 06:48:24 24 → 25 MB (+1) peak 26 · headroom 150 · 19s field text heap +1 · other ±0 · controllers 1→1 · views 19→19 #22 10-14 06:48:44 25 → 24 MB (−1) peak 25 · headroom 151 · 37s field text heap ±0 · other −1 · controllers 2→1 · views 20→20 #23 10-14 06:49:22 24 → 24 MB (±0) peak 24 · headroom 152 · 1s field text heap ±0 · other ±0 · controllers 2→1 · views 21→21 #24 10-14 06:49:25 25 → 24 MB (−1) peak 25 · headroom 151 · 4s field text heap ±0 · other −1 · controllers 2→1 · views 22→22 #25 10-14 06:49:30 24 → 24 MB (±0) peak 24 · headroom 152 · 11s field text heap ±0 · other ±0 · controllers 2→1 · views 23→23 #26 10-14 06:49:42 24 → 24 MB (±0) peak 25 · headroom 151 · 1s field text heap ±0 · other ±0 · controllers 2→1 · views 24→24 #27 10-14 06:49:44 24 → 24 MB (±0) peak 25 · headroom 151 · 14s field text heap ±0 · other ±0 · controllers 2→1 · views 25→25 #28 10-14 06:53:57 26 → 26 MB (±0) peak 26 · headroom 150 · 0s field text heap ±0 · other ±0 · controllers 1→1 · views 26→26 #29 10-14 07:02:10 25 → 25 MB (±0) peak 26 · headroom 150 · 12s field text heap ±0 · other ±0 · controllers 2→2 · views 28→28 #30 10-14 07:02:26 24 → 26 MB (+2) peak 26 · headroom 150 · 9s field text heap ±0 · other +2 · controllers 2→2 · views 29→29 #31 10-14 07:02:40 25 → 26 MB (+1) peak 26 · headroom 150 · 1s field text heap +1 · other ±0 · controllers 3→3 · views 30→30 #32 10-14 07:02:50 25 → 25 MB (±0) peak 25 · headroom 151 · 0s field text heap ±0 · other ±0 · controllers 2→2 · views 31→31 #33 10-14 07:02:55 25 → 26 MB (+1) peak 26 · headroom 150 · 37s field text heap ±0 · other +1 · controllers 2→2 · views 32→32 #34 10-14 07:32:13 26 → 26 MB (±0) peak 26 · headroom 150 · 5s field text heap ±0 · other ±0 · controllers 2→2 · views 33→33 #35 10-14 07:33:00 26 → 27 MB (+1) peak 27 · headroom 149 · 5s field num+punct heap ±0 · other +1 · controllers 2→2 · views 34→34 #36 10-14 07:40:50 26 → 26 MB (±0) peak 26 · headroom 150 · 1s field text heap ±0 · other ±0 · controllers 2→2 · views 35→35 #37 10-14 08:15:03 26 → 25 MB (−1) peak 27 · headroom 149 · 52s field text heap ±0 · other −1 · controllers 2→2 · views 36→36 #38 10-14 08:16:08 26 → 25 MB (−1) peak 27 · headroom 149 · 17s field text heap ±0 · other −1 · controllers 2→2 · views 37→37 #39 10-14 08:23:05 26 → 25 MB (−1) peak 27 · headroom 149 · 2m 11s field text heap ±0 · other −1 · controllers 2→2 · views 38→38 #40 10-14 08:25:17 25 → 25 MB (±0) peak 27 · headroom 149 · 1m 41s field text heap ±0 · other ±0 · controllers 2→2 · views 38→38 #41 10-14 08:27:00 26 → 25 MB (−1) peak 26 · headroom 150 · 1s field text heap ±0 · other −1 · controllers 3→2 · views 39→39 #42 10-14 08:27:02 25 → 25 MB (±0) peak 25 · headroom 151 · 2s field text heap ±0 · other ±0 · controllers 3→2 · views 40→40 #43 10-14 08:27:05 26 → 25 MB (−1) peak 26 · headroom 150 · 0s field text heap −1 · other ±0 · controllers 3→2 · views 41→41 #44 10-14 08:28:28 25 → 25 MB (±0) peak 26 · headroom 150 · 54s field text heap −1 · other +1 · controllers 2→2 · views 42→42 #45 10-14 08:29:28 25 → 26 MB (+1) peak 26 · headroom 150 · 2s field search heap ±0 · other +1 · controllers 3→3 · views 43→43 #46 10-14 08:29:33 25 → 26 MB (+1) peak 26 · headroom 150 · 0s field text heap ±0 · other +1 · controllers 3→3 · views 44→44 #47 10-14 08:29:33 26 → 25 MB (−1) peak 26 · headroom 150 · 1s field text heap ±0 · other −1 · controllers 3→3 · views 44→44 #48 10-14 08:30:20 26 → 26 MB (±0) peak 26 · headroom 150 · 3s field text heap −1 · other +1 · controllers 2→2 · views 45→45 #49 10-14 08:31:15 25 → 25 MB (±0) peak 26 · headroom 150 · 1s field text heap −1 · other +1 · controllers 2→2 · views 46→46 #50 10-14 08:33:31 26 → 27 MB (+1) peak 27 · headroom 149 · 0s field text heap ±0 · other +1 · controllers 3→3 · views 47→47 #51 10-14 08:36:01 27 → 26 MB (−1) peak 27 · headroom 149 · 22s field text heap +1 · other −2 · controllers 4→4 · views 50→50 #52 10-14 08:36:24 27 → 25 MB (−2) peak 27 · headroom 149 · 1s field text heap −1 · other −1 · controllers 5→4 · views 51→51 #53 10-14 08:36:32 25 → 25 MB (±0) peak 26 · headroom 150 · 1m 25s field text heap +1 · other −1 · controllers 4→4 · views 52→52 #54 10-14 08:38:02 28 → 27 MB (−1) peak 30 · headroom 146 · 4s field text heap +1 · other −2 · controllers 5→5 · views 53→53 #55 10-14 08:38:16 26 → 26 MB (±0) peak 27 · headroom 149 · 32s field text heap ±0 · other ±0 · controllers 4→4 · views 54→54 #56 10-14 08:38:52 26 → 26 MB (±0) peak 28 · headroom 148 · 19s field text heap +1 · other −1 · controllers 4→4 · views 55→55 #57 10-14 08:39:13 26 → 27 MB (+1) peak 29 · headroom 147 · 10s field text heap ±0 · other +1 · controllers 4→4 · views 55→55 #58 10-14 08:39:28 25 → 25 MB (±0) peak 26 · headroom 150 · 4s field text heap +1 · other −1 · controllers 5→5 · views 56→56 #59 10-14 08:41:34 26 → 27 MB (+1) peak 27 · headroom 149 · 5s field text heap ±0 · other +1 · controllers 5→5 · views 57→57 #60 10-14 08:41:41 25 → 26 MB (+1) peak 28 · headroom 148 · 2m 8s field text heap −1 · other +2 · controllers 4→4 · views 58→58 #61 10-14 08:50:48 26 → 27 MB (+1) peak 27 · headroom 149 · 6s field text heap ±0 · other +1 · controllers 4→4 · views 59→59 #62 10-14 08:50:55 26 → 26 MB (±0) peak 27 · headroom 149 · 57s field text heap +1 · other −1 · controllers 4→4 · views 59→59 #63 10-14 08:52:03 26 → 26 MB (±0) peak 27 · headroom 149 · 9s field text heap +1 · other −1 · controllers 5→5 · views 60→60 #64 10-14 08:52:16 25 → 27 MB (+2) peak 28 · headroom 148 · 50s field text heap ±0 · other +2 · controllers 4→4 · views 61→61 #65 10-14 08:53:10 27 → 26 MB (−1) peak 28 · headroom 148 · 18s field text heap ±0 · other −1 · controllers 5→5 · views 62→62 #66 10-14 08:54:29 26 → 27 MB (+1) peak 27 · headroom 149 · 10s field text heap +1 · other ±0 · controllers 5→5 · views 63→63 #67 10-14 08:55:11 26 → 27 MB (+1) peak 28 · headroom 148 · 1m 0s field text heap +1 · other ±0 · controllers 4→4 · views 64→64 #68 10-14 08:56:45 26 → 27 MB (+1) peak 27 · headroom 149 · 5s field text heap +1 · other ±0 · controllers 5→5 · views 65→65 #69 10-14 08:57:13 25 → 27 MB (+2) peak 27 · headroom 149 · 7s field text heap ±0 · other +2 · controllers 5→5 · views 66→66 #70 10-14 08:57:50 28 → 26 MB (−2) peak 28 · headroom 148 · 1m 23s field text heap +1 · other −3 · controllers 4→4 · views 67→67 #71 10-14 09:03:22 27 → 27 MB (±0) peak 27 · headroom 149 · 1s field text heap ±0 · other ±0 · controllers 4→4 · views 68→68 #72 10-14 09:04:00 26 → 27 MB (+1) peak 27 · headroom 149 · 16s field text heap ±0 · other +1 · controllers 4→4 · views 69→69 #73 10-14 09:04:50 26 → 27 MB (+1) peak 27 · headroom 149 · 24s field text heap ±0 · other +1 · controllers 4→4 · views 70→70 #74 10-14 09:05:20 26 → 27 MB (+1) peak 28 · headroom 148 · 22s field text heap +1 · other ±0 · controllers 5→5 · views 71→71 #75 10-14 09:11:03 28 → 28 MB (±0) peak 28 · headroom 148 · 18s field text heap ±0 · other ±0 · controllers 4→4 · views 72→72 #76 10-14 09:15:33 28 → 30 MB (+2) peak 30 · headroom 146 · 2s field search heap +1 · other +1 · controllers 4→4 · views 73→73 #77 10-14 09:15:39 28 → 29 MB (+1) peak 29 · headroom 147 · 0s field text heap +1 · other ±0 · controllers 4→4 · views 74→74 #78 10-14 09:15:39 29 → 28 MB (−1) peak 29 · headroom 147 · 1s field text heap +1 · other −2 · controllers 4→4 · views 74→74 #79 10-14 09:15:50 28 → 28 MB (±0) peak 29 · headroom 147 · 27s field text heap +1 · other −1 · controllers 4→4 · views 75→75 #80 10-14 09:19:34 28 → 27 MB (−1) peak 29 · headroom 147 · 21s field text heap +1 · other −2 · controllers 4→4 · views 76→76 #81 10-14 09:20:00 27 → 27 MB (±0) peak 28 · headroom 148 · 12s field text heap ±0 · other ±0 · controllers 4→4 · views 77→77 #82 10-14 09:28:12 28 → 29 MB (+1) peak 29 · headroom 147 · 0s field text heap ±0 · other +1 · controllers 4→4 · views 78→78 #83 10-14 09:28:13 29 → 28 MB (−1) peak 29 · headroom 147 · 24s field text heap ±0 · other −1 · controllers 5→4 · views 79→79 #84 10-14 09:28:48 28 → 28 MB (±0) peak 29 · headroom 147 · 30s field text heap ±0 · other ±0 · controllers 4→4 · views 80→80 #85 10-14 09:39:58 27 → 27 MB (±0) peak 28 · headroom 148 · 17s field text heap ±0 · other ±0 · controllers 4→4 · views 81→81 #86 10-14 09:43:49 28 → 27 MB (−1) peak 29 · headroom 147 · 2m 23s field text heap −3 · other +2 · controllers 4→4 · views 82→82 #87 10-14 09:46:43 27 → 27 MB (±0) peak 29 · headroom 147 · 23s field text heap +1 · other −1 · controllers 5→5 · views 83→83 #88 10-14 09:49:28 27 → 28 MB (+1) peak 28 · headroom 148 · 11s field text heap +2 · other −1 · controllers 5→5 · views 84→84 #89 10-14 10:01:48 27 → 27 MB (±0) peak 27 · headroom 149 · 28s field text heap ±0 · other ±0 · controllers 5→5 · views 85→85 #90 10-14 10:04:41 28 → 28 MB (±0) peak 29 · headroom 147 · 5s field text heap ±0 · other ±0 · controllers 5→5 · views 86→86 #91 10-14 10:04:55 27 → 27 MB (±0) peak 28 · headroom 148 · 1s field text heap ±0 · other ±0 · controllers 5→5 · views 87→87 #92 10-14 10:06:36 28 → 28 MB (±0) peak 28 · headroom 148 · 1s field text heap ±0 · other ±0 · controllers 5→5 · views 89→89 #93 10-14 10:06:38 29 → 31 MB (+2) peak 33 · headroom 143 · 18s field text heap +1 · other +1 · controllers 6→5 · views 90→90 #94 10-14 10:07:08 29 → 29 MB (±0) peak 29 · headroom 147 · 3s field text heap −1 · other +1 · controllers 5→5 · views 91→91 #95 10-14 10:07:12 28 → 30 MB (+2) peak 30 · headroom 146 · 1s field text heap ±0 · other +2 · controllers 6→5 · views 92→92 #96 10-14 10:07:18 29 → 29 MB (±0) peak 29 · headroom 147 · 14s field search heap ±0 · other ±0 · controllers 5→5 · views 93→93 #97 10-14 10:07:46 30 → 37 MB (+7) peak 37 · headroom 139 · 2s field search heap ±0 · other +7 · controllers 5→5 · views 94→94 #98 10-14 10:07:49 31 → 31 MB (±0) peak 31 · headroom 145 · 6s field search heap ±0 · other ±0 · controllers 6→5 · views 95→95 #99 10-14 10:07:55 30 → 30 MB (±0) peak 30 · headroom 146 · 2s field search heap ±0 · other ±0 · controllers 6→5 · views 96→96 #100 10-14 10:08:00 29 → 31 MB (+2) peak 31 · headroom 145 · 2s field search heap ±0 · other +2 · controllers 5→5 · views 97→97 #101 10-14 10:08:02 30 → 32 MB (+2) peak 32 · headroom 144 · 8s field search heap ±0 · other +2 · controllers 6→5 · views 98→98 #102 10-14 10:08:11 30 → 30 MB (±0) peak 30 · headroom 146 · 1s field search heap ±0 · other ±0 · controllers 6→5 · views 99→99 #103 10-14 10:08:21 29 → 32 MB (+3) peak 32 · headroom 144 · 4s field search heap ±0 · other +3 · controllers 5→5 · views 100→100 #104 10-14 10:08:25 31 → 31 MB (±0) peak 31 · headroom 145 · 7s field search heap ±0 · other ±0 · controllers 6→5 · views 101→101 #105 10-14 10:08:34 30 → 32 MB (+2) peak 33 · headroom 143 · 46s [translator/AI] field search heap +3 · other −1 · controllers 6→5 · views 102→102 #106 10-14 10:09:20 31 → 32 MB (+1) peak 32 · headroom 144 · 1s field search heap ±0 · other +1 · controllers 6→5 · views 103→103 #107 10-14 10:09:27 31 → 32 MB (+1) peak 32 · headroom 144 · 10s field text heap ±0 · other +1 · controllers 5→5 · views 104→104 #108 10-14 10:16:14 32 → 32 MB (±0) peak 32 · headroom 144 · 1s field text heap ±0 · other ±0 · controllers 5→5 · views 105→105 -- process start 10-14 10:49:18 · build 450 · 6 MB -- #1 10-14 10:49:18 11 → 17 MB (+6) peak 17 · headroom 159 · 1s field text heap +5 · other +1 · controllers 1→1 · views 1→1 #2 10-14 10:49:25 15 → 15 MB (±0) peak 16 · headroom 160 · 21s field text heap +2 · other −2 · controllers 1→1 · views 2→2 #3 10-14 10:49:48 15 → 16 MB (+1) peak 18 · headroom 158 · 22s field text heap +1 · other ±0 · controllers 1→1 · views 2→2 #4 10-14 10:50:11 16 → 16 MB (±0) peak 17 · headroom 159 · 12s field text heap ±0 · other ±0 · controllers 1→1 · views 2→2 #5 10-14 10:50:25 16 → 16 MB (±0) peak 17 · headroom 159 · 19s field text heap ±0 · other ±0 · controllers 1→1 · views 2→2 #6 10-14 10:52:03 23 → 22 MB (−1) peak 24 · headroom 152 · 1m 18s field text heap ±0 · other −1 · controllers 1→1 · views 3→3 #7 10-14 10:53:55 22 → 22 MB (±0) peak 22 · headroom 154 · 1s field text heap ±0 · other ±0 · controllers 1→1 · views 4→4 #8 10-14 10:54:00 22 → 22 MB (±0) peak 22 · headroom 154 · 4s field text heap ±0 · other ±0 · controllers 1→1 · views 5→5 #9 10-14 10:54:05 23 → 23 MB (±0) peak 23 · headroom 153 · 13s field text heap ±0 · other ±0 · controllers 2→1 · views 6→6 #10 10-14 10:54:20 23 → 21 MB (−2) peak 23 · headroom 153 · 0s field text heap −3 · other +1 · controllers 2→1 · views 7→7 #11 10-14 10:59:17 23 → 23 MB (±0) peak 24 · headroom 152 · 16s field text heap ±0 · other ±0 · controllers 1→1 · views 8→8 #12 10-14 10:59:34 22 → 23 MB (+1) peak 24 · headroom 152 · 13s field text heap +1 · other ±0 · controllers 1→1 · views 8→8 #13 10-14 11:02:28 22 → 23 MB (+1) peak 23 · headroom 153 · 2s field text heap ±0 · other +1 · controllers 1→1 · views 9→9 #14 10-14 11:15:54 24 → 23 MB (−1) peak 25 · headroom 151 · 13s field text heap +1 · other −2 · controllers 2→2 · views 11→11 #15 10-14 11:16:15 22 → 24 MB (+2) peak 24 · headroom 152 · 32s field text heap ±0 · other +2 · controllers 2→2 · views 12→12 ENGINE V2 New engine: default (the old engine only as the automatic fallback) · swipe through the space bar: off Keyboard decision (2026-10-14 10:49): v2 types ["en", "es"] en: v2 es: v2 Installed packs: en 4f0c687e (data v1, 33 MB), es c4441ac6 (data v1, 40 MB) Download en: ready (installed) (download 17 MB) Download es: ready (installed) (download 19 MB) Old engine calls while v2 typed (keyboard process): 0 Typing waits on v2: 64, avg 3.5 ms, max 16 ms, over 50 ms 0 Personal touch model: taps 200 confirmed letters, mean offset x -2 % / y +3 % of a key (applied); swipe ends 0 v2 on the main thread: p95 0.08 ms, max 16 ms per event; commits ready 79, waited 1, timed out 0 v2 lines in the log below start with "V2 " FIELD METRICS (local only, per engine that produced the output: old engine / v2, since 2026-10-12 11:22, builds 450) en · v2: typed words 2466 · autocorrect 312, reverted 1 (0.3 %) · rule fixes 126, reverted 1 (0.8 %) · reverts backspace 1 / bar 0 / history 2, withdrawn 0 (net autocorrect revert rate 0.5 %) · swipes 0, deleted 0 (–), alternative picked 0 (–) es · v2: typed words 1 · autocorrect 0, reverted 0 (–) · rule fixes 0, reverted 0 (–) · reverts backspace 0 / bar 0 / history 0, withdrawn 0 (net autocorrect revert rate –) · swipes 0, deleted 0 (–), alternative picked 0 (–) TYPING STATISTICS (anonymous: numbers only, no words; since 2026-10-12 11:22, builds 450) confirmed taps 6464 (words 1860), key pitches from the hit key centre: mean x -0.009 y +0.045 · after removing the mean: sd x 0.211 y 0.159 (var x 0.0447 y 0.0253) |x| histogram (<0.05 1142 · <0.10 1079 · <0.15 1026 · <0.20 898 · <0.25 670 · <0.30 495 · <0.35 463 · <0.40 303 · <0.45 242 · <0.50 145 · ≥0.50 1) |y| histogram (<0.05 1468 · <0.10 1357 · <0.15 1178 · <0.20 920 · <0.25 674 · <0.30 420 · <0.35 261 · <0.40 123 · <0.45 45 · <0.50 18 · ≥0.50 0) corrected typos: one letter on a neighbouring key 212 · on a farther key 2 · no tap position 8 · other edits 140 neighbouring-key typos, tap position on the hit key towards the intended key (1.0 = boundary): <0 4 · 0–0.25 8 · 0.25–0.5 18 · 0.5–0.75 39 · 0.75–1.0 140 · ≥1.0 3 → near the boundary (≥0.5) 85.8 %, deep in the neighbouring key 14.2 % autocorrections shown / reverted (⌫ right after, ↶ bar or history) / withdrawn reverts (the ⌫ was deleting text), by language · rule: en@v2 · aosp: shown 229, reverted 0, withdrawn 0 → net revert rate 0.0 % en@v2 · booster: shown 9, reverted 0, withdrawn 0 → net revert rate 0.0 % en@v2 · case: shown 17, reverted 1, withdrawn 0 → net revert rate 5.9 % en@v2 · fold: shown 2, reverted 0, withdrawn 0 → net revert rate 0.0 % en@v2 · join: shown 1, reverted 0, withdrawn 0 → net revert rate 0.0 % en@v2 · learnedcase: shown 8, reverted 0, withdrawn 0 → net revert rate 0.0 % en@v2 · pastcorr: shown 3, reverted 0, withdrawn 0 → net revert rate 0.0 % en@v2 · post: shown 5, reverted 0, withdrawn 0 → net revert rate 0.0 % en@v2 · realword: shown 5, reverted 0, withdrawn 0 → net revert rate 0.0 % en@v2 · space: shown 7, reverted 0, withdrawn 0 → net revert rate 0.0 % en@v2 · split: shown 5, reverted 0, withdrawn 0 → net revert rate 0.0 % en@v2 · swift: shown 126, reverted 1, withdrawn 0 → net revert rate 0.8 % en@v2 · w6: shown 27, reverted 0, withdrawn 0 → net revert rate 0.0 % all: shown 444, reverted 2, withdrawn 0 → net revert rate 0.5 % LOG (newest first) 11:17:12 ℹ️ ⚠️ F843: keyboard instance not shown 6 s after it was built — #13 load 47 ms, first main tick 7 ms, waited 6 s, 2 host events, root in a window 0.01 s after build (left it) · root 1× in window via UIView<_UIDropShadowClippingView 5 s silence) — echo/alive-but-silent host (record only) 11:16:23 ℹ️ F213: host still silent (hasText=1, route=Speaker) — RECORD ONLY (poke disabled) 11:16:22 ℹ️ F213: dead session? — frozen tail (route=Speaker) → poke SKIPPED (disabled 16.8.) 11:16:22 ℹ️ F448 kept: 'in' valid=0 learned=439 off=x[+44,-17] y[-4,-15] mean=+14/-9 11:16:21 ℹ️ B258 post: 'Put' before 'phone' kept: engine keeps it (tap) off=x[-26,+9,+30] y[-1,-4,+13] mean=+4/+2 11:16:21 ℹ️ F406 autocorrect: 'phne'→'phone' valid=0 src=V2 langs= off=x[-33,-8,-10,+31] y[-2,+11,+12,+20] mean=-5/+10 11:16:19 ℹ️ F448 kept: 'Put' valid=0 learned=43 off=x[-26,+9,+30] y[-1,-4,+13] mean=+4/+2 11:16:17 ℹ️ F238a: word-repeat — context unreadable twice → back to character delete 11:16:17 ℹ️ session birth: first host notification in 299 ms · instance #12 · process up 1618 s · memory 23 of 176 MB · v2 [en, es] ready · neural off (not used yet) · v2 0.3 MB (overlay 0.3, swipe 0.00) · root 1× in window via UIView<_UIDropShadowClippingView 5 s silence) — echo/alive-but-silent host (record only) 11:16:01 ℹ️ F213: host still silent (hasText=1, route=Speaker) — RECORD ONLY (poke disabled) 11:16:00 ℹ️ F213: dead session? — frozen tail (route=Speaker) → poke SKIPPED (disabled 16.8.) 11:15:59 ℹ️ F406 autocorrect: 'Landscaoe'→'Landscape' valid=0 src=V2 langs= off=x[+1,-17,-11,+16,-48,+27,+30,+47,+36] y[+8,-4,+13,+0,+9,+4,+7,+28,-6] mean=+9/+6 11:15:55 ℹ️ session birth: first host notification in 307 ms · instance #11 · process up 1597 s · memory 24 of 176 MB · v2 [en, es] ready · neural off (not used yet) · v2 0.3 MB (overlay 0.3, swipe 0.00) · root 1× in window via UIView<_UIDropShadowClippingView deferred 11:15:36 ℹ️ F276: swipetrie es mapped OK (112423 words, 230847 nodes) 11:15:36 ℹ️ F276: swipetrie en mapped OK (73306 words, 171394 nodes) 11:12:25 ℹ️ ⚠️ F843: keyboard instance not shown 20 s after it was built — #10 load 48 ms, first main tick 4 ms, waited 21 s, 2 host events, root in a window 0.00 s after build · root 1× in window via UIView<_UIDropShadowClippingView 5 s silence) — echo/alive-but-silent host (record only) 10:59:22 ℹ️ F213: host still silent (hasText=1, route=Speaker) — RECORD ONLY (poke disabled) 10:59:21 ℹ️ F213: dead session? — frozen tail (route=Speaker) → poke SKIPPED (disabled 16.8.) 10:59:18 ℹ️ session birth: first host notification in 304 ms · instance #8 · process up 599 s · memory 23 of 176 MB · v2 [en, es] ready · neural off (not used yet) · v2 0.3 MB (overlay 0.3, swipe 0.00) · root 1× in window via UIView<_UIDropShadowClippingView 5 s silence) — echo/alive-but-silent host (record only) 10:52:24 ℹ️ F213: host still silent (hasText=1, route=Speaker) — RECORD ONLY (poke disabled) 10:52:22 ℹ️ F213: dead session? — frozen tail (route=Speaker) → poke SKIPPED (disabled 16.8.) 10:52:19 ℹ️ B342 cursor tap 7/20 (0.6 s after the last keystroke): host text +0 ms · EFKey auto-shift check +1 ms ×22, read text before cursor (shouldAutoCapitalize()) +8 ms ×5, cursor move +8 ms, cursor word +54 ms, read text before cursor (computeCursorWordSuggestions()) +54 ms, read text before cursor (refreshSuggestionsBody(precomputedContext:precomputedBefore:v2Rerun:v2RequestBarVersion:)) +54 ms ×12, read text before cursor (computeBarExtras()) +64 ms ×24, read text before cursor (scheduleExternalClearCheck()) +311 ms, read text before cursor (keyViewDidActivateBody(_:_:)) +348 ms ×33, read text before cursor (scheduleBackspaceRecheck()) +483 ms ×9, geometry check +630 ms · keyboard frame unchanged (view y 0 h 323, window y 0 h 323, constraints 322/278) · chars before/after cursor 19/0 → 8/0 · typing resumed in the window 10:52:17 ℹ️ F242 #3: cursor word move noticed (0.6 s since the last keystroke) 10:52:16 ℹ️ SBEVT commit s1 (up) 10:52:14 ℹ️ B342 cursor tap 6/20 (2.4 s after the last keystroke): host text +0 ms · EFKey auto-shift check +0 ms ×11, read text before cursor (shouldAutoCapitalize()) +7 ms ×3, cursor move +7 ms, read text before cursor (handleManualCursorMove()) +7 ms, cursor word +55 ms, read text before cursor (computeCursorWordSuggestions()) +55 ms, read text before cursor (keyViewDidActivateBody(_:_:)) +192 ms ×16, read text before cursor (refreshSuggestionsBody(precomputedContext:precomputedBefore:v2Rerun:v2RequestBarVersion:)) +196 ms ×5, read text before cursor (computeBarExtras()) +216 ms ×14, read text before cursor (scheduleBackspaceRecheck()) +328 ms ×4, geometry check +602 ms, read text before cursor (commitWord(insertingTrailing:)) +1669 ms, read text before cursor (offerPostCorrectionChip(refresh:)) +1686 ms · keyboard frame unchanged (view y 0 h 323, window y 0 h 323, constraints 322/278) · chars before/after cursor 6/14 → 6/14 · typing resumed in the window 10:52:12 ℹ️ F242 #3: cursor word move noticed (2.4 s since the last keystroke) 10:52:04 ℹ️ session birth: first host notification in 304 ms · instance #3 · process up 165 s · memory 24 of 176 MB · v2 [en, es] ready · neural off (not used yet) · v2 0.3 MB (overlay 0.3, swipe 0.00) · root 1× in window via UIView<_UIDropShadowClippingView 5 s silence) — echo/alive-but-silent host (record only) 10:50:30 ℹ️ F213: host still silent (hasText=1, route=Speaker) — RECORD ONLY (poke disabled) 10:50:29 ℹ️ F213: dead session? — frozen tail (route=Speaker) → poke SKIPPED (disabled 16.8.) 10:50:26 ℹ️ session birth: host still silent — RECORD ONLY (poke disabled, notice disabled) 10:50:26 ℹ️ session birth: deaf birth + 3 keystrokes without response → poke SKIPPED (poke disabled 16.8.) 10:50:20 ℹ️ B342 cursor tap 3/20 (0.8 s after the last keystroke): host text +0 ms · EFKey auto-shift check +0 ms ×2, cursor move +4 ms, read text before cursor (calcShadowInvalidateUnlessEcho()) +4 ms, read text before cursor (shouldAutoCapitalize()) +7 ms, cursor word +51 ms, read text before cursor (computeCursorWordSuggestions()) +51 ms, read text before cursor (refreshSuggestionsBody(precomputedContext:precomputedBefore:v2Rerun:v2RequestBarVersion:)) +51 ms, read text before cursor (computeBarExtras()) +58 ms ×2, read text before cursor (scheduleExternalClearCheck()) +310 ms, geometry check +624 ms · keyboard frame unchanged (view y 0 h 323, window y 0 h 323, constraints 322/278) · chars before/after cursor 0/0 → 0/0 10:50:18 ℹ️ F242 #2: cursor word move noticed (0.8 s since the last keystroke) 10:50:17 ℹ️ F213: verdict — session looks dead (route=Speaker) — RECORD ONLY, notice disabled 10:50:17 ℹ️ F213: evidence matured (12+ inserts, > 5 s silence) — echo/alive-but-silent host (record only) 10:50:17 ℹ️ F213: host still silent (hasText=1, route=Speaker) — RECORD ONLY (poke disabled) 10:50:15 ℹ️ F213: dead session? — frozen tail (route=Speaker) → poke SKIPPED (disabled 16.8.) 10:50:13 ℹ️ session birth: host still silent — RECORD ONLY (poke disabled, notice disabled) 10:50:12 ℹ️ session birth: deaf birth + 3 keystrokes without response → poke SKIPPED (poke disabled 16.8.) 10:50:10 ℹ️ B342 cursor tap 2/20 (0.5 s after the last keystroke): host text +0 ms · EFKey auto-shift check +0 ms ×2, read text before cursor (shouldAutoCapitalize()) +5 ms ×2, read text before cursor (refreshSuggestionsBody(precomputedContext:precomputedBefore:v2Rerun:v2RequestBarVersion:)) +6 ms ×2, cursor move +9 ms, read text before cursor (calcShadowInvalidateUnlessEcho()) +9 ms, read text before cursor (computeBarExtras()) +20 ms ×4, cursor word +57 ms, read text before cursor (computeCursorWordSuggestions()) +58 ms, read text before cursor (scheduleExternalClearCheck()) +310 ms, geometry check +618 ms · keyboard frame unchanged (view y 0 h 323, window y 0 h 323, constraints 322/278) · chars before/after cursor 0/0 → 0/0 10:50:08 ℹ️ F242 #2: cursor word move noticed (0.5 s since the last keystroke)