Skip to content

plates: adopt KIT-CRYPT v1 — first fully-certified 3D-first plate (#83)#1688

Merged
100yenadmin merged 1 commit into
mainfrom
crypt-kit-plate
Jul 22, 2026
Merged

plates: adopt KIT-CRYPT v1 — first fully-certified 3D-first plate (#83)#1688
100yenadmin merged 1 commit into
mainfrom
crypt-kit-plate

Conversation

@100yenadmin

Copy link
Copy Markdown
Member

The night's whole chain lands: geometry → kit 3D scene (seg gate 100.00%, 0/192 disagreements) → kit depth → flux base (recall 0.9752) → Gemini 3.0 Pro structure-holding edit → phase-correlation ALIGNED (dx=0,dy=0) → geometric void composite → blind panel 7 vs control 8 (Δ−1.0, in-band). Full round log + evidence on #83; per-model submitted payloads beside every output in LEXAR g4-build/artifacts/.

Collision truth is UNCHANGED (same geometry/walkmask/boxes as crypt_v36) — the plate is a deterministic render+edit of the same scene the walkmask comes from, with every link measured.

Adds: the plate, the manifest swap (ortho pin preserved, 4 runtime fire effects at authored brazier cells), qa/styled_align_check.py (styled-layer alignment gate v0), seg-gate evidence.

⚠ OWNER GATE flagged in provenance: model_google-gemini-pro-image-editing needs a model-registry allowlist entry before promote.py-gated adoption chains treat it as sanctioned.

The certified chain: geometry -> kit scene (seg gate 100.00%, 0/192) ->
3D depth -> flux base (recall 0.9752) -> Gemini 3.0 Pro structure-holding
edit -> phase-correlation ALIGNED dx=0 vs base -> void composite.
Blind panel 7 vs control 8 (in-band). Collision truth unchanged.
+ qa/styled_align_check.py (styled-layer alignment gate v0)
+ 4 runtime fire effects at the authored brazier cells.
@100yenadmin
100yenadmin enabled auto-merge (squash) July 22, 2026 18:52
@coderabbitai

coderabbitai Bot commented Jul 22, 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: 7 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: c2628079-7012-4e0a-9266-85ba06e87a38

📥 Commits

Reviewing files that changed from the base of the PR and between 22af737 and b5b9fc8.

⛔ Files ignored due to path filters (2)
  • extensions/renderers/unity/plates/crypt_kit_v1_registered.png is excluded by !**/*.png
  • qa/evidence/kit-crypt/seg_100pct.png is excluded by !**/*.png
📒 Files selected for processing (3)
  • extensions/renderers/unity/plates_manifest.json
  • qa/evidence/kit-crypt/seg_registration.json
  • qa/styled_align_check.py
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch crypt-kit-plate

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

@evaos-code-review-bot

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

Copy link
Copy Markdown

evaOS review status: completed

PR: #1688 - plates: adopt KIT-CRYPT v1 — first fully-certified 3D-first plate (#83)
Head: b5b9fc832b1d1796e58fc88d10ae17f75aab4f27
Updated: 2026-07-22T18:58:43.951Z

evaOS review completed for this 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: #1688

Review URL: #1688 (review)

@evaos-code-review-bot evaos-code-review-bot 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.

Walkthrough

PR: #1688 - plates: adopt KIT-CRYPT v1 — first fully-certified 3D-first plate (#83)
Head: b5b9fc832b1d1796e58fc88d10ae17f75aab4f27 into main. Review event: COMMENT.
Provider: GLM/Z.ai through ZCode (zcode-glm, zcode, model GLM-5.2).

Estimated review effort: 5/5 (~60 min)

Changed Files

File Status Churn Purpose Risk
extensions/renderers/unity/plates/crypt_kit_v1_registered.png added +0/-0 Changed file Low
extensions/renderers/unity/plates_manifest.json modified +66/-7 Changed file Moderate: validated P3 finding
qa/evidence/kit-crypt/seg_100pct.png added +0/-0 Changed file Low
qa/evidence/kit-crypt/seg_registration.json added +1954/-0 Changed file Moderate: validated P2 finding
qa/styled_align_check.py added +52/-0 Changed file Moderate: validated P3 finding

Review Signal

Validated inline findings: 3 (P0: 0, P1: 0, P2: 1, P3: 2).
Dropped findings before posting: 0. High-severity findings: 0.

Risk Taxonomy

  • CI/build: 1
  • Flaky test risk: 1
  • Proof gap: 1

Validation and Proof

1 required validation/proof recommendation(s) selected from changed files.

  • required: Unity editor or Play Mode smoke - WorldOS repo profile implies Unity runtime risk. Proof: Unity editor smoke; Play Mode log; scene/prefab screenshot or recording.
    Proof status: missing - 1 required validation/proof recommendation(s) missing from PR metadata.
    Profile validation hints: Prefer correctness, persistence, CI, release, and regression findings over style-only feedback.
    Profile proof expectations: Look for Unity editor, play-mode, fixture, or focused smoke evidence when runtime behavior changes.

Related Context

Related issues/PRs: #83.
Suggested labels: none.
Suggested reviewers: none from current metadata.

Review Settings Preview

  • Profile: assertive
  • Enabled sections: Review summary (inline_review); Walkthrough (inline_review); Changed-files table (walkthrough); Effort estimate (walkthrough); Related issues/PRs (walkthrough); Suggested labels (suggestion_only); Review status comment (sticky_status)
  • Path instructions: Assets/** - Prioritize scene, prefab, save-state, asset-reference, and gameplay regressions.
  • Path instructions: ProjectSettings/** - Treat build, platform, input, graphics, and release behavior changes as high risk.
  • Label suggestions: unity, gameplay, regression-hardening
  • Reviewer suggestions: none
  • Suggestion behavior: suggestions only; labels and reviewers are not auto-applied.
  • Roadmap-only settings: auto-apply labels; auto-request reviewers; required status checks

Pre-merge checklist

  • Inline comments target current RIGHT-side diff lines.
  • No secret-like content survived into posted inline comments.
  • REQUEST_CHANGES is only used when eligible P0/P1 findings survive validation.
  • Required behavior proof is present or not applicable.
  • Labels and reviewers are suggestions only; the bot did not auto-apply them.

@@ -0,0 +1,1954 @@
{
"room": "crypt",
"plate": "kit_crypt_r8d_score.png",

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: SEG-GATE evidence references intermediate plate name, not the shipped plate

The 100% agreement / 0-of-192-disagreement evidence that the PR title and _provenance cite as the '3D-FIRST CERTIFIED CHAIN' gate is recorded against "plate": "kit_crypt_r8d_score.png" (line 3) — an intermediate scoring artifact — while the plate actually shipped to plates_manifest.json is plates/crypt_kit_v1_registered.png (a downstream composite per _provenance: flux depth-CN base -> Gemini edit -> phase-corr align -> geometric void composite). The segmentation gate therefore proves footprint agreement for the base/depth layer, not the exact PNG the client now textures the surface plane with. The alignment-to-base step is separately asserted (dx=0,dy=0 via styled_align_check.py), but the SEG gate itself is not re-run against the shipped plate. Re-run the segmentation registration on crypt_kit_v1_registered.png and update seg_registration.json's "plate" field to match the shipped asset (or add a second seg result for the composite), so the 100% gate is provably bound to the bytes the player sees.

Category: Proof gap

Why this matters: The whole PR's 'collision truth unchanged / 3D-first certified' claim rests on this evidence. If the composite plate diverges from the base that passed the gate (e.g. the Gemini edit or void-composite alters a blocking-vs-walkable boundary), the 100% agreement would not hold for the shipped texture and the gate is misleading. Binding the gate to the shipped plate name closes the provenance gap.

}
}
}
} No newline at end of file

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P3: Trailing newline removed from manifest (now "No newline at end of file")

The diff ends with \ No newline at end of file for plates_manifest.json. The file previously ended with a newline. Some linters/formatters and POSIX tooling treat a missing final newline as a style violation, and a future re-serialization could churn the whole file. Restore the trailing newline unless the repo explicitly forbids it.

Category: CI/build

Why this matters: Keeps the file POSIX-clean and avoids unrelated diff churn on the next JSON edit; non-functional.

Comment thread qa/styled_align_check.py
out -= out.mean(); s2 = out.std()
return out / s2 if s2 > 0 else out

base = luma(sys.argv[1])

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P3: QA gate script has no argv validation and is not wired into CI

styled_align_check.py indexes sys.argv[1] (line 42) and sys.argv[2:] (line 43) with no length check or usage message, so invoking it with 0 or 1 args raises an opaque IndexError. The _provenance block in plates_manifest.json cites this script as the alignment gate ('phase-corr ALIGNED dx=0,dy=0 vs base (qa/styled_align_check.py)'), but it is a manual one-shot tool with no test harness asserting the ALIGNED verdict. Consider adding a minimal argc guard + a tests/ assertion (or a recorded expectation JSON) so the gate is reproducible rather than anecdotal.

Category: Flaky test risk

Why this matters: Gates cited in ship provenance should be reproducible from the repo; an un-validated CLI that only ran once on the box is weak evidence for a release-affecting plate swap.

@100yenadmin
100yenadmin merged commit ec4671a into main Jul 22, 2026
28 of 30 checks passed
@100yenadmin
100yenadmin deleted the crypt-kit-plate branch July 22, 2026 18:58

@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: b5b9fc832b

ℹ️ 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".

"plates": {
"crypt": {
"plate": "plates/crypt_v36_registered.png",
"plate": "plates/crypt_kit_v1_registered.png",

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 Regenerate crypt paint-coherence evidence

This cutover makes crypt_kit_v1_registered.png the shipped crypt plate, but the committed qa/evidence/paint-coherence/crypt_coherence_report.json was last touched before this file existed (git rev-parse 451abdbd:extensions/renderers/unity/plates/crypt_kit_v1_registered.png fails). The paint-drift-gate workflow installs Pillow/numpy and runs qa/check_coherence_freshness.py over every manifest-shipped room, and live spawn/certification code also consumes those per-cell verdicts, so this can merge with stale crypt open/covered evidence unless the paint-coherence report/overlays are regenerated for the new plate.

Useful? React with 👍 / 👎.

}
],
"_effects_comment": "Animated fire over the four painted brazier fires (geometry brazier cells; bowls sit ~1.2u up the stem). Tune scale/y at the sandbox eyeball if the flame floats or washes the paint.",
"_provenance": "KIT-CRYPT v1 (2026-07-23, #83/#84 nav-truth spike): 3D-FIRST CERTIFIED CHAIN \u2014 geometry crypt_v36 -> build_room_kit scene (footprint SEG GATE 100.00%, 0/192 disagreements, qa/evidence/kit-crypt/) -> kit 3D depth -> flux depth-CN base seed 12346 (recall 0.9752, asset_qM9R3tuRH4sceUrVjCoLdPRk) -> Gemini 3.0 Pro edit (model_google-gemini-pro-image-editing, critique-targeted detail prompt, job_Lmhssjh7iWnHsUKY1dhnHB4m) -> phase-corr ALIGNED dx=0,dy=0 vs base (qa/styled_align_check.py) -> geometric void composite (seg-frame mask). Blind panel 7 vs control 8 (delta -1.0, in-band; wf_89967920). Collision truth UNCHANGED (same geometry/walkmask/boxes as crypt_v36). NOTE: model_google-gemini-pro-image-editing pending model-registry allowlist (owner sign-off)."

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 Register the adopted edit model first

The manifest now adopts this plate while its provenance records model_google-gemini-pro-image-editing and notes that it is still pending model-registry allowlist. qa/model_registry.json is the allowlist used by the promotion provenance gate, so cutting the runtime plate over before adding the signed-off registry/MODEL-REGISTRY entry leaves the shipped asset outside the sanctioned model chain; either register the model in this change or keep the manifest on the previous approved plate until sign-off lands.

Useful? React with 👍 / 👎.

"plates": {
"crypt": {
"plate": "plates/crypt_v36_registered.png",
"plate": "plates/crypt_kit_v1_registered.png",

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 canonical recipe plate in sync

This switches the runtime manifest to crypt_kit_v1_registered.png, but extensions/renderers/shared/room_recipes.json still declares rooms.crypt.canonical_plate as crypt_fresh_v1.png, and the regen/drift tooling keys off that canonical plate. Future crypt generation or qa/check_plate_drift.py gate-recipes runs will continue validating the old crypt-fresh asset instead of the shipped kit-crypt plate, leaving the adoption split across two sources of truth; update the recipe/status alongside the manifest cutover.

Useful? React with 👍 / 👎.

Comment thread qa/styled_align_check.py
Comment on lines +50 to +52
ok = abs(dx) <= 10 and abs(dy) <= 10 and abs(s - 1.0) <= 0.02
name = cand_path.split('/')[-1]
print(f"{name}: scale={s} dx={dx} dy={dy} resp={resp:.3f} -> {'ALIGNED' if ok else 'GLOBAL-TRANSFORM'}")

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 Fail the alignment gate on drift

Here ok only changes the word printed to stdout, so a candidate reported as GLOBAL-TRANSFORM still exits with status 0. If this helper is used as the styled-layer gate in a shell/CI adoption chain, a shifted or scaled plate will pass unless a human parses the text output; return a non-zero status whenever any candidate is not aligned.

Useful? React with 👍 / 👎.

"plates": {
"crypt": {
"plate": "plates/crypt_v36_registered.png",
"plate": "plates/crypt_kit_v1_registered.png",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Align the kit plate with the live crypt grid

The shipped crypt surface is still authored as the 14x11 qa/seed_gfx_combat.py grid realigned to crypt_fresh_v1 (including doors/props at those coordinates), while this manifest now loads a 16x12 kit plate plus 16x12 crypt_v36 boxes/effects. Because the client projects actors, occluders, clicks, and effects through the engine-supplied surface grid rather than the manifest, entering crypt will overlay a 14x11 walkmask on a 16x12 image (for example the new effect at cell [14,4] is outside a 14-column grid), so movement and visuals diverge until the engine seed/grid is migrated to the kit geometry or the plate is built for the live grid.

AGENTS.md reference: AGENTS.md:L16-L19

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