From b96dc18901338a3fb1b335756fd657c740b251f2 Mon Sep 17 00:00:00 2001 From: John Adams <78485956+jpaoad31@users.noreply.github.com> Date: Sat, 20 Dec 2025 13:44:58 -0800 Subject: [PATCH 1/6] Changes from #177 #178 #179 Update files (that don't need translation) from recent Pull Requests from @adeebshihadeh --- README.md | 7 +++++ deploy-preview.sh | 10 ++++++ src/app.html | 2 +- src/lib/config.js | 1 - src/lib/images/comma3X.webp | Bin 0 -> 53696 bytes src/lib/images/four_screen_on.webp | Bin 0 -> 93102 bytes src/lib/images/qdl-ports-four.svg | 2 +- src/lib/images/qdl-ports-three.svg | 2 +- src/lib/utils/image.js | 18 ++++++++--- src/lib/utils/manager.js | 48 +++++++++++++++++++++++------ src/lib/utils/platform.js | 11 +++++++ src/routes/layout.css | 29 +++++++++++++++++ 12 files changed, 111 insertions(+), 19 deletions(-) create mode 100755 deploy-preview.sh create mode 100644 src/lib/images/comma3X.webp create mode 100644 src/lib/images/four_screen_on.webp create mode 100644 src/lib/utils/platform.js diff --git a/README.md b/README.md index e20a3134..2bed670a 100644 --- a/README.md +++ b/README.md @@ -16,3 +16,10 @@ bun dev Open [http://localhost:5173](http://localhost:5173) with your browser to see the result. You can start editing the page by modifying `src/app/index.jsx`. The page auto-updates as you edit the file. + + +**Helpful for debugging** +* [chrome://usb-internals/](chrome://usb-internals/) +* [chrome://device-log/](chrome://device-log/) +* Add `?fast=1` to the URL to skip flashing the system partition (the slowest). Useful for testing the full flow quickly. +* Add `?windows=1` to the URL to force Windows mode (shows Zadig driver instructions). Useful for testing the Windows flow on other platforms. \ No newline at end of file diff --git a/deploy-preview.sh b/deploy-preview.sh new file mode 100755 index 00000000..fc035f67 --- /dev/null +++ b/deploy-preview.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -e + +BRANCH="${1:-$(git branch --show-current)}" + +bun run build +bunx wrangler pages deploy dist --project-name=connect --branch="$BRANCH" + +echo "" +echo "Preview URL: https://${BRANCH}.connect-d5y.pages.dev" diff --git a/src/app.html b/src/app.html index c6072191..6bc08c2d 100644 --- a/src/app.html +++ b/src/app.html @@ -6,7 +6,7 @@ flash.comma.ai %sveltekit.head% diff --git a/src/lib/config.js b/src/lib/config.js index 7c0f49e5..fa2bad87 100644 --- a/src/lib/config.js +++ b/src/lib/config.js @@ -3,7 +3,6 @@ const config = { release_mici: 'https://raw.githubusercontent.com/commaai/openpilot/ccf7361798a2b7ff36f5065dffb602eb40c22302/system/hardware/tici/all-partitions.json', release_tizi: 'https://raw.githubusercontent.com/commaai/openpilot/927548621be1be0c2c9063868b93d1f5020904de/system/hardware/tici/all-partitions.json', release_tici: 'https://raw.githubusercontent.com/commaai/openpilot/927548621be1be0c2c9063868b93d1f5020904de/system/hardware/tici/all-partitions.json', - master: 'https://raw.githubusercontent.com/commaai/openpilot/master/system/hardware/tici/all-partitions.json', }, loader: { url: 'https://raw.githubusercontent.com/commaai/flash/master/src/QDL/programmer.bin', diff --git a/src/lib/images/comma3X.webp b/src/lib/images/comma3X.webp new file mode 100644 index 0000000000000000000000000000000000000000..fc0424fc294af5bad6af42a807146e5a034b422d GIT binary patch literal 53696 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 +2 1 \ No newline at end of file diff --git a/src/lib/images/qdl-ports-three.svg b/src/lib/images/qdl-ports-three.svg index e5e8f9c1..5ae6e200 100644 --- a/src/lib/images/qdl-ports-three.svg +++ b/src/lib/images/qdl-ports-three.svg @@ -13,6 +13,6 @@ - + diff --git a/src/lib/utils/image.js b/src/lib/utils/image.js index 1bd6aa7d..f3cf420e 100644 --- a/src/lib/utils/image.js +++ b/src/lib/utils/image.js @@ -9,7 +9,7 @@ import { fetchStream } from "./stream"; * @returns {void} */ -const MIN_QUOTA_MB = 5250; +const MIN_QUOTA_GB = 5.25; export class ImageManager { /** @type {FileSystemDirectoryHandle} */ @@ -18,14 +18,22 @@ export class ImageManager { async init() { if (!this.root) { this.root = await globalThis.navigator.storage.getDirectory() - await this.root.remove({ recursive: true }) + // Clean up any leftover files from previous sessions + try { + await this.root.remove({ recursive: true }) + } catch (e) { + // Ignore errors - directory might not exist or be empty + console.debug('[ImageManager] Could not remove old directory:', e) + } + // Re-get the directory after removal + this.root = await navigator.storage.getDirectory() console.info('[ImageManager] Initialized') } const estimate = await globalThis.navigator.storage.estimate() - const quotaMB = (estimate.quota || 0) / (1024 ** 2) - if (quotaMB < MIN_QUOTA_MB) { - throw new Error(`Not enough storage: ${quotaMB.toFixed(0)}MB free, need ${MIN_QUOTA_MB.toFixed(0)}MB`) + const quotaGB = (estimate.quota || 0) / (1024 ** 3) + if (quotaGB < MIN_QUOTA_GB) { + throw new Error(`Not enough storage: ${quotaGB.toFixed(1)}GB free, need ${MIN_QUOTA_GB.toFixed(1)}GB`) } } diff --git a/src/lib/utils/manager.js b/src/lib/utils/manager.js index 9b67084b..50679d0b 100644 --- a/src/lib/utils/manager.js +++ b/src/lib/utils/manager.js @@ -5,15 +5,29 @@ import { getManifest } from './manifest' import config from '../config' import { createSteps, withProgress } from './progress' +// Fast mode for development - skips flashing system partition (the slowest) +// Enable with ?fast=1 in URL +const FAST_MODE = new URLSearchParams(window.location.search).has('fast') +if (FAST_MODE) { + console.warn('[Flash] FAST MODE ENABLED - skipping system partition') +} + export const StepCode = { INITIALIZING: 0, READY: 1, - CONNECTING: 2, - REPAIR_PARTITION_TABLES: 3, - ERASE_DEVICE: 4, - FLASH_SYSTEM: 5, - FINALIZING: 6, - DONE: 7, + DEVICE_PICKER: 2, + CONNECTING: 3, + REPAIR_PARTITION_TABLES: 4, + ERASE_DEVICE: 5, + FLASH_SYSTEM: 6, + FINALIZING: 7, + DONE: 8, +} + +// Device types for the picker +export const DeviceType = { + COMMA_3: 'comma3', // comma 3 or 3X + COMMA_4: 'comma4', // comma four } export const ErrorCode = { @@ -181,9 +195,10 @@ export class FlashManager { } catch (err) { console.error('[Flash] Failed to initialize image worker') console.error(err) - if (err instanceof String && err.startsWith('Not enough storage')) { + const message = err?.message || String(err) + if (message.startsWith('Not enough storage')) { this.#setError(ErrorCode.STORAGE_SPACE) - this.#setMessage(err) + this.#setMessage(message) } else { this.#setError(ErrorCode.UNKNOWN) } @@ -210,6 +225,12 @@ export class FlashManager { try { await this.device.connect(usb) } catch (err) { + // User cancelled the WebUSB dialog or no device was selected - not an error + if (err.name === 'NotFoundError') { + console.info('[Flash] No device selected') + this.#setStep(StepCode.READY) + return + } console.error('[Flash] Connection error', err) this.#setError(ErrorCode.LOST_CONNECTION) this.#setConnected(false) @@ -353,10 +374,16 @@ export class FlashManager { this.#setProgress(0) // Exclude GPT images and persist image, and pick correct userdata image to flash - const systemImages = this.manifest + let systemImages = this.manifest .filter((image) => !image.gpt && image.name !== 'persist') .filter((image) => !image.name.startsWith('userdata_') || image.name === this.#userdataImage) + // In fast mode, skip the system partition (slowest to flash) + if (FAST_MODE) { + systemImages = systemImages.filter((image) => image.name !== 'system') + console.info('[Flash] Fast mode: skipping system partition') + } + if (!systemImages.find((image) => image.name === this.#userdataImage)) { console.error(`[Flash] Did not find userdata image "${this.#userdataImage}"`) this.#setError(ErrorCode.UNKNOWN) @@ -414,7 +441,8 @@ export class FlashManager { async start() { if (this.step !== StepCode.READY) return await this.#connect() - if (this.error !== ErrorCode.NONE) return + // Check if connection was cancelled (step went back to READY) or failed + if (this.step === StepCode.READY || this.error !== ErrorCode.NONE) return let start = performance.now() await this.#repairPartitionTables() console.info(`Repaired partition tables in ${((performance.now() - start) / 1000).toFixed(2)}s`) diff --git a/src/lib/utils/platform.js b/src/lib/utils/platform.js new file mode 100644 index 00000000..b5ab955e --- /dev/null +++ b/src/lib/utils/platform.js @@ -0,0 +1,11 @@ +export const isWindows = () => { + // Force Windows mode for development - shows Zadig driver instructions + // Enable with ?windows=1 in URL + const FORCE_WINDOWS = new URLSearchParams(window.location.search).has('windows') + if (FORCE_WINDOWS) { + console.warn('[Platform] FORCE WINDOWS MODE ENABLED') + } + return FORCE_WINDOWS || (globalThis.navigator.userAgent.toLowerCase().includes("windows") ?? false); +} + +export const isLinux = () => globalThis.navigator.userAgent.toLowerCase().includes("linux") ?? false; diff --git a/src/routes/layout.css b/src/routes/layout.css index ce91050e..5b9b7b87 100644 --- a/src/routes/layout.css +++ b/src/routes/layout.css @@ -7,3 +7,32 @@ --bg-gradient-radial: radial-gradient(var(--tw-gradient-stops)); --bg-gradient-conic: conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops)); } + + +::selection { + background-color: #51ff00; + color: black; +} + +/* Custom scrollbar for debug info */ +.debug-scrollbar::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +.debug-scrollbar::-webkit-scrollbar-track { + background: transparent; +} + +.debug-scrollbar::-webkit-scrollbar-thumb { + background: #4b5563; + border-radius: 4px; +} + +.debug-scrollbar::-webkit-scrollbar-thumb:hover { + background: #6b7280; +} + +.debug-scrollbar::-webkit-scrollbar-corner { + background: transparent; +} \ No newline at end of file From 564d571dc82e6ca67410b5bbaa9f8994b1ef24e5 Mon Sep 17 00:00:00 2001 From: John Adams <78485956+jpaoad31@users.noreply.github.com> Date: Sat, 20 Dec 2025 15:47:09 -0800 Subject: [PATCH 2/6] Create Components for Flash Stages --- src/lib/components/CopyText.svelte | 13 - src/lib/components/DeviceState.svelte | 30 --- src/lib/icons/CommaIcon.svelte | 7 + src/lib/icons/DiscordIcon.svelte | 7 + src/lib/icons/GitHubIcon.svelte | 7 + src/lib/utils/platform.js | 6 +- src/routes/+layout.svelte | 31 ++- src/routes/+page.svelte | 229 ++---------------- src/routes/Stepper.svelte | 36 +++ .../_components/ConnectInstructions.svelte | 55 +++++ src/routes/_components/DevicePicker.svelte | 57 +++++ src/routes/_components/DeviceState.svelte | 19 ++ src/routes/_components/LandingPage.svelte | 21 ++ .../_components}/LinearProgress.svelte | 0 src/routes/_components/LinuxUnbind.svelte | 43 ++++ src/routes/_components/WebUSBConnect.svelte | 23 ++ src/routes/_components/WindowsZadig.svelte | 61 +++++ 17 files changed, 390 insertions(+), 255 deletions(-) delete mode 100644 src/lib/components/CopyText.svelte delete mode 100644 src/lib/components/DeviceState.svelte create mode 100644 src/lib/icons/CommaIcon.svelte create mode 100644 src/lib/icons/DiscordIcon.svelte create mode 100644 src/lib/icons/GitHubIcon.svelte create mode 100644 src/routes/Stepper.svelte create mode 100644 src/routes/_components/ConnectInstructions.svelte create mode 100644 src/routes/_components/DevicePicker.svelte create mode 100644 src/routes/_components/DeviceState.svelte create mode 100644 src/routes/_components/LandingPage.svelte rename src/{lib/components => routes/_components}/LinearProgress.svelte (100%) create mode 100644 src/routes/_components/LinuxUnbind.svelte create mode 100644 src/routes/_components/WebUSBConnect.svelte create mode 100644 src/routes/_components/WindowsZadig.svelte diff --git a/src/lib/components/CopyText.svelte b/src/lib/components/CopyText.svelte deleted file mode 100644 index 8c54b919..00000000 --- a/src/lib/components/CopyText.svelte +++ /dev/null @@ -1,13 +0,0 @@ - - -

