Skip to content

feat(components): complete M8 client language milestone#373

Draft
cssbruno wants to merge 9 commits into
mainfrom
codex/m8-components-client-language
Draft

feat(components): complete M8 client language milestone#373
cssbruno wants to merge 9 commits into
mainfrom
codex/m8-components-client-language

Conversation

@cssbruno

Copy link
Copy Markdown
Owner

Summary

  • completes the M8 component/client-language milestone with scalar/default props, explicit policies for deferred prop/recursion/dynamic/binding behavior, typed component exports, generated client hardening, and a milestone audit document
  • hardens generated browser behavior for SPA navigation, partial form pre-validation, generated asset-size metadata, component export teardown/replay, and WASM island ABI/version reporting
  • adds WASM island export signature validation plus docs for the gowdk-wasm-island-v1 contract and wasm_exec.js Go-version reporting

Issue Closure

Closes #371
Closes #370
Closes #369
Closes #368
Closes #367
Closes #366
Closes #365
Closes #174
Closes #101
Closes #100
Closes #99
Closes #98
Closes #97
Closes #96
Closes #95
Closes #94
Closes #93
Closes #64
Closes #30
Closes #29
Closes #19
Closes #18
Closes #17
Closes #16

Verification

  • I ran the relevant tests, lint, and build commands.
  • I ran scripts/test-go-modules.sh when Go code or compiler behavior changed.
  • I ran go build ./cmd/gowdk when CLI, compiler, runtime, addon, or release behavior changed.
  • I ran node --check editors/vscode/extension.js when editor files changed.
  • I updated docs for behavior, setup, or architecture changes.
  • I added or updated tests for changed behavior.
  • I considered security-sensitive surfaces such as auth, CSRF, redirects, request-time handlers, logs, diagnostics, embedded assets, editor commands, WASM, contracts, and realtime behavior.

Commands run:

go test ./internal/view ./internal/buildgen ./internal/appgen ./internal/clientlang
go test ./internal/buildgen
go test ./...
go build ./cmd/gowdk
scripts/test-go-modules.sh

LLM Assistance

  • LLM session summary: Codex created a milestone worktree branch, implemented and tested M8 component/client-language slices across view/buildgen/appgen/client runtime docs, pushed the branch, and opened this draft PR.
  • Human-reviewed assumptions: Issues [Components] Bindable child state (two-way binding) #365-[Components] Rest/spread props and prop renaming #368 are closed by explicit compiler-owned rejection/deferral policies documented in docs/language/components.md and docs/engineering/m8-components-client-language.md, rather than by enabling those broader behaviors in M8.
  • Follow-up work: Broader post-M8 work remains documented in docs/product/requirements.md; no M8 blocker is intentionally left open in this PR.

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