Commit Graph
55 Commits
Author SHA1 Message Date
Paul Bakaus 62e91731c0 Add comparison sheets for masked comp references
Batch affected crops beside their actual matcher references in paginated, provenance-marked images. Expose the sheets in CLI output, JSON and the inspector, and direct shared mapping work to inspect them together. Matcher pixels and approval rules are unchanged.

Validation: 580 Rust tests, default Bun/Node suite against rebuilt engine, provider build, browser links, and unchanged raster references for the saved hotel map. AI assistance: implemented and verified with Codex.
2026-09-18 13:21:44 -07:00
Paul Bakaus 068ca4c1cf Expose partial reference masks during region mapping
Surface partial masks in the inspection queue and CLI summary, with links between affected artwork and excluding code bounds. Explain granular foreground bounds in the shared mapping contract. Keep matcher pixels and approval semantics unchanged.

Validation: 578 Rust tests, default Bun/Node suite against the rebuilt engine, provider build, browser inspection, and offline hotel reference parity. AI assistance: implemented and verified with Codex.
2026-09-18 12:24:02 -07:00
Paul Bakaus 59bad18d54 Make region mapping discoverable and validate repeated review groups
AI-assisted implementation by Codex under maintainer direction. Preserve map relationships through measurement and share structural review-group validation between inspection and component review.
2026-09-18 11:09:18 -07:00
Paul Bakaus 4edad58917 Explain map exclusions with focused visual comparisons
Start with problematic regions, show nearby comp context and exact ignored pixels side by side, and collapse technical details. Keep native measurements and approval behavior unchanged.

AI-assisted implementation and validation by Codex under maintainer direction.
2026-09-18 10:31:10 -07:00
Paul Bakaus 7709e87dc8 Add read-only comp region map inspection
Expose original crops, foreground exclusions, container relationships and repeated code groups before asset production. Collect malformed geometry and fully masked references without changing specs, build state, approvals or scoring thresholds.

AI-assisted implementation and validation by Codex under maintainer direction.
2026-09-18 10:20:57 -07:00
Paul Bakaus af460886ee Separate region drafts from measurements and reject stale source geometry
Automatic bands now produce a non-overwriting draft, not a measured spec. Bind successful region measurements to their source bytes so failed revisions cannot advance against old geometry. Preserve prior measurements and native fidelity checks.

AI-assisted implementation and validation by Codex under maintainer direction.
2026-09-18 09:43:24 -07:00
Paul Bakaus 37e1757a5d Make plate candidate checks non-destructive and align reference exclusions
Add exact pixel region coordinates and native command guidance. Apply UI exclusions symmetrically after cover alignment while retaining raw asset provenance checks. Verify unchanged selected assets, build state, missing-art rejection, and comp-copy rejection.

AI-assisted implementation and validation by Codex under maintainer direction.
2026-09-17 18:44:27 -07:00
Paul Bakaus 66b996a3eb Diagnose control lettering without dropping geometry checks
Apply typography measurements to text-bearing controls alongside the existing geometry checks. Remove guidance that assumes every control has button chrome. Keep scoring thresholds and classifications unchanged; cover the missing lettering diagnosis and non-text controls.

AI-assisted implementation and validation by Codex under maintainer direction.
2026-09-17 18:19:35 -07:00
Paul Bakaus 711066550d Preserve reference-bound typography across region remeasurement
Report exact invalid component bounds and duplicate IDs. The reviewed oracle change adds only the decoded-reference fingerprint; measurement and fidelity outputs remain unchanged. Includes failing/passing regressions. AI-assisted implementation and validation with Codex.
2026-09-17 17:41:26 -07:00
Paul Bakaus 026e340d37 Reject transformed comp pixels in production plates
Add registered RGB comparison after area reduction and low-pass filtering, retain the texture exception, and cover metadata stripping plus resize/blur/translation with synthetic fixtures. Verified against the five replaced room plates in the Gemini hotel replay.

