* [13.x] Introduce a Cloud facade (#61275)
Backported as the rename only, without the facade and CloudManager.
* cloud facade
Update CloudManager.php
dont need this import after alll
Rename Cloud foundation to bootstrapper
holy pr feedback
facade bits
test
clean method names
* Update CloudBootstrapperTest.php
* cs
(cherry picked from commit 5fbd12d65be37cc2a01335b912e3ed5e2d056235)
* [13.x] Cloud enhancements (#61360)
* Improve testing story
* Return if event writing was successful
* Return whether job was successfully forgotten or not
* Register cloud events earlier
* Make Stan happy
* Update tests
* Improve doc blocks
* Update CloudBootstrapper.php
---------
Co-authored-by: Taylor Otwell <taylor@laravel.com>
(cherry picked from commit cb7494d7465b43b88398a60fa0ae03a400a5c175)
* Allow retrieving command by name without resolving all commands (#61361)
(cherry picked from commit ca0e114a5f3ae3bc904f6085518cc23fd0b38573)
* rename to find command
(cherry picked from commit 2795df5abcb342147debcdb2e64dd3ea4399c2e9)
* [13.x] Expose methods (#61362)
* Expose methods publicly
* formatting
---------
Co-authored-by: Taylor Otwell <taylor@laravel.com>
(cherry picked from commit 48ac5b8327ac736a73c7cea3e1cfaf5cc4292ee1)
* [13.x] Cloud exceptions (#61704)
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Extract Cloud command UUID for use as exception trace
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Improve test names
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* formatting
* tweak user handling for octaned
* Propagate the request trace ID to jobs dispatched from requests
Jobs are meant to be reported under the trace of the execution that
dispatched them. The trace is carried to the job in hidden Context,
written by the ContextDehydrating listener when the job's payload is
created.
That listener was only registered for console processes, so jobs
dispatched from HTTP requests never carried a trace. Their exceptions
were reported with a null trace_id. Worse, when one of those jobs
dispatched another job, the worker filled the gap with its own
process-wide command trace, grouping every such child job handled by
the worker under a single, unrelated trace.
The listener is now registered for requests as well. When the Context
does not already hold a trace, it falls back to the Cloud-Request-ID
header in requests (the same value the request's own exception reports
use) and to the command trace in the console.
This mirrors what Nightwatch does on Laravel Cloud, where the request
trace is also the Cloud-Request-ID and is propagated to jobs through
hidden Context. Unlike Nightwatch, the trace is written lazily when a
job is dispatched rather than when the execution starts, since only
job payloads need it and the framework has no hook before middleware.
Requests without a Cloud-Request-ID continue to report no trace, and
their jobs now match them.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: jradtilbrook <jarryd@tilbrooktech.com>
Co-authored-by: Taylor Otwell <taylor@laravel.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit fee86a43f0ce54b20307b00039cec7cf32d501cb)
* Add mime type to the files reportable details (#61772)
(cherry picked from commit 1003c6e7280aee14b1c64a6ded78e33755d7e35d)
* Update facade docblocks
* Improve exception reporting
* Exception enhancements (#61791)
* Collapses into single listener
* Additional tests
* Capture correct execution time for Octane
* Introduce dehydration hook
* use class directly
(cherry picked from commit f6bcad915ea8d2b15c89df7ab7f544377feaa234)
* Resolve the Blade mapper for each reported view exception.
(cherry picked from commit 5ccdd3b62c2002e4de4796a429a194dc49bdfe94)
* Match the registration spacing of 13.x.
* Add missing @throws \JsonException annotations (#60514)
(cherry picked from commit a6ce2a7497b3e1c96ffb75538f9b8ce58b3a165e)
* Foundation\Cloud\Events: remove an unused import and fix docblock (#60378)
(cherry picked from commit 7433202012c624807ca84531f7f3c0de02f45a3c)
* Resolve the Blade mapper through a resolver closure.
(cherry picked from commit 058631ea335df48b3bb350e20568b84a23f90d65)
---------
Co-authored-by: Jack Bayliss <jjbayliss@icloud.com>
Co-authored-by: Taylor Otwell <taylor@laravel.com>
Co-authored-by: jradtilbrook <jarryd@tilbrooktech.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Sabrina Bourouis <bourouis.sabrina@laposte.net>