Skip to content

feat: add pageFrame containerMinWidthPx CI enforcement - #21

Merged
mikeylong merged 1 commit into
mainfrom
codex/pageframe-minwidth-ci
Feb 18, 2026
Merged

mikeylong merged 1 commit into
mainfrom
codex/pageframe-minwidth-ci

Conversation

@mikeylong

@mikeylong mikeylong commented Feb 18, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • add optional layout.pageFrame.containerMinWidthPx to contract schema/types
  • enforce exact deterministic px min-width matching in validator at CI/CD time
  • extend static extractor (inline/CSS/Tailwind/css-var) for min-width
  • add CLI finding mapping for layout.pageframe.minwidth-mismatch
  • add tests, fixtures, docs, and dist rebuilds

Validation

  • pnpm run build
  • pnpm --filter @surfaces/interfacectl-validator run test
  • pnpm --filter @surfaces/interfacectl-cli run test

@vercel

vercel Bot commented Feb 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
interfacectl Error Error Feb 18, 2026 10:53pm

Request Review

@mikeylong
mikeylong merged commit 0275d1e into main Feb 18, 2026
3 of 4 checks passed

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

Copy link
Copy Markdown

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: c21c62e4d7

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

Comment on lines +806 to +809
if (minWidthPx === null) {
TAILWIND_MIN_WIDTH_REGEX.lastIndex = 0;
const minWidthMatch = TAILWIND_MIN_WIDTH_REGEX.exec(content);
if (minWidthMatch) {

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 Scope Tailwind min-width extraction to page container

This fallback extracts min-w-[...] from the entire file content, not from the element marked with data-contract="page-container". In a surface where the page-frame container has no min-width but some unrelated component uses min-w-[1024px], minWidthPx is populated anyway and CI can incorrectly pass containerMinWidthPx enforcement. Because this commit adds strict min-width matching, this creates a real false-negative path for the new check.

Useful? React with 👍 / 👎.

Comment on lines +670 to +672
maxWidthPx === null ||
minWidthPx === null ||
paddingLeftPx === null ||

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 Skip min-width fallback scans when min-width is not contracted

The new guard makes every fallback strategy run whenever minWidthPx is null, but minWidthPx stays null for contracts that omit containerMinWidthPx (the common optional case). That means validation now always scans CSS/TSX fallbacks even after max-width and padding are already resolved, which is an avoidable CI-time regression introduced by this change.

Useful? React with 👍 / 👎.

@mikeylong
mikeylong deleted the codex/pageframe-minwidth-ci branch March 19, 2026 00:48

This branch had an error being deployed

1 failed deployment
Preview — c21c62e4 Deployed Feb 18, 2026 by vercel[bot]
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