Liking cljdoc? Tell your friends :D

Changelog

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.

Unreleased

v0.4.2 - 2026-02-27

Added

  • 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

Fixed

  • fix: full-page screenshots capturing empty space below content due to Playwright's max(viewport, content) behavior (#33)

v0.4.1 - 2026-02-27

Added

  • 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

Changed

  • 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

Fixed

  • 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

Changed

  • 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

Changed

  • 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

Changed

  • 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

Changed

  • 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

Changed

  • 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

Changed

  • 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

Changed

  • 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

Added

  • 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

Can you improve this documentation? These fine people already did:
blockether-deployer & Karol Wojcik
Edit on GitHub

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close