Skip to content

fix(ios): make snapshot presentation construction private - #1937

Merged
thymikee merged 1 commit into
mainfrom
codex/1797-enforcement
Aug 21, 2026
Merged

fix(ios): make snapshot presentation construction private#1937
thymikee merged 1 commit into
mainfrom
codex/1797-enforcement

Conversation

@thymikee

Copy link
Copy Markdown
Member

Summary

Related to #1797.

The merged #1930, #1931, and #1933 prerequisites establish backend conformance, effective geometry, and daemon-owned occlusion. This focused slice closes the remaining construction-boundary gap:

  • Moves PresentedNode under SnapshotPresentation.
  • Preserves the existing PresentedNode spelling at the payload boundary with a typealias.
  • Makes all interpretation initializers fileprivate in RunnerTests+SnapshotPresentation.swift, so backend files can carry presentation output but cannot recreate it.

This PR does not touch the #1936 scanner or package-boundary files.

The broader #1797 obligations remain intentionally separate: the cumulative-clip choke and named quality downgrade, deterministic differential fixtures and multidimensional ratchets, nightly live differential wiring, cross-runtime golden conformance, and the visible-depth frontier.

Validation

  • Planted-red compiler proof: a temporary direct PresentedNode(presenting:) call in RunnerTests+PrivateAXPresentation.swift failed the macOS XCTest build at the backend source with the inaccessible-constructor diagnostic; removing that violation restored the build.
  • Unit-enabled direct macOS XCTest build passed after the violation was removed.
  • pnpm check:xctest-selection passed.
  • pnpm check:affected --run passed with exit 0. The pre-existing untracked .codex/environments/ path caused the selector to fail open to the full runnable set; the rerun used process-table access required by the sandbox.
  • pnpm build:xcuitest:macos passed.
  • pnpm build:xcuitest:ios passed.

@github-actions

Copy link
Copy Markdown

Size Report

Metric Base Current Diff
JS raw 2.36 MB 2.36 MB 0 B
JS gzip 790.2 kB 790.2 kB 0 B
npm tarball 908.1 kB 908.3 kB +117 B
npm unpacked 3.15 MB 3.15 MB +556 B

npm unpacked components

Component Base Current Diff
JS / dist source 2.50 MB 2.50 MB 0 B
Apple runner source/project 547.8 kB 548.4 kB +556 B
macOS helper source 54.5 kB 54.5 kB 0 B
Android helper artifacts 0 B 0 B 0 B
Other package files 41.9 kB 41.9 kB 0 B

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 27.6 ms 27.6 ms +0.0 ms
CLI --help 83.0 ms 79.8 ms -3.1 ms

Top changed chunks: no changes in the largest emitted chunks.

Top changed packed files

Packed file Base Current Diff
dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SnapshotPresentation.swift 8.4 kB 10.2 kB +1.9 kB
dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SnapshotPresentationModels.swift 4.3 kB 3.0 kB -1.3 kB

@thymikee thymikee added the ready-for-human Valid work that needs human implementation, judgment, or maintainer merge label Aug 21, 2026
@thymikee

Copy link
Copy Markdown
Member Author

Clean review at d82bd8d. PresentedNode construction is now owned by SnapshotPresentation, while payload encoding and the explicit single-element read paths remain intact. The compiler-boundary proof is non-vacuous, and all required CI plus iOS/macOS/Android/Linux smoke checks are green. Ready for human review.

@thymikee
thymikee marked this pull request as ready for review August 21, 2026 14:51
@thymikee
thymikee merged commit 580bb59 into main Aug 21, 2026
28 checks passed
@thymikee
thymikee deleted the codex/1797-enforcement branch August 21, 2026 14:51
@github-actions

Copy link
Copy Markdown
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-08-21 14:51 UTC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-human Valid work that needs human implementation, judgment, or maintainer merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant