FrankenPHP 1.12.7 was published on 7 August. In classic, non-worker mode, output written after fastcgi_finish_request() or frankenphp_finish_request() is now preserved. The previous behavior treated the connection as aborted under the default ignore_user_abort setting and stopped the script early. The change was submitted by dunglas in #2569 and fixes #2548.

The frankenphp_total_threads metric now reports a gauge that reflects the current thread count. It no longer grows without limit. ousamabenyounes contributed this change in #2550, which fixes #2481. The release also removes the opcache-invalidation restart hook because restarting after every Opcache reset could trigger recursive restarts in frameworks with heavy cache invalidation. AlliBalliBaba submitted that fix in #2564.

Routine write and flush errors caused by client disconnects now appear at debug level, following the convention used by Caddy and Mercure. The messages also lose the incorrect “not a flusher” label. The go.sh build script now reads the PHP_CONFIG environment variable. Documentation explains why the wait before rebooting after a force-kill must remain unbounded. henderkes contributed the build fix in #2557, dunglas updated the documentation in #2577, and ousamabenyounes made a first contribution with #2550.