ci(release): rely on main ruleset for fast-check authorization - #91
Merged
Merged
Conversation
The first pointer gesture the Agent Device XCTest runner synthesizes into a freshly erased, cold-booted iOS 26.5 simulator on hosted runners arrives seconds late or never while injection reports success (#54), which is the release pipeline's dominant failure. The ios26.auto-fallback cell's unique responsibility is proving automatic engine selection picks the fallback engine, and Detox pointer synthesis proves that equally. Delete the five ios26.auto-fallback pointer overrides so they fall through to the default Detox driver, and flip the matching route-table entries, which is what scripts/run-device-contract-isolated.mjs dispatches on. Scenario definitions, terminal public-outcome assertions, and the four-engine parity comparison are unchanged. Add a test asserting every route equals the driver its pointer plan resolves to, so the route table and the override map cannot drift into starting a harness that has no plan for the scenario. Refs #65 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Pulled forward from the CI overhaul plan (4/9, #68) because the first Detox-routed iOS 26 contract run failed inside this apparatus, and the tarball-approval required check gates on the contract, feedback, and parity jobs — nothing can merge to main until the iOS 26 job is green, including the PRs that were scheduled to delete this code. The failing assertion ("drag released before feedback sampling") did not mean the drag was short: the five drag scenarios held the destination for 8000ms, well past the ~4.9s sampling window. It fired because the Detox gesture promise settled early and the sampling assert masked the real error, which the catch had swallowed. Remove the proof end to end, as decided in #55 and recorded in ADR 0006 (2026-09-01 amendment): the feedback workflow job and its approve-candidate edge, the Vision OCR analyzer, the report verifier and its specs and fixtures, the mid-hold sampling in both pointer runners, the mtime-poll IPC and its baseline/gesture-marker/terminal screenshots in the replay scripts, the sampling constants in pointer-timing.json, and the feedback evidence category in the retry shells. Drag scenarios drop their 8000ms destination hold and use the gesture's own 2000ms default; the Agent Device replay gesture timing is unchanged. The deep-link confirmation marker, previously written when the baseline screenshot appeared, is written on successful replay exit instead. Detox per-test video and screenshot recording stays as the human-reviewable visual record. The exit-75 infra/contract retry protocol, per-attempt evidence isolation, and the four-engine parity comparison are untouched. Refs #68 #65 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Deterministic RNTL proof that the drag-preview overlay and the destination-feedback highlight activate during a simulated drag and deactivate at release, replacing the excised OCR/pixel screenshot-feedback gate for the broken-render-wiring regression class (ADR 0006, 2026-09-01 amendment). Mutation checks: fails when the overlay start dispatch is removed and when the destination-feedback opacity wiring is broken. Passed 10/10 under --runInBand and 10/10 under --maxWorkers=2. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…t-execution tests (#66) Drop the 8 tests that asserted against workflow YAML and package.json content -- they failed whenever the YAML was edited, not when it was wrong, and the CI overhaul is all edits. The 3 script-execution tests survive in scripts/__tests__/consumer-scripts.test.mjs, renamed to match its remaining content. Each invariant that survives the gate map is preserved as a comment beside the line it guards: per-event concurrency groups (ci.yml, docs.yml; exact-package-candidate.yml already had one), detox build-framework-cache ordering, Gradle invoked from the generated consumer directory, and the Jest self-reference mapping in package.json. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ract suite (#66) Follow-up to 4864204: issue39-device-contract.test.ts also read exact-package-candidate.yml and asserted against its text (matrix configuration names, timeout-minutes, api-level, profile, retry flags, job-runner path). Same change-detector failure mode the issue removed from ci-fixtures.test.mjs -- they trip when the workflow is edited, not when it is wrong, and the remaining overhaul tasks are all edits. The script/config assertions in those tests stay. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
JSON cannot carry a real comment and the "//" convention reads as an accident in review; the Jest self-reference invariant stays documented by the mapping itself. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The main ruleset (PRs required, strict up-to-date checks, zero bypass actors) is the authorization that every main SHA passed the fast set; the sha256-pinned tarball chain remains the only runtime verification. ADR 0010 amended to record the move. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The gh run list gate that enforced it was deleted; the main ruleset's required pull-request checks now carry that guarantee. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Owner
Author
|
No changeset needed |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Removed the release workflow's same-commit polling of the
CIandDocumentationworkflow results. Themainruleset now provides the fast-check guarantee, while the release workflow retains exact tarball verification before publication. Updated the release documentation and ADR to describe the revised authorization boundary.Verification
yarn typecheck,yarn lint, and the relevant tests.yarn docs:buildwhen documentation or public API changed.Release surface