Implemented and tested with AI assistance.
2026-09-17 16:33:40 -07:00
Paul Bakaus dc33f54c89 Preserve approvals for unchanged isolated component previews 2026-09-17 14:30:26 -07:00
Paul Bakaus 957bcdd2be Fix: show complete source assets in review comparisons 2026-09-17 12:19:51 -07:00
Paul Bakaus d160174570 Fix review crop integrity and support repeated component decisions 2026-09-17 12:18:03 -07:00
Paul Bakaus 34459702d4 Improve: review components within expanded comparisons 2026-09-17 11:31:30 -07:00
Paul Bakaus 8797054096 Fix: retain visual approvals for unchanged component captures
Keep source identity and integrity validation separate from submitted visual decisions. Reuse approval only for verified identical views and scope, preserve review provenance, and support refreshing an existing unsubmitted draft.

AI assistance: implemented and tested with Codex at the maintainer’s request.
2026-09-16 13:56:24 -07:00
Paul Bakaus 416426e6ca Fix: honor reviewed text styling at native finish
Preserve original comp scores and integrity gates; bind the additional text comparison to the private approved assembly and unchanged inputs.

AI assistance: implemented and validated with OpenAI Codex.
2026-09-16 12:54:35 -07:00
Paul Bakaus 83404a0ccf Improve: streamline assembled-page review
Show the approved composition and captured page in one comparison workspace. Replace component inventory and staged bulk actions with explicit page approval or direct feedback, retaining revision checks and read-only history.

AI-assisted implementation with Codex under maintainer direction.
2026-09-14 19:09:21 -07:00
Paul Bakaus a259a0c8f3 Fix: capture assembled page reviews with pinned local scripts
Keep static component isolation separate from assembled-page capture. Verify frozen responses, DOM and pixels for both paths. AI-assisted implementation with Codex under maintainer direction.
2026-09-14 18:48:12 -07:00
Paul Bakaus 09e16aed17 Improve: enlarge comparison previews on click
AI-assisted implementation with Codex under maintainer direction.
2026-09-14 18:21:38 -07:00
Paul Bakaus 7d29ffc5de Improve: open component comparisons directly from the comp map
AI-assisted implementation with Codex under maintainer direction.
2026-09-14 18:18:21 -07:00
Paul Bakaus 5b4db9c4d2 Polish: show prior feedback with the previous preview
AI-assisted implementation with Codex under maintainer direction.
2026-09-14 17:56:37 -07:00
Paul Bakaus b4b6a02d3f Polish: prioritize comparison images in component review
AI-assisted implementation with Codex under maintainer direction.
2026-09-14 17:46:06 -07:00
Paul Bakaus 2b7527e2cd Fix: isolate review components from assembled context
AI-assisted implementation with Codex under maintainer direction.
2026-09-14 17:36:22 -07:00
Paul Bakaus c65febd291 Present submitted component reviews as read-only records
AI-assisted implementation with Codex under maintainer direction. Preserve preview inspection while removing review mutation controls from submitted rounds.
2026-09-14 17:06:17 -07:00
Paul Bakaus 8d0a82da4a Clarify completed component reviews and isolate feedback styles
AI-assisted implementation with Codex, directed and visually reviewed by the maintainer.
2026-09-14 16:30:28 -07:00
Paul Bakaus ab24a6ddb4 Consolidate comparison toolbar and normalize zoom control 2026-09-14 16:10:07 -07:00
Paul Bakaus eff0d814c9 Add synchronized hover panning and expandable component comparison 2026-09-14 15:59:25 -07:00
Paul Bakaus c088236f7d Keep feedback focus ring inside its scroll container 2026-09-14 15:52:09 -07:00
Paul Bakaus 05dd4e56f6 Guide component reviews through decisions and next-item progression 2026-09-14 15:49:06 -07:00
Paul Bakaus 03413b403f Round component crop endpoints at viewport edges
Validate continuous bounds, then round endpoints together so valid edge regions on odd-sized comps do not overflow. Regression reproduced before the fix; Rust workspace, default and native capture suites pass.

AI assistance: implemented and validated with OpenAI Codex.
2026-09-13 22:15:27 -07:00
Paul Bakaus aa2342faec Crop component previews from verified viewport captures
Clipped Chromium screenshots changed 14 rounded-edge pixels on a static component. Capture and compare complete viewports without resizing, then crop exact integer pixels. Keep frame, DOM and response integrity checks; reject empty or out-of-viewport crops.

AI assistance: diagnosed, implemented and validated with OpenAI Codex.
2026-09-13 21:59:34 -07:00
Paul Bakaus ded752a5c7 Capture original review images and bind the measured inventory
Support static WebP and JPEG without conversion-cache evidence. Bind the measured spec centrally, require complete semantic component previews, and present the initial kit before automatic gate-driven repairs.

