Skip to content

wing: generated-room pipeline HARDENING — lock library, similarity re-registration + err_cells hard gate, honest cycle ledger (0 adopted)#1614

Merged
100yenadmin merged 22 commits into
mainfrom
town-wing-rooms
Jul 16, 2026
Merged

wing: generated-room pipeline HARDENING — lock library, similarity re-registration + err_cells hard gate, honest cycle ledger (0 adopted)#1614
100yenadmin merged 22 commits into
mainfrom
town-wing-rooms

Conversation

@100yenadmin

@100yenadmin 100yenadmin commented Jul 16, 2026

Copy link
Copy Markdown
Member

Final honest shape (owner playtest falsified the original adoptions — this PR now ships the
instrument chain, not the rooms).

The 3-room generated wing ran 6 paint cycles + live client-truth walk gates. Final verdicts:
zero rooms adopted; three instrumented negatives — room_0: local non-affine distortion (east
side holds 126px after the similarity warp fixed everything global to 0.9–18px); room_1: collinear
beacon pair (vertical scale unsolvable) + a Gemini-relocated pillar; room_2: invented sunken
cistern over the east door landing.

What ships (all verified):

  • Prompt-lock library (qa/unified_paint_recipes.json): EXACT-COUNT · ROOM-SHAPE · DOOR-WALL ·
    BRAZIER-PLACEMENT · SINGLE-FLAT-LEVEL — each clause pinned to a measured Gemini failure class.
  • Similarity re-registration (qa/reregister_plate.py + overlay_boxes matched_pairs): full
    2-point similarity (Gemini measurably rotates plates 1–4.75°); correspondence at the fitted
    projection; verified room_0 1.66→0.17 cells at the beacons.
  • paint_room HARD gate moved to solve-based err_cells ≤ 0.35 — recall proven non-gating (a
    draw at 0.6377 recall sat 1.45 cells off); auto-warp then fail-loud.
  • Parametrized dwing sandbox fixture (current-room arg — gating room B from room A's fixture
    silently measures room A; caught live) + the StreamingAssets hot-load runbook amendment
    (box builds are ship-time only, camOrtho-proven).
  • Scorecard episode ledger incl. the owner-falsification row and the two-anchor panel rule.

Generator fix for the next cycle: #1618 (≥3 non-collinear fire beacons per room — solvable in
both axes + residual redundancy that measures relocated-feature distortion; dense beacon fields
also open PIECEWISE local correction, the class room_0's east side needs).

Companion instrument PRs already merged: #1613 (tri-state gate verdicts + fire-mask + provenance),
#1615 (re-registration core), #1611 (focal dressing + dressing bars).

Eva added 11 commits July 16, 2026 12:14
…/1/2)

Layout-matched clauses per the shop/snug lesson: undercroft store (1 door E), vault passage (doors
W+E, clear centre lane), crossroads guard chamber (4 doors, corner stacks). Shared grounding maps
DunGen masses -> crates/barrels/sacks/rubble + STONE PILLARS; torch sconces as the only paint-light.
…(dwing cycle-1 lesson)

Cycle-1 measured a NEW invention class 3/3: the Gemini pass MULTIPLIES authored features (2 pillars
-> 5 painted; 1 doorway -> 5 arches + a portcullis) while the flux base stays geometry-perfect
(base 0.96 -> styled 0.63/0.50/0.59). Locks: shared structure_lock gains an EXACT-COUNT clause;
dwing classes carry strict per-room counts; paint_room now warns LOUD on a >0.15 base->styled recall
drop or styled <0.60 (the queued instrument note, proven by this exact cycle).
… a real walk (schema-skew class, 2026-07-16)
…emini reshaped the 12x7 vault square + moved side doors to the back wall)
…d lighting, counts updated to the focal-dressed geometries
… invited invented altars into altar-less rooms (measured 2/2 in c4); per-room NEGATIVE clause + room_1 strict shape/door-wall/brazier sections restored (c3-proven phrasing)
…om to ship-grade

Panel (blind 5-scorer, control-anchored, WITH shipped-plate calibration references): room_0 c4
Δ−3.0 == CAL_shipped_shop Δ−3.0 under the SAME ruler (the shipped ship-grade bar; the ad-hoc panel
wording reads ~1pt harsher than the established protocol — two-anchor calibration henceforth).
Base recall 0.9694 (focal-dressed geometry conditions BETTER). Artifacts: registered plate + boxes
sidecar (59 boxes, ortho 10.5224) + manifest entry (full camera contract) + geometry registered in
GEOMETRY_OF; static gate GREEN 22/22. Walk gate rides the next sandbox build (plate packaging).
… invented a sunken cistern+stairs-DOWN over the east door landing; the vertical lock only banned UPWARD inventions)
room_1 c5 (the bug-fix rerun): structurally perfect at eyeball (12x7 shape held, west/east side
doors, braziers at their stands, no invented furniture); panel Δ−3.0 == CAL_shipped_shop Δ−3.0 in
the SAME run = the calibrated shipped bar. Artifacts: plate + boxes (47, ortho 7.9970) + manifest
full-contract pin + geometry in GEOMETRY_OF; static gate GREEN 22/22.
room_2: focal-geometry paints failed structure 2/2 (invented altar; then a sunken cistern over the
east door landing — a DOWNWARD invention the upward-only vertical lock missed). SINGLE-FLAT-LEVEL
clause shipped to the shared structure_lock; room parked as the run's honest negative.
@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 37 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 1e7a1893-2fe0-4028-a863-d2385993ed30

