Commit 056532b
fix(audit): resolve HIGH + MEDIUM + perf/correctness findings from multi-agent repo audit (#185)
* fix(audit): resolve HIGH + MEDIUM + perf/correctness findings from multi-agent repo audit
A 13-subsystem multi-agent audit (adversarially verified, 18 findings refuted)
surfaced 86 confirmed issues. This resolves the 1 HIGH, all 16 MEDIUM, and the
high-value perf/low/doc items — ~42 findings — each with regression tests.
Full suite: 1558 pass. Swift runner build-for-testing SUCCEEDED. The multi-renderer
getTree fix was live-verified on the booted Bridgeless+Reanimated test app over CDP.
HIGH
- collect-feedback.sh redact() failed OPEN on macOS (invalid sed bracket range)
leaking ghp_/AKIA/JWT/Bearer/sk_ secrets into public feedback issues — now one
sed program that fails CLOSED ([REDACTION_FAILED]); + bash regression test.
MEDIUM (correctness/inconsistency)
- device_batch swipe was a scroll; now a real swipe gesture honoring duration
- runIOS/postCommand + android client: AbortController per-command HTTP timeout
- ref-map @ref coords gated on snapshot age (isRefMapFresh) -> STALE_REF when stale
- iOS raw screenshot honors png format via extension; NaN tap coords rejected
- repair-engine extract/replaceIdSelector match the maestro-error-parser quoted-id
grammar (quoted/commented testIDs no longer skip auto-repair)
- experience: candidate-id regex matches real filenames; imported heuristic ids
deduped; ghost recovery gated to idempotent tools; redaction catches quoted-JSON
/object-auth secrets; PII regex no longer over-redacts bare numbers
- cross_platform_verify FAIL returns ok:false (was warnResult/ok:true)
- runMaestroInline routes through chooseMaestroDispatch (B59 iOS-only fallback)
- injected getTree() unfiltered branch walks ALL renderers (B143/B145)
- nav-graph strikes namespaced per project (no cross-project cooldown poisoning)
- swift textInputAt restricts query to input types; eas_resolve_artifact.sh portable stat
PERF
- meta.timings_ms helper + scrollintoview instrumentation (CLAUDE.md mandate)
- object_inspect concurrent child fetch; nav_graph go single graph read (was 4x)
- connect candidate loop O(n^2) indexOf -> indexed; auto-login polls instead of 3s wait
LOW / correctness + docs
- guarded JSON.parse (navigation-state, android client); navigateTo loop depth cap
- sidecar missing lastSeenMtimeMs re-seeded (re-enables human-edit guard)
- proof_step no-session verify -> verified:false; device_record path-traversal guard
- device_find surfaces recoveredTier on NOT_FOUND/AMBIGUOUS; detectPrerequisites
whole-word permission match; learned-actions --max NaN fallback; collect-feedback
grep double-zero fix; iOS /health probe 127.0.0.1 (was [::1])
- tool-count drift (banner 51, CLAUDE.md 74 -> 75); REACT_READY renderer range 1-5 -> 1-20
- repair budget refusal reports 24h-windowed count, not lifetime total
Swift (xcodebuild build-for-testing verified)
- rn-fast-runner answers GET /health directly (was unparseable -> liveness always stale)
- snapshotHasFocus uses `as?` not `as!` (force-cast trap is uncatchable)
Deferred (~20 moderate-risk perf + cosmetic items) tracked for a focused follow-up.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* fix(audit): clear the deferred perf + cosmetic findings (B12)
Follow-up to the audit fixes — addresses the remaining lower-severity items. Full suite still 1558 pass; tsc clean.
Perf/lifecycle: logger buffered WriteStream (no event-loop block); connectWs backstop terminates a wedged socket (no leak); cdp_network_log truncated/total accurate on the unfiltered path via buffer size.
Correctness/clarity: maestro_run pass/fail no longer false-flags benign 'Error:' (exit code authoritative); fingerprint engine = Hermes only with an RN signal else null; groupFailures unreachable passed++ removed; multiplexer debug-logs unrouted-id drops; RunIOSArgs dead x1/y1 removed; path-safety sidecar-path comment fixed; ensure-agent-device uses npm prefix -g (npm 9+); expo_ensure_running preserves temp logs on failure.
Not-actioned (correct as-is): lockfile release (signals route to exit->release; SIGKILL covered by mtime), dumpsys (action=all runs once), persistRun CAS re-read (required after conflict), test-recorder dedup edge / buildNavigationPlan scan / loadExperience forceReload (dev-only/negligible).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 68393fc commit 056532b
85 files changed
Lines changed: 1500 additions & 329 deletions
File tree
- hooks
- scripts
- cdp-bridge
- dist
- cdp
- domain
- experience
- runners
- tools
- src
- cdp
- domain
- experience
- runners
- tools
- test/unit
- rn-fast-runner/RnFastRunner/RnFastRunnerUITests
- test
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
126 | | - | |
| 126 | + | |
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
94 | | - | |
| 94 | + | |
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
284 | 284 | | |
285 | 285 | | |
286 | 286 | | |
287 | | - | |
| 287 | + | |
288 | 288 | | |
289 | 289 | | |
290 | 290 | | |
291 | 291 | | |
292 | 292 | | |
293 | 293 | | |
294 | 294 | | |
295 | | - | |
| 295 | + | |
296 | 296 | | |
297 | 297 | | |
298 | 298 | | |
299 | 299 | | |
300 | 300 | | |
301 | 301 | | |
302 | | - | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
303 | 307 | | |
304 | 308 | | |
305 | 309 | | |
| |||
310 | 314 | | |
311 | 315 | | |
312 | 316 | | |
313 | | - | |
| 317 | + | |
314 | 318 | | |
315 | 319 | | |
316 | 320 | | |
| |||
414 | 418 | | |
415 | 419 | | |
416 | 420 | | |
417 | | - | |
| 421 | + | |
418 | 422 | | |
419 | 423 | | |
420 | 424 | | |
| |||
423 | 427 | | |
424 | 428 | | |
425 | 429 | | |
426 | | - | |
| 430 | + | |
427 | 431 | | |
428 | 432 | | |
429 | 433 | | |
430 | 434 | | |
431 | 435 | | |
432 | | - | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
433 | 441 | | |
434 | 442 | | |
435 | 443 | | |
436 | 444 | | |
437 | 445 | | |
438 | 446 | | |
439 | | - | |
| 447 | + | |
440 | 448 | | |
441 | 449 | | |
442 | 450 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
70 | | - | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
71 | 73 | | |
72 | 74 | | |
73 | 75 | | |
| |||
76 | 78 | | |
77 | 79 | | |
78 | 80 | | |
79 | | - | |
| 81 | + | |
80 | 82 | | |
81 | 83 | | |
82 | 84 | | |
| |||
87 | 89 | | |
88 | 90 | | |
89 | 91 | | |
90 | | - | |
| 92 | + | |
91 | 93 | | |
92 | 94 | | |
93 | 95 | | |
| |||
210 | 212 | | |
211 | 213 | | |
212 | 214 | | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
213 | 228 | | |
214 | 229 | | |
| 230 | + | |
215 | 231 | | |
216 | 232 | | |
217 | 233 | | |
218 | 234 | | |
219 | 235 | | |
220 | 236 | | |
221 | 237 | | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
222 | 243 | | |
223 | 244 | | |
224 | 245 | | |
| |||
231 | 252 | | |
232 | 253 | | |
233 | 254 | | |
| 255 | + | |
234 | 256 | | |
235 | 257 | | |
236 | 258 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
236 | 236 | | |
237 | 237 | | |
238 | 238 | | |
239 | | - | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
240 | 243 | | |
| 244 | + | |
241 | 245 | | |
242 | 246 | | |
243 | 247 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
139 | | - | |
140 | | - | |
141 | | - | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
142 | 144 | | |
143 | | - | |
144 | | - | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
145 | 148 | | |
146 | | - | |
| 149 | + | |
147 | 150 | | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
| 151 | + | |
152 | 152 | | |
| 153 | + | |
153 | 154 | | |
154 | | - | |
155 | | - | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
156 | 166 | | |
| 167 | + | |
157 | 168 | | |
158 | 169 | | |
159 | 170 | | |
| |||
168 | 179 | | |
169 | 180 | | |
170 | 181 | | |
171 | | - | |
172 | | - | |
173 | | - | |
174 | | - | |
175 | | - | |
176 | | - | |
177 | | - | |
178 | | - | |
179 | | - | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
180 | 194 | | |
181 | | - | |
| 195 | + | |
182 | 196 | | |
183 | | - | |
184 | | - | |
185 | | - | |
186 | | - | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
187 | 203 | | |
188 | 204 | | |
189 | 205 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
105 | | - | |
| 105 | + | |
106 | 106 | | |
107 | | - | |
108 | | - | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
109 | 111 | | |
110 | 112 | | |
111 | 113 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
49 | 61 | | |
50 | 62 | | |
51 | 63 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | 83 | | |
87 | | - | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
| |||
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
99 | 112 | | |
100 | 113 | | |
101 | 114 | | |
102 | 115 | | |
103 | 116 | | |
104 | 117 | | |
105 | 118 | | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | | - | |
111 | | - | |
| 119 | + | |
112 | 120 | | |
113 | 121 | | |
114 | 122 | | |
| |||
0 commit comments