Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: pbakaus/impeccable
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: cli-v2.1.9
Choose a base ref
...
head repository: pbakaus/impeccable
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
  • 11 commits
  • 386 files changed
  • 3 contributors

Commits on May 13, 2026

  1. 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]>
    pbakaus and claude committed May 13, 2026
    Configuration menu
    Copy the full SHA
    dc715c7 View commit details
    Browse the repository at this point in the history

Commits on May 14, 2026

  1. 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]>
    pbakaus and claude authored May 14, 2026
    Configuration menu
    Copy the full SHA
    4027e17 View commit details
    Browse the repository at this point in the history
  2. 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]>
    abdulwahabone and claude authored May 14, 2026
    Configuration menu
    Copy the full SHA
    1e8356f View commit details
    Browse the repository at this point in the history
  3. ignore talks

    pbakaus committed May 14, 2026
    Configuration menu
    Copy the full SHA
    de9aa13 View commit details
    Browse the repository at this point in the history
  4. 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]>
    pbakaus and claude committed May 14, 2026
    Configuration menu
    Copy the full SHA
    e493504 View commit details
    Browse the repository at this point in the history
  5. 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]>
    pbakaus and claude committed May 14, 2026
    Configuration menu
    Copy the full SHA
    5f15163 View commit details
    Browse the repository at this point in the history
  6. 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]>
    pbakaus and claude committed May 14, 2026
    Configuration menu
    Copy the full SHA
    4af581e View commit details
    Browse the repository at this point in the history

Commits on May 18, 2026

  1. 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
    pbakaus authored May 18, 2026
    Configuration menu
    Copy the full SHA
    e1d3ea0 View commit details
    Browse the repository at this point in the history
  2. 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
    pbakaus committed May 18, 2026
    Configuration menu
    Copy the full SHA
    bc18948 View commit details
    Browse the repository at this point in the history
  3. 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]>
    pbakaus and claude committed May 18, 2026
    Configuration menu
    Copy the full SHA
    642f03d View commit details
    Browse the repository at this point in the history

Commits on May 22, 2026

  1. 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
    abdulwahabone authored May 22, 2026
    Configuration menu
    Copy the full SHA
    84135db View commit details
    Browse the repository at this point in the history
Loading