Skip to content

v0.5.4 — production hardening across runtimes, queues & databases

Choose a tag to compare

@anousss007 anousss007 released this 16 Jun 11:53
· 4 commits to main since this release

A relentless production-readiness pass on real Linux infrastructure — every common web server and app runtime, all four supervisable queue drivers, server-class databases, storage-outage chaos and high concurrency — which surfaced and fixed four real issues.

Fixed

  • Long-running daemons no longer dangle as stuck "running" command runs. octane:start, reverb:start, pulse:work/pulse:check are excluded from command capture via an unconditional Defaults::daemonCommands() baseline (protects installs whose published config predates the list).
  • Redis queue names normalized (queues:defaultdefault) so per-queue grouping is consistent across drivers and matches the supervisor / queue-depth probe / config.
  • Batched jobs link to their batchbatch_id is now recorded on batched runs.
  • Orphaned workers are reaped on supervisor boot — when the master is hard-killed (SIGKILL/OOM, or restarted under a non-cgroup manager like supervisord), its queue:work children no longer pile up. Completes the cross-platform reap the #vigilance name marker always intended.

Validated (no code change)

  • Web servers: Nginx, Apache (mod_proxy_fcgi), Caddy — all + PHP-FPM.
  • Octane on every server: FrankenPHP, Swoole 6.2, OpenSwoole 26.2, RoadRunner 2025.1 — 800 req @ concurrency 16, 0 failed, constant per-request span count (no cross-request leakage).
  • All four supervisable queue drivers: database, Redis, beanstalkd (1.13 + pheanstalk v8), each drained by the auto-scaling supervisor.
  • supervisord + OPcache with config:cache/route:cache/event:cache.
  • Never breaks the app when its storage is down: storage taken down mid-traffic → 100% of requests still served, queue still drained, capture resumed cleanly on recovery.
  • Job lifecycles: retries, timeouts (captured as failures), batches, chains.
  • Concurrency: 1200 req @ 24 against MySQL — no lost writes, aggregate counts exact, no deadlocks.
  • Dashboard at scale: every page 200 / sub-300 ms on 60k runs / 100k entries / 22k traces.
  • Fresh install: vigilance:install, migrate, vigilance:doctor (green), dashboard — all clean.
  • Full suite green on PostgreSQL 18.4 and MySQL 8.4 (CI uses PG 16 + MariaDB 11.4).

Full notes: see CHANGELOG.md.