[W5b] #1433 Player build: fix magenta occluder shader + wire CombatSurfaceClient live#1435
Conversation
…urfaceClient live - Commit WorldOS/OccluderDepth as a build-included .shader asset (was runtime ShaderUtil CreateShaderAsset -> stripped from the player build -> magenta occluder cubes). paint_combat_v1 prefers the committed shader (runtime fallback keeps the editor capture flow byte-identical). - CombatSurfaceClient: resolve actors by Actor_<token.id> registry naming (was stale HeroFighter/ MonsterGoblin lookups); cell<->world mirrors paint_combat_v1 (grid from surface, cell 2.0, row-flip); click -> POST /move with the existing kinds only (move_to_cell / on-turn attack), payloads byte-exact to qa/drive_gfx_combat.py. Attached to M1CombatV1_canonical via the W5bWireScene migration MenuItem. - Evidence in qa/evidence/1433/ (build report + shader-inclusion log + before-magenta smoke frame). Refs #1322, PR #1430, PR #1432.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 50 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (6)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Closes the two gaps between the running
WorldOSPlayer.app(#1322 / PR #1432) and the T3 gate. Box work on GEX44 (claim → release on #1322).1) Magenta blocks = stripped runtime occluder shader
Occluder_*depth-proxy cubes inM1CombatV1_canonical.unityusedWorldOS/OccluderDepth, created AT RUNTIME bypaint_combat_v1.csviaShaderUtil.CreateShaderAssetand serialized inline → not compiled into a standalone player build → pink error shader = magenta (fine in-editor, only breaks the player). Pipeline is built-in RP (Standard/Unlit/*were never the issue).Assets/OccluderDepth.shader(source byte-for-byte the runtime string —ColorMask 0, depth-only); reassign the scene's occluder material to the committed asset (nowm_Shader guid: 8c8c25e6…, type: 3); add it to Always-Included Shaders;paint_combat_v1now prefersShader.Find(runtime fallback keeps captures byte-identical).Importing … Assets/OccluderDepth.shader (ShaderImporter)+Compiling shader "WorldOS/OccluderDepth"+Serialized binary data. Build Succeeded, 0 errors, Universal (x64ARM64), 158.4 MB. (qa/evidence/1433/.)2) CombatSurfaceClient wired live
M1CombatV1_canonical(was unattached, W5a-flagged). Runtime-only → editor captures unaffected.GameObject.Find("Actor_" + token.id)(currentActor_char_<hash>registry naming) — replaces the staleHeroFighter/MonsterGoblinlookups.paint_combat_v1exactly (grid from surface, cell 2.0, row-flip) — was the stale 14×10/cell-5 math. Bounds-centered on the cell → no jump on first poll;_AO/_Core/_Ringfollow./move, existing kinds only (move_to_cell/ on-turnattack), payloads byte-exact toqa/drive_gfx_combat.py. Pure consumer; engine = sole writer. ReadsWORLDOS_ENGINE_BASE_URL/WORLDOS_CAMPAIGN_ID(feat(macos): W5 player-build launch handoff (#1322) #1430).Guard rails
Additive.
paint_combat_v1capture flow preserved (shader fallback + runtime-only client).W5bWireSceneis an#if UNITY_EDITORmigration MenuItem (excluded from the player assembly).Delivery / T3
Rebuilt
.appscp'd to the Mac at~/worldos-session-notes/w5a-build/WorldOSPlayer.app.zip(overwrite). T3 gate run is NOT this lane — the orchestrator smoke-tests the built player locally first (macOS build can't run on the Linux box). Remaining for T3: live-loop smoke against a running engine (verify no magenta + click-to-move round-trips), and that combat foe tokens have a matchingActor_*in the static scene (runtime spawn is a separate future item — the player build can only reposition pre-placed actors).Refs #1322, PR #1430, PR #1432. Admin-merge per #1389 when CI is green.