fix(ios): keep the baseline presentation when a tap corroboration has no request flags - #1646
Conversation
8122646 to
e0d1fff
Compare
Size Report
Startup median (7 runs, lower is better):
Top changed chunks:
|
|
Reviewed exact head Not ready yet: this device-facing fix still lacks required exact-head live iOS evidence at the penalty/private-AX boundary. Please attach the Bluesky reproduction showing a matching-presentation baseline and successful corroboration after the recorded tap failure. Current completed checks are green, with required lanes still pending. No code blocker or conflict found. |
Live iOS evidence — exact head
|
|
Reviewed exact head
No additional runtime/code finding. The test is non-vacuous: reverting |
… no request flags matchingCaptureFlags dropped the baseline snapshot's scope/depth/raw whenever the incoming request carried no flags, so the post-action corroboration capture ran at the default presentation and could never match a non-default baseline's presentationKey. The corroboration then silently declined to engage, leaking the raw XCTEST_RECORDED_FAILURE it exists to eliminate.
e0d1fff to
aae69fd
Compare
|
Re-reviewed at |
Summary
matchingCaptureFlagsreturnedundefinedwhenever a raw daemon/JSON-RPC request omittedflags, discarding the baseline'sdepth,scope, andrawpresentation. The corroboration probe then used default presentation, could not match a non-default baseline, and silently declined to rescue a tap that XCTest recorded as failed even when the tap landed.This complements #1634: that PR pinned the probe's capture backend; this PR preserves the baseline presentation. Both conditions must match for corroboration to fail safely.
The affected production boundary is raw daemon/JSON-RPC (
http-server.tspasses an omittedparams.flagsthrough). CLI, legacy batch, and structured batch always materialize a flags object, so they cannot produceflags: undefined.Validation
Regression test proven red without the fix:
The test omits the
flagskey entirely; using an empty object would exercise the already-working path.Exact-runtime-head iPhone 17 Pro / Bluesky evidence reproduced the recorded-failure → matched-presentation corroboration path three times (attempts 8–10), with zero scope/backend mismatch diagnostics: fix(ios): keep the baseline presentation when a tap corroboration has no request flags #1646 (comment)
pnpm check:affected --runpassed after rebasing onto currentmain(75 files, 430 tests).Scope
Two files: the presentation-preservation fix and its regression test. The final follow-up commit only corrects the test's reachability comment after the batch-path claim was disproved during live verification.