📥 Commits

Reviewing files that changed from the base of the PR and between 636d293 and fe665ad.

⛔ Files ignored due to path filters (131)
  • extensions/renderers/unity/plates/dwing_room_0_v1_registered.png is excluded by !**/*.png
  • extensions/renderers/unity/plates/dwing_room_1_v1_registered.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0/dwing_room_0_final_1344.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0/dwing_room_0_flux_s12345.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0/dwing_room_0_flux_s12346.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0/dwing_room_0_flux_s12347.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0/dwing_room_0_styled.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0_c2/dwing_room_0_final_1344.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0_c2/dwing_room_0_flux_s12345.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0_c2/dwing_room_0_flux_s12346.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0_c2/dwing_room_0_flux_s12347.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0_c2/dwing_room_0_styled.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0_c4/dwing_room_0_final_1344.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0_c4/dwing_room_0_flux_s12345.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0_c4/dwing_room_0_flux_s12346.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0_c4/dwing_room_0_flux_s12347.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0_c4/dwing_room_0_styled.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0_c6/dwing_room_0_final_1344.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0_c6/dwing_room_0_flux_s12345.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0_c6/dwing_room_0_flux_s12346.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0_c6/dwing_room_0_flux_s12347.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_0_c6/dwing_room_0_styled.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1/dwing_room_1_final_1344.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1/dwing_room_1_flux_s12345.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1/dwing_room_1_flux_s12346.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1/dwing_room_1_flux_s12347.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1/dwing_room_1_styled.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c2/dwing_room_1_final_1344.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c2/dwing_room_1_flux_s12345.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c2/dwing_room_1_flux_s12346.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c2/dwing_room_1_flux_s12347.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c2/dwing_room_1_styled.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c3/dwing_room_1_final_1344.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c3/dwing_room_1_flux_s12345.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c3/dwing_room_1_flux_s12346.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c3/dwing_room_1_flux_s12347.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c3/dwing_room_1_styled.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c4/dwing_room_1_final_1344.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c4/dwing_room_1_flux_s12345.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c4/dwing_room_1_flux_s12346.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c4/dwing_room_1_flux_s12347.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c4/dwing_room_1_styled.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c5/dwing_room_1_final_1344.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c5/dwing_room_1_flux_s12345.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c5/dwing_room_1_flux_s12346.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c5/dwing_room_1_flux_s12347.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_1_c5/dwing_room_1_styled.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2/dwing_room_2_final_1344.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2/dwing_room_2_flux_s12345.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2/dwing_room_2_flux_s12346.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2/dwing_room_2_flux_s12347.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2/dwing_room_2_styled.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2_c2/dwing_room_2_final_1344.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2_c2/dwing_room_2_flux_s12345.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2_c2/dwing_room_2_flux_s12346.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2_c2/dwing_room_2_flux_s12347.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2_c2/dwing_room_2_styled.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2_c4/dwing_room_2_final_1344.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2_c4/dwing_room_2_flux_s12345.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2_c4/dwing_room_2_flux_s12346.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2_c4/dwing_room_2_flux_s12347.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2_c4/dwing_room_2_styled.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2_c5/dwing_room_2_final_1344.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2_c5/dwing_room_2_flux_s12345.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2_c5/dwing_room_2_flux_s12346.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2_c5/dwing_room_2_flux_s12347.png is excluded by !**/*.png
  • qa/evidence/paint-room/dwing_room_2_c5/dwing_room_2_styled.png is excluded by !**/*.png
  • qa/evidence/paint-room/tavern_snug_c3/overlay.png is excluded by !**/*.png
  • qa/evidence/pipeline/tavern/coherence.log is excluded by !**/*.log
  • qa/evidence/pipeline/tavern/walk/shot_tavern_final.png is excluded by !**/*.png
  • qa/evidence/walk-crypt/crypt/shot_crypt_final.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0-corrected/dwing_room_0/shot_dwing_room_0_final.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0-corrected/dwing_room_0/shot_vis_0_c8r6.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0-corrected/dwing_room_0/shot_vis_1_c6r8.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0-corrected/dwing_room_0/shot_vis_2_c4r9.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0-corrected/dwing_room_0/shot_vis_3_c2r10.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0-corrected/dwing_room_0/shot_vis_4_c2r2.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0-corrected/dwing_room_0/shot_vis_start.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0-sim/dwing_room_0/shot_dwing_room_0_final.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0-sim/dwing_room_0/shot_vis_0_c8r6.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0-sim/dwing_room_0/shot_vis_1_c6r8.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0-sim/dwing_room_0/shot_vis_2_c4r9.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0-sim/dwing_room_0/shot_vis_3_c2r10.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0-sim/dwing_room_0/shot_vis_4_c2r2.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0-sim/dwing_room_0/shot_vis_start.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0/dwing_room_0/shot_dwing_room_0_final.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0/dwing_room_0/shot_vis_0_c8r3.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0/dwing_room_0/shot_vis_1_c3r3.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0/dwing_room_0/shot_vis_2_c2r2.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0/dwing_room_0/shot_vis_3_c4r9.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0/dwing_room_0/shot_vis_4_c6r9.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_0/dwing_room_0/shot_vis_start.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_1-corrected/dwing_room_1/shot_dwing_room_1_final.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_1-corrected/dwing_room_1/shot_vis_0_c8r5.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_1-corrected/dwing_room_1/shot_vis_1_c4r5.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_1-corrected/dwing_room_1/shot_vis_2_c6r3.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_1-corrected/dwing_room_1/shot_vis_3_c2r2.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_1-corrected/dwing_room_1/shot_vis_4_c2r10.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_1-corrected/dwing_room_1/shot_vis_start.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_1/dwing_room_1/shot_dwing_room_1_final.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_1/dwing_room_1/shot_vis_0_c8r3.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_1/dwing_room_1/shot_vis_1_c3r3.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_1/dwing_room_1/shot_vis_2_c2r2.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_1/dwing_room_1/shot_vis_3_c4r9.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_1/dwing_room_1/shot_vis_4_c6r9.png is excluded by !**/*.png
  • qa/evidence/walk-dwing_room_1/dwing_room_1/shot_vis_start.png is excluded by !**/*.png
  • qa/evidence/walk-shop/shop/shot_shop_final.png is excluded by !**/*.png
  • qa/evidence/walk-shop/shop/shot_vis_0_c6r1.png is excluded by !**/*.png
  • qa/evidence/walk-shop/shop/shot_vis_1_c1r1.png is excluded by !**/*.png
  • qa/evidence/walk-shop/shop/shot_vis_2_c2r4.png is excluded by !**/*.png
  • qa/evidence/walk-shop/shop/shot_vis_3_c4r4.png is excluded by !**/*.png
  • qa/evidence/walk-shop/shop/shot_vis_4_c7r8.png is excluded by !**/*.png
  • qa/evidence/walk-shop/shop/shot_vis_5_c9r6.png is excluded by !**/*.png
  • qa/evidence/walk-shop/shop/shot_vis_start.png is excluded by !**/*.png
  • qa/evidence/walk-shop2/shop/shot_shop_final.png is excluded by !**/*.png
  • qa/evidence/walk-shop2/shop/shot_vis_0_c1r1.png is excluded by !**/*.png
  • qa/evidence/walk-shop2/shop/shot_vis_1_c2r4.png is excluded by !**/*.png
  • qa/evidence/walk-shop2/shop/shot_vis_2_c4r4.png is excluded by !**/*.png
  • qa/evidence/walk-shop2/shop/shot_vis_3_c7r8.png is excluded by !**/*.png
  • qa/evidence/walk-shop2/shop/shot_vis_4_c9r6.png is excluded by !**/*.png
  • qa/evidence/walk-shop2/shop/shot_vis_start.png is excluded by !**/*.png
  • qa/evidence/walk-snug/tavern_snug/shot_tavern_snug_final.png is excluded by !**/*.png
  • qa/evidence/walk-snug/tavern_snug/shot_vis_0_c4r3.png is excluded by !**/*.png
  • qa/evidence/walk-snug/tavern_snug/shot_vis_1_c2r3.png is excluded by !**/*.png
  • qa/evidence/walk-snug/tavern_snug/shot_vis_2_c1r3.png is excluded by !**/*.png
  • qa/evidence/walk-snug/tavern_snug/shot_vis_3_c7r1.png is excluded by !**/*.png
  • qa/evidence/walk-snug/tavern_snug/shot_vis_4_c9r1.png is excluded by !**/*.png
  • qa/evidence/walk-snug/tavern_snug/shot_vis_5_c5r8.png is excluded by !**/*.png
  • qa/evidence/walk-snug/tavern_snug/shot_vis_start.png is excluded by !**/*.png
  • qa/evidence/walk-tavern/tavern/shot_tavern_final.png is excluded by !**/*.png
  • qa/evidence/walk-throne/throne_hall/shot_throne_hall_final.png is excluded by !**/*.png
📒 Files selected for processing (88)
  • docs/OPERATIONS.md
  • docs/ROOM-PIPELINE-RUNBOOK.md
  • docs/roadmap/PROCEDURAL-SCORECARD.md
  • extensions/renderers/unity/boxes/dwing_room_0_v1_boxes.json
  • extensions/renderers/unity/plates_manifest.json
  • qa/PANEL-PROTOCOL.md
  • qa/evidence/dwing-wing/dwing_room_0_v1_boxes.json
  • qa/evidence/dwing-wing/dwing_room_1_v1_boxes.json
  • qa/evidence/paint-room/dwing_room_0/dwing_room_0_flux_s12345.submitted.json
  • qa/evidence/paint-room/dwing_room_0/dwing_room_0_flux_s12346.submitted.json
  • qa/evidence/paint-room/dwing_room_0/dwing_room_0_flux_s12347.submitted.json
  • qa/evidence/paint-room/dwing_room_0/dwing_room_0_styled.submitted.json
  • qa/evidence/paint-room/dwing_room_0/report.json
  • qa/evidence/paint-room/dwing_room_0_c2/dwing_room_0_flux_s12345.submitted.json
  • qa/evidence/paint-room/dwing_room_0_c2/dwing_room_0_flux_s12346.submitted.json
  • qa/evidence/paint-room/dwing_room_0_c2/dwing_room_0_flux_s12347.submitted.json
  • qa/evidence/paint-room/dwing_room_0_c2/dwing_room_0_styled.submitted.json
  • qa/evidence/paint-room/dwing_room_0_c2/report.json
  • qa/evidence/paint-room/dwing_room_0_c4/dwing_room_0_flux_s12345.submitted.json
  • qa/evidence/paint-room/dwing_room_0_c4/dwing_room_0_flux_s12346.submitted.json
  • qa/evidence/paint-room/dwing_room_0_c4/dwing_room_0_flux_s12347.submitted.json
  • qa/evidence/paint-room/dwing_room_0_c4/dwing_room_0_styled.submitted.json
  • qa/evidence/paint-room/dwing_room_0_c4/report.json
  • qa/evidence/paint-room/dwing_room_0_c6/dwing_room_0_flux_s12345.submitted.json
  • qa/evidence/paint-room/dwing_room_0_c6/dwing_room_0_flux_s12346.submitted.json
  • qa/evidence/paint-room/dwing_room_0_c6/dwing_room_0_flux_s12347.submitted.json
  • qa/evidence/paint-room/dwing_room_0_c6/dwing_room_0_styled.submitted.json
  • qa/evidence/paint-room/dwing_room_0_c6/report.json
  • qa/evidence/paint-room/dwing_room_1/dwing_room_1_flux_s12345.submitted.json
  • qa/evidence/paint-room/dwing_room_1/dwing_room_1_flux_s12346.submitted.json
  • qa/evidence/paint-room/dwing_room_1/dwing_room_1_flux_s12347.submitted.json
  • qa/evidence/paint-room/dwing_room_1/dwing_room_1_styled.submitted.json
  • qa/evidence/paint-room/dwing_room_1/report.json
  • qa/evidence/paint-room/dwing_room_1_c2/dwing_room_1_flux_s12345.submitted.json
  • qa/evidence/paint-room/dwing_room_1_c2/dwing_room_1_flux_s12346.submitted.json
  • qa/evidence/paint-room/dwing_room_1_c2/dwing_room_1_flux_s12347.submitted.json
  • qa/evidence/paint-room/dwing_room_1_c2/dwing_room_1_styled.submitted.json
  • qa/evidence/paint-room/dwing_room_1_c2/report.json
  • qa/evidence/paint-room/dwing_room_1_c3/dwing_room_1_flux_s12345.submitted.json
  • qa/evidence/paint-room/dwing_room_1_c3/dwing_room_1_flux_s12346.submitted.json
  • qa/evidence/paint-room/dwing_room_1_c3/dwing_room_1_flux_s12347.submitted.json
  • qa/evidence/paint-room/dwing_room_1_c3/dwing_room_1_styled.submitted.json
  • qa/evidence/paint-room/dwing_room_1_c3/report.json
  • qa/evidence/paint-room/dwing_room_1_c4/dwing_room_1_flux_s12345.submitted.json
  • qa/evidence/paint-room/dwing_room_1_c4/dwing_room_1_flux_s12346.submitted.json
  • qa/evidence/paint-room/dwing_room_1_c4/dwing_room_1_flux_s12347.submitted.json
  • qa/evidence/paint-room/dwing_room_1_c4/dwing_room_1_styled.submitted.json
  • qa/evidence/paint-room/dwing_room_1_c4/report.json
  • qa/evidence/paint-room/dwing_room_1_c5/dwing_room_1_flux_s12345.submitted.json
  • qa/evidence/paint-room/dwing_room_1_c5/dwing_room_1_flux_s12346.submitted.json
  • qa/evidence/paint-room/dwing_room_1_c5/dwing_room_1_flux_s12347.submitted.json
  • qa/evidence/paint-room/dwing_room_1_c5/dwing_room_1_styled.submitted.json
  • qa/evidence/paint-room/dwing_room_1_c5/report.json
  • qa/evidence/paint-room/dwing_room_2/dwing_room_2_flux_s12345.submitted.json
  • qa/evidence/paint-room/dwing_room_2/dwing_room_2_flux_s12346.submitted.json
  • qa/evidence/paint-room/dwing_room_2/dwing_room_2_flux_s12347.submitted.json
  • qa/evidence/paint-room/dwing_room_2/dwing_room_2_styled.submitted.json
  • qa/evidence/paint-room/dwing_room_2/report.json
  • qa/evidence/paint-room/dwing_room_2_c2/dwing_room_2_flux_s12345.submitted.json
  • qa/evidence/paint-room/dwing_room_2_c2/dwing_room_2_flux_s12346.submitted.json
  • qa/evidence/paint-room/dwing_room_2_c2/dwing_room_2_flux_s12347.submitted.json
  • qa/evidence/paint-room/dwing_room_2_c2/dwing_room_2_styled.submitted.json
  • qa/evidence/paint-room/dwing_room_2_c2/report.json
  • qa/evidence/paint-room/dwing_room_2_c4/dwing_room_2_flux_s12345.submitted.json
  • qa/evidence/paint-room/dwing_room_2_c4/dwing_room_2_flux_s12346.submitted.json
  • qa/evidence/paint-room/dwing_room_2_c4/dwing_room_2_flux_s12347.submitted.json
  • qa/evidence/paint-room/dwing_room_2_c4/dwing_room_2_styled.submitted.json
  • qa/evidence/paint-room/dwing_room_2_c4/report.json
  • qa/evidence/paint-room/dwing_room_2_c5/dwing_room_2_flux_s12345.submitted.json
  • qa/evidence/paint-room/dwing_room_2_c5/dwing_room_2_flux_s12346.submitted.json
  • qa/evidence/paint-room/dwing_room_2_c5/dwing_room_2_flux_s12347.submitted.json
  • qa/evidence/paint-room/dwing_room_2_c5/dwing_room_2_styled.submitted.json
  • qa/evidence/paint-room/dwing_room_2_c5/report.json
  • qa/evidence/walk-dwing_room_0-corrected/dwing_room_0/walk_report.json
  • qa/evidence/walk-dwing_room_0-sim/dwing_room_0/walk_report.json
  • qa/evidence/walk-dwing_room_0/dwing_room_0/walk_report.json
  • qa/evidence/walk-dwing_room_1-corrected/dwing_room_1/walk_report.json
  • qa/evidence/walk-dwing_room_1/dwing_room_1/walk_report.json
  • qa/overlay_boxes.py
  • qa/paint_room.py
  • qa/panel_workflow.mjs
  • qa/reregister_plate.py
  • qa/room_geometries/dwing_room_0_geometry.json
  • qa/room_geometries/dwing_room_1_geometry.json
  • qa/seed_gfx_dwing_sandbox.py
  • qa/test_reregister_plate.py
  • qa/unified_paint_recipes.json
  • qa/walk_static.py
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch town-wing-rooms

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

@evaos-code-review-bot

evaos-code-review-bot Bot commented Jul 16, 2026

Copy link
Copy Markdown

evaOS review status: stale head

PR: #1614 - wing: 2 GENERATED rooms adopted (dwing_room_0 + dwing_room_1) + the full cycle ledger
Head: a7b3d902a0231c742ccdcc2275b81a66208409eb
Updated: 2026-07-16T06:13:28.847Z

evaOS review stopped because this queued head is no longer the live PR head.

Automation note: agents should wait for this comment to reach completed, stale_head, closed_or_merged_before_review, skipped, or failed before treating evaOS review as settled for this head. provider_deferred means evaOS still intends to retry.

PR URL: #1614

Details: live=fa410a87fb638cd40b821d583a370c955e01b9f0

…ic stack at seed; unwired seam = the parked room_2 doorway)
@evaos-code-review-bot

evaos-code-review-bot Bot commented Jul 16, 2026

Copy link
Copy Markdown

evaOS review status: stale head

PR: #1614 - wing: 2 GENERATED rooms adopted (dwing_room_0 + dwing_room_1) + the full cycle ledger
Head: fa410a87fb638cd40b821d583a370c955e01b9f0
Updated: 2026-07-16T06:20:45.589Z

evaOS review stopped because this queued head is no longer the live PR head.

Automation note: agents should wait for this comment to reach completed, stale_head, closed_or_merged_before_review, skipped, or failed before treating evaOS review as settled for this head. provider_deferred means evaOS still intends to retry.

PR URL: #1614

Details: Superseded by a newer PR head.

…box rebuild = ship-time only)

The dwing walk gates ran against an owner-app COPY with plates/manifest injected post-build and read
camOrtho 10.5224 (the hot-loaded pin) exactly — box builds leave the per-room iteration loop. #1583.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a7b3d902a0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread qa/paint_room.py Outdated
Comment thread qa/unified_paint_recipes.json Outdated
@evaos-code-review-bot

evaos-code-review-bot Bot commented Jul 16, 2026

Copy link
Copy Markdown

evaOS review status: stale head

PR: #1614 - wing: 2 GENERATED rooms adopted (dwing_room_0 + dwing_room_1) + the full cycle ledger
Head: f7125d4282cdf175d2d05193145f38a0438c6b31
Updated: 2026-07-16T07:07:50.949Z

evaOS review stopped because this queued head is no longer the live PR head.

Automation note: agents should wait for this comment to reach completed, stale_head, closed_or_merged_before_review, skipped, or failed before treating evaOS review as settled for this head. provider_deferred means evaOS still intends to retry.

PR URL: #1614

Details: live=064d27d8b1798a1a3abc002516eedecf3ba062b7

@100yenadmin 100yenadmin marked this pull request as draft July 16, 2026 06:24
@100yenadmin

Copy link
Copy Markdown
Member Author

⛔ CONVERTED TO DRAFT — owner playtest falsified the adoption; do not merge.

Owner-reported: walk-through-paint + invisible collisions + spawn-in-wall optics in the dwing rooms.
Measured root cause (qa/overlay_boxes.py --solve on the adopted plates): the Gemini pass GLOBALLY
RESCALED + SHIFTED the room — dwing_room_0 fitted_ortho 8.24 vs stamped 10.52 with a (59,193)px
screen offset ⇒ ~1.2-1.7 cells of misregistration. Collision is geometry-true, so the paint lies:
you walk through painted props (their real cells are elsewhere) and collide with visually-open floor.

Process failure being corrected, honestly: BOTH instruments flagged this — styled recall 0.36-0.55
(below the 0.6 shipped floor) and the live visual gate RED at 164-272px — and the orchestrator
overrode both with a feature-count eyeball. Counts ≠ registration.

Fix lane (deterministic, no repaint): the focal BRAZIERS are solvable registration beacons in every
generated room — solve → affine warp → verify err_cells, then re-gate in the hot-load sandbox with
the fire-masked visual stage (#1613). Adoption re-decided only on a client-truth green. The paint
recall warning is being promoted to a HARD gate at <0.6 styled recall.

100yenadmin and others added 6 commits July 16, 2026 13:36
… + hard registration gate (#1615)

The Gemini style pass globally rescales+translates painted room plates, so
collision geometry (projection-true at the stamped ortho) diverges from the
visible floor: the owner walks through painted props (dwing_room_0 measured
1.66-cell brazier error). qa/reregister_plate.py reuses overlay_boxes' brazier
blob-solve to fit the plate's true (fitted_ortho, screen_offset), derives the
corrective affine (scale s=fitted/stamped about screen center + translation),
applies it (PIL bicubic, border-median fill), and re-solves; exits non-zero
unless corrected max err_cells <= 0.35.

- Re-registered the two real dwing plates in place (0: 1.66->0.34, 1: 2.61->0.33).
- paint_room.py: promote the styled-recall warning to a HARD gate — with --boxes,
  a sub-0.60 recall triggers the same corrective warp and FAILS non-zero if still
  <0.60; without --boxes, warn-only (backward compatible).
- Tests: synthetic known-transform round-trip, real dwing_room_0 <=0.35, and
  overlay_boxes --solve CLI shape unchanged (importorskip PIL/numpy, offline).

Builds on the town-wing-rooms PR artifacts.

Co-authored-by: Eva <arncalso@gmail.com>
…arty THERE (identical-counts bug: the room_1 gate silently measured room_0; the shop/snug single-room fixtures never exposed this)
…+ fitted-projection pair matching

Gemini rotates plates (measured: room_0 1-2.4deg, room_1 4.75deg). The scale+translate-only warp
left that as residual (room_0's 110px east-periphery case). blob_solve now exposes matched_pairs
(correspondence decided at the FITTED projection — stamped-projection matching mis-pairs beacons on
badly-offset plates); reregister fits the full similarity T(z)=az+b with an absurdity guard (6deg /
[0.7,1.4]); the post-warp re-solve remains the acceptance. Verified: room_0 c4 1.66->0.17 cells.
LIMIT FOUND (room_1): two SAME-ROW beacons are degenerate — vertical scale unconstrained; 0.07-cell
beacon error coexisted with ~1.5-cell bottom-wall misfit + a Gemini-relocated pillar. Beacon
GEOMETRY is part of room design -> generator issue: dress_focal must place >=3 non-collinear fire
beacons.
…tes RED), keep the instrument chain

room_0 c4-sim: 4/5 visual cells at 0.9-18px after the similarity warp, but (8,6) holds at 126px —
LOCAL non-affine distortion (east side) that no whole-plate transform fixes. room_1: collinear
beacons (vertical scale unsolvable) + a relocated pillar. Manifest entries + plates + boxes removed
from shipping surfaces (boxes preserved as qa evidence for the fixture/solves); walk_static GREEN.
What ships in this PR instead: the count/shape/door-wall/single-flat-level lock library, the
similarity re-registration tooling + solve-based err_cells HARD gate in paint_room (recall proven
non-gating: 0.6377 @ 1.45 cells), the parametrized dwing sandbox fixture, the scorecard episode
ledger, and the runbook hot-load amendment. Generator fix for the next cycle: #1618.
@100yenadmin 100yenadmin changed the title wing: 2 GENERATED rooms adopted (dwing_room_0 + dwing_room_1) + the full cycle ledger wing: generated-room pipeline HARDENING — lock library, similarity re-registration + err_cells hard gate, honest cycle ledger (0 adopted) Jul 16, 2026
@100yenadmin 100yenadmin marked this pull request as ready for review July 16, 2026 09:16
@evaos-code-review-bot

evaos-code-review-bot Bot commented Jul 16, 2026

Copy link
Copy Markdown

evaOS review status: stale head

PR: #1614 - wing: generated-room pipeline HARDENING — lock library, similarity re-registration + err_cells hard gate, honest cycle ledger (0 adopted)
Head: 48429001170841fb6f7640a4ccef5fd77bf353bf
Updated: 2026-07-16T09:25:14.644Z

evaOS review stopped because this queued head is no longer the live PR head.

Automation note: agents should wait for this comment to reach completed, stale_head, closed_or_merged_before_review, skipped, or failed before treating evaOS review as settled for this head. provider_deferred means evaOS still intends to retry.

PR URL: #1614

Details: Superseded by a newer PR head.

…NDED adjudication) + strategy-experiment row

Round-5 sidecar adoptions: (1) the ad-hoc scorer wording caused ~1pt ruler drift — the wording is
now canonical and versioned (nobody freehands the ruler); (2) gate/panel verdicts are rendered by
a fresh agent given only instrument outputs + bars (the author-judge conflation under 'last cycle'
pressure produced two falsified adoptions); (3) the strategy fork is SETTLED with data: flux-only=3,
greybox=1 vs shipped-shop=6 same-ruler — the paint carries +3, the bulk tier keeps Gemini, #1618
beacons are all-tier infrastructure.
@evaos-code-review-bot

evaos-code-review-bot Bot commented Jul 16, 2026

Copy link
Copy Markdown

evaOS review status: stale head

PR: #1614 - wing: generated-room pipeline HARDENING — lock library, similarity re-registration + err_cells hard gate, honest cycle ledger (0 adopted)
Head: 2e8b870e4ae75b67c9571aa0a0ad14cd8c277326
Updated: 2026-07-16T09:28:39.010Z

evaOS review stopped because this queued head is no longer the live PR head.

Automation note: agents should wait for this comment to reach completed, stale_head, closed_or_merged_before_review, skipped, or failed before treating evaOS review as settled for this head. provider_deferred means evaOS still intends to retry.

PR URL: #1614

Details: live=28543b6b3c2c76c1c861bf67dfe2a171c63208f8

…l was ALWAYS None, the guard never fired) + material-neutral SINGLE-FLAT-LEVEL clause (was stone-ifying wood-floor classes on rerun) — codex #1614 P2 pair
…el_workflow.mjs, cross-referenced from PANEL-PROTOCOL) + runbook 10b sandbox hot-load GATE LOOP (current-room fixture trap, uv --directory trap, tri-state verdict reading, owner-preview hygiene)
@evaos-code-review-bot

evaos-code-review-bot Bot commented Jul 16, 2026

Copy link
Copy Markdown

evaOS review status: closed or merged before review

PR: #1614 - wing: generated-room pipeline HARDENING — lock library, similarity re-registration + err_cells hard gate, honest cycle ledger (0 adopted)
Head: fe665ad54e23de91b6c533db394d34612f675daa
Updated: 2026-07-16T09:43:42.051Z

evaOS review stopped because the PR closed or merged before this queued head could be reviewed.

Automation note: agents should wait for this comment to reach completed, stale_head, closed_or_merged_before_review, skipped, or failed before treating evaOS review as settled for this head. provider_deferred means evaOS still intends to retry.

PR URL: #1614

Details: state=closed

@100yenadmin 100yenadmin merged commit 90b9f13 into main Jul 16, 2026
30 of 36 checks passed
@100yenadmin 100yenadmin deleted the town-wing-rooms branch July 16, 2026 09:41

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fe665ad54e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread qa/paint_room.py
# plates 1-4.75°), re-solve, adopt if it clears; still over => REGISTRATION FAILED
# (non-zero). Recall stays RECORDED (drift telemetry) but no longer gates. Without
# --boxes: warn-only (backward compatible).
if args.boxes:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Run the hard gate for asset-id depth inputs

When --depth asset_... is used together with --boxes, this solve-based gate is skipped because the whole block is nested under if depth_local is not None. The CLI explicitly supports asset-id depths, and the new registration solve only needs final_path plus the boxes sidecar, so these runs currently produce no corrected report entry, no warp, and no non-zero failure even if the styled plate is more than 0.35 cells off.

Useful? React with 👍 / 👎.

Comment thread qa/reregister_plate.py
Comment on lines +107 to +111
tf = corrective_transform(before)
img = Image.open(plate_path).convert("RGB")
fill = _border_median(img)
corrected = img.transform((W, H), Image.AFFINE, tf["pil_affine_inverse"],
resample=Image.BICUBIC, fillcolor=fill)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Use the similarity warp in the standalone re-register path

For the documented python3 qa/reregister_plate.py <boxes> <plate> --out ... path, reregister() still calls the scale/translate-only corrective_transform() and never uses the new rotation-aware fit_similarity()/apply_similarity() functions. On the Gemini outputs this commit is meant to handle (measured rotations in the 1–4.75° range), the standalone tool can therefore leave rotational residuals or fail even though the paint-room path would apply the full similarity correction.

Useful? React with 👍 / 👎.

Comment thread qa/panel_workflow.mjs
})
)
log(`panels done: ${results.filter(Boolean).map(r => `${r.id} Δ${r.delta}`).join(' · ')}`)
return { results: results.filter(Boolean), ship_bar: 'delta >= -2.0 vs control (control-anchored band)' }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Report the calibration-relative ship bar

When this executable panel workflow is used with the required shipped calibration plate, the returned verdict guidance still says delta >= -2.0 vs control, so operators can follow the workflow output and ignore the calibration-reference comparison that qa/PANEL-PROTOCOL.md now makes mandatory. In batches affected by scorer/ruler drift, this reintroduces the raw-control-delta decision rule the new two-anchor protocol is specifically trying to avoid.

Useful? React with 👍 / 👎.

Comment thread qa/reregister_plate.py
Comment on lines +122 to +123
"after": {"fitted_ortho": after["fitted_ortho"], "screen_offset": after["screen_offset"],
"max_err_cells": round(_max_err_cells(after), 2)},

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Handle failed post-warp solves

If the corrected image loses the warm-blob signal or otherwise makes blob_solve() return {"error": ...}, this standalone re-registration path indexes after["fitted_ortho"] and crashes with KeyError instead of returning a failed report. That can happen on high-drift or washed-out plates, and it prevents the CLI gate from producing the usable passed: false artifact that the caller expects.

Useful? React with 👍 / 👎.

"gemini": {
"model_id": "model_google-gemini-3-1-flash",
"resolution": "2K",
"structure_lock": "CRITICAL STRUCTURE-LOCK (non-negotiable, checked pixel-by-pixel against the original): every wall, pillar, archway, doorway, staircase, and prop must stay in EXACTLY its current position, size, and shape — do NOT move, add, remove, resize, or recompose ANYTHING; only the paint and lighting treatment changes. Keep the exact same isometric dimetric camera. Do NOT introduce any repeated, cloned, or tiled decorative motifs. Do NOT add any text, letters, numbers, labels, legends, map insets, UI elements, frames, or borders. Do NOT add any characters, people, figures, or creatures. The dark area outside the room walls stays dark empty background — add nothing there, no bones, objects, or debris outside the room. Do NOT add any staircases, steps, balconies, galleries, railings, mezzanines, or upper floors ANYWHERE — this is a strictly SINGLE-STOREY room and every empty corner stays an empty corner (measured defect: invented staircases on 3/3 prior rooms). Preserve the EXACT COUNT and PLACEMENT of every architectural feature from the input image: the same number of pillars/columns on the same floor positions, and the same number of wall openings/doorways/arches in the same walls. Do NOT add pillars, columns, doorways, arches, gates, portcullises, niches or alcoves that are not present in the input image; walls that are solid in the input stay unbroken solid. The floor is a SINGLE FLAT LEVEL: no sunken areas, no water channels, cisterns, pools or canals, no staircases DOWN, no pits or lower levels — every floor cell shown in the input stays dry, flat walkable floor in its ORIGINAL material."

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep the flat-floor lock off raised-room classes

This shared Gemini lock is appended to every class prompt, but the new final sentence says the floor is a single flat level and every floor cell must stay flat. For future reruns of rooms that intentionally contain authored elevation—throne_hall still asks for a raised stone dais with ceremonial steps, and crypt has a stepped sarcophagus base—this conflicts with the class grounding and can make the style pass flatten or fight those existing features rather than preserving them.

Useful? React with 👍 / 👎.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant