GPU Engine UV Texture Bindings Preparation - barocss/barocss GitHub Wiki
Owner Execute GPU; existing parent #1184 / #660. Status PLANNED and priority-checkpointed: #1508 native ff2934dd/receipt6106934096 is actually adopted at1ce68ccd; root audit6107037818. #1512 is now highest-priority implementation; this exact joint service remains prepared, not available. This page proposes the next CPU composition stage, not an available binding API. Current accepted fixed catalog and numeric Material controls are separate; #1508 declares an authoring alias and produces trusted text, without a resource join. No GL prerequisite is asserted for future CPU implementation.
Reuse actual prepareEngineTextureBindings for complete scene/catalog admission, original scene/texture identity, mutable derived upload bytes and inherited budgets. Reuse #1508 complete-source validator and public lowering only after adoption. Existing numeric Material binders reject its distinct IR8/profile; they cannot be repurposed by casts. No new registry, sampler algorithm, evaluator, renderer, cache, backend or editor is proposed. All-state sampler title search finds only #1508 and texture search finds existing #1184; deepen that owned scope rather than create a duplicate card.
prepareEngineUVTextureMaterialBindings(sceneInput:unknown, textureInput:unknown, materialInput:unknown):PreparedEngineUVTextureMaterialBindings.
New material companion exact4: format barocss-gpu-engine-uv-texture-material-bindings, version0, sceneId, bindings. Each of zero..8 bindings has exact3 materialId/material/uniforms; material is original complete-source EngineUVTextureMaterialIR. IDs refer to the admitted scene and its existing materials. Do not infer texture IDs from alias names.
Proposed prepared exact8: scene, textureBindings, materialBindings, resolvedBindings, loweredBindings, samplerBindings, textures, pixelBytes. Resolve the single declared name from reconstructed source and textureId from the texture companion entry with the SAME materialId. Each sampler binding has exact4 materialId/name/textureId/glslName; glslName is mat_s_0, not a device unit. Freeze exact resolved/lowered entry shapes and exported type names before code.
Selected preparation decision: require an actual texture binding for every authored material, including an unused declared alias. #1508 retains declared sampler layout; this is an explicit stricter new composition contract, not existing renderer behavior. Admit hidden and unused entries fully. Empty authored bindings remain valid. Two differently named material-local aliases may explicitly share one existing texture ID.
Proposed precedence: bounded new companion/header/IDs and array length before enumeration; entry headers and aggregate source/uniform limits; own-data snapshots; per entry actual material validation once, safe uniform resolution and public lowering once; actual texture provider once including its scene; cross-scene/material/texture references; complete candidate output. Validator plus lower means TWO source reconstructions per entry, at most16; no private trusted shortcut. Reuse returned provider scene instead of calling a second scene/catalog preparer.
Preserve original source and supplied numeric signs separately from normalized/defaulted values. Supplied overrides must be ordinary own finite records, at most16, known and inside declaration bounds. Reject unsafe __proto__ including declared defaults; resolve safely with own entries/Object.fromEntries, canonical resolved zero+0. No caller mutation/freezing/cache/partial publication. Permit explicitly documented internal provider texture references; outputs from separate calls and mutable Uint8/F32 buffers remain independent. Do not recursively freeze/copy the whole prepared result: inherited typed views remain mutable derived execution data.
UV stays dimensionless; geometry stays existing right-handed-y-up scene units. Preserve original pixel bottom-left order and scene/material/texture IDs, with no native parameter/frame conversion. Proposed material limits: entries8, aggregate source64KiB UTF16+UTF8, declared/supplied uniform totals128 each, per-entry own snapshot8192/depth24 and compiler work256/depth16. Inherit textures8/bindings32/dimensions1..1024/aggregate4,194,304 pixel slots. Proposed material-companion JSON2MiB and aggregate lowered-material JSON1MiB; a small whole-result JSON ceiling cannot apply to inherited geometry/pixel payloads. Set exact text/copy totals and guard ordering before READY.
Proposed dedicated bounded error codes INPUT/VERSION/BUDGET/REFERENCE/UNIFORM/MATERIAL/TEXTURE/SCENE. Local refusals have no fabricated cause. Actual material provider errors retain their diagnostic/error chains. Actual texture provider errors retain EngineTextureBindingsError; preserve SCENE/BUDGET/REFERENCE, otherwise map TEXTURE. Narrow fresh raw reflection wrappers retain exact cause; local guards outside catches. Freeze exact messages/spans/reflection/precedence and the complete error/type names before implementation.
Proposed four paths: new packages/barocss-gpu/src/engine-uv-texture-material-bindings.ts, additive index, README, new owned example. Existing #1184 catalog/renderer/example paths and #1508 compiler/helper remain immutable. Root owns core and final evidence; scoped helpers can own additive docs/barrel and the new qualifier. Sole Integration serial adoption remains separate from native qualification.
After exact contract and actual #1508 adoption: affected GPU build, ONE source/emitted/API/original-file/cold flow with two materials/instances, distinct aliases sharing one original2x2 texture, defaults/overrides, independently expected alias-to-material-to-texture mapping/layout, unused-alias missing-binding refusal, same-ID source/pixel replacement, original signs and independent buffers, retained refused inputs and genuine complete-source/catalog cold reconstruction. No old producer qualifier or broad parent campaign.
Native CPU source/catalog composition -> serial adoption -> actual consumer -> actual WebGL program/upload/frame/pixels/update/rollback/loss/dispose -> publication. No sampled RGB, shader link, allocation, pixels, UI, GPU precision, current Root or publication is claimed by preparation. Before READY still required: actual #1508 adoption, exact exported DTO/type/error names, resolved/lowered entry fields, aggregate copies/text caps and error/reflection precedence. Pending graphics/Physics/Viewer/Shell do not block this bounded CPU contract preparation.
Still PLANNED pending its before-code implementation claim after the #1512 priority checkpoint. Actual #1508 adoption is confirmed in the dated receipt below. Exact proposed runtime exports: prepareEngineUVTextureMaterialBindings, EngineUVTextureMaterialBindingsError, EngineUVTextureMaterialBindingsDiagnosticCode. Exact proposed types: EngineUVTextureMaterialBindingV0, EngineUVTextureMaterialBindingsV0, EngineUVTextureMaterialSamplerBinding, PreparedEngineUVTextureMaterialBindings and the same DiagnosticCode alias. Existing public unions/binders/compiler/private helper/renderer remain unchanged.
Exact resolved wrapper: {materialId, binding:{material:EngineUVTextureMaterialIR, uniforms:Record<string,number>}}; lowered wrapper {materialId, lowered:LoweredEngineUVTextureMaterial}. Original entry remains exact3 materialId/material/uniforms; companion exact4; prepared exact8 previously listed. Sampler mapping exact4 materialId/name/textureId/glslName. Returned provider scene/textures/pixelBytes are reused, not re-admitted or recursively frozen through typed views.
Uniform policy selected for this new service: ordinary own record, at most16 keys, ASCII identifier1..32 and finite Number values. Local UNIFORM for unknown overrides or declaration-range violations. Refuse own override or reconstructed declared __proto__, including omitted default; safe own constructor/prototype/toString are permitted only if genuinely declared. Use Object.fromEntries and own-name membership, declaration-order defaults, resolved zero+0; preserve original supplied override signs in materialBindings. No old binder behavior changes.
Complete sequence: exact companion/version/sceneId and length<=8 before key enumeration -> entry headers/source UTF16+UTF8 totals/declaration+override cardinalities -> per-entry own snapshots/raw uniform name/value checks -> one actual material validation, declared/default resolution and one public lowering per entry -> one actual prepareEngineTextureBindings (one complete scene admission) -> cross-companion scene IDs, unique/existing material IDs and mandatory material-to-texture reference -> complete frozen ordinary candidate. Every hidden/unused entry is admitted. Empty authored bindings valid. Two reconstructions/entry, maximum16; no trusted prepared shortcut or cache.
Allocation limitation is explicit: inherited texture provider allocates admitted Uint8 CPU buffers BEFORE outer joint-reference checks. A refused candidate is unpublished CPU data, without live handles or previous-result mutation. Do not claim that every joint-reference refusal precedes all typed allocation.
Exact proposed authored caps: entries8, aggregate original source65536 UTF16 units AND UTF8 bytes, declared and supplied uniform totals128 each, per-entry snapshot8192 values/depth24/arrays256/record16 keys; original material companion JSON2097152 UTF16+UTF8; aggregate lowered-entry JSON1048576 UTF16+UTF8. Existing compiler work256/depth16/text caps and catalog/geometry limits remain inherited. These new defensive aggregate ceilings require honest executed or unforced receipts; never impose them on complete inherited pixel/geometry output.
Error contract: exact code map INPUT/VERSION/BUDGET/REFERENCE/UNIFORM/MATERIAL/TEXTURE/SCENE; bounded prefix/message1024. Local errors no cause; own reflective operations narrowly caught into FRESH INPUT with exact own cause including branded errors/undefined, local shape/work guards outside catch. Material provider direct BUDGET maps BUDGET, otherwise MATERIAL; retain actual error/cause/diagnostic chain. Texture provider SCENE/BUDGET/REFERENCE retain classification, otherwise TEXTURE; retain actual provider error/cause. No invented source offsets. New-leaf own-data reflection guarantees do not rewrite inherited provider internals.
Pending before implementation: preserve confirmed adopted1508 parent/fullpath receipt6107037818; claim the exact four isolated paths and complete before-code Issue/Wiki freeze; choose fresh evidence folder and final ONE source/API/file/cold qualifier inputs. Root owns new leaf/final evidence, helper owns additive index/docs, another helper owns new qualifier, independent review read-only. Existing protected claims stay in place. No new permanent Work or Planner assignment gate.
#1508 is actually adopted at1ce68ccd528df49d8fddd62ad2b499e3f520379c; root five-path audit receipt6107037818. New composition control at this accepted parent used296 exact fixed source inputs: existing texture preparation admits16 bytes for one2x2 original texture and authored sampler compile/lower works; old numeric binder refuses the distinct texture IR with INPUT, proposed new binder is absent. Manual host composition is possible; the narrow gap is a bounded joint alias/material/catalog service. New private existing-composition-control.json records FIRST exit0; no GL/pixel claim or old producer replay. Clean isolated binding worktree exists with no product changes. Detailed contract is preserved PLANNED, not available implementation. Latest owner highest priority is actual WebGPU #1512; binding code is checkpointed pending that selected vertical, not blocked by unrelated Viewer/Physics/Shell.
This dated selection supersedes the PLANNED checkpoint above. #1512 native source is now immutable at 3d71662edf9f24a62fe4e87cddc18cd2a2dc0b3d / receipt6107226372; actual GPU verification remains blocked by the current original-target browser policy denial. Continue this independent CPU task using accepted #1508 parent 1ce68ccd528df49d8fddd62ad2b499e3f520379c. No graphics dependency is invented. Existing composition control FIRST 0 / 296 fixed inputs remains the gap evidence; manual host composition is possible.
The exact proposed APIs, DTOs, uniform policy, admission order, copies, caps and provider error mappings in Detailed contract decisions above are now FROZEN. Correction of historical abbreviated catalog descriptions: existing texture companion has exact FIVE fields format/version/sceneId/textures/bindings; 4,194,304 slots are BYTE channels (1,048,576 texels), not pixels. New authored companion remains exact FOUR fields. Scene identity is provider.scene.scene.id; material membership is provider.scene.scene.materials[].id, never shaderId. Mandatory sampler reference uses the actual texture binding materialId; aliases never imply resource identity. Returned resolved material uses validated reconstructed source; materialBindings retains independently snapshotted original entry and supplied -0, resolved values normalize zero to +0. All ordinary owned metadata is frozen; inherited typed execution buffers remain mutable and separately owned across calls.
Exact ownership and paths: Root alone writes packages/barocss-gpu/src/engine-uv-texture-material-bindings.ts; helper A alone writes additive packages/barocss-gpu/src/index.ts and packages/barocss-gpu/README.md; helper C alone writes examples/gpu-scene/engine-uv-texture-material-bindings-flow.mjs; helper B reviews read-only. These FOUR paths only. Clean worktree /Users/user/.barocss-ai/v3/wt/gpu-engine-uv-texture-bindings at the full accepted parent above. Existing compiler, numeric binders, texture catalog, renderer, root/lock/static/policy and other claims stay immutable. Native implementation is not adoption, consumer qualification or publication.
Exact runtime exports THREE: prepareEngineUVTextureMaterialBindings, EngineUVTextureMaterialBindingsError, EngineUVTextureMaterialBindingsDiagnosticCode. Exact type exports FIVE include the same merged DiagnosticCode type plus EngineUVTextureMaterialBindingV0, EngineUVTextureMaterialBindingsV0, EngineUVTextureMaterialSamplerBinding, PreparedEngineUVTextureMaterialBindings. New error prefix Engine UV texture material bindings: ; message bounded 1024; no invented source spans. New-leaf raw reflective operations produce a fresh INPUT wrapper with an OWN exact cause even undefined or branded error. Local validation errors have no cause; provider errors carry the actual error. All guards stay outside raw reflection catches. No promise is added to old provider internals.
Per-entry defensive snapshot counts the exact three-field entry: 8192 visited values, depth24, arrays256, records16 fields, string65536 units. Companion aggregate original JSON cap 2097152 units AND UTF8 bytes; lowered wrappers aggregate1048576 units AND bytes. Source aggregate65536 units AND UTF8 bytes before snapshots/provider calls; declared and supplied uniforms128 each,16 per entry,8 entries. Strict dense enumerable own arrays/data records, no getters/symbols/hidden fields/cycles. Size serialization occurs only on admitted snapshots or trusted compiler text. Declared/default and supplied proto always UNIFORM; supplied identifiers ASCII1..32, finite Number, own declared membership and inclusive original ranges. Constructor/prototype/toString only if actually declared. Header structural violations INPUT; format/version mismatch VERSION; cardinality/work/text violations BUDGET; provider mapping as above. No cache or partial output. Texture provider allocates CPU uploads before outer joint references; no universal preallocation refusal claim.
ONE acceptance gate: affected GPU build, then this new source/emitted/API/original-file/genuine cold flow. Two materials and instances, distinct aliases sharing one original opaque 2x2 image, defaults/overrides and expected layout/reference mapping; same-ID source and pixel replacement; copied originals/signed zero and independent buffers; unused alias still requires actual binding; complete original-source/catalog files and fresh process reconstruction; structural/work/reflection/provider/reference/uniform refusals preserve previous originals/files. Save original inputs, not prepared buffers or GLSL as authority. Sampling RGB/program/upload/frame/pixel/rollback/loss/dispose/UI remain UNRUN. One bounded source flow is required; no broad campaign or old producer replay.
Stage order: native CPU implementation + affected build + ONE new actual source/API/file/cold receipt -> immutable handoff once -> sole serial adoption -> actual dependent consumer -> actual graphics gates -> publication under separate authority. #1184 remains open for missing graphics gates. No duplicate card or new Planner assignment is needed.
Final source-pinned native receipt6107425742: accepted1ce68ccd528df49d8fddd62ad2b499e3f520379c -> clean cf710216c7b3dda9d807fb7c61678b412c98c649, exactly two immutable commits/four claimed files/532 additions. Initial code fd0af33c/6107373759 and source-custody correction6107393981 remain historical. First affected build0, static uniform repairs/latest build0; first flow1 was a frozen compiler-IR fixture edit, signed fixture repair1 passed. Post-receipt graph audit found live Integration CAD imports omitted by a prefix-only audit; qualifier/README child explicitly pins local accepted CAD and audits all normalized package paths. Source-pinned build FIRST0; same required ONE flow repair2 exit0,297 graph inputs/295 exact fixed provider byte inputs,12 admissions76 refusals/getters0/reflections12/budget enumeration0/statefulReads4/151 exports/five types/10 genuine cold rows. Final result141793B SHA290515403461a34af83163af139cdbda7704f2d95c85309bcb40bd5f6ffef32b. No shared links/manifest/lock/provider source change, old producer replay, broad maximum campaign or history rewrite. Native manifest immutable-handoff-source-pinned.json; adoption and actual consumer remain separate. #1184 stays open for graphics.
Original complete-source IR and signed supplied overrides retain independent authority; source reconstruction plus public lowering twice per entry resolves safe own finite uniforms and exact alias/materialId/textureId joins. Actual inherited scene/catalog provider is called once; original frozen ordinary metadata versus mutable F32/index/Uint8 execution views remain distinct. CPU allocation precedes outer references; no live handles or universal preallocation refusal promise. Valid final2MiB/1MiB/8192-value saturation/direct material-providerBUDGET remain unforced. SampledRGB/upload/program/pixels/lifetime/UI/publication UNRUN.
Next same-card deliverable: authored texture renderer. Actual immutable fixed-tint facade61d68692 exposes mountTexturedEngineScene(canvas,scene,texture,options), rebuilds fixed sourceTexture/unit0 programs and has no authored material companion/layout/source-expression input. #1512 first WebGPU profile is native Surface/legacy material and explicitly excludes genericEngine/EngineUV/texture; neither profile silently gains the other. Existing capability is preserved, not retagged. Detailed private review only, no old provider gate replay.
Before READY code: select distinct atomic scene+texture+authored companion renderer/frame API and original getters/save contract; select typed EngineUV/sample WGSL profile (never caller GLSL translation); freeze vertex/normal/UV/index/camera/depth and standard sampled-sRGB decode versus historical literal gamma2.2 and explicit output transfer; freeze unused/optimized-away sampler and numeric location handling; freeze program/texture sharing/candidate-plus-accepted resource budgets/errors/cleanup/update/refusal/loss/disposal and startup fallback. Source alias differs from textureID and device unit; prepared buffers/GLSL/same-ID caches are not original authority. Actual new CPU join code adoption is a provider gate; current prepared service is native available, not yet confirmed adopted.
ONE future actual acceptance: distinct local aliases/materials share midrange opaque2x2 resource; original sample/literal mix and complete source/catalog files, predeclared UV-quarter pixel windows/color tolerance, actual layout/program/upload/shared textures and numeric/source/pixel edits, camera/depth and unused alias, genuine late candidate failure/accepted frame retention/cleanup/live console, explicit same-scene WebGPU vs WebGL2 fallback and cold original-source rebuild. Current restored supported browser still requires original-server/device admission. Graphics/consumer/publication stages stay separate; no additional duplicate card. Immediate priority returns to #1512 actual browser after its real owner restoration evidence.
Four-path audit6107511867: actual d24e465ad208d300a49a57c8e4d91c51311a9003 / parent0390792e, two new native files exact and full adoption-parent README/index prefixes plus exact native suffixes preserved. Merged; integration validation pending. No Root build/producer replay/shared WIP writes. No graphics/consumer/publication inferred.
Before-code 6107546662 / GPU-EngineUV-Texture-WGSL-Selected-Contract selects one concrete source-only typed EngineUV sample WGSL leaf on actual d24e465a. Existing control nine fixed source inputs: texture source/GLSL admits, legacy WGSL refusesIR; first private metafile-cwd failures retained, explicit absWorkingDir repair2 exit0. Exact four disjoint owned paths, additive runtime/type, exact10 result/12 sampler layout/64-byte slots, group0binding1 material plus group1texture0/sampler1, local dimensionless material_uv, explicit level0/clampedUV/standard sampled sRGB decode and unchanged F64 literal gamma2.2/V. Combined text64KiB/result2MiB/256 nodes16depth, existing errors/causes/original frozen copies and ONE source/emitted/full-original-file/cold flow frozen. Root core/final evidence, three bounded helpers; no duplicate Issue/new Work/assignment gate.
Renderer remains PLANNED: atomic three originals/frame/getters, generic vertex/UV/index/camera/depth/output transfer, live layout/program/upload/sharing/budgets/candidate retention/loss/fallback/cleanup and actual graphics acceptance remain missing. Native source lowerer is READY; actual pipeline/device sampling is UNRUN. Root1512 policy denied after human restoration; original temporary server now listening for owner manual use, not permission or GPU qualification.
#1184 receipt6107636556 / GPU-EngineUV-Texture-WGSL-Native-Receipt: clean actuald24e465ad208d300a49a57c8e4d91c51311a9003 -> SINGLE f7c31c3a77009c998f5aa592aec01d343ecdc8c9, exact4frozenpaths/352add0del. Additive one runtime/type, exact10 original-source WGSL result/12sampler layout/64B and typedlevel0/piecewise sRGB unchangedV/literalcoefficients; legacy1512/profile/providers unchanged. FIRST scopedtsc0/aliasedesbuild0/syntax0/ONEsource-emitted-file-cold0,302graph/ALL300unchangedproviderbytepins;14admit22refuse/getters0/reflections4/157exports(oneadded)/oneTYPE/ONEfreshNode22child12coldrows. Result119785B SHA4feee5cde743a2e15d8c66cc22078ab69244e030e72e246d54beaf28a0a086d8. Private existingcontrol cwd first1/repair1 then explicitabsWorkingDir repair2=0 before code; no productgatefailure/repair. Unforcedcombined64KiB/result2MiB/defensive256nodes16depth and valid-sourcef32overflow remain. Shader-module/pipeline/upload/sample/pixel/frame/outputtransfer/consumer/publication remainUNRUN. No implicit1512generictexture union, #1184OPEN.
Immediate useful owned continuation maps actualEngineScene11/originalsceneunits/separate draw-geometry-materialIDs/visiblefiltering and originalworld16/normal9 matrices versusF32views. A future WGSLmat3 cannot silently use rawcontiguous9float normal upload; actualmatrixorder/padding must freeze. Reuse adoptedjoin's oneSceneprovider and originalthreecompanions, originalfirstrowv=0/unchangedV/unormdecode. Atomicframe/getters/save, mixedauthored-unlitprofile/vertexUVindex/camera-depth/outputtransfer, sharing/accepted-plus-candidatecaps/errors/refusal-retention/loss/fallback/disposal and ONEUV-quarter transformedinstance/device/file flow remainPLANNED. Newprivate next-engine-texture-frame-map.md deepens existingrenderer decisions; no speculativecard/duplicate/new Work.
Root adoption audit6107736885 checks actual adopted1616443f67e8601069f448d8e49f391316a998f1/parent91e6b7c9f13c98b8b688802f3dcee3784cb3400f. ALL FOUR nativef7c31c3a paths reconciled: two exact new files and complete adoption-parent index/README prefixes plus exact native additive suffixes. Native immutable handoff was delivered once. Shared Render/kiosk WIP retained; no Root build/producer flow replay/product writes. Typed source/layout available, integration validation pending1254/674; generic EngineUV module/pipeline/upload/device/pixels/frame/lifetime/consumer/publication remainUNRUN,1184OPEN.
Separate 1512 human6107700919 now proves bounded nativeSurface WebGPU and explicitWebGL2 ready/visible frame and trusted physical qualifiedhit/backgroundclear. This supersedes only those formerlyunrun nativeSurface stages. It does not qualify genericEngine textures or Root automatic browser access. Next human step6107737014 predeclares source-derived center139±2/background13,18,26±2 for unchanged originals/amount.75/defaultlight/256square, followed by actual invalid-frame retention; pending owner JSON. No automatic access workaround/unchanged target retry.
Three helpers separately prepared atomic-original-frame shape, matrix/vertex ABI and one new existing-composition control; Root owns actual adoption/resource/error/availability decisions. Nine relevant source files are byte-pinned at1616443f, corresponding live inspected bytes equal. Existing CPUjoin already atomically admits original scene+texture+material inputs and host can compose the result. A six-field envelope alone is not a demonstrated unique capability; do not implement one until a concrete consumer/file or generic renderer boundary needs it. No new speculative Issue.
The current adopted GPU barrel/source does NOT expose mountTexturedEngineScene; isolated oldfixedtint61d68692 is native reference, not an adopted provider. It cannot be used as an available generic authored fallback.1512 uses a different nativeSurface/legacyMaterial profile and cannot admit genericEngine/UV/texture. First future generic required-WebGPU route must explicitly leave generic fallback unsupported unless an actually compatible authoredWebGL2 provider is separately adopted; keep1512defaults unchanged.
Minimum original envelope proposal EXACT SIX: format barocss-gpu-engine-uv-texture-frame/version0/profile scene0-opaque-engine-uv-texture-frame-v0/scene/textureBindings/materialBindings. Minimum prepared wrapper EXACT FIVE: format barocss-gpu-prepared-engine-uv-texture-frame/version0/profile/frame/prepared. Exact names remain proposals. Capture outer six fields by own data descriptors, then reuse ONE existing join; build originals from its independently frozen outputs. No second scene/catalog provider, duplicate deep catalog copy, caller-prepared shortcut, kernel or same-ID cache. Signed original overrides/source/pixel bytes remain distinct from resolved+0 and mutable derived Uint8/F32/index buffers. No live getters/generation/transaction promise is provided by such an envelope. Whole-file budget and empty/subset/material policy require a consuming contract.
Exact actual matrix convention is column-major, world=parentWorldlocalSRT, translation12..14, normals are original inverse-transpose3x3 column order. Scene geometry/camera/translations already use right-handedY-up SCENE units; do not reapply nativeMM conversion. UV is original dimensionless, unchangedV/firstcatalogrowv0, no nativeSurface-domain retag. Proposed frame128B view0/projection64 atgroup0binding0; adopted material64B remainsgroup0binding1; texture/samplergroup1bindings0/1; proposed draw128B atgroup2binding0 world0/normal64/baseColor112, normal columns stride16 with zeros atF32slots19/23/27. This needs THREE bind groups, not1512one-group limit. Separate position/normal/UV slots0/1/2,locations0/1/2,strides12/12/8; preserveU16/U32indexcounts. ProposedGLclip-to-WebGPU conversion once (clip.z+clip.w).5, unchanged dimensionless UV; no actual device ABI validation follows. Identity output is not selected by this proposal and must freeze before any generic picking claim.
A standalone scene-matrix preparer would re-admit the scene if later combined with the join. The consuming frame stage should instead pack from the single returned join and actualprepareCamera. One typedWGSLlowering/material after inheritedjoin means THREE source reconstructions/entry,max24 for8; retain existingGLSL as a distinct observation. Proposed additionalcamera/drawuniforms128+128*visibleDraws<=4224B; dimensions1..1024/product1048576; originalprovider caps16geometries/32materials/64nodes/32meshesincludinghidden/depth16/524288vertexwork/11534336uniquegeometrybytes/8textures/32references/4194304bytechannels remain. Source/material budgets remain64KiB/128uniforms/2MiBoriginalcompanion/1MiBloweredGLSL. FinalaggregateWGSL/program/uniform caps still need freeze; do not impose a small2MiBJSON cap on completegeometry/pixels.
Keep original frozen metadata sharing within one preparedresult explicit; derived views mutable/independent across calls. Declaredunused aliases still require original texture references/layout. Select exact authored-versus-unboundunlit admission and baseColor policy, opaque output transfer (sampledstandarddecode versus literalgamma2.2), complete trusted shader container and identity ABI before code. Upload unchanged rows to unormview to avoid hardware+manual doubledecode,nearest/clamp/level0 only. CPU source strings/packing cannot qualify sampling or interpolation.
Accepted+candidate residency must charge both geometry/texture/uniform/color/depth/identity sets and layout/pipeline/group/temporarymap counts. Dynamic uniform-offset alignment needs actualselecteddevice limit. Texture row pitch belongs to selectedcopyoperation, not adapterlimit;1512 uses fixed256-byte copyTextureToBuffer readback pitch. Select uploadoperation/padding separately. Exact resource caps/errors/cause retention/serialupdate/latefailurerecovery/loss/disposal/getters/save and output transfer remainPLANNED; no borrowed1512generic runtime promise.
ONE future source/API/file acceptance should use two materialaliases sharing original2x2texture, parentdiag2/3/4 and translation[1,-0,2], independently expected world vertices/matrices/paddednormalcolumns/numeric slots and UV ownership, same-IDsource/pixel/camera changes and genuinefreshNodeoriginal-file reconstruction. Independentnormalcontrol [0,-1/sqrt2,1/sqrt2] becomes[0,-.8,.6] after inverse-transpose/normalize; full originals and prior files remain after actual refusals. ONE later actual transformedinstance/UV-quarter device flow must predeclare pixels/outputtransfer/tolerance, actualshader/pipeline/upload/sharing,updates/refusal-retention/file/save/lifetime/liveconsole. Missingconsumer+shader/frame/runtime choices, not unrelatedViewer/Physics/Shell, prevent marking a redundant frame wrapper READY.
FIRST private control at exact adopted1616443f: exit0, no repair/retry. A fixed Git archive in private temporary storage and explicit localCADalias/absolute buildcwd byte-pinned ALL306 actual package inputs. Two source compiles, ONE actual CPUjoin, two typedWGSLlowerings, one camera preparation, one actual genericScene refusal from existing1512primitive preparer (INPUT). Two transformed draws share one original2x2texture and one geometry; independently declared world/normal matrices and padded normal columns match. Manualcamera128B/draw128B/material64B plus geometry140B/texture16B total668 logical upload bytes. Originalsource/units/UV/signs remain intact. This proves existing host composition; no GPU allocation/sample/compiledshader/layout/pixels or selectedpublicABI.
Private next-engine-texture-frame-control.json is81204B, SHA2565097d9ee155210d3cdebdb29698d47eb6042fd09f9b19ac59aa82f4f78539960. Rerun the adjacent private.mjs with Node22 to a fresh output path as documented; no product provider changes or oldqualifierreplay. The concrete remaining gap is the trusted generic vertex/fragment container plus selected atomic upload/target/identity/outputtransfer/runtime seam. An envelope alone is not selected as implementation. Nextcode must freeze this minimum seam rather than invent a wrapper or assume an adopted fallback. Genericdevice/consumer/publication remainUNRUN.
READY source implementation, PLANNED device/runtime. Actual adopted provider1616443f67e8601069f448d8e49f391316a998f1 / native f7c31c3a, adoption audit6107736885 and NEW existing host composition6107793817. Duplicate search EngineUV WGSL finds existing1184/1508/1512 only. Existing lowerer emits declarations+expression but no entrypoints, vertex pipeline or identity/output transfer; nativeSurface1512 has no UV and refuses EngineScene. Manual composition is possible, but the library owns reconstruction of its authored source and the trusted complete program ABI. This task supplies that one missing source boundary, not a redundant original envelope or runtime.
Owned isolated branch codex/gpu-engineuv-texture-program from exact1616443f. EXACT FOUR paths: new packages/barocss-gpu/src/engine-uv-texture-program-wgsl.ts; additive src/index.ts and README.md; new examples/gpu-scene/engine-uv-texture-program-flow.mjs. No provider/kernel/root/lock/manifest/shared Integration writes. Root owns leaf/final evidence, helper owns example only, helper owns additive index/README only. Preserve others' edits. No new permanent Work or Issue; #1184 stays open.
Public runtime lowerEngineUVTextureProgramWGSL(input:unknown):LoweredEngineUVTextureProgramWGSL and one type. Accept original EngineUVTextureMaterialIR only, never caller lowered text/module or callback. ONE existing lowerEngineUVTextureMaterialWGSL call, hence ONE original source reconstruction. Inherited compiler/profile/source/IR/budgets/errors remain. Existing GLSL/numericWGSL/typedWGSL/join/public exports remain unchanged.
Output EXACT NINE keys: format='barocss-gpu-engine-uv-texture-program-wgsl';version=0;profile='engine-opaque-unlit-uv-texture-program-wgsl-v0';lowered (complete existing lowerer output/original material);code (one complete module);entryPoints EXACT TWO {vertex:'engine_uv_vertex',fragment:'engine_uv_fragment'};vertexLayout TWO EXACT SIX rows {slot,location,stride,format,semantic,stepMode};abi EXACT SEVEN {frame,material,draw,clipDepth,uvTransform,outputTransfer,identity};targets TWO EXACT THREE rows {location,format,blend}. Formats fixed target0 rgba8unorm, target1 r32uint; blend=false. Source receipt metadata, not a GPU descriptor or created resource.
Vertex: position float32x3/slot0/location0/stride12, UV float32x2/slot1/location1/stride8; stepMode='vertex'. Original local scene positions/right-handed Y-up/scene units; world/view/projection column-major. No nativeMM conversion, Surface-domain normalization or V flip. world * vec4(position,1), projection * view * world; builtin position=(clip.xy,(clip.z+clip.w)*0.5,clip.w), depth conversion ONCE. Perspective UV varying location0 unchanged; no normal, light, base tint or unbound unlit substitution. Authored output is the opaque unlit linear color. A future lit profile is separate.
Frame ABI EXACT SIX {group:0,binding:0,byteLength:128,viewByteOffset:0,projectionByteOffset:64,matrixOrder:'column-major'}. Material EXACT THREE {group:0,binding:1,byteLength:64}; reuse existing lowerer slots/default/sign/f32 policy. Texture/sampler group1 bindings0/1 and exact existing samplerLayout; nearest/clamp/level0, unchanged source rows to unorm view plus ONE existing standard sampled sRGB decode. Draw EXACT SIX {group:2,binding:0,byteLength:80,worldByteOffset:0,identityByteOffset:64,matrixOrder:'column-major'}: mat4x4 world64 + vec4 identity16. Three bind groups required in future runtime. No instance matrix/normal packing helper/API selected here.
abi.clipDepth='gl-to-webgpu-z-half';uvTransform='none';outputTransfer='linear-to-srgb-piecewise'. Fragment local material_uv=input.uv, evaluates existing trusted clamped expression, then clamped linear->sRGB: <=0.0031308 low12.92x, else1.055pow(x,1/2.4)-0.055; alpha1. Do not insert legacy displaygamma2.2 or tint/lighting, and no hardware sRGB texture doubledecode. identity EXACT FIVE {location:1,format:'r32uint',zeroMeaning:'background',min:1,max:4294967295}; fragment writes draw.identity.x exactly, no float varying/ordinal/shaderId. Future runtime must allocate/map nonzero token to actual sceneId/nodeId/geometryId and clear target0 reserved; source generator does not validate host tokens or implement picking.
All ordinary result data recursively frozen; fresh independent lowerer result/metadata per call, immutable strings; no caller aliases, handles, caches or mutable typed views. Original F64/source/UV/IDs remain nested authoritative; derived code/ABI is separate. Complete module<=65536 UTF16 units AND UTF8 bytes, complete signed result<=2097152 units AND bytes counted before freeze without joining whole JSON; no partial result. Existing lowerer errors/cause chains pass unchanged; only new MeshMaterialError BUDGET for module/result caps (bounded message<=1024/start=end0/no fabricated cause). Inherited execution f32 underflow/overflow and visitor256/depth16 remain. No new IR/result union or version expansion.
ONE acceptance: actual source and direct emitted public providers, focused two aliases/same shaderId/different sources with sample+mix/uniform and unused declared sampler. Save full original scene/catalog/CSS/overrides plus observed complete code/ABI; real fresh Node22 child reopens original file, recompiles CSS and calls new generator (never trusts saved IR/code). Independently assert exact nine/ABI/entrypoint keys, position+UV/no-normal conventions, matrix order/depth once, output transfer constants/order, no V flip/double decode, uint identity/direct host mapping contract, inherited original signs and immutable/cross-call copy isolation. Focus original rejected source/forged IR/prelowered text/getter/raw reflection cause/f32 underflow; retain accepted file. Full source graph explicit localCADalias and ALL unchanged package bytes pinned to161; no prior qualifier replay. Root affected scoped tsc/browser-esm-es2022 esbuild, ONE new actual source/API/file/cold flow with first failures/repairs preserved.
Native text/API/file -> immutable handoff once -> sole Integration adoption -> future actual device shader-module/pipeline/geometry/texture/frame/quarter-pixels/selection/update/refusal-retention/file/fallback/loss/cleanup -> actual consumer -> authorized publication. Module validation, interpolation, sampled/output pixels, token mapping, device caps/alignment/uploads/accepted+candidate resources/lifecycle/fallback are UNRUN here. Generic fallback remains UNSUPPORTED absent actual compatible adopted provider. #1512 manual ready/select/clear stays real; pending pixel JSON and Root policy denial stay separate. No browser bypass, old native replay, release or broad campaigns.
Native receipt6107947012: clean actual adopted1616443f -> SINGLE clean native00fce5591fec7357bad4530668657356235cf496, exact4 frozen GPU/example paths349add0del. FIRST scoped tsc/browser-esm-es2022 esbuild-localCAD/syntax/ONE new source-directemitted-originalfile-cold all0;6adm20ref/getters0/reflections4/158exports retaining157/one newtype/307 package inputs305 unchanged bytepins. ONE freshNode22child81920 with6rows. Full original scene/catalog/CSS/overrides retained; source rebuilt in fresh child and savedIR/code are observations. Result105849B SHA16656fe3523e18afa4a1349092bb78b4d8e3954374b31c6ebfda77aecf29d84b. No productgate failure/repair.
New lowerEngineUVTextureProgramWGSL exact9 frozen result; complete trusted authored UNLIT module, position+UV/no-normal-light-tint, frame128/material64/draw80/THREEgroups, unchangedV/once clipdepth conversion/standard encode/direct u32 identity/rgba8unorm+r32uint. Original authority and prior profiles intact; module64KiB/signed result2MiB caps selected but valid-source saturation unforced. Actual WGSL module/device/pipeline/bindings/uploads/frame/pixels/identity map/generic runtime/lifetime/consumer/publication UNRUN. Native handoff delivered once sole Integration; actual adoption pending, no feature merge. #1184OPEN. WebGPU-first remains highest priority; no duplicate Issue or generic fallback invented.
PLANNED after complete source-native00fce559 / parent1616443f / receipt6107947012. Native build/source-file/cold gate is complete; actual sole Integration program adoption is pending. This updates the actual next same-card need, not a new Issue or claimed renderer. Root owns isolated GPU runtime; Integration alone adopts. No Viewer/Physics/Shell prerequisite is invented.
The newly selected program differs from historical normal-lit matrix proposal: position slot0+UV slot1 only, no normal/tint/light; frame128/material64/draw80; THREE groups; direct uint identity attachment and standard output encoding. Future first renderer admits one original EngineScene0 + original texture catalog0 + original authored companion0 atomically through ONE actual join. Every visible draw must have an authored material binding; otherwise explicit REFERENCE refusal before canvas/device. Empty visible draw set must remain genuine empty, while hidden and unused originals still undergo provider admission. Original unlit stock tint remains saved authority but is not multiplied into the authored result. An unbound-unlit or lit union needs a separately selected profile.
Token map must be newly owned per accepted candidate, tokens1..visibleDrawCount in actual prepared draw order, zero reserved background; map exact sceneId/nodeId/geometryId/materialId (shaderId and sampler aliases are not geometry identity). Device target is r32uint, draw token packed as Uint32/DataView setUint32 littleEndian=true at byte64 in80-byte record; reserved remaining uint slots+0. Never write tokens through Float32Array. Matrices copied column-major from one actual provider and prepareCamera; no transform reimplementation or normal padding.
Before runtime READY, freeze API/options/dimensions/DTOs/error/queue/canvas/handle ownership, atomic current/candidate metadata, complete file originals, exact background linear-to-sRGB clear policy, accepted and candidate resource accounting, startup/loss/late shader-error/retention/map cleanup, caller getters and ONE actual source/device/file flow. Initial WebGPU REQUIRED; generic fallback explicitly UNSUPPORTED. Preserve #1512 nativeSurface WebGL2/auto and its active manual original-target server/tab. Do not reuse permitted native profile as generic texture fallback.
Resource plan: unique geometry buffers per admitted resource, unchanged localUV and U16/U32 indices/count; index upload4-byte padding separately charged. One rgba8unorm texture per original catalog entry, unchanged first rowv0/nearest/clamp/level0, no hardware-sRGB decode. Program per complete admitted source/code, never shaderId-only cache. Numeric buffers64 per authored material, camera128, draw80 per visible mesh; per-buffer allocation avoids unnecessary dynamic-offset alignment. Actual device limits still required for texture dimensions/buffer bytes/groups/attachments/formats. Selected upload operation owns bytesPerRow padding; it is not an adapter limit.
For proposed dims1..1024/pixels1048576, logical offscreen color+depth+identity is12 bytes/pixel (up to12582912B per candidate). Account aligned actual buffers, all unique geometry/texture/uniform resources, both accepted+candidate attachments/programs/bindgroups and separately bounded mapped readback/staging scratch before device mutation. These are planning arithmetic, not allocated-driver memory measurements or selected aggregate budget. Future code freeze must choose a concrete full total cap compatible with inherited11534336B geometry and4194304B pixel channels and retain exact first budget failures.
ONE future actual gate: full original scene/catalog/CSS/overrides saved and reopened; two transformed instances share one2x2 opaque texture and distinct sampler aliases/materialIDs; independent authored quarter colors after exactly one decode+selected mix+one encode predeclared before readback; visible uint-token physical hits/background zero, same-ID replacement and numeric update, invalid source/frame keeps prior original metadata/generation/pixels, resize and dispose. Exact actual module/pipeline/upload/program errors, live console and supported original target must be recorded. Native source/code/CPU packing and prepared UI do not qualify it. Device loss/startup failure/refusal retention remain distinct. Current #1512 pending manual JSON should be completed before replacing its owned pinned assets/server; automatic target policy remains unavailable.
#1184 source-native00fce559 immutable handoff was delivered ONCE to sole Integration; tool acceptance is saved in program-handoff-delivery.json, recipient read/adoption are not inferred. Actual program adoption remains pending at this check. Root continued concrete owned next-runtime preparation; detailed maintained Wiki ownedfdffd9d/published65f732f and private next-engine-texture-unlit-runtime-preparation.md now distinguish selected unlit position+UV/draw80/u32 ABI from historical proposed normal-lit draw128. One original scene/catalog/authored join, required authored bindings for visible meshes, source-ID-qualified token map and Uint32 little-endian packing, resource uniqueness/full accepted+candidate charges and future ONE UV-quarter source/device/file flow are prepared. API/error/queue/canvas/device total caps/clear/retention/loss/cleanup still require exact selection before runtime code. No generic fallback, shader-module/frame/pixels or Integration availability is invented.
Editorial precision correction to the earlier freeze6107848179 wording: identity is attachment location1/r32uint, cleared to0u for background; color is attachment location0/rgba8unorm. The earlier phrase “clear target0 reserved” meant token0, not color attachment0. Actual source/code/ABI/README/flow have always used identity location1 and unchanged nonzero-token metadata. No implementation or acceptance repair was needed. Original freeze/handoff history remains preserved.
Current first nativeSurface1512 server and human tab remain intact while its manual pixel/refusal downloaded JSON is pending. Same-target automatic policy denial remains separate; no browser/tool/origin/port/HTTP workaround. WebGPU-first execution is explicitly in the roadmap and existing1512/1184; no duplicate Issue/Planner notice/new permanent Work/model/schedule/publication change.
READY dependency: sole Integration adopted complete program00fce559 at87b2ad3f9a7bcb40d391a61e3764c39f57c63242, receipt6107997442. Root audited exact four adopted blobs against actual adoption parent88e5d437 and native parent1616443f; no replay. Shared render package/kiosk WIP is preserved. Existing1184 owns this stage; no duplicate Issue. WebGPU-first remains the execution priority. Generic fallback is UNSUPPORTED.
GPU owns isolated clean parent87b2ad3f and branchcodex/gpu-engineuv-webgpu-runtime. EXACT SIX paths: new packages/barocss-gpu/src/engine-uv-webgpu-frame.ts, new packages/barocss-gpu/src/engine-uv-webgpu-viewport.ts, additive private packages/barocss-gpu/src/webgpu-platform.ts (createSampler/queue.writeTexture only), additive packages/barocss-gpu/src/index.ts and README.md, new examples/gpu-scene/engine-uv-webgpu-runtime-flow.mjs. Root owns CPU admission/error/public types/final evidence; B owns actual device leaf/private structural additions; A owns additive barrel/README; C owns ONE new qualifier. They are not alone and must preserve each other's edits. No shared checkout/root/lock/policy, existing renderer/provider rewrites or permanent Work.
mountEngineUVTextureWebGPUViewport(canvas,sceneInput,textureInput,materialInput,optionsInput):Promise. Inputs unknown and original only. Options EXACT own enumerable plain Object.prototype data {width,height}; integer1..1024, product<=1048576. Accessors/symbols/extra keys refused without getter execution; raw reflective failures keep exact own cause even undefined. Dimension range =>BUDGET, structure/type=>INPUT. Admit options then ONE original authored join synchronously before first await. All hidden/unused originals are admitted; each visible draw must have authored material binding or REFERENCE refusal. Empty visible set is valid. No injected platform/device, shader text or prepared-data shortcut.
Viewport fields: canvas; originals getter EXACT {scene,textureBindings,materialBindings}, fresh deep-frozen ordinary copies each read including signed zero; selected getter copied frozen EngineUVWebGPURef|null; status getter copied frozen EngineUVWebGPUStatus. Ref EXACT {sceneId,nodeId,geometryId}, ASCII identifiers1..64. Status EXACT {backend:'webgpu',profile:'engine-opaque-unlit-uv-texture-program-wgsl-v0',state:'ready'|'lost'|'failed'|'disposed',generation,width,height,limits,resources}; limits snapshot13 required actual numbers; resources frozen logical ledger below. No GPU handles or mutable packed arrays escape.
Methods updateFrame(scene,texture,material):Promise; resize(width,height):Promise; readPixels():Promise; pick(x,y):Promise<{generation,ref:EngineUVWebGPURef|null}>; select(ref|null):UpdateResult; dispose():void. UpdateResult is existing success/error union; update/resize/select refusals return it; mount/read/pick reject EngineUVWebGPUError. Pixel x/y integer in current backing store, top-left; outside=>INPUT. No pointer listener: host converts canvas CSS coordinates and calls actual pick/select. Selected refs must match an accepted visible draw exactly; null clears. Retain selection only when exact source ref remains visible after commit. Mount generation1; successful update/resize increments once; reads/picks/select do not. One pending operation; all mutable/read operations refuse BUSY. External backing-size change=>STATE; lost/failed/disposed=>STATE. No fallback/remount switch.
Public exports runtime mount + EngineUVWebGPUError + EngineUVWebGPUDiagnosticCode value/type and types EngineUVTextureWebGPUViewport,EngineUVWebGPUOptions,EngineUVWebGPUOriginals,EngineUVWebGPURef,EngineUVWebGPUStatus,EngineUVWebGPUResources. Private CPU prepare/pack helpers are NOT public barrel exports. Diagnostic constants INPUT,VERSION,BUDGET,REFERENCE,UNIFORM,MATERIAL,TEXTURE,SCENE,CAMERA,REPRESENTATION,UNSUPPORTED,INIT,DEVICE_LOST,RENDER,STATE,BUSY. Error detail static/bounded1024; explicit optional cause tuple preserves exact raw cause. Actual join code/cause passes into wrapper; program RANGE=>REPRESENTATION/BUDGET=>BUDGET/other=>MATERIAL; camera=>CAMERA. Local guards cause-free.
Use adopted complete source lowering once per authored entry after ONE join: inherited two reconstructions+one program reconstruction, <=24 complete source calls across8 entries. Never caller WGSL or shaderId cache. Frame128(view0/projection64), numeric material64(group0binding1), draw80(world0/u32 identity64) and THREE bind groups, position slot0/stride12 + UV slot1/stride8. Column-major original right-handed Y-up/scene units, exactly existing camera/world F32 matrices, program's ONE GL depth-half conversion, no normal/tint/light/native-mm or V remap. Matrices/numerics explicitly little-endian DataView F32, draw identity explicit setUint32 true, trailing3 uint lanes0. Numeric coefficients must remain finite/nonzero asF32; original source/F64/overrides/-0 stay saved authority, resolved runtime zero follows actual provider.
Token1..visibleDrawCount in admitted draw order; identity attachmentlocation1/r32uint clear0u, token0background; private map source sceneId/nodeId/geometryId and materialId. No float identity or geometry-only map. Material/source/sampler/shader IDs remain distinct. All admitted unique geometries/textures/authored materials allocated even unused; only visible meshes have draw buffers. Within candidate share exact original geometryId/textureId; per-material complete pipeline, no cross-generation cache. Three layouts and one pipeline layout device-owned; one fixed nearest/clamp sampler device-owned. Buffer/texture destroy; pipeline/module/group/sampler refs released.
Unchanged texture rows (firstv0), bytes rgba8 srgb into rgba8unorm view, queue.writeTexture bytesPerRow4*width (no256 upload padding), nearest clamp level0, program explicit decode. Authored linear result and original linear background standard piecewise sRGB encode once; alpha1. No legacygamma2.2, stock tint or lighting. Fixed pipeline triangle-list/no cull/no blend/depth24plus/write/less/sample1; color rgba8unorm + identity r32uint. Explicit canvas rgba8unorm/opaque/srgb/COPY_DST|RENDER_ATTACHMENT, same-format offscreen presentation copy; never RGBA->BGRA raw copy or second output transfer. Actual support of configuration remains unrun until device flow.
Inherited16geometry/32materials/64nodes/32mesh inclhidden/depth16/524288vertexwork/11534336geometryCPUbytes;8textures/32bindings/4194304bytechannels;8authored/16uniformeach/128total/source64KiB. Complete shader text<=64KiB each and512KiB aggregate UTF16+UTF8. Unique position+UV+index buffers index bytes rounded4 without source count/type change. Frame128+material64M+draw80D. Source imagebytes<=4194304. Ledger EXACT {geometryBytes,textureBytes,uniformBytes,colorIdentityBytes,depthTexels,depthBudgetBytes,chargedBytes,readbackBytes,buffers,textures,bindGroups,pipelines}. colorIdentityBytes8WH;depthTexelsWH;depthBudgetBytes4WH is CONSERVATIVE ACCOUNTING CHARGE, not measured depth24plus storage/driver memory. chargedBytes=sum four byte categories+depthBudgetBytes<=33554432. Full old+candidate+max(old/new padded readback) <=67108864 before device mutation. readbackBytes=ceil(4W/256)256H<=4194304. Buffers3G+1+M+D<=89;texturesT+3<=11;groups2M+D<=48;pipelinesM<=8. Driver objects/overhead/browser swap/physical memory UNMEASURED. CopyTextureToBuffer readback fixed256pitch; tight owned RGBA top-left output; pick256scratch littleEndianU32, unknown nonzero=>RENDER. No borrowed views.
Required13 actual finitepositive integer limits: maxTextureDimension2D,maxBufferSize,maxUniformBufferBindingSize,maxColorAttachments,maxColorAttachmentBytesPerSample,maxVertexBuffers,maxVertexAttributes,maxBindGroups,maxVertexBufferArrayStride,maxSampledTexturesPerShaderStage,maxSamplersPerShaderStage,maxUniformBuffersPerShaderStage,maxBindingsPerBindGroup. Minimums actual candidate largest dimensions/buffer/readback,128uniform,2attachments/8samplebytes,2vertexbuffers/attributes,3groups/12stride,1sampledtexture/sampler,2uniforms/stage,2bindings/group. Recheck each new candidate; no assumed dynamic uniform alignment.
Actual adapter/device/modules compilation/pipelines/upload/queue/map await under10s bounded waits and validation/internal/out-of-memory scopes. Timeout terminalfailed, invalidate operationepoch, cleanup late handles; late callbacks cannot commit. device.lost terminallost and owns cleanup preserving CPU originals. Dispose disposed before cleanup, invalidate pendingepoch, unmap/destroy buffers/textures/device/unconfigurecontext once and drop refs. Candidate upload/render offscreen, sameformatpresent, queue/scopecomplete then atomic originals/resources/map/size/generation commit. Any early failure releases candidate and preserves accepted. On late presentation failure, restore oldsize+acceptedpresentation when healthy; failure torestore=>terminalfailed preserving actual causes. No unhandled late scope/promise/cleanup errors.
Affected scopedtsc + browser/esm/es2022 esbuild with explicit accepted localCAD alias; pin every unchanged input byte against87b2ad3f. ONE NEW qualifier source/privateCPU-preflight/direct emitted public API refusal/full-original-file/genuine freshNode22 child. Independent numerical/identity/resource/originals/refusal checks; no fakeGPU/DOM or repeated old program gate. Source gate establishes staging/runtime implementation and immutable delta ONLY. Actual generic module/device/pipeline/frame/quarterpixels/pick/update/retention/loss/browser/liveconsole/consumer/fallback remain UNRUN and1184OPEN, tracked as next actual same-target stage. Native1512 manualready/selectclear does not qualify1184; pending original proof JSON/server/tab preserved, automatic access policy denied, no retry/bypass/alternateorigin/port/tool. No public codec/schema/profile/version change, broad campaign, merge/productpush/PR/publication/release.
Issue freeze receipt: https://github.com/barocss/barocss/issues/1184#issuecomment-6108069699
WebGPU-first native completion6108291826: clean adopted87b2ad3f9a7bcb40d391a61e3764c39f57c63242 -> finalc576e04594733f529f75d029916aa0e06b525b19, preserving initialecad4733 plus repairc576e045. SIX frozen owned GPU/example paths,932additions0deletions; Root+three disjoint helpers. Before-code6108069699 remains the exact API/source/frame/identity/resource/error/lifecycle contract. Public mount/viewport implements required WebGPU, trusted complete authored programs, original scene/texture/material authority, position+UV, frame128/numeric64/draw80, rgba8unorm plus r32uint, candidate updates, source-qualified pick/select, tight readback and explicit lifecycle. Private CPU helper is not a public prepared-input shortcut; namespace161 preserves158 existing names. Generic fallback is UNSUPPORTED.
First tsc0/esbuild0/syntax0/ONEsource-file-cold0 were followed by custodyaudit1: ONLY viewport leaf differed between build and ordinary source flow. Unknown reverting actor and Root shell continuation committingecad4733 are preserved in failure6108237212. No first-source acceptance inference or history rewrite. Repair restores phase-specific post-await dimensions/epochs, STATE-before-BUSY, native canvas wrapping and cleanup-failure causes, addressing source finding6108216754. Final viewport32192B/SHA256f7f82b55c0c145f1935954327acb39eb2f1299b7560044acf8449e0a0531cdc1.
Repair1 tsc0/esbuild0/SAME ONEsource-privateCPU-publicRefusal-originalFile-cold0/custodyaudit0;309 inputpaths match finalbuild/flow and306 fixedproviders match87b2. All6committedbytes match manifest. Fiveadmissions18intentionalrefusals/getters0/reflections2/DOMreads0/161exports; onefreshNode22child in repairattempt PID46434/PPID46112/eightrows. Independent numeric/identity/resource/copy/file/cold checks; no fakeGPU/DOM or oldgate replay. Result106428B/SHA2568c8e77eb405d5cabb309c9234c0f566e2f73e0ad14c2c0b4a9741f5f43af01a8. Exact blobs/twoattempts/gates in private immutable-handoff-runtime.json.
Native runtime implementation and CPU/source/public-refusal/file/cold qualification COMPLETE. Integration adoption PENDING until its own receipt. Actual device13limits/module/pipeline/upload/render/UVpixels/physical generic selection/update/retention/loss/cleanup/screen/console/consumers/publication UNRUN;1184OPEN. Valid32MiB/64MiB/512KiB ceilings unforced; depth4B charge is not physical depth storage measurement. Manual nativeSurface1512 evidence does not qualify this generic renderer.
Immediate owned continuation stays in1184: reconcile final saved originals against independent proposed UV-quarter oracle; freeze exact original fixture hashes/window projections/output tolerance/identity/update/refusal/file/disposal sequence before actual execution. Original52215server/user tab/manualJSON and automatic policy denial remain preserved. No retry/bypass/alternatebrowser/tool/origin/port. Source-generation assessment found no newly justified READY grammar need; broader vector/noise/index/body proposals remainPLANNED pending concrete controls/contracts and actualduplicate checks. Unrelated Viewer/Physics/Shell are not execution gates. No duplicate Issue/Planner wake/permanentWork/model/cadence/productpush/PR/publication.
Native completion6108291826 and immutable handoff6108309902 are preserved. Tool delivery to sole Integration was accepted; read/adoption is not inferred. GPU immediately continued owned preparation, with a disjoint read-only helper reconciling exact saved originals and independent projection/color arithmetic. No device, browser, HTTP, build or native gate replay occurred.
Select the final repair1 shared_transformed_originals files and two complete CSS sources, backing320x240, not the historical proposed256 fixture. Original SHA256 pins: scene c148b7873d5d68e24c6bc28e1ca9a7a1ebbedd061a770237d8854018557d6c1b; catalog c84b6fd0c3e99abecdd8d965735c66f9b59d41ed4df5a2c2d066c1fad2a9ec7b; material input b3b4d79f8ab729a2bb0357a424a8f7c17aed5331e2df23fc28dc2caaf9b9fff9; original authoring d1caf899737b06be4c20e4f60801430a95dd39eea9f55cdf4f554ff5894e8dfc; CSS0 5bcb88ab08f7e878e22abd9c16b95dbb53b679d560f2577e7de24f80f2f0790f; CSS1 8682f51bd46e383d8bfae461e62a3dcc328f105ea3268cd4dc0ddf0cbbc8f4db. Reconstruct actual material IR from complete original source; saved private staging or caller WGSL is not authority.
Camera eye[0,0,6]/FOV45/near.01/far100, original scene units/RH Y-up. left_instance is physically RIGHT: translation[1.25,-.5,.25], scale[2,.5,1], source mix(sample(image,uv_u,uv_v),#204080,amount), defaultamount.25. right_instance is physically LEFT: translation[-1.25,.5,-.25], scale[.5,2,1], aliasalbedo/#80C040/default.5 but supplied−0 resolves0. Both share exact quad and2x2 original image, same shaderId with different complete sources. Original stock colors do not tint authored output; signed source/UV/override values remain distinct from derived uploads.
Independent projection k=H/(2tan(FOV/2)(6-nodeZ)), x=W/2+kworldX, y=H/2-kworldY. Floor quarter-center projections; invert every pixel center before observation. Eight radius1 windows (bottom-left,bottom-right,top-left,top-right): left_instance [185,154],[260,154],[185,135],[260,135]; right_instance [93,131],[110,131],[93,62],[110,62]. All72 pixel-center inversions are strictly in their intended texels. Predicted left RGBA [57,28,128,255],[169,89,73,255],[14,129,219,255],[198,157,95,255]; right [64,0,128,255],[192,96,32,255],[8,144,240,255],[224,176,80,255]. Background[4,4] radius0 predicts[0,89,124,255]. Root freezes tolerance3 per RGB channel and alpha exactly255 BEFORE readback. Decode image with standard sRGB, use actual historical hex coefficients pow(byte/255,2.2), mix independently, then standard output encode once; no product evaluator/shader emulation oracle. Initial token1 maps left_instance physicallyright, token2 right_instance physicallyleft, token0 background; actual attachment must prove this mapping.
Independent logical ledger: geometry92B,texture16B,uniform416B,colorIdentity614400B,depthTexels76800,depthCharge307200B,charged922124B,readback307200B,buffers8,textures4,bindGroups6,pipelines2. Depth charge is accounting, not physical storage or cleanup measurement.
ONE future ordered actual flow: mount and record real13 limits/module diagnostics/error scopes/screen/live console; read frozen windows; trusted physical canvas clicks for both nodes and background invoke actual pick/select; update left amount.75, shared image bottom-left red64->96, and left literal#204080->#102030 under the same shaderId; resize320x256 with analytically recomputed windows before observation; actual select then hide left node clears selection; preserve all admitted catalogs. Each successful update/resize increments once. Absent texture reference must refuse REFERENCE; original camera.near0 refuses outerSCENE retaining nested actual EngineSceneError CAMERA. Refusals retain exact accepted originals/size/generation/selection/fullRGBA, qualifying input refusal only. Save/reopen complete signed originals/CSS/overrides and remount actual owned canvases; dispose each real reference twice before dropping it. Same-page remount is not fresh-browser proof; late driver failures/loss/physical cleanup remain unrun without real witnesses.
Detailed private selected plan SHA2569805d4e88badc257953507c480327ba9e385b04ca9ddf6dd462bba7b5e21d227; independent fixture reconciliation SHA2561bf237b03036f0b58a94563bed440aae809272b8f785b32b1bf02194e53c0607. These pin PREPARED specification, not runtime results. Execute only after supported original-target policy restoration and server ownership coordination. Preserve #1512 pending owner JSON, original52215 server/user tab and automatic denial; do not repeat the request or try alternate access. Native implementation COMPLETE; code adoption PENDING; actual generic device flow PREPARED/UNRUN. #1184 stays OPEN. No new issue, held consumer wake, shared edit, product push/PR or publication.
Canonical selected preparation: https://github.com/barocss/barocss/issues/1184#issuecomment-6108348385
Sole Integration adopted the exact native87b2ad3f -> c576e045 aggregate at b803640306acf130aeb6274df8ae12d6cda6f8d8, actual parent eccd0e99a337821df25cb83e3a31113f09fd1624. Integration6108371991 and Root audit6108385138 distinguish availability from actual validation. All SIX paths match: FOUR exact native frame/viewport/example/platform blobs; current index and README retain their exact current parent plus exact native suffixes. The final viewport remains32192B/SHA256f7f82b55c0c145f1935954327acb39eb2f1299b7560044acf8449e0a0531cdc1. No feature-head ancestry assumption, audit failure, native gate replay or duplicate handoff. Shared render/kiosk WIP and unrelated providers are preserved.
Stage: merged; integration validation pending. Native source and final CPU/source/public-refusal/file/cold qualification remain complete. Actual merged build/device/modules/pipelines/uploads/render/pixels/physical generic pick/update/retention/loss/cleanup/screen/console/consumers/publication remain UNRUN. Generic fallback is UNSUPPORTED and1184 stays OPEN. First custody failure/unknown actor/shell continuation/repair are retained in the original receipts.
The exact selected320x240 original files, source hashes, independent eight-window oracle, resource accounting and ordered acceptance sequence remain frozen in6108348385. The code dependency is now available at the actual adopted SHA; original-target browser policy restoration and server ownership remain concrete missing gates. Preserve1512 pending manual JSON/server52215/user tab and automatic denial. No alternate browser/tool/origin/port/HTTP retry, repeated owner question, held consumer wake or publication. No new source contract or consumer requirement justifies another grammar card at this checkpoint; completed preparation remains intact.
work_id: 1184 artifact_type: selected_contract status: ready_for_build owner_role: Execute GPU source_request: Parallel implementation of the selected actual WebGPU acceptance example last_updated: 2026-10-11
The adopted runtime b803640306acf130aeb6274df8ae12d6cda6f8d8 is available. The selected actual flow6108348385 currently has original files and an independent oracle but no reusable runnable example implementing its buttons, physical pointer event route, complete original files and downloadable observations. The earlier private1512 Surface UI uses a different runtime/fixture and cannot supply this generic proof. This is a concrete missing execution tool within existing1184, not a new GPU capability or duplicate grammar card. Direct owner requests parallel implementation now; original target policy and pending1512 proof remain preserved.
Clean isolated branch codex/gpu-engineuv-webgpu-proof at /Users/user/.barocss-ai/v3/wt/gpu-engineuv-webgpu-proof from actual adopted b8036403. Exactly FOUR NEW paths under examples/gpu-scene: engine-uv-webgpu-proof-fixture.mjs (Root), engine-uv-webgpu-proof-client.mjs (B), engine-uv-webgpu-proof.mjs (C), engine-uv-webgpu-proof.md (Root). A independently assesses existing source cards and then audits the fixture/runner boundary read-only. No shared package/root/lock/manifest/policy or existing renderer/core/example edits. All workers are not alone and preserve other files. Root owns final evidence. No permanent Work.
No public API/DTO/schema/version/frame/units/profile changes. The example calls actual public compileEngineUVTextureMaterial and mountEngineUVTextureWebGPUViewport/updateFrame/resize/readPixels/pick/select/dispose. Generic fallback remains unsupported. Original F64/signed-zero/CSS/UV/IDs/scene-unit authority and standard texture/output transfer remain as previously frozen. New JSON files are explicitly private example proof envelopes, not a public codec.
Pure fixture exports createEngineUVProofFixture(phase=0) and serializeEngineUVProofOriginals(value). Function returns fresh ordinary {phase,scene,textureBindings,authoredMaterials,options,oracle}. authoredMaterials entries {materialId,source,uniforms}; exact public options {width,height}. oracle {samples,background,identities,tolerance,resources}; sample {nodeId,center:[x,y],radius,rgba}; identity {point:[x,y],ref:null|{sceneId,nodeId,geometryId}}. All original files and initial predictions match6108348385; serialization preserves -0, rejects nonfinite values, has no shared product authority.
Phases0..5: original320x240; left amount.75; additionally bottom-left image red64->96; additionally left source literal#204080->#102030; resize320x256; additionally hideleft_instance. Each derives afresh from exact initial originals. Independently derive windows/colors and logical resources from authored coefficients, not product evaluation or observed pixels. Eight initial radius1 windows and background/tolerance3RGB/alpha255 fixed before observations. Recompute and check every pixel-center UV on resized phases before API readback. Identity after hiding reflects only actual visible source ordering; original IDs remain unchanged. Invalid reference absent_image =>REFERENCE; near0 =>SCENE with nested actual scene CAMERA cause. No prepared frame/WGSL/private CPU import in fixture or client.
Plain DOM controls: initialize required WebGPU, read declared windows, next authored update/resize, hide selected source, refuse inputs and compare complete accepted frame, save complete originals, reopen a real user-selected saved file, dispose each actual viewport twice, download observation receipt. Separate current status, predicted windows and real observed results. Buttons are serialized; failed operations do not advance phase or generation. Initial physical pointer actions must hit both source-qualified refs and background; require event.isTrusted, convert observed DOM rect coordinates to backing pixels, then actual pick/select. Never accept CPU/bounds/programmatic select as physical-click proof. Hiding requires left_instance selected through an actual click.
Complete original material IR is compiled from both complete CSS sources in the browser. On updates compare generation increments and retained originals. Refusals compare fullRGBA bytes, size/generation/selection and original triple. Files store complete signed scene/catalog/CSS/overrides/options/phase; reopen through File.text and real recompilation/mount, label same-page remount honestly. Local source files <=256KiB, downloadable receipt<=4MiB; bounded plain error/console details<=1024 characters each and maximum128 entries per log. No arbitrary imported script/HTML/eval/private prepared shortcut. Actual viewport references remain until double disposal status recorded; no null no-op proof. Physical driver cleanup/loss/lateGPUfailure/fresh browser remain unclaimed.
Build-only manifest is read from ./manifest.json on actual future page; only declared same-origin assets. No external fetch. Preserve live errors/warnings in receipt with clear observed vs native console distinction. actualGPU startsfalse and becomestrue only after real required backend ready; stage-specific pass/fail/UNRUN fields prevent partial evidence being called completion. Receipt holds actual physical events, independent expected samples versus measured bytes, source metadata/generations/pixel digests, typed errors/causes, save/reopen/disposal observations and exact preparation manifest.
Node22 CLI ONLY --output ABS_FRESH --build-only; refuses existing output. It never serves or probes a port, starts a browser or accesses a GPU. Browser/ESM/es2022 bundle uses repository absWorkingDir, actual ordinary GPU source and explicit local CAD source alias. Audit all package source inputs against fixed b8036403 bytes, reject dist/node_modules provider fallback; record example input hashes separately. Output fixed index.html/client.mjs/manifest.json/oracle.json/original-scene.json/original-texture-bindings.json/original-authored-materials.json and two original CSS files. Manifest contains fixedparent/source graph and all asset byte/SHA256 pins, stagePREPARED_ONLY, actualGPUfalse. HTML contains only a module script and client-owned root; no source injection or assertion of runtime pass.
Root runs affected new-example syntax/bundle and ONE fresh offline build/file flow: reopen exact signed originals, compare all initial byte pins with existing saved originals, check all six independently constructed phases/oracle UV windows/resource arithmetic and exact package graph against b803, verify output asset hashes/whitelist and absence of server/browser/device side effects. No package rebuild or old producer correctness campaign. This proves runnable assets/source/file preparation ONLY. Actual same-target device/screen/physical selection/pixels/refusal/file-remount/disposal and integration acceptance stay UNRUN until genuinely executed. Preserve first failures/repairs, exact clean parent/head and immutable handoff once.
Original1512 manual JSON/server52215/user tab and automatic policy denial remain untouched. No browser retry/tool/origin/port/CLI/CDP/proxy workaround. Future serving requires restored actual original-target policy and server ownership coordination. No product merge/push/PR/release/publication, model or cadence change. Existing #1184 remains open; no new Issue/Planner creation notice.
Before-code freeze6108430285 / Wiki9c67b4f. Clean actual adopted parent b803640306acf130aeb6274df8ae12d6cda6f8d8 -> clean native b8d4a5c0a8ea1d2e97d1b091434f494f4f608543, ONE commit and exactly FOUR NEW GPU example paths,597 additions/0 deletions. Root authored fixture/oracle/manual and final evidence; B authored the actual public-API browser client; C authored the offline source builder. A independently assessed current source readiness and checked their boundaries. File ownership was disjoint. Actual Git author/committer easylogic [email protected] and github.com gh easylogic verified.
New examples/gpu-scene paths: engine-uv-webgpu-proof-fixture.mjs, engine-uv-webgpu-proof-client.mjs, engine-uv-webgpu-proof.mjs, engine-uv-webgpu-proof.md. No package exports/API/schema/profile/core/provider/shared root/lock/policy or old example changes. Existing1184 owns this concrete missing executable acceptance tool; no duplicate Issue or permanent Work.
The client implements required WebGPU initialization through the actual public runtime, independent declared-window comparison, trusted physical pointer conversion/pick/select, six authored update/resize/hide phases, wholeRGBA/original/size/generation/selection refusal retention, complete signed source-file save and real file upload/recompile/remount, retained old/new actual viewport references for double disposal, bounded stage-specific downloaded observations. Initialization is not completion. It declares unavailable successful module-message arrays, native browser console, browser asset-hash verification, physical cleanup/loss/late driver failure and fresh-browser proof honestly. No fake GPU, bounds picking or prepared-input authority.
FIRST fixture/runner/client syntax0, FIRST affected new-browser-source bundle/builder0, then ONE offline original-file flow1: Root had wrongly instructed C before the gate to remove the trailing newline, assuming the selected originals had none. Actual canonical scene1148/catalog478 files BOTH end in byte10. Generated scene1147 mismatched the exact selected file pin. The first stderr, manifest/assets and ALL FOUR first source files are preserved under parallel-proof/source.first and build.first. The error was Root's byte-format premise, not a failed GPU/device execution.
C restored its original newline writer. Independent A also found a source-visible button boundary: Next remained enabled at phase3 while its handler admitted only phases<3; B changed only the disabling guard tophase>=3. This is a source finding before any actual browser execution, not an executed UI failure. All changes were confined to the two assigned new files; no history rewrite or old producer gate replay.
Changed runner/client syntax0; SAME ONE flow into fresh build.retry1 passed0, empty stderr. It includes the affected browser/ESM/es2022 source bundle, fixed local CAD alias, ALL311 actual package source-input byte pins against b8036403, four example input hashes and exact nine output assets. Reopened original scene/catalog and both CSS files match all FOUR selected byte/SHA256 pins, preserving original signed zeros. The new embedded source/override envelope has its own hash; it is not mislabelled as the older sourceFile envelope or saved material IR.
Six fresh fixture phases preserve original source authority and independently declared colors/resources. All396 pixel-center inversions remain strictly within intended texels across8/8/8/8/8/4 windows. Initial logical charge922124B; resized983564B; hidden983484B. These are pre-observation arithmetic, not actual pixel or physical memory measurements. Result2008B/SHA256 5e4a8f6b2bd66c5818d0ba8756675cc18c3ab50417a8668f549eb99867a52632; prepared manifest SHA256 45f9feec2b0842d805abdcd2f5ced23e8ec259ce5a67371e232bcc34ce04acac. Final source-custody audit0 checks all311 current provider bytes and all FOUR committed source blobs against the final builder inputs. No optional tests follow this sufficient preparation gate.
Rerun from the frozen checkout with Node22: node examples/gpu-scene/engine-uv-webgpu-proof.mjs --output ABS_FRESH --build-only. This deliberately pins b8036403 providers and refuses changed source graphs; a later currentRoot provider graph needs its own explicit qualification. The CLI has no serving/browser/port option. Full private first/final logs, signed assets, boundary findings, result and immutable hashes are in /Users/user/.barocss-ai/v3/evidence-engine-uv-texture-bindings-gpu/parallel-proof/immutable-handoff.json.
Runnable example implementation and actual offline source/bundle/original-file qualification COMPLETE. Prepared manifest stagePREPARED_ONLY/actualGPUfalse. Integration adoption of these FOUR examples is PENDING. Actual browser/client control execution, adapter/device/renderer/pixels/physical clicks/update/refusal/file remount/disposal/screen/live console/consumer acceptance remain UNRUN. Generic fallback remains UNSUPPORTED and1184 remains OPEN. The earlier runtime nativec576/adoptb803 and its failures/receipts are separate and unchanged.
Original1512 pending manual JSON/server52215/user tab and automatic policy denial remain preserved. No server, browser, HTTP probe, tool/origin/port bypass, repeated owner question, held consumer wake, product merge/push/PR or publication. Immediate owned continuation still requires supported original-target policy restoration and server ownership coordination for the now runnable actual generic flow. Independent live source readiness found no additional justified ready grammar card; existing completed source stages and broader planned grammar contracts are preserved without timer backlog.
Sole Integration adopted native b803640306acf130aeb6274df8ae12d6cda6f8d8 -> b8d4a5c0a8ea1d2e97d1b091434f494f4f608543 at 4d7d4d7b5934d4a60ba1795e39c05ca53eb07582, actual parent97cd2fc33bea302c3649400a1827c2515c925a75. Integration6108621700 and GPU fixed-SHA audit6108633124 establish exact FOUR new paths and byte-identical native blobs, absent from the adoption parent; audit failures0. Earlier PENDING example availability is superseded by this receipt. Stage: merged; integration validation pending.
Native preparation and first failure/repair remain preserved without replay. The builder deliberately pins311 providers at b803; the current Root graph remains UNQUALIFIED and can be refused. Actual generic device/browser/control/render/pixels/physical selection/update/refusal/file-remount/disposal/live console/consumer/publication remain UNRUN. Generic fallback UNSUPPORTED;1184OPEN. Original52215 automatic denial and1512 pending human JSON/server/tab are unchanged. No server/browser/HTTP retry, repeated owner request or immutable handoff resend.
The current thirteen open GPU cards supply no new provider or concrete source-authoring requirement since the parallel readiness assessment. Existing completed1016/1019 stages are preserved,1018 retains its real Shell caller gate, and useful owned preparation is complete. No additional READY implementation or unfinished meaningful preparation is established; no speculative timer Issue or unchanged preparation rewrite follows. WebGPU remains the first backend and the selected actual flow remains the next gate after supported original-target access/server coordination.
Concrete need: example source was adopted6108621700/qualified6108633124, but its CLI can prepare only b803 providers. Current accepted source da57c8c0504079d360ba0fa0a2dffc49c33ed6a2 changes the CAD root and adds exact WorldXYZ membership modules; GPU source is unchanged. Existing source-parent invocation refuses with ERR_ASSERTION before creating output (control exit1 retained). No duplicate standalone task is needed: this is existing #1184 example availability, not a new renderer/compiler capability or a broad currentRoot campaign.
Clean parent da57c8c0504079d360ba0fa0a2dffc49c33ed6a2; isolated /Users/user/.barocss-ai/v3/wt/gpu-proof-source-parent, codex/gpu-proof-source-parent. Only THREE claimed paths: examples/gpu-scene/engine-uv-webgpu-proof.mjs (C), engine-uv-webgpu-proof-client.mjs (B), engine-uv-webgpu-proof.md (Root). Fixture and every package/root/lock/policy/provider path remain unchanged. Helpers preserve peers; Root owns final actual source/file evidence and commit.
Frozen CLI: Node22, exactly --output ABS_FRESH --build-only, optionally followed by --source-parent LOWERCASE_40_HEX_COMMIT. Omission retains b803640306acf130aeb6274df8ae12d6cda6f8d8. Explicit SHA must resolve locally to that exact commit and be an ancestor of checkout HEAD; no branch/tag/abbreviation/unknown/nonancestor reference, fetch, network or server. Before output creation validate arguments and selected commit. ALL actual bundled ordinary GPU/CAD package input bytes must equal that selected committed parent, with existing realpath/no-dist/no-shared-provider checks. No relaxed source custody or automatic current-HEAD inference.
Runner injects compile-time ENGINEUV_PROOF_SOURCE_PARENT into the browser bundle. Client retains the old literal default when no compile-time definition exists and compares only the fixed bundled parent to manifest.parent; no URL, DOM, window, fetched-parent self-trust or runtime source selection. esbuild defines the selected literal; runtime manifest schema/version/fields unchanged. Manifest parent now denotes the explicitly selected qualified source graph. Nine assets and original fixture/CSS/oracle, file receipt formats/version, original F64/signed zeros/UV/IDs/frame/units/ownership/budgets/errors/public package APIs/profile remain unchanged. No new public exports/DTO/schema or renderer support. CLI refusal is the existing Node assertion/error behavior, not a public GPU diagnostic.
ONE new actual source/bundle/original-file flow at the selected da57 baseline: builder prepares fresh nine assets with selected parent; independently verify selected package input pins, fixed unchanged original files, complete-source public compiler admission and public frame preparation, expected manifest/client parent consistency. Same bounded flow also refuses malformed/unknown/nonancestor pins before output creation and source mismatch after preserving partial artifacts, and demonstrates default still selects b803. These are source/API/file observations, never pixels or actual client/GPU execution. Do not replay prior b803 qualifier, device flow, whole-gallery/unit/reader/archive/performance campaigns. Preserve first failures/repairs, clean parent/head and exact results; deliver immutable delta once to sole Integration.
Native new-source preparation, Integration adoption, actual browser/device/client/physical pick/pixels/refusal/file-remount/disposal/live console/consumer/publication are separate stages. The selected new graph becomes qualified ONLY for this source bundle/preparation after the flow passes; later moving Root graphs remain unqualified. #1184/#1512 remain OPEN, original52215 policy denial/manual JSON/server/user tab preserved. No browser/server/HTTP/CDP/alternate tool/target retry or repeated owner action request. Existing unrelated consumer dependencies do not block this scoped example authoring.
Canonical before-code contract: 6108740933.
Native completion6108782471: clean da57c8c0504079d360ba0fa0a2dffc49c33ed6a2 -> 4956a1086be1b17a3ad14a2b835ddf86f5236085, ONE commit, THREE existing example paths, 41 additions / 6 deletions. C runner, B compile-time client anchor, Root guide and final evidence; A bounded contract seam read found no mismatch. No package/API/profile/IR/schema/frame/unit/identity change. Explicit local exact ancestor commit selection preserves default b803 and all committed provider byte checks; the generated client and manifest have the same fixed selected parent.
FIRST syntax/source build0; ONE selected-source/file flow1 at Root's wrong expectation that an unreachable old default literal must disappear. Actual emitted anchor is a constant false conditional selecting da57. First script/stderr445B/build/refusals are preserved; only the private assertion changed. SAME flow resumed from retained artifacts and executed its remaining API tail0, empty stderr; no passed builder/refusal prefix replay or product repair. Selected da57 source preparation qualifies313 inputs, four unchanged original byte pins, nine assets, public compile2/join2 draws/trusted programs2 and unchanged signed originals. Final exact committed source custody0; result1389B/SHA256292335b7c90d7d08f91c03ac829797ed5ce6879e7fde2b12dc5ad463a82b5996; manifest SHA256018d147f38f8b567149d6cd1103c6bcc1ba671c7c1338f8ab9404d1328459962.
Native selected-source preparation COMPLETE; immutable delta delivered once to sole Integration (tool accepted; recipient read/adoption not inferred). New delta adoption PENDING. Later moving Root graphs and actual browser/device/control/render/pixel/physical selection/refusal/file-remount/disposal/live console/consumer/publication remain UNRUN. Generic fallback UNSUPPORTED,1184/1512OPEN. Original52215 automatic denial, pending human JSON/server/assets/tab are preserved; no browser/server/HTTP retry or repeated question. Existing Shell and grammar planning retain actual missing provider gates. Live caller/composition/duplicate assessment found no separately justified READY grammar capability. Continue the existing actual selected flow when supported original-target access/server gates resolve; no speculative Issue, old source qualifier replay or timer backlog.