-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Comparing changes
Open a pull request
base repository: pbakaus/impeccable
base: cli-v2.1.9
head repository: pbakaus/impeccable
compare: main
- 11 commits
- 386 files changed
- 3 contributors
Commits on May 13, 2026
-
craft + codex: explicit user gates before code (Codex test fix)
A live Codex test against v3.1.0 caught the model skipping both shape questions (when PRODUCT.md was present) and image generation entirely, going straight to implementation after the compact shape brief. The loophole: "confirm or override" at the end of compact shape reads as the final gate, even though codex.md adds four more gates before code. Three tightenings: - craft.md: new "Gates: do not compress" section at the top that names the four gates explicitly (shape brief, direction questions, palette, mock approval). Compact shape's closing line now says it advances to Step 3 and codex.md, not Step 4. New precondition at the top of Step 4 forbids mentioning implementation, file paths, or patch plans until codex.md Steps A-D are complete. - codex.md: new "Four stop points before code" intro listing the user-facing gates as a numbered checklist. Step A now says it's required even when shape just produced a confirmed brief; the shape and Step-A questions cover different ground. Explicit STOP markers added to Steps A, B, and D. - Changelog: v3.1.0 "Shape gates restored" bullet rewritten as "Shape and craft gates strengthened" to cover the additional craft.md sequencing. Retagging v3.1.0 to include this fix rather than cutting a 3.1.1 since the original tag is minutes old, no marketing went out, and the gate work is what the asset-producer story needs to actually work in Codex. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for dc715c7 - Browse repository at this point
Copy the full SHA dc715c7View commit details
Commits on May 14, 2026
-
chore: bump jsdom to 29.1.1, drop border-radius shorthand workaround (#…
…154) jsdom 29.1.1 ships two fixes that unblock this: - 5f66329: Fix background-origin/background-clip in background shorthand - ad8af77: Fix border shorthand handling The `resolveBorderRadiusPx` fallback chain (inline-style scan, stylesheet walk) was only needed because jsdom 29.0.x returned "" for `style.borderRadius` when the value came from a CSS shorthand rule. With 29.1.1 the computed shorthand value resolves correctly, so the plain `parseRadiusToPx(style.borderRadius)` path succeeds and the fallbacks are dead code. Test suite confirms 173/173 unit tests and 23/23 jsdom fixture tests pass with the simplified function. Closes jsdom/jsdom#4153 (from our side). Co-authored-by: Claude <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4027e17 - Browse repository at this point
Copy the full SHA 4027e17View commit details -
fix(cli): pass --copy to npx skills add to avoid symlinking provider …
…dirs (#148) By default, `npx skills add` installs to .agents/skills/ and symlinks .claude/skills/ to it. That symlink fails to be created on fresh projects with no .claude/ directory, and on Windows without elevated privileges, leading to `Cannot find module .../.claude/skills/impeccable/scripts/ load-context.mjs` (issue #140). It also collapses meaningful per-provider differences between the two directories (Claude-specific frontmatter, command prefix, paths) into a single shared file. The skills CLI's `--copy` flag installs each provider's variant separately without any symlinks, fixing both problems at once. Fixes #140. Co-authored-by: Claude Sonnet 4.6 (1M context) <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1e8356f - Browse repository at this point
Copy the full SHA 1e8356fView commit details -
Configuration menu - View commit details
-
Copy full SHA for de9aa13 - Browse repository at this point
Copy the full SHA de9aa13View commit details -
chore: sync bun.lock to jsdom 29.1.1 from #154
PR #154 bumped jsdom in package.json and pnpm-lock.yaml but left bun.lock at 29.0.0, so the next bun install regenerates this diff. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for e493504 - Browse repository at this point
Copy the full SHA e493504View commit details -
fix(critique-storage): make CLI entry-point check Windows-safe (#155)
The `import.meta.url === \`file://\${process.argv[1]}\`` guard at the bottom of critique-storage.mjs silently failed on Windows: Node sets import.meta.url to file:///D:/... (forward slashes) but process.argv[1] is D:\... (backslashes), so the string compare returns false, main() never runs, and the script exits 0 with no output. The OpenCode reporter saw "/impeccable critique" skip the snapshot save with no error. Switch to pathToFileURL(process.argv[1]).href, the standard cross- platform pattern already used everywhere else in the repo. Adds three CLI subprocess tests so future regressions of this guard are caught even on macOS/Linux CI. Fixes #155. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>Configuration menu - View commit details
-
Copy full SHA for 5f15163 - Browse repository at this point
Copy the full SHA 5f15163View commit details -
chore(skill): bump to v3.1.1 + changelog
Windows fix for /impeccable critique CLI guard (#155). Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4af581e - Browse repository at this point
Copy the full SHA 4af581eView commit details
Commits on May 18, 2026
-
Detector architecture v2: static engine, benchmarks, lab, and visual …
…contrast (#156) * Add detector benchmark lab and visual contrast fallback * Expand visual contrast fixture coverage * Add browser visual contrast fallback * Show visual contrast overlays in detector lab * Fix detector lab short viewport layout * Fix detector lab visual overlays * Add visual contrast to browser scan overlays * Avoid browser scroll jumps during visual contrast scans * Resolve visual contrast lazily on scroll * Refresh detector lab visual counts lazily * Update pnpm lockfile for static parser deps * Address Bugbot detector API comments * Report extension visual contrast errors * Refactor detector into engine modules * Address Bugbot detector comments * Fix latest Bugbot detector notes * Fix visual contrast fixture labels * Refine detector lab fixtures * Fix stale detector overlay references * Fix detector lab fixture URLs * Fix typography lab fixture highlights * Fix typography lab page-level signal * Fix visual overlay lifecycle cleanup * Remove dead spotlight timer cleanup * Make browser async APIs reject consistently
Configuration menu - View commit details
-
Copy full SHA for e1d3ea0 - Browse repository at this point
Copy the full SHA e1d3ea0View commit details -
Improve critique skill reliability
- add provider-specific block compilation and tests - bundle detector scripts for skill critique runs - harden critique orchestration, browser handling, and storage
Configuration menu - View commit details
-
Copy full SHA for bc18948 - Browse repository at this point
Copy the full SHA bc18948View commit details -
fix(live-server-test): isolate shared server cwd so tests cannot poll…
…ute repo Previously the main `live-server integration` describe block spawned its shared server against REPO_ROOT, so its session journals/snapshots (a1b2c3d4-dc, aa11bb22, sse-test, test-e2e-1) were written into the real repo's `.impeccable/live/sessions/`. On the next `npx impeccable live` run, restorePendingEventsFromStore replayed those into the poll queue, surfacing as synthetic test events to the agent. Run the shared server against a mkdtempSync tmpdir, seed a minimal package.json so the /source endpoint test still passes, and route the inline journal/snapshot reads (and the live-complete.mjs call) through server.cwd. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 642f03d - Browse repository at this point
Copy the full SHA 642f03dView commit details
Commits on May 22, 2026
-
Add DeepSeek live E2E adapter (#163)
* Add DeepSeek live E2E adapter * Fix DeepSeek live E2E review issues * Harden live-e2e helpers against silent failures - htmlToJsx: match multi-line inline style attributes ([\s\S]*?) - readCliOption: throw when --flag value is missing or another --flag - llm-agent: echo parsed payload (first 500 chars) in schema-error throws * Bind hoisted inline styles to their owning tag normalizeVariantOutput previously hoisted every stripped style attribute onto a selector derived from the variant's first tag, so a style on a nested <span> landed on <h1>. Now walks each opening tag and emits one rule per styled element with a descendant combinator so nested-element styles target the correct node. Also fixes the duplicated multi-line style regex bug (.*?) -> ([\s\S]*?) that survived the previous round. Extracts parseVariantResponse from llm-agent for direct schema-throw testing, and lifts readCliOption into its own module so its new missing-value throws can be unit-tested. Adds tests for: - multi-line style hoisting - nested-element tag binding and per-tag rule emission - astro-global-prefixed selector shape - no-op identity-return path - opts.config short-circuit in createLlmAgent - all four parseVariantResponse schema previews + JSON-parse failure - readCliOption value/throw matrix * Hoist inline styles via data attribute, not tag name Two bugs in normalizeVariantOutput that Bugbot flagged: 1. Hoisted rules like `:scope span` matched every same-tag descendant of the variant wrap, so a style on one of several <span>s leaked onto its siblings. 2. The opening-tag scan used `[^>]*` for attributes, so a literal `>` inside a quoted attribute value (e.g. `aria-label="x > y"`) terminated the match early and the trailing `style="..."` was never seen. stripInlineStylesPerElement now walks each opening tag character by character respecting quoted attribute values, and tags every styled element with `data-impeccable-hoist-id="N"`. Rules select on the attribute so they bind to exactly the one element they came from. The attribute is stripped during carbonize cleanup so it does not survive into the final source. * Harden live E2E variant CSS normalization * Fix Radix tests * Harden live E2E pick clicks
Configuration menu - View commit details
-
Copy full SHA for 84135db - Browse repository at this point
Copy the full SHA 84135dbView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff cli-v2.1.9...main