Skip to content

Complete the evaluate and correct loop - #7

Merged
slavazeph-coder merged 14 commits into
mainfrom
feature/evaluate-and-correct
Jul 2, 2026
Merged

slavazeph-coder merged 14 commits into
mainfrom
feature/evaluate-and-correct

Conversation

@slavazeph-coder

Copy link
Copy Markdown
Contributor

Reconstruct 0.4 adds candidate rendering, visual heatmaps, observable structure and navigation scoring, machine-readable evaluation results, prioritized correction plans, agent fix prompts, integrity manifests, documentation, and real Chromium regression coverage.

@slavazeph-coder
slavazeph-coder merged commit 4cee83a into main Jul 2, 2026
5 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: cae537871e

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

const pixelThreshold = integer(options.pixelThreshold ?? DEFAULTS.pixelThreshold, "pixel threshold", 0, 255);
const maxComparePixels = integer(options.maxComparePixels ?? DEFAULTS.maxComparePixels, "maximum comparison pixels", 100_000, 25_000_000);
const candidateInput = await assertAllowedUrl(candidateBaseUrl, { allowPrivateNetwork });
const candidateBase = new URL("/", candidateInput);

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 Preserve candidate URL path prefixes

When --candidate includes a path prefix (for example a preview served at http://host/preview/), this resets the base to the origin root before route construction, so recorded routes are evaluated at http://host/<route> instead of under /preview/<route>. That makes otherwise valid candidates served from a subdirectory fail or score the wrong application; keep the base pathname when joining it with each recorded route.

Useful? React with 👍 / 👎.

}

function artifactName(screenId) {
return String(screenId).toLowerCase().replace(/[^a-z0-9._-]+/g, "-").replace(/^-|-$/g, "").slice(0, 120) || "screen";

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 Make evaluation artifact names collision-free

Valid AppSpec screen ids can collapse to the same sanitized name here, such as screen:pricing and screen-pricing (or ids sharing the same first 120 sanitized characters). In that case the later writes to candidate/screenshots/${name}.png, candidate/pages/${name}.json, and diffs/${name}.png overwrite the first route's artifacts, leaving multiple routes in evaluation.json and the manifest pointing at the same last-written files.

Useful? React with 👍 / 👎.

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