Skip to content

Add UI AST control plane artifacts#42

Merged
mikeylong merged 4 commits intomainfrom
codex/ui-ast-platform-evolution
Mar 29, 2026
Merged

Add UI AST control plane artifacts#42
mikeylong merged 4 commits intomainfrom
codex/ui-ast-platform-evolution

Conversation

@mikeylong
Copy link
Copy Markdown
Collaborator

Summary

  • add generic UI AST control-plane artifacts in interfacectl
  • make lifecycle, review, proposal, integration, observation, runtime verdict, and promotion records canonical AST-side schemas/helpers
  • wire bundle 3.0 prepare-generation and prepare-runtime payloads to those artifacts

Testing

  • pnpm --filter @surfaces/interfacectl-validator build
  • pnpm --filter @surfaces/interfacectl-cli build
  • node --test test/ui-ast.test.mjs test/ui-ast-control-plane.test.mjs
  • node --test test/compile.test.mjs test/prepare-generation.test.mjs test/prepare-runtime.test.mjs

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

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: 1f2377c28a

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

surfaceId?: string,
): UiAstReviewArtifact {
const targetSurface = findSurface(after, surfaceId);
const beforeSurface = findSurface(before, targetSurface.id);
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 Handle added surfaces in review artifact generation

buildUiAstReviewArtifact unconditionally calls findSurface(before, targetSurface.id), which throws when the reviewed surface exists only in the after AST (for example, first-time bootstrap or adding a new surface). That makes review artifact generation fail for a valid change type that diffUiAst already supports, so proposal/review flows cannot process surface additions.

Useful? React with 👍 / 👎.

let verdict: UiAstRuntimeVerdictStatus;
let code = "runtime.observation.ok";
if (hasRequiredDrift) {
verdict = policy === "strict" ? "block" : "warn";
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 Respect "off" runtime policy when producing verdicts

When required drift is present, the verdict logic maps every non-strict policy (including off) to warn, so policy off still emits drift warnings and non-allow fallbacks. This contradicts the repo’s established off semantics (checks disabled) and will create false runtime violations for surfaces intentionally configured with policy off.

Useful? React with 👍 / 👎.

@mikeylong mikeylong merged commit 0b9731b into main Mar 29, 2026
2 checks passed
@mikeylong mikeylong deleted the codex/ui-ast-platform-evolution branch March 29, 2026 20:20
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