AI assistance: implemented and validated with OpenAI Codex.
2026-09-13 21:21:06 -07:00
Paul Bakaus 5b305ccede Find Windows browsers with mixed-case environment names
Resolve ProgramFiles and ProgramFiles(x86) case-insensitively and retain their system fallbacks even when LOCALAPPDATA is present. This lets native component capture discover the installed browser in Windows CI.

AI assistance: OpenAI Codex.
2026-09-13 20:57:49 -07:00
Paul Bakaus 6a93a35293 Add human component review and prepare Impeccable 4.4.0
Carry native comp capture and completion integrity fixes into the reviewed component workflow. Bump the skill to 4.4.0 and engine/platform pins to 0.1.6; keep publication separate from this release candidate.

AI assistance: implemented and validated with OpenAI Codex.
2026-09-13 20:41:09 -07:00
Paul Bakaus 2b9353be6d Fix quarantine of comparison evidence after cleanup errors
Retain unremovable crops under explicit invalid-evidence names in the same parent. Record quarantine paths and filesystem failures while keeping the gate closed.

AI assistance: implemented and validated with OpenAI Codex under maintainer direction.
2026-09-11 14:51:35 -07:00
Paul Bakaus ab48affa4a Fix stale comparison images and raw evidence between gate attempts
Clear generated comparison evidence before preflight and after partial failures. Keep unrelated files, avoid following region symlinks, and fail the gate when cleanup fails.

AI assistance: implemented and validated with OpenAI Codex under maintainer direction.
2026-09-11 14:33:02 -07:00
Paul Bakaus b67bf6159f Share safe evidence publication with responsive gates
Invalidate the current desktop report before preflight and publish gate
verdicts only after all evidence writes succeed. Use the same transaction
as hero, retaining raw measurements and effective blocking status.
Add a regression for stale success after missing-comp and crop-write errors.

AI assistance: implemented and validated with OpenAI Codex.
2026-09-11 14:14:14 -07:00
Paul Bakaus d90806be42 Fix review gaps in comp gate integrity
Bind force authorization to a directly attributed user quotation. Sample
real pixels for subpixel regions, propagate image write failures, and
publish current evidence atomically after all artifact writes succeed.
Revalidate plates at responsive and refuse approval without a readable comp.
Retain region provenance for readings and prioritize actual blocking crops.

AI assistance: implemented and validated with OpenAI Codex.
2026-09-11 14:01:24 -07:00
Paul Bakaus 91a4df5093 Fix comp gate evidence and stale plate approvals
Measure declared region bounds, keep raw and effective verdicts distinct,
and use active blockers for repair feedback. Revalidate plate receipts
against current asset, region, and comp hashes; require an explicit quoted
comp-authority downgrade for force overrides.

Add regressions for missing assets, copied comp pixels, repeated failures,
generic delegation, and stale reports. Preserve fidelity thresholds.

AI assistance: implemented and validated with OpenAI Codex.
2026-09-11 13:39:42 -07:00
7d6c5bdd92 Fix: keep UNC prefix when normalizing hook paths (#784)
Collapsing every separator run turned \\server\share into /server/share, so doctor would probe the wrong file. Leading // after a quote is left intact.

Prepared with AI assistance.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 05:10:10 +05:00
73552b79c5 Fix: user-scope Windows hook group duplication (#784)
JSON-quoted absolute paths doubled backslashes, so merge failed to recognize the group it had just written and appended another copy on every update.

Prepared with AI assistance.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 05:10:10 +05:00
Paul BakausandGitHub 05ef444b7d Use GPT Image 2.5 Flare and native transparent assets (#786)
* Use GPT Image 2.5 Flare for image generation

Add explicit model selection and cover generation/edit request provenance. Compare 24 comp samples with Image 2 and Sunburst, documenting efficiency gains and the photo-preservation tradeoff.

Prepared with AI assistance under maintainer instructions.

* Validate native image transparency for asset production

Add repeatable cutout, glass, and reference-plate experiments with alpha measurements and compositing evidence. Record fidelity limits and the remaining asset-producer integration work.

Prepared with AI assistance under the maintainer instructions.

* Add native transparent PNG asset generation

Wire background options through generation and edits, preserve alpha, and update asset production to use supported commands with visual cutout checks.

Prepared with AI assistance under the maintainer's instructions.

* Fix native alpha review findings

Validate PNG paths for all background modes, score sparse and partial alpha over the sampled ground, and correct launcher and plate workflow guidance.

Prepared with AI assistance under the maintainer's instructions.

* Fix launcher paths in comp workflow commands

Quote existing launcher filenames for the target shell while retaining multiword command prefixes. Cover relative and absolute paths and actual shell argument parsing.

Prepared with AI assistance under the maintainer's instructions.

* Remove evaluation artifacts and docs from image PR

Keep the PR focused on runtime behavior, source skill instructions, and regression coverage. Preserve evaluation material locally.

Prepared with AI assistance under the maintainer's instructions.
2026-09-08 15:52:38 -07:00
Abdul WahabandGitHub 2bc2879276 Fix: Windows update line prompt (#760) (#779)
Fixes #760. Use the existing line-based confirmation prompt on Windows instead of unsupported Unix raw mode. Preserves Unix and confirmation behavior. AI assistance: Cursor Grok 4.6 (implementation), Codex (maintainer-directed review and merge).
2026-09-07 14:36:02 -07:00
Paul BakausandGitHub 599de0e949 Fix per-app design resolution in Rust hooks (#781)
Fixes #367. Resolve design rules per target file in the Rust post-edit, before-edit, and Stop hooks, preserving repository fallback and session state. Credit to tylerjryan for the original report and proposed approach. AI assistance: Codex, under maintainer direction.
2026-09-07 14:29:45 -07:00
Paul BakausandGitHub ea8bfc1d99 Fix Windows CSP candidate path normalization (#778)
* Test nested Windows CSP candidate paths

Regression coverage for #761 before the path-normalization fix.

AI assistance: Codex, under maintainer direction.

* Fix Windows CSP candidate path normalization

Normalize native relative paths before slash-based CSP classification and signal output. Preserve literal Unix backslashes.

AI assistance: Codex, under maintainer direction.

* Avoid reusing stale CSP test fixtures

Retry an unused test directory on AlreadyExists without deleting or reading any pre-existing fixture contents.

AI assistance: Codex, under maintainer direction.
2026-09-07 13:48:29 -07:00
bd6964c35b Trust the OS certificate store for engine HTTPS requests (#757) (#759)
The engine verified TLS against the Mozilla roots bundled through
webpki-roots only, so behind a TLS-inspecting proxy (Aikido, Zscaler,
Netskope) whose root lives in the OS trust store, `impeccable update`
and `install` failed with `invalid peer certificate: UnknownIssuer`
while curl and npm on the same machine succeeded.

crates/context/src/http.rs builds one rustls ClientConfig per process:
the OS trust store (rustls-native-certs: Keychain, Windows store, the
OpenSSL paths on Linux) merged with the bundled roots. A union, not a
replacement, so a container without ca-certificates or a store that
fails to load still verifies exactly as before. SSL_CERT_FILE and
SSL_CERT_DIR replace the OS store the way they do for OpenSSL and curl.
Every HTTPS call site (bundle and signature downloads, /api/version,
/api/commands, the roll API, image generation) builds its agent from
this module; the plain-HTTP live-server calls on localhost are
untouched.

Verified against a local HTTPS server signed by a throwaway CA: trusted
through SSL_CERT_FILE the update check reaches it; without it the same
server is rejected as UnknownIssuer; with SSL_CERT_FILE pointing at that
CA or at a missing file, impeccable.style still verifies through the
bundled roots. cargo test --workspace and the oracle corpus (832) pass.

Written with AI assistance (Claude Code).

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 13:15:18 -07:00
Paul BakausandGitHub 93bfe70c58 Fix truncated surface-brief slug collisions (#774)
* Fix truncated slug collisions

Prepared with AI assistance under maintainer-authorized automation.

* Preserve legacy long-slug reads

Prepared with AI assistance under maintainer-authorized automation.

* Harden legacy slug compatibility

Require target metadata before reading collision-prone legacy brief and critique paths. Add regressions for two long targets with the same pre-hash suffix.\n\nPrepared with AI assistance.

* Keep explicit access to legacy critiques

Allow identity-less pre-hash snapshots to be read by their exact legacy slug while keeping path and URL fallback identity-gated. Document the compatibility boundary and extend collision coverage.\n\nPrepared with AI assistance.
2026-09-07 11:40:05 -07:00
Paul BakausandGitHub c4a4f035ed Fix: distinguish existing Stop findings from new debt (#754)
Use verified first-edit baselines to distinguish pre-existing text findings from new or unknown Stop findings. Preserve dirty worktrees, bound notice rendering, and keep explicit scans unchanged. Verified with the full Rust and Bun/Node suites and real Claude Code edit-to-Stop sessions. Related to #522; keep it open until an engine release ships the fix.

AI assistance: Codex, under maintainer direction.
2026-09-06 16:59:51 -07:00
6ebc24ad66 Add DeepSeek Harness as a supported skills provider (#746)
* Add DeepSeek Harness as a supported skills provider

npx impeccable install now detects ~/.dsh (or $DSH_HOME when it sits
under home) and installs into ~/.dsh/skills, the user-level skill root
DeepSeek Harness scans, with project-level .dsh/skills on the same
layout as other providers. Aliases: dsh, deepseek, deepseek-harness.

Engine: PROVIDER_DIRS / aliases / display / input order / global hint,
$DSH_HOME-aware user skills dir, provider id resolution from the skill
dir, pin harness dirs, bundle path normalization for hashing.

Build: dsh transformer target emitting the frontmatter DeepSeek Harness
reads (user-invocable, license, compatibility, metadata; unknown keys
are ignored there) with no emitHooks (DSH hooks are in-process plugins,
not on-disk manifests) and no agentFormat (no documented on-disk
subagent format); placeholders (AGENTS.md config file, ask_user_question
tool, / command prefix), provider block tags, universal README entry.

Docs: HARNESSES.md row and frontmatter column, CLI-CONTRACT constants,
README/DEVELOP/AGENTS provider lists.

Validation: cargo test --workspace; node scripts/run-tests.mjs core
(138 pass); bun run build (19 providers, dist/dsh artifact verified);
engine smoke against a fake HOME with a local bundle: install
--providers=dsh --scope=global, auto-detected install, and update all
resolve the .dsh provider.

Generated provider output intentionally omitted per repo policy; the
sync workflow regenerates tracked .dsh/skills after merge.

Prepared with AI assistance (DeepSeek Harness coding agent).

* Address review: DSH_HOME-only detection, generated-output pathspecs

- Detect DeepSeek Harness through the resolved $DSH_HOME (fallback
  ~/.dsh) instead of gating on a fixed ~/.dsh path, so a DSH_HOME-only
  setup is offered by a provider-less install; generalize the two
  env-relocated config-dir hints (OpenCode, DSH) into one shared probe.
- Add .dsh to the sync workflow's GENERATED_PATHS and CI's generated
  drift check so the tracked .dsh/skills payload is committed and
  validated.
- Cover both behaviors: new install_detection_tests (DSH_HOME-only,
  default ~/.dsh, refused outside-home override) and a CLI-CONTRACT
  note on the resolved detection path.

Validation: cargo test --workspace; node scripts/run-tests.mjs core
(138 pass); engine smoke: DSH_HOME-only fake HOME installs globally
into the resolved skills dir.

Prepared with AI assistance (DeepSeek Harness coding agent).

* Fix DeepSeek Harness home paths on Windows

Use native relative-path containment, cover case and drive boundaries, and verify relocated global install/update without changing project skills. Add DSH output coverage and correct the install documentation.

AI assistance: Codex, under pbakaus maintainer direction.

* Document the CLI limit on external DSH homes

Clarify that outside-home manual copies are not detected or updated by the CLI.

AI assistance: Codex, under pbakaus maintainer direction.

---------

Co-authored-by: Paul Bakaus <paul.bakaus@gmail.com>
2026-09-06 14:46:05 -07:00
Paul BakausandGitHub 720628f4ea Fix: use system fonts and the light theme in the picker (#751)
Replace external fonts with system stacks and an outlined SVG logo. Adopt the light paper theme, refine Kinpaku accents, and preserve picker interactions with regression coverage.

AI assistance: Codex, under maintainer direction.
2026-09-06 12:44:15 -07:00