-
{text}
- -
diff --git a/src/lib/components/DeviceState.svelte b/src/lib/components/DeviceState.svelte deleted file mode 100644 index baf20b51..00000000 --- a/src/lib/components/DeviceState.svelte +++ /dev/null @@ -1,30 +0,0 @@ - - -
-
- - - - Device connected -
- | -
- - Serial: - {serial || "unknown"} - -
-
diff --git a/src/lib/icons/CommaIcon.svelte b/src/lib/icons/CommaIcon.svelte new file mode 100644 index 00000000..d81ae20b --- /dev/null +++ b/src/lib/icons/CommaIcon.svelte @@ -0,0 +1,7 @@ + + + + + diff --git a/src/lib/icons/DiscordIcon.svelte b/src/lib/icons/DiscordIcon.svelte new file mode 100644 index 00000000..8133457d --- /dev/null +++ b/src/lib/icons/DiscordIcon.svelte @@ -0,0 +1,7 @@ + + + + + diff --git a/src/lib/icons/GitHubIcon.svelte b/src/lib/icons/GitHubIcon.svelte new file mode 100644 index 00000000..befcc868 --- /dev/null +++ b/src/lib/icons/GitHubIcon.svelte @@ -0,0 +1,7 @@ + + + + + diff --git a/src/lib/utils/platform.js b/src/lib/utils/platform.js index b5ab955e..4e5fc10b 100644 --- a/src/lib/utils/platform.js +++ b/src/lib/utils/platform.js @@ -1,11 +1,9 @@ export const isWindows = () => { - // Force Windows mode for development - shows Zadig driver instructions - // Enable with ?windows=1 in URL const FORCE_WINDOWS = new URLSearchParams(window.location.search).has('windows') if (FORCE_WINDOWS) { console.warn('[Platform] FORCE WINDOWS MODE ENABLED') } - return FORCE_WINDOWS || (globalThis.navigator.userAgent.toLowerCase().includes("windows") ?? false); + return FORCE_WINDOWS || (globalThis.navigator.userAgent.toLowerCase().includes("windows") ?? false) } -export const isLinux = () => globalThis.navigator.userAgent.toLowerCase().includes("linux") ?? false; +export const isLinux = () => globalThis.navigator.userAgent.toLowerCase().includes("linux") ?? false diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 589eefd1..162f4200 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,9 +1,38 @@ - + + + {#each preloadImages as src} + + {/each} + + {@render children()} diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index aa0f332f..5f802e7f 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,214 +1,29 @@ -
-
-
- comma -

flash.comma.ai

-

- This tool allows you to flash AGNOS onto your comma device. AGNOS is the Ubuntu-based operating system for your - comma 3/3X/4. -

-
-
- -
-

Requirements

-
    -
  • - A web browser which supports WebUSB - {" "}(such as Google Chrome, Microsoft Edge, Opera), running on Windows, macOS, Linux, or Android. -
  • -
  • - A good quality USB-C cable to connect the device to your computer. USB 3 - {" "}is recommended for faster flashing speed. -
  • -
  • - Another USB-C cable and a charger, to power the device outside your car. -
  • -
- {#if browser} - {#if isWindows()} -

USB Driver

-

- You need additional driver software for Windows before you connect your device. -

-
    -
  1. - Download and run Zadig. -
  2. -
  3. - Under Device in the menu bar, select{" "} - Create New Device. - Zadig Create New Device -
  4. -
  5. - Fill in three fields. The first field is just a description and you can fill in anything. The next two - fields are very important. Fill them in with{" "} - {VENDOR_ID} and {PRODUCT_ID} - respectively. Press "Install Driver" and give it a few minutes to install. - Zadig Form -
  6. -
-

No additional software is required for macOS, Linux or Android.

- {/if} - {/if} -
-
- -
-

Flashing

-

Follow these steps to put your device into QDL mode:

-
    -
  1. Unplug the device and wait for the LED to switch off.
  2. -
  3. - First, connect the device to your computer using the lower USB-C port - (port 1). -
  4. -
  5. - Second, connect power to the upper - OBD-C - port (port 2). -
  6. -
- comma four and two ports. the right port is labeled 1. the left port is labeled 2. - comma three and two ports. the lower port is labeled 1. the upper port is labeled 2. -

- Your device's screen will remain blank for the entire flashing process. This is normal. -

- {#if browser} - {#if isLinux()} - Note for Linux users -

- On Linux systems, devices in QDL mode are automatically bound to the kernel's qcserial driver, and need - to be unbound before we can access the device. Copy the script below into your terminal and run it after - plugging in your device. -

- - {/if} - {/if} -

- Next, click the button to start flashing. From the prompt select the device which starts with - “QUSB_BULK”. -

-

- The process can take 30+ minutes depending on your internet connection and system performance. Do not unplug the - device until all steps are complete. -

-
-
- -
-

Troubleshooting

-

Lost connection

-

- Try using high quality USB 3 cables. You should also try different USB ports on the front or back of your - computer. If you're using a USB hub, try connecting directly to your computer instead. -

-

My device's screen is blank

-

- This is normal in QDL mode. You can verify that the “QUSB_BULK” device shows up when you press the - Flash button to know that it is working correctly. -

-

My device says “fastboot mode”

-

- You may have followed outdated instructions for flashing. Please read the instructions above for putting your - device into QDL mode. -

-

General Tips

-
    -
  • Try another computer or OS
  • -
  • Try different USB ports on your computer
  • -
  • - Try different USB-C cables; low quality cables are often the source of problems. Note that the included OBD-C - cable will not work. -
  • -
-

Other questions

-

- If you need help, join our Discord server - and go to the #hw-three-3x channel. -

-
- - -
- -
- {#if browser} - - {/if} +
+ + - -
- flash.comma.ai version: {version} +
diff --git a/src/routes/Stepper.svelte b/src/routes/Stepper.svelte new file mode 100644 index 00000000..bf9d342f --- /dev/null +++ b/src/routes/Stepper.svelte @@ -0,0 +1,36 @@ +// Stepper/breadcrumb component + + + +
+ {#each steps as stepName, index (stepName)} + {@const isCompleted = index < currentStep} + {@const isCurrent = index === currentStep} + {@const isClickable = index < currentStep} +
+ {#if index > 0} +
+ {/if} + +
+ {/each} +
\ No newline at end of file diff --git a/src/routes/_components/ConnectInstructions.svelte b/src/routes/_components/ConnectInstructions.svelte new file mode 100644 index 00000000..a659612c --- /dev/null +++ b/src/routes/_components/ConnectInstructions.svelte @@ -0,0 +1,55 @@ + + +
+
+

Connect your device

+

Follow these steps to prepare your device for flashing

+
+ +
+ {isCommaFour + +
    +
  1. + A + Unplug the device +
  2. + {#if !isCommaFour} +
  3. + B + Wait for the light on the back to fully turn off +
  4. + {/if} +
  5. + {isCommaFour ? 'B' : 'C'} + Connect port 1 to your computer +
  6. +
  7. + {isCommaFour ? 'C' : 'D'} + Connect port 2 to your computer or a power brick +
  8. +
+
+ +

+ Your device's screen will remain blank. This is normal. +

+ + +
\ No newline at end of file diff --git a/src/routes/_components/DevicePicker.svelte b/src/routes/_components/DevicePicker.svelte new file mode 100644 index 00000000..ae9c9c28 --- /dev/null +++ b/src/routes/_components/DevicePicker.svelte @@ -0,0 +1,57 @@ + + +
+
+

Which device are you flashing?

+

Select your comma device

+
+ +
+ + + +
+ + +
\ No newline at end of file diff --git a/src/routes/_components/DeviceState.svelte b/src/routes/_components/DeviceState.svelte new file mode 100644 index 00000000..2751b663 --- /dev/null +++ b/src/routes/_components/DeviceState.svelte @@ -0,0 +1,19 @@ + + +
+ + + + Device serial: {serial || 'unknown'} +
diff --git a/src/routes/_components/LandingPage.svelte b/src/routes/_components/LandingPage.svelte new file mode 100644 index 00000000..7c3715de --- /dev/null +++ b/src/routes/_components/LandingPage.svelte @@ -0,0 +1,21 @@ +// Landing page component + + +
+ comma +
+

flash.comma.ai

+

+ Restore your comma device to a fresh factory state +

+
+ +
\ No newline at end of file diff --git a/src/lib/components/LinearProgress.svelte b/src/routes/_components/LinearProgress.svelte similarity index 100% rename from src/lib/components/LinearProgress.svelte rename to src/routes/_components/LinearProgress.svelte diff --git a/src/routes/_components/LinuxUnbind.svelte b/src/routes/_components/LinuxUnbind.svelte new file mode 100644 index 00000000..d3553bf1 --- /dev/null +++ b/src/routes/_components/LinuxUnbind.svelte @@ -0,0 +1,43 @@ + + +
+
+

Unbind from qcserial

+

+ On Linux, devices in QDL mode are bound to the kernel's qcserial driver. + Run this command in a terminal to unbind it: +

+
+ +
+
+      {DETACH_SCRIPT}
+    
+ +
+ + +
\ No newline at end of file diff --git a/src/routes/_components/WebUSBConnect.svelte b/src/routes/_components/WebUSBConnect.svelte new file mode 100644 index 00000000..b55c604a --- /dev/null +++ b/src/routes/_components/WebUSBConnect.svelte @@ -0,0 +1,23 @@ + + +
+
+ connect +
+
+

Select your device

+

+ Click the button below to open the device selector, then choose QUSB_BULK_CID from the list. +

+
+ +
\ No newline at end of file diff --git a/src/routes/_components/WindowsZadig.svelte b/src/routes/_components/WindowsZadig.svelte new file mode 100644 index 00000000..48c7dfaf --- /dev/null +++ b/src/routes/_components/WindowsZadig.svelte @@ -0,0 +1,61 @@ + + +
+
+

Install USB Driver

+

Windows requires a driver to communicate with your device

+
+ +
+
+ 1 +
+

Download and run Zadig

+
+
+ +
+ 2 +
+

Under Device in the menu bar, select Create New Device

+ Zadig Create New Device +
+
+ +
+ 3 +
+

Fill in the form:

+
    +
  • a.Name: {deviceType === DeviceType.COMMA_4 ? 'comma four' : 'comma 3/3X'}
  • +
  • b.USB ID: {vendorId} and {PRODUCT_ID}
  • +
+ Zadig Form +
+
+ +
+ 4 +
+

Click Install Driver

+
+
+
+ + +
\ No newline at end of file From 609b333631ac46260a589daaa6e063ca0a9d6e86 Mon Sep 17 00:00:00 2001 From: John Adams <78485956+jpaoad31@users.noreply.github.com> Date: Sat, 20 Dec 2025 15:47:46 -0800 Subject: [PATCH 3/6] refactor FAST_MODE for front-end --- src/lib/utils/manager.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lib/utils/manager.js b/src/lib/utils/manager.js index 50679d0b..44c6e79c 100644 --- a/src/lib/utils/manager.js +++ b/src/lib/utils/manager.js @@ -7,9 +7,11 @@ import { createSteps, withProgress } from './progress' // Fast mode for development - skips flashing system partition (the slowest) // Enable with ?fast=1 in URL -const FAST_MODE = new URLSearchParams(window.location.search).has('fast') -if (FAST_MODE) { - console.warn('[Flash] FAST MODE ENABLED - skipping system partition') +const fastModeEnabled = () => { + const FAST_MODE = new URLSearchParams(window.location.search).has('fast') + if (FAST_MODE()) { + console.warn('[Flash] FAST MODE ENABLED - skipping system partition') + } } export const StepCode = { @@ -379,7 +381,7 @@ export class FlashManager { .filter((image) => !image.name.startsWith('userdata_') || image.name === this.#userdataImage) // In fast mode, skip the system partition (slowest to flash) - if (FAST_MODE) { + if (fastModeEnabled()) { systemImages = systemImages.filter((image) => image.name !== 'system') console.info('[Flash] Fast mode: skipping system partition') } From 4e88867f2de70ac33adf3be258346aa5adb027f4 Mon Sep 17 00:00:00 2001 From: John Adams <78485956+jpaoad31@users.noreply.github.com> Date: Sat, 20 Dec 2025 18:33:57 -0800 Subject: [PATCH 4/6] working on flash.svelte --- src/lib/components/Flash.svelte | 253 -------------------- src/routes/Flash.svelte | 300 ++++++++++++++++++++++++ src/routes/_components/DebugInfo.svelte | 114 +++++++++ vite.config.js | 3 + 4 files changed, 417 insertions(+), 253 deletions(-) delete mode 100644 src/lib/components/Flash.svelte create mode 100644 src/routes/Flash.svelte create mode 100644 src/routes/_components/DebugInfo.svelte diff --git a/src/lib/components/Flash.svelte b/src/lib/components/Flash.svelte deleted file mode 100644 index 28af1bfd..00000000 --- a/src/lib/components/Flash.svelte +++ /dev/null @@ -1,253 +0,0 @@ - - -
- -
- -
- {title} - {description} - {#if error} - - {/if} - - {#if connected} - - {/if} -
diff --git a/src/routes/Flash.svelte b/src/routes/Flash.svelte new file mode 100644 index 00000000..21257c0f --- /dev/null +++ b/src/routes/Flash.svelte @@ -0,0 +1,300 @@ + + +
+ {#if wizardStep >= 0} + {}} + /> + {/if} +
+ status +
+
+ +
+ {title} + + {description} + {#if showDiscordHelp} + If the problem persists, join #{discordChannel} on Discord for help. + {/if} + {#if error !== ErrorCode.NONE && hideRetry && !showDebugInfo} + + {/if} + + {#if error !== ErrorCode.NONE && !hideRetry} + + {/if} + {#if connected} + + {/if} + {#if error !== ErrorCode.NONE && (!hideRetry || showDebugInfo)} + setShowDebugInfo(false) : undefined} + /> + {/if} +
diff --git a/src/routes/_components/DebugInfo.svelte b/src/routes/_components/DebugInfo.svelte new file mode 100644 index 00000000..be532d58 --- /dev/null +++ b/src/routes/_components/DebugInfo.svelte @@ -0,0 +1,114 @@ + + +
+
+

+ Copy this debug info and paste it in{' '} + Discord + {' '}or{' '} + GitHub Issues. +

+ {#if onClose} + + {/if} +
+
+    {getDebugReport()}
+  
+ +
\ No newline at end of file diff --git a/vite.config.js b/vite.config.js index d5c23d9c..a2d9d9db 100644 --- a/vite.config.js +++ b/vite.config.js @@ -34,6 +34,9 @@ export default defineConfig({ }, ], }, + resolve: { + extensions: ['.svelte', '.js', '.ts', '.json', '.mjs',] // You can add or remove extensions + }, ssr: { noExternal: [ "@commaai/qdl", From 1e145aa6fe072dc15adedef4c1b23d7bc75e71ce Mon Sep 17 00:00:00 2001 From: John Adams <78485956+jpaoad31@users.noreply.github.com> Date: Wed, 24 Dec 2025 14:54:10 -0800 Subject: [PATCH 5/6] update onclick handlers --- src/lib/utils/platform.js | 5 +- src/routes/Flash.svelte | 233 +++++++++++++----- src/routes/Stepper.svelte | 5 +- .../_components/ConnectInstructions.svelte | 6 +- src/routes/_components/DebugInfo.svelte | 4 +- src/routes/_components/DevicePicker.svelte | 6 +- src/routes/_components/LandingPage.svelte | 6 +- src/routes/_components/LinuxUnbind.svelte | 4 +- src/routes/_components/WebUSBConnect.svelte | 2 +- src/routes/_components/WindowsZadig.svelte | 2 +- 10 files changed, 199 insertions(+), 74 deletions(-) diff --git a/src/lib/utils/platform.js b/src/lib/utils/platform.js index 4e5fc10b..61eacbac 100644 --- a/src/lib/utils/platform.js +++ b/src/lib/utils/platform.js @@ -1,5 +1,8 @@ +import { browser } from "$app/environment" + export const isWindows = () => { - const FORCE_WINDOWS = new URLSearchParams(window.location.search).has('windows') + if (!browser) return false + const FORCE_WINDOWS = new URLSearchParams(globalThis.window.location?.search).has('windows') ?? false if (FORCE_WINDOWS) { console.warn('[Platform] FORCE WINDOWS MODE ENABLED') } diff --git a/src/routes/Flash.svelte b/src/routes/Flash.svelte index 21257c0f..60196926 100644 --- a/src/routes/Flash.svelte +++ b/src/routes/Flash.svelte @@ -1,10 +1,20 @@ -
- {#if wizardStep >= 0} - {}} - /> - {/if} -
- status + +{#if wizardScreen === 'landing' && !error} + + + +{:else if wizardScreen === 'device' && !error} +
+ +
-
- + + +{:else if wizardScreen === 'zadig' && !error} +
+ +
- {title} - - {description} - {#if showDiscordHelp} - If the problem persists, join #{discordChannel} on Discord for help. + + +{:else if wizardScreen === 'connect' && !error} +
+ + +
+ + +{:else if wizardScreen === 'unbind' && !error} +
+ + +
+ + +{:else if wizardScreen === 'webusb' && !error} +
+ + +
+ +{:else} +
+ {#if wizardStep >= 0} + {}} + /> {/if} - {#if error !== ErrorCode.NONE && hideRetry && !showDebugInfo} +
+ status +
+
+ +
+ {title} + + {description} + {#if showDiscordHelp} + If the problem persists, join #{discordChannel} on Discord for help. + {/if} + {#if error !== ErrorCode.NONE && hideRetry && !showDebugInfo} + + {/if} + + {#if error !== ErrorCode.NONE && !hideRetry} {/if} - - {#if error !== ErrorCode.NONE && !hideRetry} - - {/if} - {#if connected} - - {/if} - {#if error !== ErrorCode.NONE && (!hideRetry || showDebugInfo)} - setShowDebugInfo(false) : undefined} - /> - {/if} -
+ {#if connected} + + {/if} + {#if error !== ErrorCode.NONE && (!hideRetry || showDebugInfo)} + setShowDebugInfo(false) : undefined} + /> + {/if} +
+{/if} diff --git a/src/routes/Stepper.svelte b/src/routes/Stepper.svelte index bf9d342f..565f4ea9 100644 --- a/src/routes/Stepper.svelte +++ b/src/routes/Stepper.svelte @@ -1,6 +1,5 @@ -// Stepper/breadcrumb component - @@ -14,7 +13,7 @@
{/if}