Skip to content

Releases: oxhq/canio

v1.0.6

18 May 17:18

Choose a tag to compare

v1.0.6

This release refreshes the public project surface for the Canio launch story.

The Laravel rendering API and Stagehand runtime contract are unchanged. The release keeps the package tag, Stagehand version, README, changelogs, static site, and release notes aligned for the current v1.0 line.

Highlights

  • Added a root preview.gif demo asset for the README.
  • Rewrote the root README around browser-grade Laravel PDFs, explicit readiness, and render evidence.
  • Kept artifact examples aligned with the implemented debug(), artifact(), and replay() APIs.
  • Removed the stale v1.0.1 roadmap document now superseded by release notes.

Runtime

No render-contract behavior changes are included in this release.

Stagehand is published as v1.0.6 so install defaults, release assets, and the Laravel package tag stay aligned.

For Laravel Users

Use the normal upgrade flow:

composer require oxhq/canio:^1.0
php artisan canio:install
php artisan canio:doctor

Release Assets

This release publishes Stagehand binaries for Linux, macOS, and Windows on amd64 and arm64, plus checksums.txt.

v1.0.5

14 May 18:51

Choose a tag to compare

v1.0.5

This patch release hardens the v1.0.4 Rod-backed runtime line before the next public distribution.

Canio still defaults to the native Go rod-cdp local renderer, installs a managed Chrome for Testing bundle for local rendering, keeps local-cdp as the explicit local fallback, and supports remote-cdp for production hosts that should not install or supervise Chrome directly.

Fixed

  • php artisan canio:install is now repeatable. When the managed Stagehand binary and browser bundle already exist, the command reuses them unless --force is passed.
  • canio:install now returns a failing exit code when config publish, runtime install, browser install, or doctor fails.
  • php artisan canio:doctor now fails in embedded auto-start mode when Stagehand cannot be reached after startup readiness checks instead of reporting success with only a warning.
  • Doctor output now includes a Redis-specific diagnostic when the embedded runtime cannot start while CANIO_RUNTIME_JOB_BACKEND=redis.
  • Embedded runtime startup now cleans stale Chromium singleton lock files from both legacy browser-* profile directories and the current Rod stagehand-*/browser-* layout.
  • The clean-install launch smoke now derives its default runtime release from PackageVersion::TAG instead of carrying a stale hard-coded tag.
  • The launch smoke now uses Windows-safe default Composer version constraints, avoiding composer.bat caret escaping issues under Git Bash.

Why This Matters

This release closes the main gaps found during the packageability review: repeat installs should not fail because assets are already present, doctor should fail when embedded runtime startup is actually broken, Rod profile cleanup should match Stagehand's current per-process profile layout, and release smoke tests should follow the current package/runtime version automatically.

For Laravel Users

Use the normal upgrade flow:

composer require oxhq/canio:^1.0
php artisan canio:install
php artisan canio:doctor

Use --force when you intentionally want to replace the installed Stagehand binary or browser bundle:

php artisan canio:install --force

For production hosts using embedded mode with Redis-backed runtime jobs, a failing doctor now means the runtime could not be reached after startup. Check Redis connectivity, CANIO_RUNTIME_REDIS_*, and the configured Stagehand runtime log path.

Release Assets

This release publishes Stagehand binaries for Linux, macOS, and Windows on amd64 and arm64, plus checksums.txt.

v1.0.4

29 Apr 18:29

Choose a tag to compare

v1.0.4

This patch release keeps the v1.0.3 renderer shape and fixes a Windows consumer-path issue found while validating the published package plus published Stagehand assets.

Canio still defaults to the Rod-backed rod-cdp local renderer, installs a managed Chrome for Testing bundle for local rendering, keeps local-cdp as the explicit local fallback, and supports remote-cdp for production hosts that should not install or supervise Chrome directly.

Fixed

  • Absolute filesystem saves on Windows, such as C:\path\invoice.pdf, now write directly to that local path when no Laravel disk is provided.
  • The stored render result for direct filesystem saves records the path without a disk name.

Why This Matters

The public clean-install smoke renders to an absolute temporary path. On Windows, v1.0.3 rendered successfully but handed the absolute C:/... output path to Laravel's default disk. Flysystem then treated that path as a relative storage key under storage/app/private, which failed before the PDF could be written.

For Laravel Users

Use the normal upgrade flow:

composer require oxhq/canio:^1.0
php artisan canio:install
php artisan canio:doctor

If you save to a Laravel disk, keep passing the disk explicitly:

Canio::html($html)->save('documents/invoice.pdf', 'local');

If you save to an absolute local filesystem path, omit the disk:

Canio::html($html)->save($absolutePath);

Release Assets

This release publishes Stagehand binaries for Linux, macOS, and Windows on amd64 and arm64, plus checksums.txt.

v1.0.3

29 Apr 17:57

Choose a tag to compare

v1.0.3

This release makes Canio's local browser runtime more packageable and moves the default local renderer to the Rod-backed Stagehand driver.

