Skip to content

Releases: ModelsLab/octane-coroutine

v0.8.16

31 May 12:08

Choose a tag to compare

Scopes Laravel deferred callback collections and filesystem managers per coroutine to avoid shared Redis/cURL/S3 handles across concurrent Swoole requests.

v0.8.15

31 May 11:11

Choose a tag to compare

Fixes

  • Scope Laravel queue managers and queue connections per Swoole coroutine request.
  • Rebind Redis queue connectors to request-scoped Redis managers to avoid sharing phpredis sockets across concurrent coroutines.
  • Release request-scoped queue connections during scope cleanup.

Verification

  • Reproduced the Swoole socket bind error locally with Swoole 6.1.2 and phpredis 6.0.2.
  • Added queue isolation regression coverage for Redis, queue.connection, sync, null, and failover drivers.
  • Ran the full package test suite: 110 tests, 793 assertions.

v0.8.14

30 May 07:44
884d5df

Choose a tag to compare

Release the Livewire/Filament coroutine rendering fixes from PR #3.\n\n- Add a coroutine-aware Livewire render/flush mutex.\n- Keep cloned Blade view factories scoped to themselves via __env.\n- Adds tests for the Livewire mutex and request-scoped view isolation.\n\nThis supersedes v0.8.13 as the merged-main release for consuming applications.

v0.8.11

27 May 10:17

Choose a tag to compare

Fixes

  • Add Swoole max_request_grace support and expose --max-request-grace.
  • Make request timeout fallback SIGTERM-first by default, with SIGKILL still configurable.
  • Make octane:stop graceful by delegating to the starter process when possible, then falling back through SIGTERM, SIGINT, and SIGKILL.
  • Fix worker shutdown outside coroutine context and the Swoole tick config namespace.

Verification

  • PHPUnit package suite: 104 tests, 762 assertions.
  • Local Laravel 12 Swoole repro with --max-requests=100 --max-request-grace=10: 500/500 HTTP 200 while workers recycled.
  • External octane:stop returned 0 and left no listener or Swoole processes.

v0.8.10

27 Apr 17:40

Choose a tag to compare

Fixes

  • Scope Lab404 impersonation manager to the coroutine sandbox application.
  • Scope Laravel Socialite manager/provider cache per coroutine request.
  • Scope Diglactic Breadcrumbs runtime manager state per coroutine request while preserving registered callbacks.
  • Add a coroutine-local Sentry hub proxy and request-scoped Sentry tracing middleware handling.

Tests

  • Added focused request-scope regression tests for Lab404 impersonation, Socialite, Breadcrumbs, and Sentry.
  • Verified with the full package PHPUnit suite: 96 tests, 747 assertions.

v0.8.9

27 Apr 04:35

Choose a tag to compare

Fixes

  • Rebind coroutine-scoped Auth::viaRequest custom guard creators so API-key guards read the current request under Swoole coroutines.
  • Preserve request rebinding callbacks when scoped request instances are swapped.
  • Avoid routing non-PDO drivers such as MongoDB through the coroutine DB pool.
  • Preserve Swoole/OpenSwoole table row keys when validating column sizes.
  • Size the Swoole request timer table from max_timer_table_size, max_conn, and max_coroutine for high-concurrency long-running requests.

Verification

  • vendor/bin/phpunit: 91 tests, 707 assertions.

v0.8.7 - Coroutine production hardening

26 Apr 18:17

Choose a tag to compare

Production hardening

  • Fix coroutine-scoped app()->handle() subrequests so nested API dispatch uses the scoped HTTP kernel/router and restores request bindings.
  • Add request-local binding/build support for unbound classes so constructor-injected Request dependencies stay coroutine-local.
  • Add Redis/cache/session request-scope cleanup to avoid socket/state reuse across concurrent coroutines.
  • Add DB pool transaction cleanup, idle pruning, and pre-flush release ordering to prevent dirty transactions and stale pool counters.
  • Add regression coverage for nested API shapes, request/container/session/cache/locale isolation, Redis manager isolation, DB transaction cleanup, and DB idle pruning.

Validation

  • Package test suite: 82 tests, 687 assertions.
  • App hardening tests: 9 tests, 33 assertions.
  • App full suite: 1883 passed, 2 skipped.
  • Docker stress with host MySQL/Redis validated fast full-stack, nested API app()->handle(), RemoteFile parity, DB transaction open/check, mixed slow/fast full-stack, and fixed-count 10k x 120s full-stack blocking IO with zero leak responses.

Production notes

Use Redis-backed cache/session, disable PDO and Redis persistent sockets, keep DB pool heartbeat and max idle pruning enabled, and size DB_POOL_MAX_CONNECTIONS per worker against MySQL max_connections.

v0.8.6

09 Apr 11:39
220f0ed

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.8.5...v0.8.6

v0.8.5

08 Apr 15:15

Choose a tag to compare

Full Changelog: v0.8.4...v0.8.5

v0.8.4

22 Jan 11:01

Choose a tag to compare

Full Changelog: v0.8.3...v0.8.4