Skip to content

docs(templates): keep 3D smoke bridge read-only - #4

Merged
wh000wh000 merged 1 commit into
mainfrom
fix/threed-v1-4-readonly-smoke-bridge
Aug 4, 2026
Merged

docs(templates): keep 3D smoke bridge read-only#4
wh000wh000 merged 1 commit into
mainfrom
fix/threed-v1-4-readonly-smoke-bridge

Conversation

@wh000wh000

Copy link
Copy Markdown
Owner

结论

threed_basic verification must measure the playable route, not a shipped debug backdoor. This change freezes the existing window.__opengame3d probe as read-only and requires keyboard/mouse/DOM evidence.

Production evidence

The one-POST v1.3 game aurora-island-treasure-3d-v1-3 is genuinely playable: an independent keyboard/mouse route collected 6/6 and reached the completion screen without calling teleport. Its generated self-test nevertheless added teleport, setRemaining, and mutable state to the public bridge, creating a path for future false-positive acceptance.

Change

Path Contract added
agent-test/docs/modules/threed_basic/template_api.md Exact bridge shape: isPaused + renderer only; no state mutation helpers
agent-test/docs/modules/threed_basic/threed_basic.md Manual acceptance must use real keyboard/mouse input and visible DOM

The complementary L-layer control lives in non-Git opengame-server: check_generated_code.py --fail-bridge rejects extra runtime bridge keys for three.js games. It is intentionally not duplicated in this frozen repository.

Verification

Gate Result
git diff --check PASS
L-layer unit checks PASS: readonly fixture accepted; teleport fixture rejected
Negative production sample PASS: v1.3 is rejected with G4 keys setRemaining/state/teleport
Existing 3D sample PASS: Crystal v1.2 bridge and full v2-accept
Existing Phaser sample PASS: no new FAIL

Risk and rollback

Documentation-only frozen-layer change; runtime code and 2D routes are untouched. Revert commit b49c27f to restore prior guidance. Upstream dependencies remain PRs leigest519#47-leigest519#49.

A generated v1.3 game shipped teleport and time mutation hooks solely to make verification easy. Freeze the existing probe surface and require completion evidence through real browser input so acceptance measures gameplay instead of a debug backdoor.
@wh000wh000
wh000wh000 merged commit 41b6173 into main Aug 4, 2026
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