The Laravel package now installs and repairs a managed Chrome for Testing bundle, reports that bundle through canio:doctor, and passes the installed browser path into Stagehand automatically. Stagehand now defaults to rod-cdp, where Rod owns local browser launch, document preparation, readiness waiting, PDF output, and core debug artifact capture behind the same RenderSpec -> RenderResult contract.

Changed

  • rod-cdp is now the default local Stagehand renderer.
  • local-cdp remains available as an explicit local fallback.
  • remote-cdp remains the recommended path when production hosts should not install or supervise Chrome directly.
  • The default browser product remains full Chrome for Testing chrome for fidelity; chrome-headless-shell is still available for controlled lighter-runtime environments.

Added

  • php artisan canio:browser:install
  • php artisan canio:browser:repair
  • browser bundle manifest resolution for installed Chrome for Testing executables
  • doctor output for installed browser product, version, platform, and executable path
  • Rod-native tests for HTML-to-PDF parity, debug screenshot/DOM/console artifacts, and failed URL status handling

Fixed

  • Stagehand Go tests now run from the live Windows checkout after normalizing cloud placeholder files into ordinary files.
  • App-level Stagehand tests now pass the detected Chrome path into the default Rod renderer instead of relying on implicit browser discovery.

For Laravel Users

After upgrading, run:

php artisan canio:install

That command installs the matching Stagehand runtime and, unless disabled, installs a managed Chrome for Testing browser bundle for local renderers.

To force the direct CDP fallback:

CANIO_RENDERER_DRIVER=local-cdp

To use a remote browser endpoint:

CANIO_RENDERER_DRIVER=remote-cdp
CANIO_REMOTE_CDP_ENDPOINT=ws://chrome-renderer.internal:9222/devtools/browser/<id>

Release Assets

This release publishes Stagehand binaries for Linux, macOS, and Windows on amd64 and arm64, plus checksums.txt.

v1.0.2

24 Apr 16:42
089460c

Choose a tag to compare

v1.0.2

This release fixes a runtime/package drift that could make local Stagehand startup fail after installing the Laravel package.

The Laravel package had learned to launch Stagehand with newer navigation and request-limit flags, but the default installer could still fetch the older v1.0.1 Stagehand binary. That binary did not know those flags, so it exited before serving. v1.0.2 aligns the package and runtime surfaces and adds a compatibility guard so this class of mismatch fails early with a clear installer error instead of reaching end users as a broken local runtime.

Fixed

  • The Laravel installer now validates downloaded Stagehand binaries before accepting them.
  • Stale Stagehand binaries that do not expose required serve flags are rejected and removed.
  • The default Stagehand runtime release now points at v1.0.2, matching the package command surface.
  • Windows binary resolution now handles absolute drive-letter paths and runnable .exe, .cmd, and .bat files correctly.
  • Stagehand Chromium profiles are namespaced per runtime process, so stale browser children from a crashed or force-stopped runtime cannot lock the next process out of local PDF rendering.
  • Browser-pool startup no longer returns a fresh lease with a cancelled browser context after acquire-timeout cleanup races.

For Laravel Users

If you use embedded local rendering, run the installer again after upgrading:

php artisan canio:runtime:install

The installer will fetch the v1.0.2 Stagehand binary for your platform and verify that it supports the flags required by this package.

Release Assets

This release publishes Stagehand binaries for Linux, macOS, and Windows on amd64 and arm64, plus checksums.txt.

v1.0.1

30 Mar 03:32

Choose a tag to compare

Canio v1.0.1

What This Release Is

v1.0.1 is the first post-launch patch release for the public Laravel package.

This release hardens the public distribution surface after v1.0.0: workflows move onto Node 24-compatible actions, the package gains a public docs site, deployment guidance becomes production-oriented, and release verification now covers tag, split repository, release assets, and Packagist distribution together.

Highlights

  • refreshed GitHub Actions workflows to Node 24-compatible action versions
  • published public docs at https://oxhq.github.io/canio/
  • added a production deployment guide for embedded versus remote runtime modes
  • aligned Packagist metadata with the public docs surface
  • added a release verification lane for future tag-to-distribution launches

Recommended Install

composer require oxhq/canio
php artisan canio:install

Canio v1.0.0

30 Mar 00:08

Choose a tag to compare

Canio v1.0.0

What This Release Is

v1.0.0 is the first public GA release of the Laravel package.

This release establishes Canio as the Laravel package for browser-grade PDFs: real Chromium rendering, JavaScript execution, explicit readiness, debug artifacts, async job workflows, and an embedded runtime flow that stays Laravel-native.

Highlights

  • public install path: composer require oxhq/canio
  • embedded runtime bootstrap with release-based Stagehand installation
  • explicit readiness through window.__CANIO_READY__
  • render artifacts including DOM snapshot, screenshot, console log, and network log
  • async job operations, retries, dead letters, and replay
  • reproducible benchmark suite covering fidelity, fair comparison, and JS capability

What Canio Is Not Claiming

  • not the fastest option for every static HTML-to-PDF workload
  • not a replacement for Dompdf or mPDF in the minimum-latency lane

Recommended Install

composer require oxhq/canio
php artisan canio:install

v0.1.3

27 Mar 09:44

Choose a tag to compare

v0.1.3