Skip to content

feat(cli): add first-run web onboarding and replayable auth - #25

Merged
mikeylong merged 2 commits into
mainfrom
codex/interfacectl-editable-main
Mar 11, 2026
Merged

mikeylong merged 2 commits into
mainfrom
codex/interfacectl-editable-main

Conversation

@mikeylong

Copy link
Copy Markdown
Collaborator

Summary

  • add CLI-first web surface onboarding via interfacectl init and interfacectl analyze, including generated analysis, draft design-system, contract, and extraction artifacts
  • add replayable browser-session auth capture/list/test flows plus Playwright-backed remote analysis so protected URLs can be inspected as rendered authenticated surfaces
  • update validation wiring, docs, and CLI tests for the new onboarding and remote auth flows

Testing

  • pnpm --filter @surfaces/interfacectl-cli build
  • pnpm test
  • node --test test/init-auth.test.mjs

@vercel

vercel Bot commented Mar 11, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
interfacectl Ready Ready Preview, Comment Mar 11, 2026 10:35pm

Request Review

@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: b315d51415

ℹ️ 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 331 to 334
if (format === "json") {
console.log(JSON.stringify({ ok, findings: sorted }, null, 2));
await emit(`${JSON.stringify({ ok, findings: sorted }, null, 2)}\n`);
return exitCode;
}

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 Honor --out when validate-extracted runs in text mode

The new --out option is documented and wired as “write output to file instead of stdout”, but this branch only uses emit(...) for JSON output, so the default text mode still writes to stdout/stderr and never creates the output file. This breaks automation that relies on interfacectl validate-extracted --out ... without also forcing --format json.

Useful? React with 👍 / 👎.

Comment on lines +252 to +254
const fileDoc = existsSync(metadataPath)
? toValidDocument(JSON.parse(await readFile(metadataPath, "utf-8")))
: { schemaVersion: 2, profiles: [] };

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 Guard auth metadata JSON parsing against corruption

Parsing auth-profiles.json is now unguarded, so any malformed/truncated file throws and aborts all auth-backed flows (auth list/test/revoke, plus init/analyze paths that inspect profiles). This is a regression from the previous tolerant behavior and creates a hard failure mode from a single bad local file instead of recovering as an empty profile set.

Useful? React with 👍 / 👎.

@mikeylong
mikeylong merged commit d98fb04 into main Mar 11, 2026
4 checks passed
@mikeylong
mikeylong deleted the codex/interfacectl-editable-main branch March 19, 2026 00:48

This branch was successfully deployed

1 active deployment
Preview — 6689bc7a Deployed Mar 11, 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