All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
- feat(bridge):
reveal overlay — a "what is what" map (spel.js v0.14.0).
New handlers reveal / reveal_stop / reveal_toggle draw one amber box +
a mono @ref chip over EVERY interesting element at once (branded, no
animation), live-repositioned on scroll/resize via a throttled rAF. Optional
selector scopes it to a subtree; all includes non-interesting roles.
Exposed as window.__spel.reveal. Tested on real Chromium (72/72). - feat(bridge): overlay + connect modal restyled to the Blockether brand
(spel.js v0.13.0) — cream paper (
#faf3eb), charcoal ink/borders (#3f3f3f),
amber accent (#ffc420), Inter/JetBrains-Mono fonts, hard offset shadows and
sharp corners, matching blockether.com. All entrance/idle animations removed
(breathing glow, blinking masks, pop/fade) — the chrome is now flat and static. - feat(bridge): picker copies the picked selector to the clipboard and shows
a branded confirmation toast on click (spel.js v0.12.0). Previously clicking an
element during a pick recorded it silently — nothing landed in the clipboard,
so "nic się nie działo". Now
pickerClick writes @ref via
navigator.clipboard (with a document.execCommand('copy') textarea fallback
for non-secure/http origins), records it on picker._lastCopied, and flashes a
top-centre "copied @eXXXX" pill. - feat(bridge): overlay + connect modal re-themed to a light palette — the
label chip, HUD pill, connect modal card and its input/buttons moved off the
dark slate gradient onto white/paper backgrounds with dark-ink text, keeping
the tragedy-green accent (
#2EAD33 / darkened #249329 for text-on-light) and
serif wordmark. The highlight box stays green. - feat(bridge): branded connect modal for the Ctrl+Shift+K server chooser
(spel.js v0.11.0). Replaces the native
prompt() with a spel-themed dialog
(slate/tragedy-green palette, serif wordmark, theatrical-mask header, focus
glow, hover states, spel-fade/spel-pop entrance). Enter connects,
Escape or a backdrop click cancels; input is pre-filled with the current
server. Two real-Chromium tests cover open + Escape-dismiss. - fix(bridge): Local Network Access (LNA) support so the ejected loader
works on Edge 143+/Chrome 142+, which gate a public origin reaching
127.0.0.1 behind a per-origin user permission (the "Permission was denied
for this request to access the loopback address space" error). The loader
now fetches spel.js with fetch(url, {targetAddressSpace:'loopback'}) — the
call that raises the grantable prompt instead of the silent no-cors deny — and
inline-injects it, falling back to <script src> on older browsers. spel.js
result POSTs carry the same flag (→ v0.10.0), and the bridge emits
Access-Control-Allow-Private-Network: true for pre-LNA browsers. Documented
the browser toggle + managed-policy limit in references/BRIDGE.md. - feat(bridge): service worker (
spel-sw.js) for same-origin capture of
passive subresources the fetch/XHR wrappers can't see — <img>, <script>,
<link rel=stylesheet>, fonts, media (spel.js → v0.9.0):
- New handlers
sw_register ({:url … :scope …}, defaults /spel-sw.js),
sw_status, sw_unregister. Once the worker controls the page it fetches
those passive requests itself and forwards a full entry (status, headers,
body) into the same network_list/network_har store, tagged via:"sw";
the PerformanceObserver path steps aside to avoid double counting. - Bridge serves the worker at
/spel-sw.js; spel bridge --eject-sw
(-o <file>) unpacks it for hosting on your own origin (service workers are
same-origin only + need https/localhost). Ships inside the native image via
the existing com/blockether/spel/browser/.* resource pattern. - Tested on live Chromium (registers, claims control, captures a passive
<script> with real status/headers, then unregisters).
- feat(bridge): cross-validation pass — three capabilities previously
documented as CDP-only turned out doable in pure in-page JS and are now
implemented + tested on live Chromium (
spel.js → v0.8.0):
network_har — serializes the in-page fetch/XHR capture as HAR 1.2
({log:{version,creator,entries[]}}), so the captured traffic exports to
any HAR viewer. "No HAR record" was overstated.emulate — JS-level overrides of geolocation, timezone (Intl),
locale/languages, userAgent/platform/vendor/device metrics, and
prefers-color-scheme/reduced-motion via a matchMedia override.
Affects what page scripts read (not the real network stack or CSS
@media) — the JS half of Playwright's env emulation, no CDP.screenshot — rasterizes the DOM via an SVG <foreignObject> →
canvas → PNG data URL (falls back to the SVG data URL when a cross-origin
image taints the canvas). "No screenshots" was overstated.
- feat(bridge): locator composition in the selector engine (
spel.js →
v0.7.0) — Playwright-style >> chains (.card >> button) plus nth=N
(negative from end), first, last, has-text="…" and visible[=…] filter
segments; frame= steps unified into the same chain resolver. Tested on live
Chromium. - feat(bridge): fill the real Playwright-parity gaps in the in-page engine
(
spel.js → v0.6.0), all doable in pure JS without CDP and tested against
live Chromium (61/61):
- Dialogs —
dialog_handler (policy accept|dismiss, promptText),
dialogs, dialogs_clear: wraps alert/confirm/prompt/beforeunload. - Console/errors —
console_capture, console_list, console_clear
(wraps console.* + onerror + unhandledrejection). - Navigation —
goto/navigate to any URL (survives via the
sessionStorage re-inject). - Cookies —
cookies, set_cookie/add_cookie, clear_cookies. - Waits —
wait_for_timeout, wait_for_function, wait_for_url,
wait_for_load_state, wait_for_response, wait_for_request. - Request mocking —
route/unroute/routes (same-origin fetch/XHR
abort or fulfil, short-circuited in the wrapper). - Input/events —
upload/set_input_files (base64 → DataTransfer),
tap, dispatch_event. - Frames —
frames + frame=<sel> >> <inner> same-origin drill-down.
- docs(bridge): documented the new verbs and the revised CDP limits (protocol/
cross-origin interception, in-page-but-polled events) in
references/BRIDGE.md
and the browser README.md. - feat(bridge): the overlay picker now wears spel's theatrical brand — a
tragedy-green (
#2EAD33) highlight box with a softly breathing glow and
rounded corners, a Playwright-style label chip (role · accessible name ·
size) that follows the cursor, a centred HUD pill (🎭 masks, "click to
select · Esc to cancel"), and a crosshair cursor while picking. spel.js
→ v0.5.0. - feat(bridge): CDP-free in-page automation —
spel bridge serves a loopback
SSE/POST transport + the embedded spel.js engine (window.__spel.invoke,
~80 verbs, in-page network capture, overlay picker keymap). --eject unpacks
the engine (ships inside the native image); --eject --bookmarklet/--console
emit loaders; spel bridge use|off|status routes regular spel <verb>
commands through the bridge (saved in ~/.spel/bridge.json). - docs(bridge):
references/BRIDGE.md, browser spel.js README, SKILL +
CAPABILITIES coverage (documents limits vs CDP upfront). - feat(bridge): token-gated transport — the bridge auto-generates a shared
secret and refuses SSE/command/result requests without it (403), so another
page in the same browser cannot drive the tab or read captured traffic over
loopback.
spel bridge use (same box) picks up the live token automatically
(from ~/.spel/bridge-runtime.json); remote bridges take --token. - feat(bridge): re-inject survival — the engine remembers its route per-tab in
sessionStorage, so a full-page navigation/reload to a page that re-loads
spel.js re-subscribes automatically instead of losing the tab. connect
now replaces any prior connection (single live SSE/WS per tab). - feat(bridge): if the fixed port is busy, an ephemeral one is chosen instead
of crashing; the live port + token are published to
~/.spel/bridge-runtime.json. - build(driver): resolve the Playwright driver from the Playwright Java Maven
artifacts (
driver + driver-bundle) instead of the deprecated
cdn.playwright.dev zips (deleted mid-2026), and bump Playwright Java to
1.61.0. driver.clj assembles package/cli.js + the platform Node runtime
into the cache dir and points playwright.cli.dir at it (prefers ~/.m2,
falls back to Maven Central) — unblocks Linux/Windows CI.
- feat(report): pimp the alternative HTML report to the Blockether brand.
Swapped the generic soft blur shadows for the signature hard offset-shadow
system (
--shadow / --shadow-md / --shadow-brand amber hero block /
--shadow-hard); the report header now reads as a hero — 2px ink border,
6px amber offset shadow, and a 4px amber top-accent bar. Summary chips became
branded stat-tiles (mono tabular-nums value stacked over a mono label, colored
left-rail per status, hover lift). Test cards gain a hover lift + offset pop.
Real responsive behavior: header stacks and summary chips become a 2-col grid
under 768px, the toolbar goes full-width/column, env grid collapses to a
single column under 560px. Light + dark themes both retuned. 32/32 alt-report
tests green. - fix(video):
core/video-path returns nil for a non-recording page again
(Playwright 1.61 started throwing "Video recording has not been started.");
detected structurally via VideoImpl's missing artifact field, not the
English message.
v0.9.8 - 2026-06-02
- build: add to POM so Clojars links the GitHub repo
- Update Clojure library version to 0.9.7
- Rename Video Recording to Test Reporting in README
v0.9.5 - 2026-04-16
- feat(alt-report): markdown + HTML attachments, merged HTTP step, assertion polish
- feat(cdp): scan 9223 alongside 9222/9229, extract to platform/common-cdp-ports
- feat(alt-report): merge HTTP step + body, live iframe for HTML attachments
- release: update version files for v0.9.4, bump to next dev version
v0.9.4 - 2026-04-15
- refactor(alt-report): soften green for passed — outline only, no bg tint
- feat(alt-report): tighten failure UX — full trace, per-step errors, no dupe
- release: update version files for v0.9.3, bump to next dev version
v0.9.3 - 2026-04-14
- test(alt-report): add second result in toolbar tests to leave single mode
- feat(alt-report): polish single-test mode + rich-headers showcase test
- release: update version files for v0.9.2, bump to next dev version
v0.9.2 - 2026-04-13
- fix(test): normalize CRLF in sci_eval stdout assertions for Windows
- feat(sci): full math class surface — Math, StrictMath, MathContext, RoundingMode, Random family
- test(sci_eval): pin println + result contract (issue #106)
- release: update version files for v0.9.1, bump to next dev version
v0.9.1 - 2026-04-13
- refactor(report): rename "block" alternative report to "alternative"
- release: update version files for v0.9.0, bump to next dev version
v0.9.0 - 2026-04-13
- feat(page,sci): evaluate-file, add-init-script!, new-cdp-session
- fix(sci): restore pprint/pp/clojure.pprint — all backed by zprint
- refactor(sci): drop clojure.pprint alias + dead fork-sci-ctx
- release: update version files for v0.8.0, bump to next dev version
v0.8.0 - 2026-04-12
- fix(ci): restore 3 orchestrator sentinel strings removed by compression
- fix(evals): restore canonical contract strings lost in caveman compression
- fix(ci): sync tests + docs with spel-test-planner removal, silence boxed math
- refactor(templates): caveman compression + alt-report stats + SCI set-device!
- feat(cli): add --from-json flag to spel report for single-run mode
- feat: add generate-from-results! for single-run / lambda reports
- feat: emit summary.json + report.json alongside alt report HTML
- feat: add Allure label filtering to alternative report
- test: add 16 tests for platform CDP probe, SCI eval, stdlib aliases
- alt report: icon-only theme toggle, no label text
- refactor: extract CDP probe to platform.clj, fix anomaly cause chain
- feat: add page/goto alias + enhance cdp-connect auto-discovery
- sci: add goto as alias for navigate
- feat: add spel/cdp-connect with WSL auto-discovery
- fix: eagerly require zprint.core for GraalVM native-image compat
- fix: restore clojure.set/walk :as aliases, suppress unused-namespace lint
- fix: drop unused :as aliases for clojure.set/walk (lint failure)
- sci: merge markdownify into markdown namespace, add md alias
- feat: SCI env overhaul — stdlib, aliases, zprint, WSL exposure, issue #105
- fix: clear boxed-math warnings in wsl-default-gateway-ip hex parser
- ci(wsl-verify): write test.clj to project dir, not /tmp (cross-fs)
- ci(wsl-verify): add default-jre back to additional-packages
- ci(wsl-verify): set +e to disable errexit in wsl-bash runner step
- ci(wsl-verify): split Clojure script into separate step, fix heredoc
- ci(wsl-verify): find java binary via direct path search, not which
- ci(wsl-verify): set JAVA_HOME for Clojure CLI inside WSL
- ci(wsl-verify): back to Vampire/setup-wsl + wsl --update + set-default-version 2
- ci(wsl-verify): switch to vedantmgoyal9/setup-wsl2 for real WSL2
- ci(wsl-verify): force WSL2, gate Playwright on Node.js availability
- ci(wsl-verify): install WSL-native Node.js for Playwright driver
- ci(wsl-verify): use winning host for connectOverCDP, handle WSL1
- ci(wsl-verify): fix gateway IP parsing + GITHUB_WORKSPACE in WSL
- ci(wsl-verify): actually run spel-level CDP code from inside WSL
- alt report: pin theme toggle INSIDE the header card (not page-shell)
- ci(wsl-verify): drop unrecognised wsl-version input (cleans up warning)
- ci(wsl-verify): force LF line endings, pin WSL2, guard GITHUB_OUTPUT
- ci(wsl-verify): detach Chrome properly + try mirrored networking
- ci(wsl-verify): poll /json/version instead of waiting for DTAP file
- ci(wsl-verify): fall back Chrome→Edge and capture stderr on launch failure
- ci: verify WSL ↔ Windows CDP discovery on a real GH Actions runner
- alt report: keep theme toggle inside .page-shell, not floating in gutter
- dev: surface 403 body + webSocketDebuggerUrl in WSL CDP diagnostic
- daemon: resolve Windows host IP for CDP discovery under WSL
- dev: add WSL → Windows CDP reachability diagnostic
- alt report: pin theme toggle to top-right corner, fixed positioning
- alt report: fix logo layout, description HTML, suite sort, fake request headers
- fix: update CLI bash test assertions for redesigned alternative report
- fix: remove obsolete session_list daemon test — handler moved to CLI-side
- fix: clear GraalVM native-image boxed-math + reflection warnings
- alt report: fix lint, wire workflow to the new customization opts
- chore: drop OBSERVATIONS.md now that the bug hunt shipped
- alt report: sanitize description HTML, expose CLI flags, drop PLAN.md
- alt report: harden customization opts (self-critique fixes)
- alt report: custom logo, description, CSS, and build metadata
- alt report: fix 12 findings from the visual/UX bug hunt
- surface CDP endpoints + clean up session list and CDP discovery
- surface CDP endpoints in
spel session list - make trace chunk size configurable and disable chunking by default
- refine alternative report UX and add split-trace loading
- fix mobile UX: lighter descriptions, full-width attachment buttons, HTTP card overflow
- improve alt report mobile UX and visual refinements
- redesign alternative report: neutral palette, search, and sort
- style: refine blockether alternative html report visual design
- redesign alternative report investigation UX
- test: prevent Claude skill path leak into opencode scaffold
- fix: keep alternative reports available in failed empty runs
- fix: make load-results test OS-agnostic — file ordering not guaranteed
- refactor: rename block-report to spel-allure-alternative-html-report with direct require
- test: add CLI assertions for dashboard commands
- feat: add alternative HTML allure report and block report tests
- feat: dashboard commands and allure reporter enhancements
- docs: compress templates with caveman ultra style
- feat: observability dashboard — live browser viewport, activity feed, network, sessions
- test: agentic E2E for confirm-actions TTY gate + lightpanda mock launch
- test: add 17 E2E assertions for sessions 3+4 features
- feat: quick wins — keyboard inserttext, window new, download-path
- feat: agent-browser parity III — config file, upgrade, Lightpanda, dialog/confirm, allow-file, screenshot output flags
- feat: agent-browser parity II — iOS device, profile clone, HAR, auth vault, and more
- feat: agent-browser parity — annotated screenshot, security trio, batch
- release: update version files for v0.7.11, bump to next dev version
- chore: remove temporary test-e2e seed scaffolding files
- test: add e2e seed scaffolding and apply formatting updates
- fix: treat non-200 CDP probe responses as unavailable endpoints
- fix: M144+ WebSocket-only fallback when /json/version returns 404
- Revert "Fix CDP discovery on Chrome/Edge M144+ WebSocket-only mode"
- Fix CDP discovery on Chrome/Edge M144+ WebSocket-only mode
- fix: render paragraph and listitem in a11y-tree->markdown
- fix: default markdownify to a11y snapshot output and preserve readable line breaks
- release: update version files for v0.7.10, bump to next dev version
- docs: update templates and agents for unified allure reporter
- chore: remove opencode/sisyphus artifacts, add CLAUDE.md -> AGENTS.md symlink
- fix: add src/clj, test/clj, src/cljc, test/cljc to default source paths
- chore: remove stale planning docs
- chore: clean cljfmt config and bump allure CLI to 3.3.1
- release: update version files for v0.7.9, bump to next dev version
v0.7.9 - 2026-03-29
- docs: document SPEL_ALLURE_CWD env var for read-only filesystems
- fix: support SPEL_ALLURE_CWD for allure on read-only filesystems
- release: update version files for v0.7.8, bump to next dev version
v0.7.8 - 2026-03-29
- fix: prefer globally installed allure CLI over npx
- fix: add missing with-test-server fixture to ct/api_test
- fix: compose around hooks correctly in cli integration tests
- refactor: unify allure reporters and migrate tests to with-testing-page
- docs: rewrite README for clarity and restore testing coverage
- ci(release): shallow clone + targeted fetch to skip gh-pages download
- ci: reuse CI native image artifacts in release — only build linux-arm64
- fix(test): restore session idle timeout after daemon_test to prevent mid-test daemon kill
- release: update version files for v0.7.7, bump to next dev version
v0.7.7 - 2026-03-18
- fix(core): make new-api-context thread-safe with locking (#99)
- docs: comprehensive retry documentation across all skill references
- feat(retry): add retry-guard predicate + catch exceptions in retry loop (#98)
- fix(retry): guard :status cast with number? check in default :retry-when (#98)
- release: update version files for v0.7.6, bump to next dev version
v0.7.6 - 2026-03-18
- fix(allure): pretty-print JSON bodies in cURL and remove 500-char truncation
- release: update version files for v0.7.5, bump to next dev version
v0.7.5 - 2026-03-18
- fix(allure): always use resolved full URL in HTTP exchange attachments
- release: update version files for v0.7.4, bump to next dev version
v0.7.4 - 2026-03-18
- docs: document session idle timeout, CDP lock wait env vars, and SCI APIs
- chore: change session idle timeout default from 1 hour to 30 minutes
- feat(daemon): auto-kill session after 1 hour of inactivity
- fix(test): deref atom values in route lock tests to prevent Atom-as-Number cascade
- feat(daemon): queue on CDP route lock instead of fail-fast, inspired by browser-lock (#97)
- docs: update skills, agent templates, and README for --auto-launch (#97)
- feat: add --auto-launch flag for per-session browser isolation (#97)
- docs: fix diff tooling claim — spel has snapshot diff and pixel diff
- docs: fix 5 factual errors in comparison after deep verification (#90)
- docs: update comparison with agent-browser 0.20.11 (native Rust rewrite)
- release: update version files for v0.7.3, bump to next dev version
v0.7.3 - 2026-03-15
- feat: surface scroll metrics in snapshot -S for overflow containers (#96)
- docs: add agent install hint comment to README (#93)
- fix(ci,ui): reliable PR detection fallback and hash-based URL routing (#94, #95)
- release: update version files for v0.7.2, bump to next dev version
v0.7.2 - 2026-03-15
- docs: point README links to specific reference files instead of generic SKILL.md
- docs: add computed styles for visual comparison to SELECTORS_SNAPSHOTS.md (#92)
- test: harden find-scrollable tests with nested, horizontal, ref-based scrolling (#90)
- feat(page): add SPEL snapshot refs to find-scrollable results (#90)
- docs: add scrollable-page route and Java type gotcha to AGENTS.md
- test: add scrollable discovery and smooth scroll tests (#90)
- feat(sci,daemon): expose scrollable discovery and smooth scroll (#90)
- feat(page): add scrollable discovery, scroll-position, and smooth scroll (#90)
- docs: update skill/agent templates with keyboard-press and allure-ct-reporter (#89, #91)
- docs: expand AGENTS.md testing section with clojure.test, HTML pages, and gotchas
- docs: add issue #89 reproduction steps and learnings to AGENTS.md
- test: add behavioral keyboard press tests with dedicated HTML page (#89)
- fix: expose aria-disabled in snapshots and add single-arg keyboard press (#88, #89)
- release: update version files for v0.7.1, bump to next dev version
v0.7.1 - 2026-03-14
- fix(cli): add --cdp-url alias and regenerate docs with CDP/dialog functions (issue #87)
- fix(cli): markdownify --url handles protocol-less URLs and redirects (issue #86)
- release: update version files for v0.7.0, bump to next dev version
v0.7.0 - 2026-03-14
- fix(graal): add Dialog interface to reflection config for SCI interop
- fix(sci): expose dialog manipulation functions in SCI (issue #85)
- release: update version files for v0.6.10, bump to next dev version
- feat(daemon): auto-shutdown after CDP idle timeout (default 30min)
- release: update version files for v0.6.9, bump to next dev version
v0.6.9 - 2026-03-13
- chore: regenerate help registry with CDP disconnect/reconnect entries
- fix(test): update daemon_test CDP error message to match new wording
- fix(sci): cdp-reconnect auto-resolves URL from daemon — no args needed
- fix(sci): context-cookies returns Clojure maps (#84) + CDP disconnect/reconnect in eval-sci
- feat(evals,daemon,sci): harden frisco flow and add cdp/url helpers
- fix(daemon): use ProcessHandle for portable pid liveness checks
- fix(evals): handle missing opencode binary in real eval smoke
- feat(evals): enforce real-site fast-path orchestration
- release: update version files for v0.6.8, bump to next dev version
v0.6.8 - 2026-03-13
- fix: resolve boxed math warning in daemon.clj for GraalVM
- release: update version files for v0.6.7, bump to next dev version
v0.6.7 - 2026-03-13
- fix: repair unbalanced parens in core.clj
- fix: skip browser download in Playwright/create, fix README links (#82, #83)
- chore(evals): remove compiled python cache artifacts
- feat(evals): add real orchestrator eval harness and references docs
- fix(daemon): fail fast on shared CDP route ownership
- release: update version files for v0.6.6, bump to next dev version
v0.6.6 - 2026-03-12
- test(cli): cover markdownify and audit workflows
- feat(cli): add markdownify command and unify audit flags
- fix(tests): align init-agents help assertions with current CLI
- docs: fix README rendering and remove duplicated setup notes
- fix(daemon): stop returning snapshots from action responses
- release: update version files for v0.6.5, bump to next dev version
v0.6.5 - 2026-03-11
- docs: align skill and agent templates with session-first CDP workflow
- fix: humanize unknown runtime errors and harden free-port handling
- fix(cli): resolve relative paths against caller CWD, add spel/eval-js alias
- release: update version files for v0.6.4, bump to next dev version
- release: update version files for v0.6.3, bump to next dev version
v0.6.4 - 2026-03-11
- fix(search): resolve boxed math warnings for GraalVM native-image
v0.6.3 - 2026-03-11
- fix(search): remove dead card-style renderer code and ANSI color helpers
- release: update version files for v0.6.2, bump to next dev version
- fix(skill): add missing presenter/visual refs to SKILL.md index
- release: update version files for v0.6.1, bump to next dev version
- feat(report): port CSS_PATTERNS.md design system into report HTML
- release: update version files for v0.6.0, bump to next dev version
- fix(search): forward --json flag from native binary to search command
- feat(search): add DuckDuckGo fallback via HTML endpoint with anti-detection and fast block detection
- release: update version files for v0.5.27, bump to next dev version
- feat(search): retry with backoff, markdown output, warning field
- release: update version files for v0.5.26, bump to next dev version
- fix: session close timing + forward --channel to daemon subprocess
- release: update version files for v0.5.25, bump to next dev version
- feat: restructure 7 audit commands under 'spel audit' umbrella
- release: update version files for v0.5.24, bump to next dev version
- fix: CLI bugs (--session screenshot, --session close, --channel) + presenter design system alignment
- chore: mark agent-helpers-v0523 plan complete (105/105)
- fix(tests): align CLI assertion with actual orchestrator template wording
- release: update version files for v0.5.23, bump to next dev version
- Merge branch 'agent-helpers-v0523': add 6 QA helpers, wire agents, fix dark theme (v0.5.23)
- feat(helpers): add 6 QA helpers, wire helpers into agents, fix report dark theme
- chore: mark agent-consolidation plan complete in boulder state
- chore: add F-wave review evidence and update notepads
- fix(agents): replace stale spel-test-generator refs in explorer and automator templates
- release: update version files for v0.5.22, bump to next dev version
- refactor(agents): consolidate 14 agents to 8, apply Anthropic skill-building principles
- release: update version files for v0.5.21, bump to next dev version
- refactor(agents): merge visual-qa into bug-hunter, consolidate to 14 agents
- release: update version files for v0.5.20, bump to next dev version
- fix(refs): remove 'navigate directly' anti-patterns from NAVIGATION_WAIT and COMMON_PROBLEMS
- refactor(agents): consolidate to 15 agents, enforce human-like navigation
- feat(autotrainer): add bounded training loop with iteration, feedback, convergence
- feat(init-agents): add simplified core scaffold mode
- feat(helpers): add overview all-frames plus debug and emulate commands
- test(init-agents): add 113 unit tests for agent scaffolding logic
- chore(agents): regenerate test specs README for 0.5.19
- release: update version files for v0.5.19, bump to next dev version
- chore: remove LEARNINGS.md and bugfind-reports from repo root
- release: update version files for v0.5.18, bump to next dev version
- feat(agents): add orchestrator routing, discovery pipeline, report template enhancements, and Unbound site audit
- fix(init-agents): use record format for tools in product-analyst template
- fix(init-agents): suppress --ns warning when --no-tests is set
- release: update version files for v0.5.17, bump to next dev version
- feat(init-agents): add opt-in learnings and markdown report scaffolding
- release: update version files for v0.5.16, bump to next dev version
- feat(report): elevate unified report clarity and visual storytelling
- fix(init-agents): improve Claude template transformation fidelity
- chore: wire orphaned refs into subagent-ref-map + delete dogfood-report.html
- fix(init-agents): --no-tests now scaffolds all agents, skips only seed test + specs
- feat(cross-agent-integration): wire product-spec.json downstream + unified spel-report.html
- test(integration): add CLI regression tests for unified template scaffolding
- chore: delete old report templates, update init_agents ref-map, regenerate docs
- refactor(templates): update all remaining template references to spel-report.html
- refactor(product-analyst): update template reference to spel-report.html
- fix(templates): use canonical responsive_behavior dimension name in appendix
- feat(templates): create unified spel-report.html merging QA and product reports
- feat(bug-hunter): add product-spec.json consumption and feature-enriched coverage
- feat(product-analyst): add viewport mandate to Phase 6 coherence audit
- fix(visual-qa): remove duplicate severity/GATE blocks and add product-spec.json input
- chore: regenerate FULL_API.md and help-registry after discovery agent addition
- test(discovery): add CLI regression tests for discovery group
- docs(discovery): update agent counts and group references
- feat(discovery): wire product-analyst into init-agents scaffolding
- feat(discovery): add product-analyst to orchestrator pipelines
- feat(discovery): add product-report.html template with sidebar navigation
- feat(discovery): add product-analyst agent template and PRODUCT_DISCOVERY ref
- refactor(agents): strip duplicated patterns from test pipeline agents
- refactor(agents): strip duplicated patterns from automation+visual agents
- feat(discovery): add discovery workflow prompt
- refactor(agents): strip duplicated patterns from bugfind pipeline agents
- refactor(agents): extract 5 common patterns to AGENT_COMMON.md
- release: update version files for v0.5.15, bump to next dev version
- fix(templates): change orchestrator mode from 'agent' to 'all' and add visual checks + viewport sections to QA report
- feat(templates): enforce multi-viewport testing with structured evidence
- fix(templates): require annotated screenshots with action markers as bug evidence
- feat(templates): add visual_checks schema and visual coherence detection
- fix(templates): restore re-snapshot examples and add visual anomaly detection
- style(templates): humanize all 43 agent/skill markdown files
- feat(action-log): add daemon-level action tracking with SRT export
- feat(templates): add QA report HTML template and integrate dogfood workflow
- release: update version files for v0.5.14, bump to next dev version
- feat(templates): add 4 orchestrator agents for smart pipeline routing
- release: update version files for v0.5.13, bump to next dev version
- fix(templates): allow all bash commands for subagent-only agents
- test(snapshot): add 6 Playwright integration tests for [pos:X,Y W×H] tree output
- feat(snapshot): add [pos:X,Y W×H] screen position to tree output
- feat(visual-diff): add semantic region enrichment with accessibility snapshot labels
- release: update version files for v0.5.12, bump to next dev version
- feat(templates): integrate QA methodology into bugfind agent templates
- feat(templates): integrate OpenAI QA methodology into test agent templates
- fix(docs): replace deprecated --eval with eval-sci in source code, README, and docs
- fix(templates): replace deprecated --eval with eval-sci across all 27 template files
- feat(templates): add snapshot-first refs, flavor awareness, and JSON gate artifacts to test agents
- feat(templates): wire test agent pipeline with inter-agent handoffs and contracts
- fix(test-cli): use portable mktemp for macOS compatibility
- fix(docs): add missing search, role, and allure namespaces to generated API docs
- feat(templates): add cookie consent, snapshot-first interaction, and e-commerce patterns to agent templates
- release: update version files for v0.5.11, bump to next dev version
- fix: visual diff shows original image with red overlay, snake_case JSON, CLI routing
- release: update version files for v0.5.10, bump to next dev version
- fix: correct diff CLI test assertions to use kebab-case jq keys
- feat: expose constants/ and device/ namespaces in SCI eval environment
- fix: correct 5 ref docs to match implementation
- feat: rewrite agent system — 12 agents across 4 groups with contracts, gates, and adversarial bug-finding
- fix: XSS escape all user data in Allure builds page, disable empty failed builds, fix GraalVM boxed-math warnings
- feat: add pixel-level screenshot diffing via pixelmatch + Playwright Canvas
- docs: collapse proxy config and env vars under
- fix: implement SPEL_CHANNEL env var + sync README env var table with code
- release: update version files for v0.5.9, bump to next dev version
- feat(cdp): add Microsoft Edge support to auto-connect discovery
- fix(ci): reduce gh-pages size from 12.7 GB to under 1 GB — fix GitHub Pages deployment
- release: update version files for v0.5.8, bump to next dev version
- fix(cdp): handle Chrome 136+ --user-data-dir requirement and M144+ WebSocket-only mode
- release: update version files for v0.5.7, bump to next dev version
- feat: delete chrome_cookies, remove state export, add --auto-connect
- release: update version files for v0.5.6, bump to next dev version
- fix(release): fetch tags in release job, reorder Clojars deploy after GitHub release
- chore: trigger release v0.5.5
- Delete LESSONS.md
- fix: restore CI workflows and remove unused chrome-cookies require
- feat: persist launch flags per session — --cdp only needed once
- chore: remove .github directory (cove images, CI workflows)
- fix: rename --eval to eval-sci in CLI tests, add LESSONS.md and snapshot rules to AGENTS.md
- feat: CDP support, eval-js/eval-sci rename, snapshot event listeners & clickable detection
- fix(docs): update stale style tier counts in docstrings (12/24/36 → 16/31/44)
- test: integration tests for subagent scaffolding, --args, and snapshot position props
- test: integration tests for subagent scaffolding, --args, and snapshot position props
- docs: update AGENTS.md and README for subagent architecture + --only flag
- feat(templates): add workflow prompts for visual and automation subagent groups
- feat(templates): add 5 new subagent templates (explorer, automator, interactive, presenter, visual-qa)
- feat(templates): add presenter reference docs extracted from visual-explainer
- refactor(templates): refine test agent templates with priority refs
- refactor(init-agents): add --only flag for selective scaffolding
- refactor(init-agents): add --only flag for selective scaffolding
- feat(templates): add visual QA reference guide
- feat(cli): add -- args separator with command-line-args binding
- feat(cli): add -- args separator with command-line-args binding
- refactor(init-agents): smart ref assignment data structure
- refactor(init-agents): deprecate --loop=vscode with error message
- feat(snapshot): add position properties to MINIMAL style tier
- fix: resolve strict mode violations in drag tests and boxed math warnings
- release: update version files for v0.5.3, bump to next dev version
- docs: collapse guided install section by default
- docs: agentic guided install with env vars reference
- docs: remove test example from README, link to SKILL.md instead
- feat: add drag-and-drop support with options across library, SCI, and CLI layers
- fix: support --profile and --channel flags in --eval mode
- docs: add library-first development order rule to AGENTS.md
- chore: add verify.sh script and update verification docs
- test: add CLI bash and Clojure tests for styles, viewport, device, --browser
- fix: replace bc with awk in test assertions and skip headed tests without display
- fix: make stitch command browser-aware via SPEL_BROWSER env
- feat: add viewport, device tracking, and --browser to snapshot pipeline
- feat: computed styles, clipboard ops, snapshot diff — library + daemon + CLI + SCI
- Update opencode.json
- chore: remove artistry override, B3 uses direct ACP spawn
- chore: add ultrabrain→opus override for CoVe B2
- chore: override artistry category to zai-coding-plan/glm-5 for CoVe B3
- fix: move One-Shot Installation heading outside details (visible header, collapsed content)
- docs: wrap LLM install section in details collapse
- docs: add one-shot LLM installation section + surface corporate CA setup (fixes #47)
- docs(skill): add daemon hang/kill troubleshooting to COMMON_PROBLEMS.md
- docs: add release process to AGENTS.md — tag-only, never manual
- release: update version files for v0.5.2, bump to next dev version
- release: bump to next dev version 0.5.3
- release: v0.5.2 (v0.5.1 tag immutable, re-releasing as 0.5.2)
- release: bump to next dev version 0.5.2
- release: v0.5.1 — eprintln helpers, versioned skill, profile docs, CI fix
- fix(ci): Allure workflow now runs on failed CI — shows failures in builds page (BLO-163)
- docs(skill): add daemon launch modes comparison (Mode 1/2/3) (BLO-162)
- docs(skill): add profile vs state comparison, Edge support, Quick Reference (BLO-162)
- refactor: replace (binding [out err]) with eprintln/eprint helpers (BLO-160)
- feat(skill): add skill-version field and agent validation (BLO-161)
- fix(docs): audit and correct comparison file — 6 sections had stale claims
- docs: rewrite POTENTIAL_TASKS.md — correct 13 features mislabeled as missing
- chore: remove TASK-003 (sequential refs) — rejected by design, hash refs preferred
- release: update version files for v0.5.0, bump to next dev version
- chore: remove 9 completed tasks from TASKS.md — verified via CLI
- fix(docs): mark link URLs and structured refs as done in 0.5.0 — verified via CLI
- release: v0.5.0 — extensions, download, flat snapshots, profile support, comparison update
- feat(cli): add --extension flag for loading Chrome extensions (fixes #41)
- fix(cli): detect URL at any position in open command args
- fix(ci): add concurrency group and retry logic to pr-cleanup workflow
- fix(graal): add type hints to Files/write call for native image compatibility
- feat: Edge/Chrome profile support with persistent context, cookie injection, and logging
- fix: increment injected counter and reorder copy-cookies-db! for fail-fast
- fix: support Edge and other Chromium browsers for cookie decryption
- chore: add CoVe report screenshot
- fix: update test assertion to use example.org
- fix: replace example.com with example.org
- chore: add CoVe report screenshot
- feat: add --flat option for snapshot command
- chore: add CoVe report screenshot
- fix(ui): correct mobile view for PRs (fixes #63)
- fix(ui): correct mobile view for PRs (fixes #63)
- feat: add download CLI command (fixes #40)
- fix: resolve GraalVM reflection and boxed math warnings in daemon.clj and sci_env.clj
- fix: video save-as - close page/context before saveAs (fixes #43)
- fix: resolve CI failures - unused vars lint, console get dispatch
- feat: update TASK-013 - preview structure, network/console get, page refs (AC-20..AC-25)
- feat: unified snapshot enrichment - URLs, refs map, network/console scoping
- fix(ci): only run Allure Report on successful CI builds
- docs(agents): daemon session isolation rules
- fix(sci_eval): propagate call_log/selector in SCI error responses
- feat(daemon): propagate Playwright error context in CLI output
- fix: wrap unbound page refs with with-testing-page in skill docs
- fix(templates): migrate all templates from old fixtures to with-testing-page/with-testing-api
- fix(screenshot): crop-to-content for content shorter than viewport (#52)
- fix(ci): merge release + deploy-clojars into single job
- release: v0.4.2 — viewport on open, crop-to-content screenshots (#33)
- remove .opencode/skills/ - auto-generated, shouldn't be tracked
- remove opencode agents/prompts cruft, keep oh-my-opencode.json + skills/
- release: update version files for v0.4.1, bump to next dev version
- release: v0.4.1
- chore: bump oh-my-opencode 3.8.5 → 3.9.0
- feat: validate URLs on open — reject invalid domains with clear error (closes #36)
- fix: replace hardcoded snapshot refs with generic and @ref in CLI help text
- feat: smooth scroll + element scroll across library, SCI, CLI, and daemon
- chore: regenerate help-registry and FULL_API.md
- test: add 18 snapshot ref stability tests covering determinism, structural independence, and disambiguation
- Switch spel daemon to virtual threads (BLO-132)
- feat: make stealth mode automatic for all CLI and eval commands
- feat: show page URL, title, and description in snapshot and eval output
- feat: close --all-sessions, show ref table on not-found error
- fix: skip daemon restart when already running in headed mode
- Merge branch 'main' into opencode/nimble-island
- enforce @ prefix for snapshot refs — bare refs no longer auto-detected
- feat: auto-persist sessions by default, fix session list socket detection
- feat: deterministic content-hash snapshot refs, get-by-ref, snapshot --all, codegen improvements
- Fix search reliability — block detection, faster timeouts, diagnostics, --debug flag
- Add opts arity to page/wait-for-function for explicit timeout control
- feat: add Thread/sleep, System, File interop to SCI sandbox + codegen→eval round-trip tests
- release: update version files for v0.4.0, bump to next dev version
- release: bump version to 0.4.0
- fix: rename spel/eval-js → spel/evaluate in test-cli.sh bash test
- Rename SCI embedded API to mirror library function names exactly
- Fix console/page-error output showing empty text in --eval mode
- Fix Safari TransformStream shim to return wrapper objects, not native instances
- Update README subtitle: highlight E2E testing, normalize punctuation
- Add Google Search module with CLI, SCI eval, and lazy pagination
- fix: only set is_pr=true when PR number is available
- BLO-118: reposition README — Swiss Army Knife for agents
- fix: standardize margins and positions between list and grid views in allure-index
- fix: merge view toggle and theme toggle into single toolbar
- fix: remove emoji icon from no-results empty state
- fix: render stats above builds list on filtered views
- Upgrade Safari TransformStream shim detection to test real zip.js patterns
- Add stealth mode, state export (cookies + localStorage), and standardized CLI naming
- Style theme toggle to match view-toggle pill container
- Add step type badges ([API], [UI], [UI+API]) to Allure reports
- Remove unnecessary start!/stop! from --eval examples across skill docs
- Fix corporate proxy install example to set both env vars together
- Consolidate README Quick Start and document shared-vs-separate Playwright traces
- Improve HTTP exchange display and add Allure report-only verification shortcut
- Inject MutationObserver-based markdown renderer into Allure reports
- Unify step, ui-step, api-step macros with composable options
- Add opencode.json
- Replace rich HTML exchange panels with markdown attachments
- Equalize margins above and below filter pills in dashboard
- Replace Allure plugin with auto network capture in test fixtures
- Fix date-group headline font-size mismatch between list and grid views
- Add Allure plugin for full-height HTML attachments
- Fixes
- Fix Keychain args for macOS profile, improve HTML preview toggle
- Fixes
- Fixes
- Fixes
- fixes
- Fixes
- Fixes
- Fixes
- In progress
- In progress
- feat: add rich HTTP exchange reporting for both API and browser network responses
- fix: pr-cleanup marks cancelled on close, improve merged styling, fix kondo hook
- fix: keep stats visible on filter, add Cancelled to PR stats
- fix: add Cancelled pill to static HTML, improve mobile search layout
- feat: add cancelled build status support across backend and landing page
- chore: add .claude/ to .gitignore
- chore: remove .claude/ directory — not permitted in this repo
- refactor: merge api namespace into core — eliminate com.blockether.spel.api
- fix: escape quotes in Allure workflow Clojure code
- fix: deduplicate PR comment link, add update-pr-statuses! for accurate CI status
- fix: coerce max-n to long for GraalVM primitive math
- feat: make PR badge URL configurable via pr_url field in pr-builds.json
- fix: PR badge links to GitHub PR, force scrollbar to prevent tab layout shift
- fix: unify list/grid max-width to 64rem (was 56rem list, none grid)
- feat: add PR tabs, merge tracking, and Clojure-based PR management to landing page
- fix: show workflow run_number for PR cards and enable stats dashboard on landing page
- fix: guard pr/ checkout with grep to avoid false-positive ls-tree exit code
- feat: add stats dashboard and date labels to test reports landing page
- BLO-108: fix README - remove allure section, add features overview, fix broken refs
- test: rewrite video recording test with meaningful browser activity
- feat: add PR reports to builds list on landing page
- fix: video attachments not appearing in Allure reports
- fix: resolve session flag passing and macOS timeout in CLI tests
- fix: resolve 6 pre-existing CLI test failures in test-cli.sh
- fix: add driver/ensure-driver! before stitch in native CLI
- feat: host PR Allure reports on GitHub Pages at /pr//
- fix: resolve boxed math warning and viewport sizing in stitch
- refactor: rewrite stitch to use Playwright instead of AWT/ImageIO
- fix: resolve remaining test-cli.sh failures + add ImageIO to native-image config
- fix: align test-cli.sh assertions with actual CLI --json output format
- ci: bust stale Playwright browser cache (v2 key)
- ci: fix PLAYWRIGHT_BROWSERS_PATH - use GITHUB_ENV instead of literal tilde
- ci: remove continue-on-error from test-cli.sh step
- ci: fix PLAYWRIGHT_BROWSERS_PATH tilde expansion + add daemon log debug output
- ci: mark test-cli.sh as continue-on-error (requires network access)
- BLO-20: fix Allure PR comment - rename CT to clojure-test, add CLI test reference
- BLO-20: add missing CLI tests (stitch, annotate, tool --help) and AGENTS.md CLI test requirements
- ci: add test-cli.sh bash regression to CI workflow (Linux + macOS)
- AGENTS.md: add test count sanity check with bash regression details
- BLO-99: fix Windows CI (tmpdir), add stitch docs to SKILL template, update verification checklist
- BLO-99: add SCI env registration, Allure attachments, and CLI/SCI tests for stitch
- BLO-99: add spel stitch command for vertical image stitching
- BLO-97: add video+Allure integration tests and fix video-path binding
- AGENTS.md: validate-safe-graal + install-local before CLI integration tests
- fix: unmatched delimiter in cli_integration_test — missing quote after escaped-tmpdir
- AGENTS.md: reorder verification checklist per Opus review (format first, no redundancy, better secret scan)
- AGENTS.md: verification checklist — binary note, pre-push scan, CI green check
- BLO-96: Fix Windows SCI tests — use java.io.tmpdir and escape backslashes
- BLO-96: Suppress unused-import in clj-kondo config (fixes CI lint)
- AGENTS.md: add make test full suite to verification checklist
- AGENTS.md: expand verification checklist — explicit test-cli-clj and test-cli steps
- BLO-96: Fix CI lint warnings and Windows path escaping in tests
- Fix Safari trace viewer, trim AGENTS.md, restructure Makefile and README
- Add left padding to grid cards
- Drop square aspect-ratio on mobile grid cards
- Fix list view width, mobile toggle overlap
- Update SKILL docs and agent instructions for SCI file I/O
- Add spel/navigate alias, file I/O, and Base64 to SCI sandbox
- Fix Allure reporter test-count parity with Lazytest
- Builds list grid: square cards, 6 per row, wider container
- CT reporter parity, builds list redesign, lint cleanup
- Bump opencode
- release: update version files for v0.3.1, bump to next dev version
- BLO-93: Fix CI lint - commit clj-kondo config to suppress unused-binding
- BLO-93: Fix CI lint failure - reduce unused-binding to info level
- Restore .lsp/config.edn with unused-public-var linter disabled
- Restore original LIST view - flex column with horizontal cards
- Fix lint issues: suppress unused public var warnings for API functions
- Make build cards full-width on mobile for better list experience
- Fix mobile responsiveness: 3-column grid on builds page, integrate API testing into Quick Start
- Add inline video player modal to Allure reports
- Fix compact view: equal-sized grid cards with min-height
- Add cljfmt indents for new API testing macros
- Add clojure.test version for new API testing functions
- Update README with full API testing docs and fix compact view on mobile
- Never commit lsp and clj-kondo
- Remove clj-kondo and .lsp configs
- Add clj-kondo hooks for with-testing-api and with-page-api macros
- feat: add page-api, context-api, with-testing-api, with-page-api for easy API testing
- feat: add compact view toggle to builds list + keep 50 builds
- fix: use workflow_run trigger so in-progress build shows correct run number
- fix: remove unused private var allure-result-file?
- ci: add commit author to Allure report name
- docs: vary SKILL link phrasing, tighten README prose
- docs: revamp README — lean landing page, merge Quick Start with with-testing-page
- chore: bump Allure CLI 3.1.0 → 3.2.0, add lint rule, clean up SKILL template
- docs: update SKILL.md.template with with-testing-page section and verification checklist
- style: format 14 namespaces with clojure-lsp
- docs: add with-testing-page to SKILL template and SKILL check rule to AGENTS.md
- feat: auto-attach traces to clojure.test Allure reporter
- feat: add merge-reports CLI command and library API
- feat: add :profile and browser launch opts to with-testing-page
- docs: add with-testing-page section to README
- docs: clarify clj-kondo CLI unavailability in AGENTS.md
- test: add with-testing-page tests for Lazytest and clojure.test
- feat: add clj-kondo hooks for with-testing-page dual-arity
- refactor: use shared devices namespace in daemon
- feat: add with-testing-page macro with device/viewport support and auto-tracing
- feat: add shared device and viewport presets namespace
- BLO-93: Align badges to left on mobile
- BLO-93: Fix version badge spacing on mobile
- Split Allure into two workflows to fix artifact conflict
- BLO-92: Store theme globally (shared across all builds)
- BLO-92: Remove unused with-video-page refer to fix lint
- BLO-92: Scope Allure localStorage by report path with 30-day auto-cleanup
- Fix artifact conflict - remove duplicate in-progress pages deploy
- Hide chevron arrow on in-progress build cards
- feat: add in-progress build tracking to Allure landing page
- Remove headless environments documentation from README
- Delete ARCHITECTURE-NOTES.md
- BLO-90: Remove LATEST badge from builds list
- feat: add commit author to build list and Allure report
- fix: eliminate boxed math and reflection warnings for GraalVM safety
- fix: unify landing page badges as HTML pills with visible borders
- feat: replace Python CI scripts with Clojure ci-assemble command
- feat: add spel/help and spel/source for runtime API discovery
- BLO-91: Update SKILL template with version badges documentation
- BLO-91: Add version badges to Allure landing page
- Add video recording support for browser sessions
- BLO-89: Add headless environments documentation to README
- BLO-89: Add xvfb-run auto-detection for headless codegen record
- BLO-90: Add version badges to Allure landing page
- Add cleanup step before Allure test runs
- BLO-87: Fix unmatched paren in test file
- BLO-87: Fix boxed math warnings and Windows line-ending test failures
- BLO-87: Fix ct namespace nesting in Allure - use common parent
- BLO-88: Fix Allure workflow - make github-pages environment conditional for PRs
- BLO-88: Enable Allure reports for PR/branches
- release: update version files for v0.3.0, bump to next dev version
- BLO-86: Release v0.3.0
- fix: add missing closing paren in navigate handler defmethod
- BLO-85: Fix --screenshot flag not saving file when used with open command
- feat: add report/clean config to both Allure reporters, run clojure.test in CI
- feat: browser config via system properties (slow-mo, engine, interactive)
- feat: polymorphic report builder (report->html, report->pdf) with typed entries
- feat: auto-capture console/errors in --eval, add anti-sleep and SPA wait guidance
- feat: auto-resolve @eN refs in all spel/ functions, fix eval timeout architecture
- docs: remove verbose test mapping table from AGENTS.md
- docs: add testing policy to AGENTS.md, add stdout/stderr capture tests
- fix: capture both stdout and stderr, preserve output on error
- fix: capture stdout during sci_eval to enable println in --eval mode
- fix: resolve lint errors in markdown_test and init_agents
- refactor: global defmethod hooks for clojure.test Allure reporter
- feat: add clojure.test Allure reporter with auto-injected fixtures
- feat: add --flavour flag to init-agents for clojure.test support
- fix: replace Lazytest references with spel.allure in all templates, fix test-e2e paths
- feat: add spel.markdown (from/to-markdown-table), replace data.json with charred
- feat: add --no-tests flag to init-agents for interactive-only scaffolding
- docs: add prefer --eval over standalone CLI rule to SKILL template
- feat: include test-e2e in Playwright tracing source directories
- fix: promote Native CLI to top-level README section, fix broken nav anchor
- feat: add spel.roles namespace, replace AriaRole imports with idiomatic Clojure vars
- release: update version files for v0.2.0, bump to next dev version
- chore: set SPEL_VERSION to 0.2.0 for release
- feat: Allure version in builds, classpath trace viewer, with-traced-page default, cljfmt
- feat: eval file support, --load-state flag, SCI page/locator namespaces
- release: update version files for v0.1.0, bump to next dev version
- feat: interactive test mode, spel.allure imports, init-agents --dir, code formatting
- feat: add storage state API, version management, and SKILL docs
- feat: add --interactive to eval mode, storage state examples to codegen help
- release: update README and CHANGELOG for v0.0.2
- Consolidate README: replace verbose Usage with SKILL reference, fix lint warning, update docs and tests
- Fix Trace Viewer source path resolution: prepend source directory prefix
- Fix Trace Viewer source mapping and codegen CLI improvements
- Add corporate CA certificate support for SSL-inspecting proxies
- feat(allure): integrate Allure reporting with lazytest macros
- Auto-save in-flight traces when daemon shuts down or context is replaced
- Fix codegen selector translation: extract role name, exact flag, and wrap assertions with assert-that
- Add tracing API to SCI --eval environment
- Add routeFromHAR and routeWebSocket wrappers for complete mock API coverage
- Add inspector and show-trace commands for Playwright visual tools
- Replace inline changelog in README with reference to CHANGELOG.md
- Make landing page title, subtitle, and logo configurable via env vars
- Fix spel install, update SKILL.md docs, add changelog, remove Makefile refs from templates
- Add clickable CI pipeline link to run number in Allure landing page
- Fix Allure report logo 404: copy logo file into report output dir
- Add landing page with clickable SHA links, date grouping, and pass/fail status
- Add logo support for Allure report header
- Add commit SHA and message to Allure report history entries
- Add per-build Allure report archives with clickable history links
- Fix reflection warning in detect-source-dirs String/join call
- Fix Allure history: switch to JSONL mechanism with configurable limit
- Auto-detect Clojure source dirs for Playwright trace sources
- Update clj-kondo sinker hook import
- Add --full flag to annotate: annotate all elements, not just viewport
- Fix try plus hook
- Fix Allure report history: preserve history/ across runs for trend dropdown
- release: update README and CHANGELOG for v0.0.1
- Fix unresolved clojure.string namespace in integration test
- Update clj-kondo sinker hook import
- Regenerate scaffolded agents, skills, and specs from updated templates
- Update agent and skill templates for E2E test workflow
- Update README: rationale, install docs, Gatekeeper note, remove macOS Intel
- Fix Windows double .exe in build, remove macOS amd64 from CI, update Allure workflow
- Expand integration test coverage for codegen and tracing
- Improve daemon robustness and native image compatibility
- Fix codegen for Playwright 1.58+ locator kinds and improve CLI error messages
- Expand context options mapping and add anomaly helpers to core
- Add Allure trace groups, test title binding, and fixture error guards
- Preserve Allure report data across deployments so historical test results don't 404
- Auto-update README version on tag, consolidate release creation in native-image workflow
- Add dev build install instructions, macOS Gatekeeper note, and full release docs to README
- Fix CI: use Java driver CLI for browser install, handle Windows native-image.cmd, normalize cache paths
- Remove spel/start! from SKILL.md snapshot examples — daemon manages browser lifecycle
- Guard test fixtures against anomaly maps from safe-wrapped Playwright calls
- Upgrade setup-clojure to @13.5, restrict lint/graal checks to Linux
- Persist Allure history across CI runs via actions/cache
- Fix CI: install all browser deps, guard close-page!/close-browser! against anomaly maps
- Fix Windows CI: default to bash shell for cross-platform compatibility
- Add Allure Report badge and test report screenshots to README
- Fix README nav link and eval column wrapping, harden test fixture cleanup
- Update README.md and allure.yml
- Fix description of all spel evaluation
- Fix codegen for default roles
- Attempt to fix CI
- fix: use built-in Allure 3 reporter pipeline in CI, remove redundant allure generate
- Add docs regeneration scripts
- feat: daemon-backed --eval mode, per-command help, CLI tests, CI smoke tests, strict mode docs
- Initial commit
v0.6.2 - 2026-03-11
- fix(skill): add missing presenter/visual refs to SKILL.md index
- release: update version files for v0.6.1, bump to next dev version
v0.6.1 - 2026-03-11
- feat(report): port CSS_PATTERNS.md design system into report HTML
- release: update version files for v0.6.0, bump to next dev version
v0.6.0 - 2026-03-11
- fix(search): forward --json flag from native binary to search command
- feat(search): add DuckDuckGo fallback via HTML endpoint with anti-detection and fast block detection
- release: update version files for v0.5.27, bump to next dev version
- feat(search): retry with backoff, markdown output, warning field
- release: update version files for v0.5.26, bump to next dev version
- fix: session close timing + forward --channel to daemon subprocess
- release: update version files for v0.5.25, bump to next dev version
- feat: restructure 7 audit commands under 'spel audit' umbrella
- release: update version files for v0.5.24, bump to next dev version
- fix: CLI bugs (--session screenshot, --session close, --channel) + presenter design system alignment
- chore: mark agent-helpers-v0523 plan complete (105/105)
- fix(tests): align CLI assertion with actual orchestrator template wording
- release: update version files for v0.5.23, bump to next dev version
- Merge branch 'agent-helpers-v0523': add 6 QA helpers, wire agents, fix dark theme (v0.5.23)
- feat(helpers): add 6 QA helpers, wire helpers into agents, fix report dark theme
- chore: mark agent-consolidation plan complete in boulder state
- chore: add F-wave review evidence and update notepads
- fix(agents): replace stale spel-test-generator refs in explorer and automator templates
- release: update version files for v0.5.22, bump to next dev version
- refactor(agents): consolidate 14 agents to 8, apply Anthropic skill-building principles
- release: update version files for v0.5.21, bump to next dev version
- refactor(agents): merge visual-qa into bug-hunter, consolidate to 14 agents
- release: update version files for v0.5.20, bump to next dev version
- fix(refs): remove 'navigate directly' anti-patterns from NAVIGATION_WAIT and COMMON_PROBLEMS
- refactor(agents): consolidate to 15 agents, enforce human-like navigation
- feat(autotrainer): add bounded training loop with iteration, feedback, convergence
- feat(init-agents): add simplified core scaffold mode
- feat(helpers): add overview all-frames plus debug and emulate commands
- test(init-agents): add 113 unit tests for agent scaffolding logic
- chore(agents): regenerate test specs README for 0.5.19
- release: update version files for v0.5.19, bump to next dev version
- chore: remove LEARNINGS.md and bugfind-reports from repo root
- release: update version files for v0.5.18, bump to next dev version
- feat(agents): add orchestrator routing, discovery pipeline, report template enhancements, and Unbound site audit
- fix(init-agents): use record format for tools in product-analyst template
- fix(init-agents): suppress --ns warning when --no-tests is set
- release: update version files for v0.5.17, bump to next dev version
- feat(init-agents): add opt-in learnings and markdown report scaffolding
- release: update version files for v0.5.16, bump to next dev version
- feat(report): elevate unified report clarity and visual storytelling
- fix(init-agents): improve Claude template transformation fidelity
- chore: wire orphaned refs into subagent-ref-map + delete dogfood-report.html
- fix(init-agents): --no-tests now scaffolds all agents, skips only seed test + specs
- feat(cross-agent-integration): wire product-spec.json downstream + unified spel-report.html
- test(integration): add CLI regression tests for unified template scaffolding
- chore: delete old report templates, update init_agents ref-map, regenerate docs
- refactor(templates): update all remaining template references to spel-report.html
- refactor(product-analyst): update template reference to spel-report.html
- fix(templates): use canonical responsive_behavior dimension name in appendix
- feat(templates): create unified spel-report.html merging QA and product reports
- feat(bug-hunter): add product-spec.json consumption and feature-enriched coverage
- feat(product-analyst): add viewport mandate to Phase 6 coherence audit
- fix(visual-qa): remove duplicate severity/GATE blocks and add product-spec.json input
- chore: regenerate FULL_API.md and help-registry after discovery agent addition
- test(discovery): add CLI regression tests for discovery group
- docs(discovery): update agent counts and group references
- feat(discovery): wire product-analyst into init-agents scaffolding
- feat(discovery): add product-analyst to orchestrator pipelines
- feat(discovery): add product-report.html template with sidebar navigation
- feat(discovery): add product-analyst agent template and PRODUCT_DISCOVERY ref
- refactor(agents): strip duplicated patterns from test pipeline agents
- refactor(agents): strip duplicated patterns from automation+visual agents
- feat(discovery): add discovery workflow prompt
- refactor(agents): strip duplicated patterns from bugfind pipeline agents
- refactor(agents): extract 5 common patterns to AGENT_COMMON.md
- release: update version files for v0.5.15, bump to next dev version
- fix(templates): change orchestrator mode from 'agent' to 'all' and add visual checks + viewport sections to QA report
- feat(templates): enforce multi-viewport testing with structured evidence
- fix(templates): require annotated screenshots with action markers as bug evidence
- feat(templates): add visual_checks schema and visual coherence detection
- fix(templates): restore re-snapshot examples and add visual anomaly detection
- style(templates): humanize all 43 agent/skill markdown files
- feat(action-log): add daemon-level action tracking with SRT export
- feat(templates): add QA report HTML template and integrate dogfood workflow
- release: update version files for v0.5.14, bump to next dev version
- feat(templates): add 4 orchestrator agents for smart pipeline routing
- release: update version files for v0.5.13, bump to next dev version
- fix(templates): allow all bash commands for subagent-only agents
- test(snapshot): add 6 Playwright integration tests for [pos:X,Y W×H] tree output
- feat(snapshot): add [pos:X,Y W×H] screen position to tree output
- feat(visual-diff): add semantic region enrichment with accessibility snapshot labels
- release: update version files for v0.5.12, bump to next dev version
- feat(templates): integrate QA methodology into bugfind agent templates
- feat(templates): integrate OpenAI QA methodology into test agent templates
- fix(docs): replace deprecated --eval with eval-sci in source code, README, and docs
- fix(templates): replace deprecated --eval with eval-sci across all 27 template files
- feat(templates): add snapshot-first refs, flavor awareness, and JSON gate artifacts to test agents
- feat(templates): wire test agent pipeline with inter-agent handoffs and contracts
- fix(test-cli): use portable mktemp for macOS compatibility
- fix(docs): add missing search, role, and allure namespaces to generated API docs
- feat(templates): add cookie consent, snapshot-first interaction, and e-commerce patterns to agent templates
- release: update version files for v0.5.11, bump to next dev version
- fix: visual diff shows original image with red overlay, snake_case JSON, CLI routing
- release: update version files for v0.5.10, bump to next dev version
- fix: correct diff CLI test assertions to use kebab-case jq keys
- feat: expose constants/ and device/ namespaces in SCI eval environment
- fix: correct 5 ref docs to match implementation
- feat: rewrite agent system — 12 agents across 4 groups with contracts, gates, and adversarial bug-finding
- fix: XSS escape all user data in Allure builds page, disable empty failed builds, fix GraalVM boxed-math warnings
- feat: add pixel-level screenshot diffing via pixelmatch + Playwright Canvas
- docs: collapse proxy config and env vars under
- fix: implement SPEL_CHANNEL env var + sync README env var table with code
- release: update version files for v0.5.9, bump to next dev version
v0.5.9 - 2026-03-05
- feat(cdp): add Microsoft Edge support to auto-connect discovery
- fix(ci): reduce gh-pages size from 12.7 GB to under 1 GB — fix GitHub Pages deployment
- release: update version files for v0.5.8, bump to next dev version
v0.5.8 - 2026-03-05
- fix(cdp): handle Chrome 136+ --user-data-dir requirement and M144+ WebSocket-only mode
- release: update version files for v0.5.7, bump to next dev version
v0.5.7 - 2026-03-05
- feat: delete chrome_cookies, remove state export, add --auto-connect
- release: update version files for v0.5.6, bump to next dev version
v0.5.6 - 2026-03-05
- fix(release): fetch tags in release job, reorder Clojars deploy after GitHub release
- chore: trigger release v0.5.5
- Delete LESSONS.md
- fix: restore CI workflows and remove unused chrome-cookies require
- feat: persist launch flags per session — --cdp only needed once
- chore: remove .github directory (cove images, CI workflows)
- fix: rename --eval to eval-sci in CLI tests, add LESSONS.md and snapshot rules to AGENTS.md
- feat: CDP support, eval-js/eval-sci rename, snapshot event listeners & clickable detection
- fix(docs): update stale style tier counts in docstrings (12/24/36 → 16/31/44)
- test: integration tests for subagent scaffolding, --args, and snapshot position props
- test: integration tests for subagent scaffolding, --args, and snapshot position props
- docs: update AGENTS.md and README for subagent architecture + --only flag
- feat(templates): add workflow prompts for visual and automation subagent groups
- feat(templates): add 5 new subagent templates (explorer, automator, interactive, presenter, visual-qa)
- feat(templates): add presenter reference docs extracted from visual-explainer
- refactor(templates): refine test agent templates with priority refs
- refactor(init-agents): add --only flag for selective scaffolding
- refactor(init-agents): add --only flag for selective scaffolding
- feat(templates): add visual QA reference guide
- feat(cli): add -- args separator with command-line-args binding
- feat(cli): add -- args separator with command-line-args binding
- refactor(init-agents): smart ref assignment data structure
- refactor(init-agents): deprecate --loop=vscode with error message
- feat(snapshot): add position properties to MINIMAL style tier
- fix: resolve strict mode violations in drag tests and boxed math warnings
- release: update version files for v0.5.3, bump to next dev version
- docs: collapse guided install section by default
v0.5.3 - 2026-03-05
- docs: agentic guided install with env vars reference
- docs: remove test example from README, link to SKILL.md instead
- feat: add drag-and-drop support with options across library, SCI, and CLI layers
- fix: support --profile and --channel flags in --eval mode
- docs: add library-first development order rule to AGENTS.md
- chore: add verify.sh script and update verification docs
- test: add CLI bash and Clojure tests for styles, viewport, device, --browser
- fix: replace bc with awk in test assertions and skip headed tests without display
- fix: make stitch command browser-aware via SPEL_BROWSER env
- feat: add viewport, device tracking, and --browser to snapshot pipeline
- feat: computed styles, clipboard ops, snapshot diff — library + daemon + CLI + SCI
- Update opencode.json
- chore: remove artistry override, B3 uses direct ACP spawn
- chore: add ultrabrain→opus override for CoVe B2
- chore: override artistry category to zai-coding-plan/glm-5 for CoVe B3
- fix: move One-Shot Installation heading outside details (visible header, collapsed content)
- docs: wrap LLM install section in details collapse
- docs: add one-shot LLM installation section + surface corporate CA setup (fixes #47)
- docs(skill): add daemon hang/kill troubleshooting to COMMON_PROBLEMS.md
- docs: add release process to AGENTS.md — tag-only, never manual
- release: update version files for v0.5.2, bump to next dev version
- release: bump to next dev version 0.5.3
v0.5.2 - 2026-03-02
- release: v0.5.2 (v0.5.1 tag immutable, re-releasing as 0.5.2)
- release: bump to next dev version 0.5.2
- release: v0.5.1 — eprintln helpers, versioned skill, profile docs, CI fix
- fix(ci): Allure workflow now runs on failed CI — shows failures in builds page (BLO-163)
- docs(skill): add daemon launch modes comparison (Mode 1/2/3) (BLO-162)
- docs(skill): add profile vs state comparison, Edge support, Quick Reference (BLO-162)
- refactor: replace (binding [out err]) with eprintln/eprint helpers (BLO-160)
- feat(skill): add skill-version field and agent validation (BLO-161)
- fix(docs): audit and correct comparison file — 6 sections had stale claims
- docs: rewrite POTENTIAL_TASKS.md — correct 13 features mislabeled as missing
- chore: remove TASK-003 (sequential refs) — rejected by design, hash refs preferred
- release: update version files for v0.5.0, bump to next dev version
- chore: remove 9 completed tasks from TASKS.md — verified via CLI
- fix(docs): mark link URLs and structured refs as done in 0.5.0 — verified via CLI
v0.5.2 - 2026-03-02
- refactor: replace (binding [out err]) with eprintln/eprint helpers (BLO-160)
- feat(skill): add skill-version field and agent validation — agents detect stale skills (BLO-161)
- docs(skill): add profile vs state comparison, Edge/channel support, Chrome profile docs (BLO-162)
- docs(skill): add daemon launch modes comparison (Mode 1/2/3) (BLO-162)
- fix(ci): Allure workflow now runs on failed CI — failures visible in builds page (BLO-163)
- fix(docs): audit and correct comparison file — 6 sections had stale claims
- docs: rewrite POTENTIAL_TASKS.md — correct 13 features mislabeled as missing
v0.5.0 - 2026-03-01
- release: v0.5.0 — extensions, download, flat snapshots, profile support, comparison update
- feat(cli): add --extension flag for loading Chrome extensions (fixes #41)
- fix(cli): detect URL at any position in open command args
- fix(ci): add concurrency group and retry logic to pr-cleanup workflow
- fix(graal): add type hints to Files/write call for native image compatibility
- feat: Edge/Chrome profile support with persistent context, cookie injection, and logging
- fix: increment injected counter and reorder copy-cookies-db! for fail-fast
- fix: support Edge and other Chromium browsers for cookie decryption
- chore: add CoVe report screenshot
- fix: update test assertion to use example.org
- fix: replace example.com with example.org
- chore: add CoVe report screenshot
- feat: add --flat option for snapshot command
- chore: add CoVe report screenshot
- fix(ui): correct mobile view for PRs (fixes #63)
- fix(ui): correct mobile view for PRs (fixes #63)
- feat: add download CLI command (fixes #40)
- fix: resolve GraalVM reflection and boxed math warnings in daemon.clj and sci_env.clj
- fix: video save-as - close page/context before saveAs (fixes #43)
- fix: resolve CI failures - unused vars lint, console get dispatch
- feat: update TASK-013 - preview structure, network/console get, page refs (AC-20..AC-25)
- feat: unified snapshot enrichment - URLs, refs map, network/console scoping
- fix(ci): only run Allure Report on successful CI builds
- docs(agents): daemon session isolation rules
- fix(sci_eval): propagate call_log/selector in SCI error responses
- feat(daemon): propagate Playwright error context in CLI output
- fix: wrap unbound page refs with with-testing-page in skill docs
- fix(templates): migrate all templates from old fixtures to with-testing-page/with-testing-api
- fix(screenshot): crop-to-content for content shorter than viewport (#52)
- fix(ci): merge release + deploy-clojars into single job
v0.5.0 - 2026-03-01
- feat(cli): add
--extension flag for loading Chrome extensions (#41) - feat: Edge/Chrome profile support with persistent context, cookie injection, and logging
- feat: add
--flat option for snapshot command - feat: add
download CLI command (#40) - feat: unified snapshot enrichment — URLs, refs map, network/console scoping
- feat: preview structure, network/console get, page refs
- feat(daemon): propagate Playwright error context in CLI output
- fix(cli): detect URL at any position in
open command args - fix(graal): add type hints to
Files/write call for native image compatibility - fix: increment injected counter and reorder
copy-cookies-db! for fail-fast - fix: support Edge and other Chromium browsers for cookie decryption
- fix(ui): correct mobile view for PRs (#63)
- fix: resolve GraalVM reflection and boxed math warnings in
daemon.clj and sci_env.clj - fix: video
save-as — close page/context before saveAs (#43) - fix: resolve CI failures — unused vars lint, console get dispatch
- fix(sci_eval): propagate
call_log/selector in SCI error responses - fix(templates): migrate all templates from old fixtures to
with-testing-page/with-testing-api - fix(screenshot):
crop-to-content for content shorter than viewport (#52) - fix(ci): merge release + deploy-clojars into single job
- fix(ci): add concurrency group and retry logic to pr-cleanup workflow
- fix(ci): only run Allure Report on successful CI builds
v0.4.2 - 2026-02-27
- feat:
spel open --viewport WxH — set viewport dimensions during navigation in one step - feat:
spel screenshot --crop-to-content — crop full-page screenshots to actual content height
- fix: full-page screenshots capturing empty space below content due to Playwright's
max(viewport, content) behavior (#33)
v0.4.1 - 2026-02-27
- feat: validate URLs on
spel open — reject invalid domains with clear error message (closes #36) - feat: smooth scroll + element scroll across library, SCI, CLI, and daemon
- test: add 18 snapshot ref stability tests covering determinism, structural independence, and disambiguation
- Switch spel daemon to virtual threads (BLO-132)
- Make stealth mode automatic for all CLI and eval commands
- Show page URL, title, and description in snapshot and eval output
- Close
--all-sessions, show ref table on not-found error - Enforce
@ prefix for snapshot refs — bare refs no longer auto-detected - Auto-persist sessions by default, fix session list socket detection
- Deterministic content-hash snapshot refs,
get-by-ref, snapshot --all, codegen improvements
- fix: replace hardcoded snapshot refs with generic
<sel> and @ref in CLI help text - fix: skip daemon restart when already running in headed mode
- fix: search reliability — block detection, faster timeouts, diagnostics,
--debug flag
v0.4.0 - 2026-02-25
- release: bump version to 0.4.0
- fix: rename spel/eval-js → spel/evaluate in test-cli.sh bash test
- Rename SCI embedded API to mirror library function names exactly
- Fix console/page-error output showing empty text in --eval mode
- Fix Safari TransformStream shim to return wrapper objects, not native instances
- Update README subtitle: highlight E2E testing, normalize punctuation
- Add Google Search module with CLI, SCI eval, and lazy pagination
- fix: only set is_pr=true when PR number is available
- BLO-118: reposition README — Swiss Army Knife for agents
- fix: standardize margins and positions between list and grid views in allure-index
- fix: merge view toggle and theme toggle into single toolbar
- fix: remove emoji icon from no-results empty state
- fix: render stats above builds list on filtered views
- Upgrade Safari TransformStream shim detection to test real zip.js patterns
- Add stealth mode, state export (cookies + localStorage), and standardized CLI naming
- Style theme toggle to match view-toggle pill container
- Add step type badges ([API], [UI], [UI+API]) to Allure reports
- Remove unnecessary start!/stop! from --eval examples across skill docs
- Fix corporate proxy install example to set both env vars together
- Consolidate README Quick Start and document shared-vs-separate Playwright traces
- Improve HTTP exchange display and add Allure report-only verification shortcut
- Inject MutationObserver-based markdown renderer into Allure reports
- Unify step, ui-step, api-step macros with composable options
- Add opencode.json
- Replace rich HTML exchange panels with markdown attachments
- Equalize margins above and below filter pills in dashboard
- Replace Allure plugin with auto network capture in test fixtures
- Fix date-group headline font-size mismatch between list and grid views
- Add Allure plugin for full-height HTML attachments
- Fixes
- Fix Keychain args for macOS profile, improve HTML preview toggle
- Fixes
- Fixes
- Fixes
- fixes
- Fixes
- Fixes
- Fixes
- In progress
- In progress
- feat: add rich HTTP exchange reporting for both API and browser network responses
- fix: pr-cleanup marks cancelled on close, improve merged styling, fix kondo hook
- fix: keep stats visible on filter, add Cancelled to PR stats
- fix: add Cancelled pill to static HTML, improve mobile search layout
- feat: add cancelled build status support across backend and landing page
- chore: add .claude/ to .gitignore
- chore: remove .claude/ directory — not permitted in this repo
- refactor: merge api namespace into core — eliminate com.blockether.spel.api
- fix: escape quotes in Allure workflow Clojure code
- fix: deduplicate PR comment link, add update-pr-statuses! for accurate CI status
- fix: coerce max-n to long for GraalVM primitive math
- feat: make PR badge URL configurable via pr_url field in pr-builds.json
- fix: PR badge links to GitHub PR, force scrollbar to prevent tab layout shift
- fix: unify list/grid max-width to 64rem (was 56rem list, none grid)
- feat: add PR tabs, merge tracking, and Clojure-based PR management to landing page
- fix: show workflow run_number for PR cards and enable stats dashboard on landing page
- fix: guard pr/ checkout with grep to avoid false-positive ls-tree exit code
- feat: add stats dashboard and date labels to test reports landing page
- BLO-108: fix README - remove allure section, add features overview, fix broken refs
- test: rewrite video recording test with meaningful browser activity
- feat: add PR reports to builds list on landing page
- fix: video attachments not appearing in Allure reports
- fix: resolve session flag passing and macOS timeout in CLI tests
- fix: resolve 6 pre-existing CLI test failures in test-cli.sh
- fix: add driver/ensure-driver! before stitch in native CLI
- feat: host PR Allure reports on GitHub Pages at /pr//
- fix: resolve boxed math warning and viewport sizing in stitch
- refactor: rewrite stitch to use Playwright instead of AWT/ImageIO
- fix: resolve remaining test-cli.sh failures + add ImageIO to native-image config
- fix: align test-cli.sh assertions with actual CLI --json output format
- ci: bust stale Playwright browser cache (v2 key)
- ci: fix PLAYWRIGHT_BROWSERS_PATH - use GITHUB_ENV instead of literal tilde
- ci: remove continue-on-error from test-cli.sh step
- ci: fix PLAYWRIGHT_BROWSERS_PATH tilde expansion + add daemon log debug output
- ci: mark test-cli.sh as continue-on-error (requires network access)
- BLO-20: fix Allure PR comment - rename CT to clojure-test, add CLI test reference
- BLO-20: add missing CLI tests (stitch, annotate, tool --help) and AGENTS.md CLI test requirements
- ci: add test-cli.sh bash regression to CI workflow (Linux + macOS)
- AGENTS.md: add test count sanity check with bash regression details
- BLO-99: fix Windows CI (tmpdir), add stitch docs to SKILL template, update verification checklist
- BLO-99: add SCI env registration, Allure attachments, and CLI/SCI tests for stitch
- BLO-99: add spel stitch command for vertical image stitching
- BLO-97: add video+Allure integration tests and fix video-path binding
- AGENTS.md: validate-safe-graal + install-local before CLI integration tests
- fix: unmatched delimiter in cli_integration_test — missing quote after escaped-tmpdir
- AGENTS.md: reorder verification checklist per Opus review (format first, no redundancy, better secret scan)
- AGENTS.md: verification checklist — binary note, pre-push scan, CI green check
- BLO-96: Fix Windows SCI tests — use java.io.tmpdir and escape backslashes
- BLO-96: Suppress unused-import in clj-kondo config (fixes CI lint)
- AGENTS.md: add make test full suite to verification checklist
- AGENTS.md: expand verification checklist — explicit test-cli-clj and test-cli steps
- BLO-96: Fix CI lint warnings and Windows path escaping in tests
- Fix Safari trace viewer, trim AGENTS.md, restructure Makefile and README
- Add left padding to grid cards
- Drop square aspect-ratio on mobile grid cards
- Fix list view width, mobile toggle overlap
- Update SKILL docs and agent instructions for SCI file I/O
- Add spel/navigate alias, file I/O, and Base64 to SCI sandbox
- Fix Allure reporter test-count parity with Lazytest
- Builds list grid: square cards, 6 per row, wider container
- CT reporter parity, builds list redesign, lint cleanup
- Bump opencode
- release: update version files for v0.3.1, bump to next dev version
v0.3.1 - 2026-02-22
- BLO-93: Fix CI lint - commit clj-kondo config to suppress unused-binding
- BLO-93: Fix CI lint failure - reduce unused-binding to info level
- Restore .lsp/config.edn with unused-public-var linter disabled
- Restore original LIST view - flex column with horizontal cards
- Fix lint issues: suppress unused public var warnings for API functions
- Make build cards full-width on mobile for better list experience
- Fix mobile responsiveness: 3-column grid on builds page, integrate API testing into Quick Start
- Add inline video player modal to Allure reports
- Fix compact view: equal-sized grid cards with min-height
- Add cljfmt indents for new API testing macros
- Add clojure.test version for new API testing functions
- Update README with full API testing docs and fix compact view on mobile
- Never commit lsp and clj-kondo
- Remove clj-kondo and .lsp configs
- Add clj-kondo hooks for with-testing-api and with-page-api macros
- feat: add page-api, context-api, with-testing-api, with-page-api for easy API testing
- feat: add compact view toggle to builds list + keep 50 builds
- fix: use workflow_run trigger so in-progress build shows correct run number
- fix: remove unused private var allure-result-file?
- ci: add commit author to Allure report name
- docs: vary SKILL link phrasing, tighten README prose
- docs: revamp README — lean landing page, merge Quick Start with with-testing-page
- chore: bump Allure CLI 3.1.0 → 3.2.0, add lint rule, clean up SKILL template
- docs: update SKILL.md.template with with-testing-page section and verification checklist
- style: format 14 namespaces with clojure-lsp
- docs: add with-testing-page to SKILL template and SKILL check rule to AGENTS.md
- feat: auto-attach traces to clojure.test Allure reporter
- feat: add merge-reports CLI command and library API
- feat: add :profile and browser launch opts to with-testing-page
- docs: add with-testing-page section to README
- docs: clarify clj-kondo CLI unavailability in AGENTS.md
- test: add with-testing-page tests for Lazytest and clojure.test
- feat: add clj-kondo hooks for with-testing-page dual-arity
- refactor: use shared devices namespace in daemon
- feat: add with-testing-page macro with device/viewport support and auto-tracing
- feat: add shared device and viewport presets namespace
- BLO-93: Align badges to left on mobile
- BLO-93: Fix version badge spacing on mobile
- Split Allure into two workflows to fix artifact conflict
- BLO-92: Store theme globally (shared across all builds)
- BLO-92: Remove unused with-video-page refer to fix lint
- BLO-92: Scope Allure localStorage by report path with 30-day auto-cleanup
- Fix artifact conflict - remove duplicate in-progress pages deploy
- Hide chevron arrow on in-progress build cards
- feat: add in-progress build tracking to Allure landing page
- Remove headless environments documentation from README
- Delete ARCHITECTURE-NOTES.md
- BLO-90: Remove LATEST badge from builds list
- feat: add commit author to build list and Allure report
- fix: eliminate boxed math and reflection warnings for GraalVM safety
- fix: unify landing page badges as HTML pills with visible borders
- feat: replace Python CI scripts with Clojure ci-assemble command
- feat: add spel/help and spel/source for runtime API discovery
- BLO-91: Update SKILL template with version badges documentation
- BLO-91: Add version badges to Allure landing page
- Add video recording support for browser sessions
- BLO-89: Add headless environments documentation to README
- BLO-89: Add xvfb-run auto-detection for headless codegen record
- BLO-90: Add version badges to Allure landing page
- Add cleanup step before Allure test runs
- BLO-87: Fix unmatched paren in test file
- BLO-87: Fix boxed math warnings and Windows line-ending test failures
- BLO-87: Fix ct namespace nesting in Allure - use common parent
- BLO-88: Fix Allure workflow - make github-pages environment conditional for PRs
- BLO-88: Enable Allure reports for PR/branches
- release: update version files for v0.3.0, bump to next dev version
v0.3.0 - 2026-02-20
- BLO-86: Release v0.3.0
- fix: add missing closing paren in navigate handler defmethod
- BLO-85: Fix --screenshot flag not saving file when used with open command
- feat: add report/clean config to both Allure reporters, run clojure.test in CI
- feat: browser config via system properties (slow-mo, engine, interactive)
- feat: polymorphic report builder (report->html, report->pdf) with typed entries
- feat: auto-capture console/errors in --eval, add anti-sleep and SPA wait guidance
- feat: auto-resolve @eN refs in all spel/ functions, fix eval timeout architecture
- docs: remove verbose test mapping table from AGENTS.md
- docs: add testing policy to AGENTS.md, add stdout/stderr capture tests
- fix: capture both stdout and stderr, preserve output on error
- fix: capture stdout during sci_eval to enable println in --eval mode
- fix: resolve lint errors in markdown_test and init_agents
- refactor: global defmethod hooks for clojure.test Allure reporter
- feat: add clojure.test Allure reporter with auto-injected fixtures
- feat: add --flavour flag to init-agents for clojure.test support
- fix: replace Lazytest references with spel.allure in all templates, fix test-e2e paths
- feat: add spel.markdown (from/to-markdown-table), replace data.json with charred
- feat: add --no-tests flag to init-agents for interactive-only scaffolding
- docs: add prefer --eval over standalone CLI rule to SKILL template
- feat: include test-e2e in Playwright tracing source directories
- fix: promote Native CLI to top-level README section, fix broken nav anchor
- feat: add spel.roles namespace, replace AriaRole imports with idiomatic Clojure vars
- release: update version files for v0.2.0, bump to next dev version
v0.2.0 - 2026-02-19
- chore: set SPEL_VERSION to 0.2.0 for release
- feat: Allure version in builds, classpath trace viewer, with-traced-page default, cljfmt
- feat: eval file support, --load-state flag, SCI page/locator namespaces
- release: update version files for v0.1.0, bump to next dev version
v0.1.0 - 2026-02-19
- feat: interactive test mode, spel.allure imports, init-agents --dir, code formatting
- feat: add storage state API, version management, and SKILL docs
- feat: add --interactive to eval mode, storage state examples to codegen help
- release: update README and CHANGELOG for v0.0.2
v0.0.2 - 2026-02-19
- Consolidate README: replace verbose Usage with SKILL reference, fix lint warning, update docs and tests
- Fix Trace Viewer source path resolution: prepend source directory prefix
- Fix Trace Viewer source mapping and codegen CLI improvements
- Add corporate CA certificate support for SSL-inspecting proxies
- feat(allure): integrate Allure reporting with lazytest macros
- Auto-save in-flight traces when daemon shuts down or context is replaced
- Fix codegen selector translation: extract role name, exact flag, and wrap assertions with assert-that
- Add tracing API to SCI --eval environment
- Add routeFromHAR and routeWebSocket wrappers for complete mock API coverage
- Add inspector and show-trace commands for Playwright visual tools
- Replace inline changelog in README with reference to CHANGELOG.md
- Make landing page title, subtitle, and logo configurable via env vars
- Fix spel install, update SKILL.md docs, add changelog, remove Makefile refs from templates
- Add clickable CI pipeline link to run number in Allure landing page
- Fix Allure report logo 404: copy logo file into report output dir
- Add landing page with clickable SHA links, date grouping, and pass/fail status
- Add logo support for Allure report header
- Add commit SHA and message to Allure report history entries
- Add per-build Allure report archives with clickable history links
- Fix reflection warning in detect-source-dirs String/join call
- Fix Allure history: switch to JSONL mechanism with configurable limit
- Auto-detect Clojure source dirs for Playwright trace sources
- Update clj-kondo sinker hook import
- Add --full flag to annotate: annotate all elements, not just viewport
- Fix try plus hook
- Fix Allure report history: preserve history/ across runs for trend dropdown
- release: update README and CHANGELOG for v0.0.1
v0.0.1 - 2026-02-18
- Fix unresolved clojure.string namespace in integration test
- Update clj-kondo sinker hook import
- Regenerate scaffolded agents, skills, and specs from updated templates
- Update agent and skill templates for E2E test workflow
- Update README: rationale, install docs, Gatekeeper note, remove macOS Intel
- Fix Windows double .exe in build, remove macOS amd64 from CI, update Allure workflow
- Expand integration test coverage for codegen and tracing
- Improve daemon robustness and native image compatibility
- Fix codegen for Playwright 1.58+ locator kinds and improve CLI error messages
- Expand context options mapping and add anomaly helpers to core
- Add Allure trace groups, test title binding, and fixture error guards
- Preserve Allure report data across deployments so historical test results don't 404
- Auto-update README version on tag, consolidate release creation in native-image workflow
- Add dev build install instructions, macOS Gatekeeper note, and full release docs to README
- Fix CI: use Java driver CLI for browser install, handle Windows native-image.cmd, normalize cache paths
- Remove spel/start! from SKILL.md snapshot examples — daemon manages browser lifecycle
- Guard test fixtures against anomaly maps from safe-wrapped Playwright calls
- Upgrade setup-clojure to @13.5, restrict lint/graal checks to Linux
- Persist Allure history across CI runs via actions/cache
- Fix CI: install all browser deps, guard close-page!/close-browser! against anomaly maps
- Fix Windows CI: default to bash shell for cross-platform compatibility
- Add Allure Report badge and test report screenshots to README
- Fix README nav link and eval column wrapping, harden test fixture cleanup
- Update README.md and allure.yml
- Fix description of all spel evaluation
- Fix codegen for default roles
- Attempt to fix CI
- fix: use built-in Allure 3 reporter pipeline in CI, remove redundant allure generate
- Add docs regeneration scripts
- feat: daemon-backed --eval mode, per-command help, CLI tests, CI smoke tests, strict mode docs
- Initial commit
- Initial release of spel
- Clojure wrapper for Microsoft Playwright 1.58.0
- Browser automation: page navigation, screenshots, PDF generation
- Locator API for element selection and interaction
- Network interception and request/response handling
- Assertions module for test verification
- Input handling (keyboard, mouse, touch)
- Frame support for iframe interaction
- Codegen: record browser sessions and transform JSONL to Clojure test code
- CLI tools: install, codegen, open, screenshot, pdf
- Page exploration utility
- Allure test reporting integration
- OpenCode agent scaffolding via init-agents