You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Laravel queue worker manager. New internal/queueworker package runs php artisan queue:work per project with start/stop/restart, ring-buffered
logs, and a split-button + parameters modal on the Projects page. Extra
args (e.g. --queue=high --tries=3 --timeout=60) are persisted per
project under Projects.QueueArgs so the modal pre-fills next time, and
the worker is killed cleanly via taskkill /T /F on app shutdown.
Actionable VC++ Redistributable prompt. When PHP / MySQL / Apache
fail to launch because the Microsoft VC++ runtime is missing, the UI
now opens a dedicated modal with a copyable URL and a one-click
download button instead of burying the link inside a 4-second toast or
a non-selectable log line. Triggered from both Dashboard service:error events and the New Project modal create flow.
Robust Start All on a fresh install. Replaced the per-service loop
in the Dashboard's Start/Stop All button with StartManagedAll / StopManagedAll, which refresh the FPM registry and explicitly
start/stop every php-fpm:* worker alongside the user-visible stack.
This fixes the case where PHP-FPM stayed STOPPED after a one-click
bootstrap because no projects were registered yet — neededPhpVersions
now falls back to the active PHP version when the projects list is
empty, so nginx/apache Deps always wire to a real FPM backend.
Branded MSI installer.build-msi.ps1 now generates WixDialog.bmp (493x312) and WixBanner.bmp (493x58) from editable assets/banner.jpg + assets/logo.png at build time using System.Drawing (high-quality bicubic, cover-fit dialog, right-aligned
logo on white banner). The two BMPs are gitignored — only the source
art is tracked. laraenv.wxs references them via WixUIBannerBmp / WixUIDialogBmp.
Test plan
On a clean machine: install LaraEnv, run Bootstrap stack, hit Start All on the Dashboard — PHP-FPM card flips to RUNNING.
Create a Laravel project, click Queue on the row — worker
starts, button turns green, PID is shown in the tooltip.
Open More → Start with parameters…, enter --queue=high --tries=3, Start. Stop. Reopen — args pre-fill.
Restart while running re-spawns the worker with the saved args.
On a machine without the VC++ redist installed: trigger a service
start failure → modal opens with copy/open buttons working.
Build the MSI with build-msi.ps1 — installer wizard shows the
branded dialog and progress banner.