0.000023 2026-04-17 12:06:27-07:00 America/Los_Angeles
- Strengthen SysV IPC configure-time probe: add concurrent-contention and rapid create/destroy phases to catch hosts where semop sporadically returns EINVAL only under load
- Add kernel-limit probe that disables SharedMem when /proc/sys/kernel/sem or shmmni/shmmax are below workable minimums
- Add persistence probe that disables SharedMem when an external reaper (systemd-logind RemoveIPC, ipcrm cronjob, cgroup IPC policy, etc.) destroys a freshly-created semaphore mid-probe
- Detect systemd-logind RemoveIPC=yes without user linger and include it as a diagnostic hint in the install-time failure message
0.000022 2026-04-16 16:49:45-07:00 America/Los_Angeles
- Reap children in the service loop via waitpid(-1, WNOHANG) so unrelated zombies are cleaned up
- Add run_on_pid hook and on_pid service callback for reaped non-worker child processes
- Add pids key to the watch() activity hash mapping reaped non-worker pid to exit value
0.000021 2026-04-16 07:18:10-07:00 America/Los_Angeles
- Fill in missing Changes entries for 0.000020
0.000020 2026-04-16 01:09:03-07:00 America/Los_Angeles
- Refactor Service::State to use Long::Jump instead of labelled redo
- Disable SharedMem at install time when host SysV IPC is broken
- Fix test_service_callbacks race waiting for on_peer_delta
- Fix test_workers race where parent reads empty pid file
0.000019 2026-04-13 15:01:40-07:00 America/Los_Angeles
- Add post_fork_hook to Role::Service and post_fork callback to Service for double-fork/daemonize support
0.000018 2026-04-12 02:20:35-07:00 America/Los_Angeles
- Fix UnixSocket reads on FreeBSD: use recv() instead of diamond operator for SOCK_DGRAM sockets
- Fix SharedMem semaphore EINVAL race: disconnect Handle client before Spawn destruction
- Fix message ordering on systems with coarse Time::HiRes resolution
- Add sort_messages to Client base class to centralize message sort logic
0.000017 2026-04-11 09:16:39-07:00 America/Los_Angeles
- Fix on_general_message test race where file was observed before content was written
0.000016 2026-04-10 09:25:35-07:00 America/Los_Angeles
- Fix Spawn shutdown race where fast services exit before wait() captures their PIDs
0.000015 2026-04-09 16:16:09-07:00 America/Los_Angeles
- Use Cpanel::JSON::XS directly and lazily reinitialize to survive global destruction
- Replace JSON::PP prereq with Cpanel::JSON::XS in dist.ini
- Fix Spawn::wait() to waitpid child processes before destroying shared resources
- Add debug flag to Spawn, reduce test suite noise
0.000014 2026-04-08 14:58:59-07:00 America/Los_Angeles
- Refactor viable() into base-class wrapper around _viable() so it never throws
- Fix DB tests failing to skip when DBI is too old
- Fix DB viable() not detecting missing server binaries (initdb, mysqld, etc.)
- Fix inotify tests failing when Linux::Inotify2 < 2.3 is installed
- Enforce Atomic::Pipe minimum version 0.022 in viable check and tests
- Add JSON::PP prereq, remove unused Sub::Util, fix IO::Select version in dist.ini
- Add 180-second timeout with stack trace to integration tests
0.000013 2026-04-08 08:14:28-07:00 America/Los_Angeles
- Fix SQLite DEFAULT FALSE incompatibility with older SQLite versions
- Fix UnixSocket broadcast test race on FreeBSD and older Linux kernels
0.000012 2026-04-07 16:36:22-07:00 America/Los_Angeles
- Fix JSONFile cache staleness detection when Linux::Inotify2 is absent
- JSONFile now requires either Linux::Inotify2 or Digest::SHA (recommended dep)
- Split inotify-affected tests into Inotify/NoInotify variants
0.000011 2026-04-05 14:10:41-07:00 America/Los_Angeles
- Reintegrate DBI and UnixSocket clients back into this dist
- Add JSONFile client
- Add SharedMemory client, rename InMemory to LocalMemory
- Add exec-services feature and refactor tests
- Fix DBI clients: blob handling, viable() checks, message ordering, SQLite timestamps
- Fix UnixSocket client: add version requirement and suspend_supported method
- Fix error propagation when requests cause errors
- Various bugfixes for hidden errors
- Add unit and integration tests for DBI and UnixSocket clients
- Add documentation
- Require newer DBIx::QuickDB
0.000010 2026-04-01 16:34:06-07:00 America/Los_Angeles
- Break DBI and UnixSocket clients into their own dists
0.000009 2026-03-30 11:07:14-07:00 America/Los_Angeles
- Skip postgresql tests on systems without initdb
0.000008 2026-03-29 09:37:55-07:00 America/Los_Angeles
- Remove leftover debugging
0.000007 2026-03-28 12:05:47-07:00 America/Los_Angeles
- Fix issues with listed deps
0.000006 2026-03-26 19:18:54-07:00 America/Los_Angeles
- Introduce 'Service' feature
0.000005 2026-02-23 19:54:20-08:00 America/Los_Angeles
- Fix Linux::Inotify dep in test
- Fix SQLite dep in test
0.000004 2026-02-23 10:49:55-08:00 America/Los_Angeles
- Fix UnixSocket issues usually seen on BSD
0.000003 2026-02-19 20:41:21-08:00 America/Los_Angeles
- Add IO::Select and handle capabilities where possible
- Possibly fix UnixSocket
0.000002 2026-02-19 18:57:37-08:00 America/Los_Angeles
- Attempt to add debugging for UnixSocket issues
0.000001 2025-12-31 20:40:44-08:00 America/Los_Angeles
- Initial Release