Skip to content

feat(ground): add regional material plan wire contract - #4335

Closed
d-sorgcodexagent[bot] wants to merge 4 commits into
feat/4271-regional-surface-transitionsfrom
feat/4271-regional-wire-contract
Closed

feat(ground): add regional material plan wire contract#4335
d-sorgcodexagent[bot] wants to merge 4 commits into
feat/4271-regional-surface-transitionsfrom
feat/4271-regional-wire-contract

Conversation

@d-sorgcodexagent

Copy link
Copy Markdown
Contributor

Summary

  • add strict, versioned Python and TypeScript request/result contracts for bounded coplanar regional material plans
  • validate duplicate keys, finite geometry, static/coplanar qualification, identities, unique precedence, region counts, and the 1 MiB wire boundary
  • pin deterministic canonical SHA-256 and ordering through a shared cross-runtime golden fixture
  • bind validated plans to the existing Python SurfaceResolver without duplicating or fabricating physics results
  • update the ground specification, release manifest, and all canonical handoffs in the same commit

Verification

  • Python ground: 132 passed; final focused contract guard: 34 passed
  • React: 107 files / 666 tests; focused regional + fingerprint: 9 passed
  • TypeScript, zero-warning ESLint, and Vite production build (190 modules): passed
  • pinned Ruff 0.14.10 and MyPy 1.13: passed
  • manifest tests, docs governance, assertion gate, exact-base changed-file budget, changed-Python policy, diff check, and staged secret scan: passed

Scientific / release boundary

This v1 contract intentionally supports finite, static, coplanar material overlays only. It does not claim non-coplanar terrain, dynamic surfaces, matched UI editing/playback, Rust/WASM parity, protected review, or release. The campaign manifest remains not_released.

Advances #4271 and parent epic #4267. Depends on #4332.

@d-sorgcodexagent

Copy link
Copy Markdown
Contributor Author

Protected CI at d382ca9928628a16fec7ddd4fa1b1cc144b4c490 found two actionable no-any-return errors under the changed-file --follow-imports=skip MyPy profile. Follow-up 74a053d2d544da9f44a88007660ad28c0127f285 adds only explicit casts after the existing strict validators and updates all three canonical handoffs; no schema, digest, physics, result, or API changed. Exact CI-profile MyPy (4 modules), Ruff check/format, and 34 focused contract tests pass locally. Fresh protected CI is now required; the failed run was not retried unchanged.

@dieterolson

Copy link
Copy Markdown
Collaborator

Consolidated into #4409. Closing to reduce CI/CD runner load.

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