ci / vet-and-test (pull_request) Successful in 40s
Why: Generative UI proposal U2 needs the host side of the contract: owner-isolated surface storage with revision CAS, an execution-level enable/disable ledger (default-off, epoch bumped on every transition so in-flight submits after a disable are rejected), a single-choke-point service that validates specs (strict decode + catalog rules) before saving, event publish with pending recovery, the optional SurfaceHost extension capability, and direct API endpoints that share the same guard (no bypass by entrance). Evidence: go build/vet clean; full go test ./... passes (SQLite); surface store tests also pass under AGENT_PG_TEST_DSN (PostgreSQL); surface.txt regenerated via the AST snapshot test. Impact: Additive migration v22 (new tables only); existing endpoints and plugin_grants semantics untouched; old consumers unaffected. U3+ (data binding, actions, frontend) deliberately out of scope. Refs: Documents proposal 2026-10-10-generative-ui-plugin.md (r2 U2); Core PR #25; Dev task feature/generative-ui-u2