refactor(ios-runner): restrict the tap-witness synthesized type route to the bare submit key - #2845
Conversation
|
Size Report
Startup median (7 runs, lower is better):
|
|
This looks ready to merge at 7af257b. The route restriction to the bare submit key is sound by code reading; the old commit wait always returned The rewritten app-launching XCTests (append asserting |
… to the bare submit key The daemon sends ordinary `type` text in append mode and only the bare "\n" with no text-entry mode, so the tap-witness synthesis gate now admits only that shape. The ordinary-text commit wait it guarded never ran in production and is deleted with its append-only outcome function and tests; the replacement commit wait keeps every helper it shares. Runner tests now send the daemon's request shapes: ordinary text in append mode asserting the final field value, and a separate bare "\n" test asserting the submission route. The touched command-level tests move to UnitTests/. Closes #2800 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…r PR lane Replaces the deleted append-mode commit-progress test in the PR XCTest list with the submit-key route test and its synthesis-unavailable refusal. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
7af257b to
60e5332
Compare
The loop's default test stopped reaching a commit wait in #2845: it asserts route xctest-element, so a default dispatch collects no [DEBUG-1874] cadence. That test never reached #2080's route, even before #2845. It is a bare `type`, and the synthesized-first-responder-replacement route fires only for `fill` on a penalized XCTest channel. So this loop was never #2080's reproduction path. No existing RunnerTests method reaches the real replacement route. The one test that reaches its commit wait (testTypeTextReliablyPacesSynthesizedReplacementThroughProductionCaller) uses a recording synthesizer against Springboard, so every poll reads nil and the wait always ends notObserved at the 3 s stall deadline. Looping it records a fixed, synthetic cadence. A new penalized coordinate-fill test could reach the route, but the cadence records lengths only (#1924), so it still could not capture the corrupted value #2080 needs. #2080's triage asks for a local reproduction with test-only value instrumentation instead. Delete the workflow, its iteration reader, and that reader's test. The runner's [DEBUG-1874] lines stay: runner.log in the iOS smoke lane is where the #2080 trace came from, and existing tests pin their format and redaction. Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Summary
Stacked on #2834.
The tap-witness synthesized route now admits only what the daemon sends it: no mode plus
"\n". Ordinary text usesappendmode and keeps its production path. The dormant commit wait and its tests are deleted.fill's replacement wait and shared helpers stay.Tests now send daemon request shapes:
appendtext asserting field values, plus no-mode"\n"route and refusal tests. Touched tests live inUnitTests/. The hint andcommands.mdnow name onlytype "\n".Issue line refs have moved; the facts still hold. 13 files. Closes #2800
Validation
Rebased onto
mainata913cb222. Signed macOS host lane: 233/233 at60e533284.check:affected --runis green at this head. The evidence below is from before the rebase.SHA
7af257bee.pnpm check:affected --run(base refactor(ios-runner): drop the runner's snapshot warning text; the verdict carries every disclosure #2834) passed, includingcheck:xctest-selection.ios.ymlowns the app-launching tests.type wif, thentype i;get textreadwifi.type blue, thentype tooth→bluetooth.type "\n"submitted the search.1874-diagnose.yml(ios: fill's synthesized-replacement route lands a corrupted value (traced: 11 chars requested, 7 observed, frozen) #2080).🤖 Generated with Claude Code