Skip to content

docs(plan): the raw-handle export change file — approved delta for #1900 - #1904

Merged
tato123 merged 1 commit into
mainfrom
docs/1900-raw-handle-export-change
Aug 22, 2026
Merged

docs(plan): the raw-handle export change file — approved delta for #1900#1904
tato123 merged 1 commit into
mainfrom
docs/1900-raw-handle-export-change

Conversation

@tato123

@tato123 tato123 commented Aug 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

The owner-approved /propose-change artifact for #1900: docs/plan/changes/raw-handle-export-contract.md (142 lines), implementing the spelling half of the merged [raw-handle-export-contract] DECIDED entry. §Packages flips to IN-FLIGHT (→ …, raw-handle-export-contract).

The delta, recon-verified at da1192ba: export_opaque_fd on GpuContextFullAccess returning typed OpaqueFdTextureExport (answered child-locally from checkout state); the export_dma_buf refusal redirect + mirror refusals; two additive JSON registration fields (vk_memory_type_index, exporting_device_uuid) — the image-creation recipe is already on the wire and only needs child-side parsing; tests including #1900's rig round trip and the fd-outlives-teardown probe; one README rot line. No REMOVED bullets, no [NEEDS DECISION]. ADR arm discharged by the existing docs/decisions/raw-handle-export-contract.md.

Closes

Closes nothing — #1900 implements against this change next.

Notes for owner

Approved in-session 2026-08-22 ("Approved"). Merge unblocks /implement 1900; derive-tickets is a no-op — the change maps 1:1 to the existing ticket.



Owner-approved /propose-change artifact implementing the spelling half
of the [raw-handle-export-contract] DECIDED entry: export_opaque_fd on
the Full surface returning typed OpaqueFdTextureExport, the refusal
redirect, two additive surface-share registration fields
(vk_memory_type_index, exporting_device_uuid), child-side parse of the
recipe fields already on the wire, tests incl. the rig round trip and
the fd-outlives-teardown probe. §Packages flipped IN-FLIGHT with the
change. ADR arm discharged by the existing
docs/decisions/raw-handle-export-contract.md.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@tato123, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 34 minutes

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

Wait for the limit to reset, then comment @coderabbitai review or push new commits to the PR.

An organization admin can change what happens after included review limits in Billing.

How do review limits work?

CodeRabbit enforces per-developer PR review limits within each organization.

For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 25efb9c6-cab1-40b6-b561-d7c8aee22ffd

📥 Commits

Reviewing files that changed from the base of the PR and between da1192b and 3a2a492.

📒 Files selected for processing (2)
  • docs/plan/ARCHITECTURE.md
  • docs/plan/changes/raw-handle-export-contract.md

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@tato123
tato123 merged commit 3fc0121 into main Aug 22, 2026
5 checks passed
@tato123
tato123 deleted the docs/1900-raw-handle-export-change branch August 22, 2026 15:18
tato123 added a commit that referenced this pull request Aug 22, 2026
… archive (#1908)

The change maps 1:1 to #1900, closed 2026-08-22 by PR #1905, so the
milestone precondition is one ticket and it is merged. The removal gate has
nothing to verify: the change declares no REMOVED bullets, by design — this
was additive spelling over plan text #1903 had already merged.

The §Packages raw-handle entry is marked SHIPPED. Most of what the change
built was already written there by the align, so the fold adds only the
three contract facts the entry did not state:

- An export is taken from a resolved surface, never from a name. The fd
  reaches a helper at checkout, so an acquired-but-unresolved texture is
  refused telling the caller to resolve its surface id first, and every
  other refusal names the flavour's own door.
- The recipe travels because a raw allocation is consumed as an image. A
  linear buffer mapping over tiled memory yields block-linear bytes, never
  pixels — the reason tiling, usage and the mip/layer/sample counts are on
  the export object rather than being the importer's guess.
- A successful import pins the payload past the exporter destroying the
  texture it came from, which is the useful direction of "the surface-id
  lifetime guarantees end at export".

The OPEN zero-copy-per-frame entry is untouched — it is its own align.

The system diagram gains the helper→packages edge. Neither #1903 nor #1904
drew this contract, so the entry was unrepresented against the plan's own
rule that every DECIDED entry appears in the diagram.

Refs #1900

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
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