v0.0.43

4 July 2026

Db::listen, F::listen, and App::onEmit observability hooks; Clockwork addon reworked to use Clockwork's Log tab throughout.

Added

  • Db::listen(callable) : registers a callback fired after every Db::sql() call with (sql, params, duration in ms, connection name). Intended for observability tools like Clockwork; never for control flow.
  • F::listen(callable) : registers a callback fired after every F::read() and F::write() with (op, path, duration in ms, byte count).
  • App::onEmit(callable) : registers an observer notified after every hook listener runs, with (event, source, duration in ms). Source is a best-effort file:line label for closures, class::method for named callables.

Changed

  • Clockwork addon reworked: page, request/session, exceptions, and config data all moved to Clockwork's Log tab (instead of bespoke custom panels). DB queries feed Clockwork's built-in Queries tab via Db::listen(). File operations and hook-call timings feed a new I/O custom tab via F::listen() and App::onEmit(). Latte template renders feed Clockwork's built-in Views tab via beforeRender. Errors and warnings are captured via set_error_handler and logged to the Log tab. PHP boot time is now represented as a Bootstrap timeline entry before the Addons window.