Skip to content

feat: complete native Capture producer contracts - #82

Draft
abrichr wants to merge 3 commits into
mainfrom
codex/capture-geometry-identity
Draft

feat: complete native Capture producer contracts#82
abrichr wants to merge 3 commits into
mainfrom
codex/capture-geometry-identity

Conversation

@abrichr

@abrichr abrichr commented Aug 20, 2026

Copy link
Copy Markdown
Member

Outcome

This change completes the Capture producer contract for native recording across Windows, macOS, and native X11 Linux.

  • keeps one fixed encoded viewport while a recorded window moves, resizes, or crosses monitors
  • binds each pointer and keyboard action to one exact ScreenEvent, WindowEvent, and geometry generation
  • detects process replacement, recycled window handles, mixed frame geometry, stale action geometry, and display-topology changes
  • adds native X11 EWMH window capture and fails closed on Wayland until a stable portal can provide the same identity contract
  • adds macOS Accessibility and modern GI AT-SPI structural observers beside the existing Windows UIA observer
  • exposes strict public v2 window-event models and preserves exact bindings through processed actions
  • removes static Experimental, Beta, and Development Status metadata; the signed production admission ledger owns release selection
  • keeps the repository Chrome extension as an excluded, repository-only prototype; Flow Playwright remains the supported browser recorder

Verification

  • 476 passed, 10 skipped with the exact hosted CI test command on macOS
  • 474 passed, 2 skipped, 10 deselected for the combined non-slow suite
  • 76 passed, 2 skipped for focused geometry and processing tests
  • 20 passed, 1 skipped for focused structural tests
  • Ruff passed for every changed Python file
  • wheel and sdist built and passed the release archive verifier
  • both archives contain the X11, macOS AX, and Linux AT-SPI producer modules
  • both archives exclude the browser bridge and Chrome extension
  • wheel metadata exposes the Linux extra and contains no Development Status classifier

Release boundary

This PR does not publish a release or change an active admission. Interactive Linux, macOS, and Windows hardware qualification and exact Flow consumer admission must complete before the signed ledger selects these bytes.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant