Skip to content

[5.x] Adding scaling to balance = false #1473

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jul 22, 2024

Conversation

dbpolito
Copy link
Contributor

This introduces a new strategy for balance: single

What this does is, it still has scaling similar to auto, but instead of having one worker per queue, it still keeps all queues into the same process, following the order specified, similar to what you would have using queue:work --queue=a,b,c

TBH this was the behavior i expected when i started using horizon a long time ago...

I'm using it in my project and thought it would be useful for others...

I can open a PR on the Docs in case this gets accepted / merged.

Maybe the name isn't that clear, totally open to change.

@fabriciojs
Copy link

👍🏻 this is nice, as this way we don't get bloated with too many workers, but we can still make our queues more granular for straight visibility into each of them.

@taylorotwell
Copy link
Member

What is the main difference between this and 'balance' => false?

@dbpolito
Copy link
Contributor Author

dbpolito commented Jul 12, 2024

Well, off won't auto scale, right? It will basically stick with the process or max process... This will scale based on the jobs, but each worker will have all queues, so it will scale up to x and each worker with queue=a,b,c

@taylorotwell
Copy link
Member

taylorotwell commented Jul 12, 2024

Gotcha. I do wonder if we really need a new strategy for this if off behaves similar to this but just using maxProcesses. You have to build your server to be able to handle your queue worker load at maxProcesses anyways so why not just let it run at max all the time using the off strategy?

@dbpolito
Copy link
Contributor Author

Well while this is true, there are several benefits of not spending the memory just to run the workers unnecessarily:

  1. Reserving all this memory just to keep seeking for jobs (~100mb per worker)
  2. Having more free memory for the jobs to process
  3. Scaling Horizon Instances on K8S based on resources usage

Also this brings the functionality of queue priority, so it needs to process on the order.

I think the complexity added vs functionality might worth to more people.

I'm already using this strategy on my project and only changing to it reduced 30% of memory usage in my case... Of course it will change depending on how your queues are designed.


Another thing that would help on this matter which was discussed on other issues is starting workers on min instead of max, to avoid unnecessary memory peak / waste.

@taylorotwell
Copy link
Member

Should this just be the default behavior of balance => false? I don't think the name single really conveys much.

@dbpolito
Copy link
Contributor Author

Well, that is what i expected to be TBH... i agree, but isn't it a "BREAKING CHANGE"? Won't break anything but will change the behavior for everyone who uses it.

I'm totally ok with that, or come up with a different name...

@taylorotwell
Copy link
Member

I'm not sure if it's a breaking change. We never actually document the scaling behavior of balance => false and it shouldn't "break" your application as it's mainly an internal optimization for Horizon.

@dbpolito
Copy link
Contributor Author

well makes sense... i will try to change the PR later today or tomorrow tops.

@taylorotwell
Copy link
Member

Thanks! Just mark as ready for review when you want me to take another look.

@taylorotwell taylorotwell marked this pull request as draft July 19, 2024 16:15
@dbpolito dbpolito marked this pull request as ready for review July 19, 2024 19:58
@dbpolito
Copy link
Contributor Author

@taylorotwell updated 👍

@taylorotwell taylorotwell merged commit ee804ec into laravel:5.x Jul 22, 2024
10 checks passed
@taylorotwell
Copy link
Member

Thanks

@dbpolito dbpolito deleted the balance_single branch July 22, 2024 14:55
@ChristopheBorcard
Copy link

It might have been wise to rename the PR.

Because now the change log on the Tag is talking about a new Single balance strategy that doesn't exist:

https://github.com/laravel/horizon/releases/tag/v5.26.0

@dbpolito dbpolito changed the title [5.x] Adding new balance strategy: single [5.x] Adding scaling to balance = false Jul 24, 2024
@dbpolito
Copy link
Contributor Author

I renamed the PR but it won't update the release i think

@driesvints
Copy link
Member

I updated all references. Thanks

@vilhelmjosander
Copy link

A bit late to the party here but this seems to have broken my use of Horizon with balance = false.

I have a fairly large application which sometimes handles upwards of 200k jobs per hour on a single VPS. After updating Horizon to >= 5.26.0 it suddenly stopped processing jobs (or processed them EXTREMELY slow). Downgrading to 5.25.0 and everything is back to normal again.

This is my setup:

 'environments' => [
        'production' => [
            'supervisor-live' => [
                'connection' => 'redis-live-battles',
                'queue' => ['live'],
                'balance' => 'false',
                'minProcesses' => 1,
                'maxProcesses' => 5,
                'balanceMaxShift' => 15,
                'balanceCooldown' => 1,
                'tries' => 3,
                'timeout' => 80,
            ],
            'supervisor-default' => [
                'connection' => 'redis',
                'queue' => ['urgent', 'high', 'default', 'low'],
                'balance' => 'false',
                'minProcesses' => 1,
                'maxProcesses' => 50,
                'balanceMaxShift' => 15,
                'balanceCooldown' => 1,
                'tries' => 3,
                'timeout' => 80,
            ],
        ],

Unfortunately I am not familiar enough with the internals of Horizon to be able to debug this myself but i've narrowed it down to this PR.

This is what my horizon dashboard looks like after deploying >= 5.26.0. Basically jobs just keep piling up without being processed across the different queues.

CleanShot 2024-08-23 at 22 41 30@2x

@dbpolito
Copy link
Contributor Author

@vilhelmjosander

Well, i also got a fairly big project and haven't noticed any difference on performance, processing ~15k jobs as usual...

Did you check the job throughput? Is that different on versions?

TBH i can't see a reason to impact performance, the only behavior difference is that it scales now... before it would always be at 50 process in your case... now it will scale from 1 to 50... but the way it process and how it process is exactly the same.

Looking at your screenshot, it seems it scaled properly and it's using 50 processes...

I would look at the job throughput / runtime... as maybe the jobs may be different.

@trevorgehman
Copy link
Contributor

Just to add another comment. This affected our Horizon workers because we had an old config file where only processes was specified, instead of minProcesses and maxProcesses. Here is our config:

'supervisor-1' => [
    'connection' => 'redis',
    'queue' => ['critical'],
    'balance' => false,
    'processes' => 6,
    'tries' => 10,
    'sleep' => 2,
    'timeout' => 3500,
    'memory' => 1500,
    'maxJobs' => 1000,
],

Horizon treats processes as maxProcesses. And since we didn't have a value minProcesses it defaulted to 1.

$key = $key === 'processes' ? 'max_processes' : $key;

So basically it enabled scaling for all these workers which previously didn't scale.

It didn't break anything for us, just took us a couple weeks to notice that our queues processing jobs a bit slower.

@sts-ryan-holton
Copy link

Just jumping in here, I tried out setting 'balance' => false for my supervisors in my Horizon config, not completely sure what the benefit here would be? Does this technically mean it processes each queue synchronously, so each queue in order first? What's the benefits?

@vilhelmjosander
Copy link

I'm at a loss at what to do here. As soon as I upgrade to >= 5.26.0 horizon basically stops processing jobs with balance = false. It works flawlessly with 5.25.0.

Currently this also stops me from updating laravel/framework since horizon 5.25.0 gives the following errors with Laravel >= 11.27.0:

Declaration of Laravel\Horizon\RedisQueue::pop must be compatible with Illuminate\Queue\RedisQueue::pop.

Any ideas? :)

@sts-ryan-holton
Copy link

sts-ryan-holton commented Oct 19, 2024

@vilhelmjosander A few things to consider:

  1. Not sure if it's causing you a problem, but it should be 'balance' => false instead of 'balance' => 'false'. From your screenshot, your "Balancing" column says "False", but when I use 'balance' => false (note the boolean not string) then under "Balancing" it'll say "Disabled", so check this
  2. After looking at your screenshot, your queues, urgent, high, default and low in that order, I'm pretty sure it'll try to process everything on the urgent queue first, then move on to the high queue, then default, then low. This actually means that, if for example you have a tonne of jobs coming in on the urgent queue, or high queue, then any queue later on simply will just build up and never really process anything unless you allocate more workers/processes.

I noticed this in my own platform, to try to illustrate it better, if you have 5 workers and each job takes 1 second and you have new jobs filling the urgent queue as quick as they're being processed, no queues below it will have enough workers.

Does this help?

@dbpolito
Copy link
Contributor Author

dbpolito commented Oct 19, 2024

@vilhelmjosander it's hard to help without a way to reproduce...

I tried to reproduce here... played with the tests, and everything seems to be working as it should...

Can you check the processes that are running? with ps aux or something like that, to check how all those 50 processes looks? You should have 50 processes with ... --queue="urgent,high,default,low" ...

And again, are you sure it's not processing? Because as stated above, it will process on this queue order... so all urgent first, then high, then default, then low...

None of the queues are processed? or only the urgent ones?

Of course we need to fix it, if something is wrong... but have you tried changing the balance? Maybe for your use case you do need to change to simple or auto

@vilhelmjosander
Copy link

vilhelmjosander commented Oct 19, 2024

@dbpolito

At once after deploying >= 5.26.0 it starts to process the queues extremely slow. I now tried to change the setting to false (boolean) instead of the string 'false' (which works fine on 5.25.0).
CleanShot 2024-10-19 at 20 34 39@2x

This is the only thing I see which is related to horizon with ps aux. Same for ps aux | grep queue or similar. I do not have 50 processes (which I do have with 5.25.0).

CleanShot 2024-10-19 at 20 42 16@2x

I did note that after deploying >= 5.26.0 ps aux did show 20-50 processes with ... --queue="urgent,high,default,low" ... for a while, then it stopped and no processes at all were visible which basically meant that jobs were not processed.

Here is my current config:

CleanShot 2024-10-19 at 20 43 49@2x

Switching to balance = 'auto' seems to work. The reason why I've had balance = false is that I do want the default laravel behaviour where the jobs are processed in the queue order. It is important that the urgent queue has higher priority than the low queue and always processes asap.

@dbpolito
Copy link
Contributor Author

@vilhelmjosander

the only thing i noticed which shouldn't impact anything, but who knows... is these supervisors uses different redis connections...

so when you run it you only have the supervisor processes running, and no actual worker running? that's weird... as horizon doesn't support scaling to 0 workers...

are you sure nothing pops into your logs? errors or anything?

Really hard to help, i tried changing tests, trying to reproduce but not a lot of luck.

Maybe you can setup a reproducible repo so we can jump in

taylorotwell added a commit that referenced this pull request May 23, 2025
* Update CHANGELOG

* when register, keep the original redis options, only overwrite prefix (#1161)

* when register horizon, keep the original redis options, only overwrite prefix

* delete space

* Update Horizon.php

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Update CHANGELOG

* Bump terser from 4.8.0 to 4.8.1 (#1162)

Bumps [terser](https://github.com/terser/terser) from 4.8.0 to 4.8.1.
- [Release notes](https://github.com/terser/terser/releases)
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/commits)

---
updated-dependencies:
- dependency-name: terser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump moment from 2.29.2 to 2.29.4 (#1163)

Bumps [moment](https://github.com/moment/moment) from 2.29.2 to 2.29.4.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](moment/moment@2.29.2...2.29.4)

---
updated-dependencies:
- dependency-name: moment
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Compile Assets

* Fallback array for retried_by (#1166)

* Update CHANGELOG

* wip

* Update README.md (#1170)

* Ability to ignore long waits for queue (#1172)

* Boyscouting

* WIP: TDD

* Code style

* Remove unused event

* Ignore queues with wait time of 0

* Update CHANGELOG

* Bump moment-timezone from 0.5.33 to 0.5.35 (#1180)

Bumps [moment-timezone](https://github.com/moment/moment-timezone) from 0.5.33 to 0.5.35.
- [Release notes](https://github.com/moment/moment-timezone/releases)
- [Changelog](https://github.com/moment/moment-timezone/blob/develop/changelog.md)
- [Commits](moment/moment-timezone@0.5.33...0.5.35)

---
updated-dependencies:
- dependency-name: moment-timezone
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Compile Assets

* [5.x] Failed job list: Modify job retry tooltip label to include status of last job retry (#1182)

* [5.x] Failed jobs list: Modify job retried tooltip label to include status of last retry

* [5.x] Failed jobs list: Modify job retried tooltip label to include status of last retry

- Simplified logic by removing unnecessary checks, since when method is called there will always have been a retry

* [5.x] Failed jobs list: Modify job retried tooltip label to include status of last retry

- Updated comment

* Update index.vue

* Update index.vue

Co-authored-by: Jeandre van Zyl <jeandre@sinov8.net>
Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Compile Assets

* Update CHANGELOG

* Update .gitattributes (#1188)

* Update .gitattributes

* Update .gitattributes

Co-authored-by: Dries Vints <dries@vints.io>

* Add exit codes to status command (#1191)

* Add exit codes to status command

* StyleCI

* Update CHANGELOG

* Improves GitHub Actions Workflow (#1193)

* Improves GitHub Workflow

* Avoid using `^` deps (incompatible with Composer on Windows), while this is not used in Telescope, this repository will be used as reference to setup GitHub Action and I believe we should use the best configuration.
* Use `include` instead of `exclude`

* wip

* wip

* wip

* Allow deleting of Tags which contain forward slashes (Fixes #1093) (#1196)

* fix #1093, delete tags which contain forward slashes

* remove double ;

Co-authored-by: Stefan Gotre <stefan.gotre@teraone.de>

* unnecessary param to refreshStatsPeriodically (#1198)

* Compile Assets

* Update CHANGELOG

* Test PHP 8.2 (#1205)

* Add missing anchor title for clarity (#1212)

* Add missing anchor title for clarity

* Compile Assets

Co-authored-by: stevebauman <stevebauman@users.noreply.github.com>

* Set default value for job `$payload['pushedAt']` when retrying (#1211)

* Add failing test

* Use microtime for pushed at timestamp

* Update test

* CS fixes

* Update dependencies

* Update CHANGELOG

* Bump loader-utils and resolve-url-loader (#1218)

Bumps [loader-utils](https://github.com/webpack/loader-utils) to 2.0.4 and updates ancestor dependencies [loader-utils](https://github.com/webpack/loader-utils), [loader-utils](https://github.com/webpack/loader-utils) and [resolve-url-loader](https://github.com/bholloway/resolve-url-loader/tree/HEAD/packages/resolve-url-loader). These dependencies need to be updated together.


Updates `loader-utils` from 2.0.3 to 2.0.4
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.4/CHANGELOG.md)
- [Commits](webpack/loader-utils@v2.0.3...v2.0.4)

Updates `loader-utils` from 1.4.0 to 2.0.4
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.4/CHANGELOG.md)
- [Commits](webpack/loader-utils@v2.0.3...v2.0.4)

Updates `resolve-url-loader` from 3.1.4 to 5.0.0
- [Release notes](https://github.com/bholloway/resolve-url-loader/releases)
- [Changelog](https://github.com/bholloway/resolve-url-loader/blob/v5/packages/resolve-url-loader/CHANGELOG.md)
- [Commits](https://github.com/bholloway/resolve-url-loader/commits/5.0.0/packages/resolve-url-loader)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
- dependency-name: loader-utils
  dependency-type: indirect
- dependency-name: resolve-url-loader
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Create issues.yml

* Ensure Autoscaler never reduces processes to less than 1 (#1221)

* Don't tolerate negative `$maxUpShift`

* Fix autoscaling letting processes hit 0

* Fix autoscaling letting processes hit 0

* Update CHANGELOG

* Add signal option to `horizon:purge` (e.g. `SIGKILL`) (#1226)

* add signal option (e.g. SIGKILL)

* formatting

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Update CHANGELOG

* Fix failing tests (#1229)

* Update tests.yml

* [5.x] Fix vue-json-pretty CSS for new classnames (#1231)

* Update syntaxhighlight.scss

* Add value-undefined style

* Lint Fix

* Compile Assets

* Adds types to stubs (#1206)

* Update CHANGELOG

* [5.x] Silenced jobs (#1232)

* Silenced jobs

* wip

* formatting

* Compile Assets

* Compile Assets

Co-authored-by: Taylor Otwell <taylor@laravel.com>
Co-authored-by: taylorotwell <taylorotwell@users.noreply.github.com>

* Add silenced job detail view

* add sidebar entry for silenced

* Bump json5 from 1.0.1 to 1.0.2 (#1233)

Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](json5/json5@v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [5.x] Laravel v10 Support (#1234)

* Update tests.yml

* Update composer.json

* Update composer.json

* Update CHANGELOG

* Implement Silenced interface (#1236)

* Increase `perPage` variable for monitored tags (#1237)

Currently, all pages show 50 jobs per page. Only the Monitored Tags page is limited to 3 jobs per page. In my opinion, this makes little sense and especially if you want to monitor a lot more jobs, it is very difficult to find the right jobs or to get an overview of the last jobs that have been run.

* compile

* Update CHANGELOG

* [5.x] Allow any queued class to be silenced (#1241)

* move sileneced logic to job payload

* move fixtures and payload test to feature

* fix tests

* styling

* make methods protected

* [5.x] A fresh coat of paint (#1242)

* A fresh coat of paint

* Compile Assets

* fix silenced viewbox

Co-authored-by: jessarcher <jessarcher@users.noreply.github.com>
Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Update CHANGELOG

* Update UPGRADE.md

* wip

* Fix missing variable use in anonymous function (#1244)

* Update CHANGELOG

* Remove Lodash (#1246)

* Apply fixes from StyleCI

* chore: bump axios to v1.x (#1247)

* Compile Assets

* Update CHANGELOG

* [5.x] Adds type checking (#1250)

* Adds type checking

* Update .gitattributes

* Update static-analysis.yml

* [5.x] Add cancelled status to batch overview (#1255)

* add cancelled status to batch overview

* use badge class

* Update index.vue

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Compile Assets

* [5.x] Add autoScalingStrategy option (#1254)

* adds autoScalingStrategy option

* changes autoScalingStrategy property to runtime

* style fix

* formatting

* move property

* fix variable

* Update SupervisorOptions.php

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* wip

* Apply fixes from StyleCI

* add default scaling strategy

* Update CHANGELOG

* Update CHANGELOG

* Update CHANGELOG.md

* Bump webpack from 5.74.0 to 5.76.1 (#1258)

* Bump webpack from 5.74.0 to 5.76.1

Bumps [webpack](https://github.com/webpack/webpack) from 5.74.0 to 5.76.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](webpack/webpack@v5.74.0...v5.76.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Apply fixes from StyleCI

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: StyleCI Bot <bot@styleci.io>

* Update and rename 1_Bug_report.md to 1_Bug_report.yml

* Update 1_Bug_report.yml

* Fix deprecation errors for PHP 8.2 (#1270)

* Update CHANGELOG

* [5.x] Refreshes tags periodically (#1274)

* Refreshes tags periodically

* Compile Assets

* Update index.vue

---------

Co-authored-by: nunomaduro <nunomaduro@users.noreply.github.com>
Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Compile Assets

* Respect the prefers-color-scheme setting (#1275)

* Respect the prefers-color-scheme setting

* Added a scheme toggler

* update deps

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Update CHANGELOG

* Mask as deprecated using `night()` and `$useDarkTheme` (#1279)

* Mask as deprecated using `night()` and `$useDarkTheme`

This PR is for #1275

* Try to fix style

* Update CHANGELOG

* Add events for when supervisors are terminated (#1282)

* Add events for when supervisors are terminated

* Fix styleCI issues

* rename files

* Update SupervisorOutOfMemory.php

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Fixed occasional flashing when toggling scheme (#1283)

* Update CHANGELOG

* [5.x] Fix supervisor reprovisioning (#1288)

* Fix supervisor reprovisioning

* Update SupervisorProcess.php

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Make inactive supervisors visible (#1286)

* Fix autoscaler scaling down below zero when number of queues times minProcesses is higher than maxProcesses (#1292)

* Update CHANGELOG

* Fix: Make sure that missing supervisors are correctly displayed when using multiple environments (#1294)

* Make sure that active supervisors are matched based on environment of master supervisor

* Update HorizonCommand.php

* Update MasterSupervisor.php

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* put environment at end to be safe

* Update CHANGELOG

* Handle non-array parameters for "queue" setting in supervisor config (#1299)

* Handle non-array parameters for "queue" setting in supervisor config

* Update MasterSupervisorController.php

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Update CHANGELOG

* set 0 as the default runtime of the job (#1307)

* Update CHANGELOG

* [5.x] Throws `Laravel\Horizon\Exceptions\ForbiddenException` on unauthorized access (#1308)

* Allow overriding the status code for unauthorized requests via config

* Update tests

* Use custom unauthorized exception instead of config value

* Remove unused imports

* Use custom exception

* Use original error code and rename exception

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* formatting

---------

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>
Co-authored-by: Joel Butcher <>
Co-authored-by: Mior Muhammad Zaki <crynobone@gmail.com>
Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Update CHANGELOG

* Workbench Integration (#1312)

* Workbench Integration

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* Apply fixes from StyleCI

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

---------

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>
Co-authored-by: StyleCI Bot <bot@styleci.io>

* Use available `batch.processedJobs` value from `Illuminate\Bus\Batch` (#1315)

* Use available `batch.processedJobs` value from `Illuminate\Bus\Batch`

fixes #1311

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* Compile Assets

---------

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>
Co-authored-by: crynobone <crynobone@users.noreply.github.com>

* Update CHANGELOG

* Add `horizon:reset-metrics` command (#1318)

* Add reset-metric artisan command

* Be more specific to only delete the lock key

* Update ResetMetricsCommand.php

* Update RedisMetricsRepository.php

* formatting

* formatting

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Update CHANGELOG

* fix(clear-metrics): fixing the function name and when keys is null (#1319)

* Update CHANGELOG

* PHP 8.3 (#1323)

* Fix the job repository class based on service bindings (#1335)

* Fix the job repository class based on service bindings

* fix

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Apply fixes from StyleCI

* Uses `actions/checkout@v4`

* Bump @babel/traverse from 7.20.1 to 7.23.2 (#1338)

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.20.1 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update CHANGELOG

* Bump browserify-sign from 4.2.1 to 4.2.2 (#1342)

Bumps [browserify-sign](https://github.com/crypto-browserify/browserify-sign) from 4.2.1 to 4.2.2.
- [Changelog](https://github.com/browserify/browserify-sign/blob/main/CHANGELOG.md)
- [Commits](browserify/browserify-sign@v4.2.1...v4.2.2)

---
updated-dependencies:
- dependency-name: browserify-sign
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Ensure event is raised before exiting the process (#1341)

* Update CHANGELOG

* Bump axios from 1.3.2 to 1.6.0 (#1347)

Bumps [axios](https://github.com/axios/axios) from 1.3.2 to 1.6.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.3.2...v1.6.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Compile Assets

* fix: undefined array key 'queue' (#1351)

* fix: undefined array key 'queue'

* Update MasterSupervisorController.php

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Update CHANGELOG

* [5.x] Pass event instance to event listeners tag() method (#1361)

* first pass

* Store the event as a property? seems dirty...

* Possibly better implementation

* Remove unneeded parameters

* formatting

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Apply fixes from StyleCI

* Update CHANGELOG

* Bump follow-redirects from 1.15.2 to 1.15.4 (#1364)

Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.2 to 1.15.4.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](follow-redirects/follow-redirects@v1.15.2...v1.15.4)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add cache check before registering routes (#1367)

If routes are already cached, it is not necessary to re-register Horizon routes on every request.

I've found that many Laravel packages don't check for already cached routes and will needlessly re-register routes that already exist in the cache anyway.  This reduces boot times in production by ~0.5 ms which adds up when applied to multiple other first-party Laravel packages.

I can open PRs in other projects if this is approved.

* Fix the pagination when navigating to the previous and the next page (#1366)

Co-authored-by: kirba <bakirhusovic@gmail.com>

* Compile Assets

* [5.x] Merge develop (#1369)

* [develop] Adds L11 support (#1352)

* Adds L11 support

* Fixes service provider installation

* Fixes service provider installation

* Fixes service provider installation

* Fixes static analysis

* Improves test suite organization

* Test without `runInSeparateProcess`

* Adjusts installation process (#1353)

* Add exit code to horizon:forget command (#1370)

* Update CHANGELOG

* Use actions/checkout@v4 (#1374)

* make the time for temporarily failed jobs configurable (#1375)

* Use new static analysis workflow (#1377)

* Update 1_Bug_report.yml

* Carbon v3 support (#1380)

* Carbon v3 support

* wip

* wip

* Update CHANGELOG

* fix: redirects to batches page when batch not found

* Update BatchesController.php

* [5.x] Improves console output and fixes Carbon v3 support (#1387)

* Deprecates Laravel 8, PHP 7.3 and PHP 7.4

* Improves output of `clear` command

* Improves output of `clear:metrics` command

* Improves output of `continue` command

* Improves output of `supervisor:continue` command

* Improves output of `forget:failed` command

* Improves output of `horizon` command

* Improves output of `install` command

* Improves output of `list` command

* Improves output of `timeout` command

* Improves output of `supervisors` command

* Improves output of `supervisor` command

* Improves output of `status` command

* Improves output of `snapshot` command

* Improves output of `supervisor:pause` command

* Improves output of `pause` command

* Improves output of `terminate` command

* Improves output of `purge` command

* Fixes adding seconds to process `terminatedAt`

* Update TimeoutCommand.php

* Update PurgeCommand.php

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Update CHANGELOG

* Output console error when terminating due to memory usage (#1391)

* Show error in console when php artisan:horizon terminates when using more than configured memory

* Update HorizonCommand.php

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Update CHANGELOG

* Bump follow-redirects from 1.15.4 to 1.15.6 (#1396)

Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.4 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](follow-redirects/follow-redirects@v1.15.4...v1.15.6)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [5.x] Make commands lazy (#1399)

* Make commands lazy

* lint

* lint

* Fix soft dependency

* Bump webpack-dev-middleware from 5.3.3 to 5.3.4 (#1400)

Bumps [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware) from 5.3.3 to 5.3.4.
- [Release notes](https://github.com/webpack/webpack-dev-middleware/releases)
- [Changelog](https://github.com/webpack/webpack-dev-middleware/blob/v5.3.4/CHANGELOG.md)
- [Commits](webpack/webpack-dev-middleware@v5.3.3...v5.3.4)

---
updated-dependencies:
- dependency-name: webpack-dev-middleware
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update CHANGELOG

* Bump express from 4.18.2 to 4.19.2 (#1404)

Bumps [express](https://github.com/expressjs/express) from 4.18.2 to 4.19.2.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](expressjs/express@4.18.2...4.19.2)

---
updated-dependencies:
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Enhance forget command (#1409)

* Enhance forget command

* Update ForgetFailedCommand.php

* Update ForgetFailedCommand.php

* Update ForgetFailedCommand.php

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Apply fixes from StyleCI

* [5.x] Update to bootstrap 5.1 and drop jQuery (#1405)

* Update bootstrap and remove jQuery and popper.js dependencies

Popper.js is needed for tooltips, using the browser native title attribute removes the need to keep this

* Update utility classes

https://getbootstrap.com/docs/5.1/migration/#utilities

* Fix badge color classes

https://getbootstrap.com/docs/5.1/migration/#badges

* Remove text decoration of anchor tags

https://getbootstrap.com/docs/5.1/migration/#content-reboot-etc

* Fix data-toggle attribute

https://getbootstrap.com/docs/5.1/migration/#javascript

* Remove text-decoration of route-link elements

https://getbootstrap.com/docs/5.1/migration/#content-reboot-etc

* Remove new border styling under thead

* Fix vue-json-pretty output with overflowing text

* Apply fixes for updated vue-json-pretty css

laravel/telescope#1049

* utility changes (rebase changes)

* remove text-decoration-none

https://getbootstrap.com/docs/5.1/migration/#content-reboot-etc

* apply some fixes after visual comparison

* undo styling changes

* Update Alert.vue

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Compile Assets

* Fix passing null (#1412)

* Update CHANGELOG

* [5.x] Change Laravel Mix asset bundling to Vite setup (#1413)

* feature: move mix to vite setup

improve asset publishing

change formatting

ww

fix ci

* Rename app.scss to styles.scss

* [5.x] feature: this adds the vite integrity plugin to support assetsAreCurrent check (#1415)

* feature: this adds the vite integrity plugin to support assetsAreCurrent check

fix schema -> scheme

compile assets

* Update resources/views/layout.blade.php

---------

Co-authored-by: Dries Vints <dries@vints.be>

* Update CHANGELOG

* Revert "[5.x] feature: this adds the vite integrity plugin to support assetsA…" (#1417)

This reverts commit df27ad9.

* Revert "[5.x] Change Laravel Mix asset bundling to Vite setup (#1413)" (#1418)

This reverts commit 3c6661d.

* Update CHANGELOG

* [5.x] Readd vite support (#1421)

* Reapply "[5.x] Change Laravel Mix asset bundling to Vite setup (#1413)" (#1418)

This reverts commit 6667681.

* Reapply "[5.x] feature: this adds the vite integrity plugin to support assetsA…" (#1417)

This reverts commit a43adc8.

* fix: vite dev mode when hotfile is detected

* Update CHANGELOG

* [5.x] Fix #1419 (#1424)

* show: check for $batch

* retry: check for $batch

* Prevent infinite loop when forgetting failed jobs (#1429)

* Fix setting custom ASSET_URLs and support cache busting without integrity check (#1427)

Fixes #1425
Fixes #1426

* Simplify asset story (#1438)

* Simplify assets story

* Update Horizon.php

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Apply fixes from StyleCI

* Update compile-assets.yml

* Update CHANGELOG

* Fixes tests when using Process 7.1 (#1456)

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* Update runningProcesses to also include terminating processes (#1454)

runningProcess() only checks $this->processes. But this doesn't include terminating processes, which are technically also running processes.

* Update CHANGELOG

* Bump braces from 3.0.2 to 3.0.3 (#1466)

Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](micromatch/braces@3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: braces
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Test wildcard environments config (#1465)

* test it actually deploys a wildcard environment

* revert test_supervisors_are_added_by_wildcard

* add test_supervisors_are_added_as_fallback_for_wildcard_environments

* Remove leftover publishing command after simplified assets. (#1468)

* Update CHANGELOG

* Differentiate exit codes for paused and inactive horizon status (#1471)

For our Docker setup, we use the `horizon:status` command for the health check. So if Horizon fails to load or crashes, it starts a new container.

Now we pause the running Horizon processes before we push an update. This way we can update the web image and launch a new Horizon image, without an old Horizon image complaining about jobs it doesn't understand (new job created in new image code for example).

But now that we added the health checks for the Horizon images too, the image is being replaced with a new instance of the old image immediately, because the paused status triggers the failing exit code of the status command (which is oke, because it is not running indeed).
To determine if the Horizon is just paused or actually inactive, it would be nice if we had different exit codes. This way we can check for exit code 2 to relaunch the existing image in  a new container. and leave the paused containers "running".

This could break other peoples script, based on a specific exit code, tho a basic non success check should suffice for the old and new way. So I'm not sure if we can push this without any minor version increase or whatsoever.

* Update CHANGELOG

* [5.x] Adding new balance strategy: single (#1473)

* Adding new balance strategy: single

* revert

* tweak

* Moving Behavior to Off / false

* Update CHANGELOG

* Update CHANGELOG.md

* Extend Slack Notification to work with Slack Apps for Laravel 11 support (#1481)

* Add support for slack notifications by channel id

* Update LongWaitDetected.php

* Update LongWaitDetected.php

* Update LongWaitDetected.php

* Update LongWaitDetected.php

* Update LongWaitDetected.php

* formatting

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Update CHANGELOG

* Replace dead link in Security Policy (#1484)

* Fix error when loading monitoried tags page(#1478) (#1485)

* Update CHANGELOG

* Create status command for individual supervisors (#1467)

* Create status command for individual supervisors

* formatting

* Rename and register command

* Update SupervisorStatusCommand.php

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Bump axios from 1.6.8 to 1.7.4 (#1486)

Bumps [axios](https://github.com/axios/axios) from 1.6.8 to 1.7.4.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.6.8...v1.7.4)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Use match expression (#1487)

Co-authored-by: Xurshudyan <v.khurshudyan@aico.swiss>

* wip

* Use Node 21 on asset build

* FIX #1488 : Focused line gets hightlighted [remove .vjs-tree-node:hover] (#1492)

* FIX #1488 : Focused line gets hightlighted [remove .vjs-tree-node:hover]

* FIX #1488 : Focused line gets hightlighted [add background-color: unset;]

* Update config.yml

* Delete .github/ISSUE_TEMPLATE/2_Feature_request.md

* Update config.yml

* Update CHANGELOG

* Reanimate asset compilation (#1495)

* Update CHANGELOG

* [5.x] Upgrade from Vue 2 to Vue 3 (#1496)

* Upgrade from Vue 2 to Vue 3

* Upgrade `vue-router`

* StyleCI

* Use Vue 3 lifecycle events

* Adapt routes to suit `vue-router` v4

* Adapt routes to suit `vue-router` v4

* imports

* Adapt metrics routes to `vue-router` v4

* Adapt routes to suit `vue-router` v4

* StyleCI

* Compile Assets

* Refresh the logo (#1497)

* Bump vite from 5.2.10 to 5.4.6 (#1498)

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.2.10 to 5.4.6.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.6/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump rollup from 4.21.3 to 4.22.4 (#1499)

Bumps [rollup](https://github.com/rollup/rollup) from 4.21.3 to 4.22.4.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](rollup/rollup@v4.21.3...v4.22.4)

---
updated-dependencies:
- dependency-name: rollup
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Compile Assets

* Update CHANGELOG

* Update logo to support dark/light theme (#1500)

* Update logo.svg

* Update logo.svg

* Fix pop() method signature laravel/framework#53063 (#1504)

* Update CHANGELOG

* [5.x] Use `#[\Override]` PHP Attribute to detect breaking changes (#1506)

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* Improvment: Wont spawn extra queues (#1508)

* Update CHANGELOG

* Test Improvements (#1511)

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

---------

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* Update UPGRADE.md (#1515)

Remove the verbiage to publish Horizon's assets after upgrade

* Update CHANGELOG

* Allow to specify connection in ClearCommand (#1516)

* [5.x] Supports PHP 8.4 (#1507)

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

* wip

* wip

* Update tests.yml

---------

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* Update CHANGELOG

* Add support for notification class overrides (#1518)

* Add support for notification class overrides

* use container

* add test

---------

Co-authored-by: Luke Morcom <lukemorcom@luke-FIB.local>
Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Replace implicitly nullable parameters for PHP 8.4 (#1520)

* Update CHANGELOG

* fix predis `clear()` when using redis 7.4 (#1522)

* Update CHANGELOG

* fix: cluster redis eval reutnr false (#1526)

* Update CHANGELOG

* Supports Laravel 12 (#1532)

* Supports Laravel 12

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* Update composer.json

---------

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* Bump vite from 5.4.6 to 5.4.14 (#1533)

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.6 to 5.4.14.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.14/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.14/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: update changelog CI permission

* chore: update compile assets CI permission

* Update CHANGELOG

* chore: Update `update-changelog.yml`

* Scale workers from min instead of max on startup (#1537)

* scale workers from min instead of max on startup

* start supervisor with balanced worker count instead of min

* Add `proxy_path` config for subfolder usage in Horizon's Vue front-end (#1538)

* scale workers from min instead of max on startup

* start supervisor with balanced worker count instead of min

* Add proxy_path variable for reverse proxy support

- Introduced `proxy_path` variable in Horizon configuration

* Update horizon.php

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Compile Assets

* Update CHANGELOG

* [5.x] Specify `WorkloadRepository@get()` return type (#1542)

* Update WorkloadRepository.php

* Update WorkloadRepository.php

* Update RedisWorkloadRepository.php

* Update CHANGELOG

* Update logo (#1543)

* Delete art/.DS_Store

* Fixed deprecation (#1548)

* Update CHANGELOG

* [5.x] Store memory used when dispatching `SupervisorOutOfMemory` (#1550)

* Update MonitorSupervisorMemory.php

* add getters/setters

* Update SupervisorOutOfMemory.php

* Update SupervisorOutOfMemory.php

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Apply fixes from StyleCI

* Set AutoScaler logic to target process scaling based on queue size wh… (#1552)

* Set AutoScaler logic to target process scaling based on queue size when balancing is disabled.

* Simplify scaling test

* Fix still using maxProcesses when runtime > 0

* Update CHANGELOG

* Make $user = null the default in viewHorizon gate closure for better DX (#1554)

* Make $user = null the default in viewHorizon gate closure for better DX

Signed-off-by: mitoop <me@mitoop.com>

* add optional

Signed-off-by: mitoop <me@mitoop.com>

---------

Signed-off-by: mitoop <me@mitoop.com>

* [6.x] Merge 5.x into master (#1555)

* Update CHANGELOG.md

* Update branch alias

* Do not override all options provided by connection (#960)

* [6.x] Update to bootstrap 5.1 and drop jQuery (#1119)

* Update bootstrap and remove jQuery and popper.js dependencies

Popper.js is needed for tooltips, using the browser native title attribute removes the need to keep this

* Update utility classes

https://getbootstrap.com/docs/5.1/migration/#utilities

* Fix badge color classes

https://getbootstrap.com/docs/5.1/migration/#badges

* Remove text decoration of anchor tags

https://getbootstrap.com/docs/5.1/migration/#content-reboot-etc

* Fix data-toggle attribute

https://getbootstrap.com/docs/5.1/migration/#javascript

* Remove text-decoration of route-link elements

https://getbootstrap.com/docs/5.1/migration/#content-reboot-etc

* Remove new border styling under thead

* Fix vue-json-pretty output with overflowing text

* Apply fixes for updated vue-json-pretty css

laravel/telescope#1049

* compile

* Redirects to batches page when batch not found (#1383)

* fix: redirects to batches page when batch not found

* Update BatchesController.php

---------

Co-authored-by: Taylor Otwell <taylor@laravel.com>

* Apply fixes from StyleCI

* Compile Assets

---------

Co-authored-by: Dries Vints <dries@vints.io>
Co-authored-by: Edvinas Kručas <edv.krucas@gmail.com>
Co-authored-by: Taylor Otwell <taylor@laravel.com>
Co-authored-by: Markus Machatschek <mmachatschek@users.noreply.github.com>
Co-authored-by: Irakli Shengelia <59525444+irakliShengelia@users.noreply.github.com>
Co-authored-by: StyleCI Bot <bot@styleci.io>
Co-authored-by: bert-w <10498595+bert-w@users.noreply.github.com>

* Bump axios from 1.7.4 to 1.8.2 (#1557)

Bumps [axios](https://github.com/axios/axios) from 1.7.4 to 1.8.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.7.4...v1.8.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.8.2
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Compile Assets

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>
Signed-off-by: mitoop <me@mitoop.com>
Co-authored-by: driesvints <driesvints@users.noreply.github.com>
Co-authored-by: nthsky <nitianhua@qq.com>
Co-authored-by: Taylor Otwell <taylor@laravel.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dries Vints <dries@vints.io>
Co-authored-by: Jason McCreary <jason@pureconcepts.net>
Co-authored-by: Jeandre van Zyl <62015001+Jevz@users.noreply.github.com>
Co-authored-by: Jeandre van Zyl <jeandre@sinov8.net>
Co-authored-by: taylorotwell <taylorotwell@users.noreply.github.com>
Co-authored-by: Ankur Kumar <ankurk91@users.noreply.github.com>
Co-authored-by: Michel Bardelmeijer <m.bardelmeijer@gmail.com>
Co-authored-by: Mior Muhammad Zaki <crynobone@gmail.com>
Co-authored-by: sgotre <gotre@teraone.de>
Co-authored-by: Stefan Gotre <stefan.gotre@teraone.de>
Co-authored-by: Peter Lupu <peter.lupu@gmail.com>
Co-authored-by: Steve Bauman <steven_bauman@outlook.com>
Co-authored-by: stevebauman <stevebauman@users.noreply.github.com>
Co-authored-by: Lasse R <lasserafn@gmail.com>
Co-authored-by: Christian Rishøj <christian@rishoj.net>
Co-authored-by: Phạm Minh Đạt <cse.pmdat@gmail.com>
Co-authored-by: Nuno Maduro <enunomaduro@gmail.com>
Co-authored-by: Joshua Rüsweg <josh@wcflabs.de>
Co-authored-by: James <61766491+lioneaglesolutions@users.noreply.github.com>
Co-authored-by: Jess Archer <jess@jessarcher.com>
Co-authored-by: jessarcher <jessarcher@users.noreply.github.com>
Co-authored-by: StyleCI Bot <bot@styleci.io>
Co-authored-by: Mark van Eijk <mark@vormkracht10.nl>
Co-authored-by: Luke Kuzmish <42181698+cosmastech@users.noreply.github.com>
Co-authored-by: Anthony Cooper <AnthonyCooper.dev@gmail.com>
Co-authored-by: nunomaduro <nunomaduro@users.noreply.github.com>
Co-authored-by: Ramon Rietdijk <info@ramonrietdijk.nl>
Co-authored-by: Lloric Mayuga Garcia <lloricode@gmail.com>
Co-authored-by: PrinsFrank <25006490+PrinsFrank@users.noreply.github.com>
Co-authored-by: Asem Alalami <asem.almi@gmail.com>
Co-authored-by: Joel Butcher <joelbutcher@users.noreply.github.com>
Co-authored-by: crynobone <crynobone@users.noreply.github.com>
Co-authored-by: Trevor Gehman <trevorgehman@users.noreply.github.com>
Co-authored-by: João Pedro Lopes <joaopalopes24@gmail.com>
Co-authored-by: Dries Vints <dries@vints.be>
Co-authored-by: Daison Cariño <daison12006013@gmail.com>
Co-authored-by: James Hulse <jameshulse@users.noreply.github.com>
Co-authored-by: TomaszOnePilot <114939186+TomaszOnePilot@users.noreply.github.com>
Co-authored-by: Mateus Guimarães <mateus.jatene@gmail.com>
Co-authored-by: Dan Krieger <dan@codingislife.com>
Co-authored-by: Bakir Husović <husovic.bakir@gmail.com>
Co-authored-by: kirba <bakirhusovic@gmail.com>
Co-authored-by: Kieran <kieran.brahney@gmail.com>
Co-authored-by: Julius Kiekbusch <contact@julius-kiekbusch.de>
Co-authored-by: alirezadp10 <33761594+alirezadp10@users.noreply.github.com>
Co-authored-by: irkali <iraklishengelia94@gmail.com>
Co-authored-by: Sander Muller <github@scode.nl>
Co-authored-by: Tim MacDonald <hello@timacdonald.me>
Co-authored-by: Jaroslav Stefanec <55752260+jaroslavstefanec@users.noreply.github.com>
Co-authored-by: Markus Machatschek <markus.machatschek@hey.com>
Co-authored-by: Troy Mayrand <61019450+tmayrand@users.noreply.github.com>
Co-authored-by: Jack Webb-Heller <JackWH@users.noreply.github.com>
Co-authored-by: Nick Retel <nick.retel@gmail.com>
Co-authored-by: Gustavo Karkow <14905932+karkowg@users.noreply.github.com>
Co-authored-by: Jove <joveice@users.noreply.github.com>
Co-authored-by: FotoCadeau Hylke <hylke@canvascompany.nl>
Co-authored-by: Daniel Polito <danielbpolito@gmail.com>
Co-authored-by: Travis Ricks <ricks.travis@gmail.com>
Co-authored-by: Rob Fonseca <35386780+therobfonz@users.noreply.github.com>
Co-authored-by: Matthew Frieswyk <matthew.frieswyk@gmail.com>
Co-authored-by: Volodya Kurshudyan <70023120+xurshudyan@users.noreply.github.com>
Co-authored-by: Xurshudyan <v.khurshudyan@aico.swiss>
Co-authored-by: srennou mohamed <63244877+srennou@users.noreply.github.com>
Co-authored-by: Sergey Danilchenko <daniser@mail.ru>
Co-authored-by: Ostap Brehin <osbre@protonmail.com>
Co-authored-by: Rafael Milewski <rafael.milewski@gmail.com>
Co-authored-by: M. Vugteveen <it-can@users.noreply.github.com>
Co-authored-by: Alex <alexmontoanelli@gmail.com>
Co-authored-by: Tom Westrick <tjwestrick@gmail.com>
Co-authored-by: Kazik <antenna@antenna.io>
Co-authored-by: Luke <58695005+lukemorcom@users.noreply.github.com>
Co-authored-by: Luke Morcom <lukemorcom@luke-FIB.local>
Co-authored-by: txdFabio <118370559+txdFabio@users.noreply.github.com>
Co-authored-by: Nikolas Evers <vintagesucks@users.noreply.github.com>
Co-authored-by: 施国鹏 <1033404553@qq.com>
Co-authored-by: taylorotwell <463230+taylorotwell@users.noreply.github.com>
Co-authored-by: Andre Hoffmann <158450551+andre-hoffmann@users.noreply.github.com>
Co-authored-by: David Hill <1879069+iamdavidhill@users.noreply.github.com>
Co-authored-by: Filip Krzyżanowski <75097934+fkrzski@users.noreply.github.com>
Co-authored-by: Nick <github@nickpotts.com.au>
Co-authored-by: mitoop <me@mitoop.com>
Co-authored-by: Edvinas Kručas <edv.krucas@gmail.com>
Co-authored-by: Markus Machatschek <mmachatschek@users.noreply.github.com>
Co-authored-by: Irakli Shengelia <59525444+irakliShengelia@users.noreply.github.com>
Co-authored-by: bert-w <10498595+bert-w@users.noreply.github.com>
@dbpolito
Copy link
Contributor Author

I faced a similar issue you guys are having and sent a fix: #1566

Not related to this PR but this PR makes this issue more noticeable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants