builtbyberry / laravel-swarm-pulse
Laravel Pulse integration for Laravel Swarm — recorders and dashboard cards for swarm runs, steps, memory, and audit outbox observability.
Package info
github.com/builtbyberry/laravel-swarm-pulse
pkg:composer/builtbyberry/laravel-swarm-pulse
Requires
- php: ^8.4
- builtbyberry/laravel-swarm: ^0.22 || ^0.23 || ^0.24 || ^0.25 || ^0.26
- illuminate/console: ^13.0
- illuminate/contracts: ^13.0
- illuminate/filesystem: ^13.0
- illuminate/support: ^13.0
- laravel/pulse: ^1.7
- livewire/livewire: ^3.0 || ^4.1
Requires (Dev)
- builtbyberry/laravel-swarm-installer-testkit: ^0.1.3
- larastan/larastan: ^3.10
- laravel/pint: ^1.29
- orchestra/testbench: ^11.1
- pestphp/pest: ^4.7
- pestphp/pest-plugin-laravel: ^4.1
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-24 03:51:06 UTC
README
Laravel Pulse integration for Laravel Swarm — recorders and dashboard cards for swarm runs, step durations, memory growth, and audit outbox observability.
This package was extracted from builtbyberry/laravel-swarm core in v0.17.1
to keep the core package's dependency footprint small. If you were using
Pulse recorders or cards from laravel-swarm before v0.17.1, install this
package and update your imports — see
UPGRADING.md
in core for the migration steps.
Requirements
- PHP 8.4+
builtbyberry/laravel-swarm^0.22 through ^0.26- Livewire ^3.0 or ^4.1
Installation
composer require builtbyberry/laravel-swarm-pulse
This pulls in laravel/pulse as a dependency. Then publish and migrate
Pulse, and run the swarm installer:
php artisan vendor:publish --provider="Laravel\Pulse\PulseServiceProvider"
php artisan migrate
php artisan swarm:install:pulse
swarm:install:pulse registers the SwarmRuns, SwarmStepDurations, and
SwarmMemoryMetrics recorders in config/pulse.php and injects the swarm
cards into resources/views/vendor/pulse/dashboard.blade.php. Both edits are
sentinel-fenced and safe to re-run; the original files are backed up to
<file>.bak before the first mutation.
Pick which cards to enable with --cards (default: all four):
php artisan swarm:install:pulse --no-interaction --cards=runs,steps
If Pulse is not installed, the command refuses with a copy-paste hint and exits non-zero.
Cards
| Card | Livewire tag | What it shows |
|---|---|---|
| Swarm Runs | <livewire:swarm.runs /> |
Per-swarm totals, failures, failure rate, average run duration, topology mix |
| Swarm Steps | <livewire:swarm.steps /> |
Slowest average step durations by swarm + agent |
| Swarm Audit Outbox | <livewire:swarm.audit-outbox /> |
Live operational state of the audit outbox (pending, dead-letter, stale) |
| Swarm Memory | <livewire:swarm.memory /> |
Memory growth + snapshot size per scope |
See core's docs/pulse.md for the full aggregate-type reference, tuning
knobs, and troubleshooting guide — this package's behavior is unchanged from
the pre-extraction integration, only the namespace and package boundary moved.
License
MIT.
Compatibility checks
CI retains a published Laravel Swarm v0.25.0 baseline and lowest-dependency coverage on PHP 8.4 and 8.5, including Livewire 3 and 4. The v0.26 adoption lanes exercise the recorders, dashboard cards, audit outbox, memory metrics, and installer against the pinned core candidate e25842cab4291837dcce2ff6f4815e58feab9079, with official Laravel AI v0.11.2 and current stable 0.11.x dependencies.
These adoption lanes use temporary Composer package metadata for the candidate; they are not proof that v0.26 is published or installable from released packages. The committed package manifest retains ordinary version constraints. Published ecosystem installability and the core post-main moving-dev gate remain separate follow-up checks.