Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.237.0 to 2.238.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fastlane/fastlane/releases">fastlane's releases</a>.</em></p> <blockquote> <h2>2.238.0 Improvements</h2> <ul> <li>[ci] support releases with PRs that were deleted (or users) (<a href="https://redirect.github.com/fastlane/fastlane/issues/30105">#30105</a>) via Connor Tumbleson (<a href="https://github.com/iBotPeaches"><code>@iBotPeaches</code></a>)</li> <li>[pilot] Match groups by either name or id (<a href="https://redirect.github.com/fastlane/fastlane/issues/30104">#30104</a>) via Alexander Chapliuk (<a href="https://github.com/krin-san"><code>@krin-san</code></a>)</li> <li>[update_project_team] add support for sdk conditionals (<a href="https://redirect.github.com/fastlane/fastlane/issues/30142">#30142</a>) via Connor Tumbleson (<a href="https://github.com/iBotPeaches"><code>@iBotPeaches</code></a>)</li> <li>harden: detected non-static command inside ` in... (<a href="https://redirect.github.com/fastlane/fastlane/issues/30148">#30148</a>) via Anupam Mediratta (<a href="https://github.com/anupamme"><code>@anupamme</code></a>)</li> <li>[fastlane_core] Create a unique package directory for non-macOS uploads (<a href="https://redirect.github.com/fastlane/fastlane/issues/30144">#30144</a>) via Victor Amorim dos Santos (<a href="https://github.com/victoramsantos"><code>@victoramsantos</code></a>)</li> <li>[gem] move to webrick 1.9.x (<a href="https://redirect.github.com/fastlane/fastlane/issues/30135">#30135</a>) via Connor Tumbleson (<a href="https://github.com/iBotPeaches"><code>@iBotPeaches</code></a>)</li> <li>[gem] upgrade 'terminal-table' to drop monkey patch (<a href="https://redirect.github.com/fastlane/fastlane/issues/30137">#30137</a>) via Connor Tumbleson (<a href="https://github.com/iBotPeaches"><code>@iBotPeaches</code></a>)</li> <li>[core] Fix video resolution parsing when audio track precedes video track (<a href="https://redirect.github.com/fastlane/fastlane/issues/30143">#30143</a>) via Thomas Walther (<a href="https://github.com/tcwalther"><code>@tcwalther</code></a>)</li> <li>[gym] Fix Mac Catalyst package type detection when catalyst_platform is not set (<a href="https://redirect.github.com/fastlane/fastlane/issues/29829">#29829</a>) via Josh Holtz (<a href="https://github.com/joshdholtz"><code>@joshdholtz</code></a>)</li> <li>[deliver/pilot] change instruction on how to run iTMSTransporter (<a href="https://redirect.github.com/fastlane/fastlane/issues/21155">#21155</a>) via Merlin Ran (<a href="https://github.com/merlinran"><code>@merlinran</code></a>)</li> <li>[gem] move to sinatra 4 (<a href="https://redirect.github.com/fastlane/fastlane/issues/30134">#30134</a>) via Connor Tumbleson (<a href="https://github.com/iBotPeaches"><code>@iBotPeaches</code></a>)</li> <li>[action][spm] add <code>--skip-update</code> (<a href="https://redirect.github.com/fastlane/fastlane/issues/21127">#21127</a>) via Atsuto Yamashita (<a href="https://github.com/att55"><code>@att55</code></a>)</li> <li>Fix precheck copyright rule wording (<a href="https://redirect.github.com/fastlane/fastlane/issues/19500">#19500</a>) via Andreas Ganske (<a href="https://github.com/ChaosCoder"><code>@ChaosCoder</code></a>)</li> <li>docs: add detailed notation of what metrics collected (<a href="https://redirect.github.com/fastlane/fastlane/issues/30132">#30132</a>) via Connor Tumbleson (<a href="https://github.com/iBotPeaches"><code>@iBotPeaches</code></a>)</li> <li>Bump actions/labeler from 6 to 7 (<a href="https://redirect.github.com/fastlane/fastlane/issues/30133">#30133</a>) via dependabot[bot] (<a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot])</li> <li>[upload_symbols_to_crashlytics] Adds option to let the action fail when an upload fails (<a href="https://redirect.github.com/fastlane/fastlane/issues/29700">#29700</a>) via Tobias Kreß (<a href="https://github.com/Myrronth"><code>@Myrronth</code></a>)</li> <li>[deliver] add support for social media rating keys (<a href="https://redirect.github.com/fastlane/fastlane/issues/30128">#30128</a>) via Connor Tumbleson (<a href="https://github.com/iBotPeaches"><code>@iBotPeaches</code></a>)</li> <li>[core] Support for Ruby 4 (+ testing) (<a href="https://redirect.github.com/fastlane/fastlane/issues/29849">#29849</a>) via Connor Tumbleson (<a href="https://github.com/iBotPeaches"><code>@iBotPeaches</code></a>)</li> <li>[register_devices] Ignore blank lines and comment lines in devices_file (<a href="https://redirect.github.com/fastlane/fastlane/issues/30129">#30129</a>) via David Cordero (<a href="https://github.com/dcordero"><code>@dcordero</code></a>)</li> <li>[core] detect installed Developer ID intermediate certificates by their common name (<a href="https://redirect.github.com/fastlane/fastlane/issues/30126">#30126</a>) via Rinat Kutuev (<a href="https://github.com/ReilganInt"><code>@ReilganInt</code></a>)</li> <li>[core] move to xcodeproj 1.28.1 (from 1.27.0) (<a href="https://redirect.github.com/fastlane/fastlane/issues/30124">#30124</a>) via Nuno de Carvalho (<a href="https://github.com/nmcc24"><code>@nmcc24</code></a>)</li> <li>[core] normalize FastlaneSwiftRunner.xcodeproj plist quoting (<a href="https://redirect.github.com/fastlane/fastlane/issues/30125">#30125</a>) via Nuno de Carvalho (<a href="https://github.com/nmcc24"><code>@nmcc24</code></a>)</li> <li>[register_devices] Register devices normalization for UDIDs. (<a href="https://redirect.github.com/fastlane/fastlane/issues/29981">#29981</a>) via Muhammet Ilendemli (<a href="https://github.com/ilendemli"><code>@ilendemli</code></a>)</li> <li>[crashlytics] improve logging during error (<a href="https://redirect.github.com/fastlane/fastlane/issues/30077">#30077</a>) via Connor Tumbleson (<a href="https://github.com/iBotPeaches"><code>@iBotPeaches</code></a>)</li> <li>[setup_ci] Add option to opt out of setting the default keychain (<a href="https://redirect.github.com/fastlane/fastlane/issues/30121">#30121</a>) via Eyüp Can Akman (<a href="https://github.com/eyupcanakman"><code>@eyupcanakman</code></a>)</li> <li>[snapshot] Open the requested simulator for non-headless runs (<a href="https://redirect.github.com/fastlane/fastlane/issues/30119">#30119</a>) via huven (<a href="https://github.com/huven"><code>@huven</code></a>)</li> <li>[core] improve operating_system detection (<a href="https://redirect.github.com/fastlane/fastlane/issues/30118">#30118</a>) via Connor Tumbleson (<a href="https://github.com/iBotPeaches"><code>@iBotPeaches</code></a>)</li> <li>[core] fix: upgrade yard to >= 0.9.42 (CVE-2026-41493) (<a href="https://redirect.github.com/fastlane/fastlane/issues/30117">#30117</a>) via OrbisAI Security (<a href="https://github.com/orbisai0security"><code>@orbisai0security</code></a>)</li> <li>[core] move to Faraday 2 (<a href="https://redirect.github.com/fastlane/fastlane/issues/30089">#30089</a>) via Connor Tumbleson (<a href="https://github.com/iBotPeaches"><code>@iBotPeaches</code></a>)</li> <li>[docs] clarify platform resolution behavior (<a href="https://redirect.github.com/fastlane/fastlane/issues/22185">#22185</a>) via Douglas Hill (<a href="https://github.com/douglashill"><code>@douglashill</code></a>)</li> <li>[core] fix crash when uploading large <code>.pkg</code> by using <code>Digest::MD5.file</code> instead of <code>Digest::MD5.hexdigest</code> (<a href="https://redirect.github.com/fastlane/fastlane/issues/21999">#21999</a>) via reflexing (<a href="https://github.com/reflexing"><code>@reflexing</code></a>)</li> <li>[docs] fix a missing negation in <code>pilot</code> error message (<a href="https://redirect.github.com/fastlane/fastlane/issues/22331">#22331</a>) via Gemma Barlow (<a href="https://github.com/gemmakbarlow"><code>@gemmakbarlow</code></a>)</li> <li>[notarize] Fix erroring out with <code>bundle_id</code> parameter being absent (<a href="https://redirect.github.com/fastlane/fastlane/issues/29736">#29736</a>) via Timur Sharifianov (<a href="https://github.com/Scvairy"><code>@Scvairy</code></a>)</li> <li>[metrics] move to GA4 and improve metrics (<a href="https://redirect.github.com/fastlane/fastlane/issues/30111">#30111</a>) via Connor Tumbleson (<a href="https://github.com/iBotPeaches"><code>@iBotPeaches</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fastlane/fastlane/commit/38d0ec404332cce7a4833881eee343e9de91700c"><code>38d0ec4</code></a> Version bump to 2.238.0 (<a href="https://redirect.github.com/fastlane/fastlane/issues/30151">#30151</a>)</li> <li><a href="https://github.com/fastlane/fastlane/commit/d967cd80625e950b39668ec272f5530bc56c60df"><code>d967cd8</code></a> [ci] support releases with PRs that were deleted (or users) (<a href="https://redirect.github.com/fastlane/fastlane/issues/30105">#30105</a>)</li> <li><a href="https://github.com/fastlane/fastlane/commit/4eadc97560f1d798306e608fd33ff3045841ad8f"><code>4eadc97</code></a> [pilot] Match groups by either name or id (<a href="https://redirect.github.com/fastlane/fastlane/issues/30104">#30104</a>)</li> <li><a href="https://github.com/fastlane/fastlane/commit/a43b8b8bfdf06737f49b2a48360b78ab88126fe5"><code>a43b8b8</code></a> [update_project_team] add support for sdk conditions (<a href="https://redirect.github.com/fastlane/fastlane/issues/30142">#30142</a>)</li> <li><a href="https://github.com/fastlane/fastlane/commit/f1568f9b2069df1551e8286c4c52be6b8823bc98"><code>f1568f9</code></a> [fastlane_core] harden plugin_scores subshell usage (<a href="https://redirect.github.com/fastlane/fastlane/issues/30148">#30148</a>)</li> <li><a href="https://github.com/fastlane/fastlane/commit/25026b9be2deb9df1de0675215b405933952edbf"><code>25026b9</code></a> [fastlane_core] Create a unique package directory for non-macOS uploads (<a href="https://redirect.github.com/fastlane/fastlane/issues/30144">#30144</a>)</li> <li><a href="https://github.com/fastlane/fastlane/commit/283d477bc6d3566e3a07a9f8e97b8d747b16a3e5"><code>283d477</code></a> [gem] move to webrick 1.9.x (<a href="https://redirect.github.com/fastlane/fastlane/issues/30135">#30135</a>)</li> <li><a href="https://github.com/fastlane/fastlane/commit/bc098d142eb3c78b1608db4161fa68a00816affc"><code>bc098d1</code></a> [gem] upgrade 'terminal-table' to drop monkey patch (<a href="https://redirect.github.com/fastlane/fastlane/issues/30137">#30137</a>)</li> <li><a href="https://github.com/fastlane/fastlane/commit/1f64c1f8e24dbc7b2e64317cc4fae563d1c2e3c6"><code>1f64c1f</code></a> [fastlane_core] Fix video resolution parsing when audio track precedes video ...</li> <li><a href="https://github.com/fastlane/fastlane/commit/a94b3ada721f7b8a10cc4a865bd2fe13533e5e79"><code>a94b3ad</code></a> [gym] Fix Mac Catalyst package type detection when catalyst_platform is not s...</li> <li>Additional commits viewable in <a href="https://github.com/fastlane/fastlane/compare/fastlane/2.237.0...fastlane/2.238.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jeppe B <2jepp9350@gmail.com>
truckwashdashboardsfrontend
This template should help get you started developing with Vue 3 in Vite.
Recommended IDE Setup
VSCode + Volar (and disable Vetur).
Customize configuration
See Vite Configuration Reference.
Project Setup
npm install
Contributing Changes
Create a scoped feature branch, push it, and open a pull request targeting
master. Do not push directly to master. Merge only after the Required CI
check succeeds, all review conversations are resolved, and the branch is up to
date. Use squash merge so master retains linear history.
See .github/BRANCH_PROTECTION.md for the
repository policy, rollout checks, and emergency bypass procedure.
Compile and Hot-Reload for Development
npm run dev
By default, the Vite dev server proxies /api/* to the remote stable API at
https://api-v2.truckwash.io/master/api. This lets the Vue app run locally
without a local PHP API container.
To develop against a local PHP API instead:
$env:VITE_API_PROXY_TARGET="http://localhost"; npm run dev
To use another remote API route:
$env:VITE_API_PROXY_BASE_PATH="/canary/api"; npm run dev
TLS certificate validation is enabled for proxied HTTPS APIs by default. If you are using a trusted local HTTPS API with a self-signed certificate, you can opt out explicitly:
$env:VITE_API_PROXY_TARGET="https://local-api.test"; $env:VITE_API_PROXY_SECURE="false"; npm run dev
For compatible local gateways that expect the /api prefix to be preserved:
$env:VITE_API_PROXY_TARGET="http://localhost"; $env:VITE_API_PROXY_STRIP_PREFIX="false"; npm run dev
Compile and Minify for Production
npm run build
Playwright Batched Chromium Runs
Run default e2e tests in deterministic 25-test shards across chromium-desktop and chromium-mobile:
npm run test:e2e:batched:chromium
Run the same flow and automatically re-run failed shards with PLAYWRIGHT_WORKERS=1:
npm run test:e2e:batched:chromium:rerun-failed
Optional overrides:
PLAYWRIGHT_BATCH_SIZE=25
PLAYWRIGHT_BATCH_WORKERS=2
PLAYWRIGHT_BATCH_DEV_PORT=5193
You can also forward Playwright args:
npm run test:e2e:batched:chromium -- --grep @smoke
Artifacts and summaries:
output/playwright/batched-chromium/last-run.jsonoutput/playwright/batched-chromium/failed-shards.jsonoutput/playwright/batched-chromium/report-index.htmloutput/playwright/batched-chromium-shard-<i>-of-<n>/report/index.htmloutput/playwright/batched-chromium-rerun-shard-<i>-of-<n>/report/index.html
Playwright Full E2E
Run the permanent grouped full-suite entrypoint with a hard max of 5 total workers across the browser-engine groups:
- Chromium
- WebKit
- Firefox
npm run test:e2e:ci
The full CI matrix is ordered by browser engine, then device class, then user role:
- browsers:
chromium,webkit,firefox - devices:
mobile,desktop,tablet - roles:
superuser,admin,customer,subuser
Run a single full-suite slice for one role and one Playwright project:
npm run test:e2e:full:slice -- --role=admin --project=webkit-tablet
Default worker allocation:
PLAYWRIGHT_PARALLEL_WORKERS_CHROMIUM=2
PLAYWRIGHT_PARALLEL_WORKERS_FIREFOX=1
PLAYWRIGHT_PARALLEL_WORKERS_WEBKIT=1
Optional overrides:
PLAYWRIGHT_PARALLEL_BASE_PORT=5191
PLAYWRIGHT_PARALLEL_WORKERS_CHROMIUM=2
PLAYWRIGHT_PARALLEL_WORKERS_FIREFOX=1
PLAYWRIGHT_PARALLEL_WORKERS_WEBKIT=1
The runner fails fast if the combined worker count exceeds 5.
GitHub Actions keeps the full browser/device/role matrix stable by capping full-suite
matrix parallelism at 2 jobs, running each full slice with PLAYWRIGHT_WORKERS=1,
wrapping Docker Playwright runs with systemd-inhibit when available, and setting
PLAYWRIGHT_VIDEO_MODE=off for the full matrix. The E2E network harness serves
Font Awesome from local fixtures so WebKit page loads and visual snapshots do not
depend on CDN/TLS availability. Traces and screenshots are still retained on
failure.
Artifacts and summaries:
output/playwright/ci-parallel-report/index.htmloutput/playwright/ci-parallel-chromium/report/index.htmloutput/playwright/ci-parallel-firefox/report/index.htmloutput/playwright/ci-parallel-webkit/report/index.htmloutput/playwright/test-lists/<project>-<role>.txtoutput/playwright/test-lists/<role>-<project>.txt(legacy compatibility copy)
Android App Icon
The Play Store Android package is built from the Capacitor project in android/.
The legacy Bubblewrap/TWA project at the repository root is not used by
npm run mobile:android:bundle.
The native launcher and store icons use the opaque iOS marketing icon as their shared master so Android and iOS keep the same white background:
ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png
Regenerate the checked-in launcher assets after changing that source image:
npm run mobile:android:icons
Check that the generated Android launcher assets are current:
npm run mobile:android:icons:check
npm run mobile:android:sync runs the icon generator before building and syncing
the Capacitor Android project. The generator updates android/app/src/main/res
launcher assets, public/icons/icon-192x192.png, public/icons/icon-512x512.png,
and store_icon.png.
Mobile Store Releases
Signed Android and iOS store artifacts are built through the GitHub Actions
Mobile Store Artifacts workflow. By default, current master after green
Automated Tests uploads Android to Google Play production and uploads iOS to
App Store Connect.
See docs/mobile-artifacts.md for workflow triggers, required secrets, and
local mobile checks. See docs/app-store-release.md for App Store Connect
release preparation and review notes. For a separate development-signed IPA
that can be installed on an approved iPhone from Ubuntu over USB, see
docs/ios-device-debug.md.
Bubblewrap (TWA) Build and Install
To build and install the Trusted Web Activity (TWA) using Bubblewrap, use the following commands:
Build the TWA
bubblewrap build
Install the TWA on a connected device
bubblewrap install