diff --git a/404.html b/404.html index a5c004af3..96e588838 100644 --- a/404.html +++ b/404.html @@ -2417,7 +2417,7 @@ - + diff --git a/WiFi/index.html b/WiFi/index.html index 41a0ab1d5..0841079ac 100644 --- a/WiFi/index.html +++ b/WiFi/index.html @@ -3670,7 +3670,7 @@ and NTP diagnostics remain infrastructure features.
- + diff --git a/_javascript/firmware_picker.js b/_javascript/firmware_picker.js index f975c2ac2..1fa2fef5d 100644 --- a/_javascript/firmware_picker.js +++ b/_javascript/firmware_picker.js @@ -2973,7 +2973,11 @@ const chip = catalog.profiles.some(function (profile) { return profile.hardware === hardware && profile.chipFamily === "nrf52"; }) ? "nrf52" : ""; - panel.hidden = chip !== "nrf52"; + const matches = matchingProfiles(); + const bootloaderIncluded = matches.length > 0 && matches.every(function (profile) { + return Boolean(profile.embeddedBootloader); + }); + panel.hidden = chip !== "nrf52" || bootloaderIncluded; if (panel.hidden) return; const title = panel.querySelector('[data-role="bootloader-title"]'); const content = panel.querySelector('[data-role="bootloader-content"]'); diff --git a/bootloader_version_stock_audit/index.html b/bootloader_version_stock_audit/index.html index d6884178a..30b9e50aa 100644 --- a/bootloader_version_stock_audit/index.html +++ b/bootloader_version_stock_audit/index.html @@ -2457,7 +2457,7 @@ - + diff --git a/cad_scan_validation/index.html b/cad_scan_validation/index.html index 442b008ec..b1dd3b46d 100644 --- a/cad_scan_validation/index.html +++ b/cad_scan_validation/index.html @@ -2457,7 +2457,7 @@ - + diff --git a/carrier_wave/index.html b/carrier_wave/index.html index 6336fb775..386cb539b 100644 --- a/carrier_wave/index.html +++ b/carrier_wave/index.html @@ -2906,7 +2906,7 @@ reproduction steps, and the tested preamble settings. - + diff --git a/carrier_wave_validation/index.html b/carrier_wave_validation/index.html index 8135e491b..eea3cec0b 100644 --- a/carrier_wave_validation/index.html +++ b/carrier_wave_validation/index.html @@ -2457,7 +2457,7 @@ - + diff --git a/charge_voltage/index.html b/charge_voltage/index.html index cc0502468..91a3be4bf 100644 --- a/charge_voltage/index.html +++ b/charge_voltage/index.html @@ -2574,7 +2574,7 @@ See Battery profil - + diff --git a/cli_build_matrix/index.html b/cli_build_matrix/index.html index a838533d1..074c976b7 100644 --- a/cli_build_matrix/index.html +++ b/cli_build_matrix/index.html @@ -3056,7 +3056,7 @@ does not contain its linked marker is rejected during the build. - + diff --git a/cli_command_availability/index.html b/cli_command_availability/index.html index 234c4a15a..f453def77 100644 --- a/cli_command_availability/index.html +++ b/cli_command_availability/index.html @@ -6208,7 +6208,7 @@ selected by that manifest. - + diff --git a/cli_commands/index.html b/cli_commands/index.html index 0aef3cb1c..79f6e094e 100644 --- a/cli_commands/index.html +++ b/cli_commands/index.html @@ -13604,7 +13604,7 @@ is active. - + diff --git a/cli_settings_audit/index.html b/cli_settings_audit/index.html index 2b09769d5..90e70891c 100644 --- a/cli_settings_audit/index.html +++ b/cli_settings_audit/index.html @@ -2457,7 +2457,7 @@ - + diff --git a/companion_contact_cache/index.html b/companion_contact_cache/index.html index 5c5259375..7473e1610 100644 --- a/companion_contact_cache/index.html +++ b/companion_contact_cache/index.html @@ -2457,7 +2457,7 @@ - + diff --git a/companion_contact_cache_results/index.html b/companion_contact_cache_results/index.html index 8f6b0f88c..0007109ca 100644 --- a/companion_contact_cache_results/index.html +++ b/companion_contact_cache_results/index.html @@ -2457,7 +2457,7 @@ - + diff --git a/companion_lost_reply/index.html b/companion_lost_reply/index.html index 7e3c1f707..1dd278f82 100644 --- a/companion_lost_reply/index.html +++ b/companion_lost_reply/index.html @@ -2627,7 +2627,7 @@ responder. Normal message reception and notification behavior remain in place. - + diff --git a/companion_offline_queue/index.html b/companion_offline_queue/index.html index 62a085965..735083209 100644 --- a/companion_offline_queue/index.html +++ b/companion_offline_queue/index.html @@ -2682,7 +2682,7 @@ protocol setting to resize it at runtime. - + diff --git a/companion_power_diagnostics/index.html b/companion_power_diagnostics/index.html index 4f83507e3..e14309b78 100644 --- a/companion_power_diagnostics/index.html +++ b/companion_power_diagnostics/index.html @@ -2482,7 +2482,7 @@ an already running nRF52 watchdog cannot be stopped directly. - + diff --git a/companion_protocol/index.html b/companion_protocol/index.html index 750c71a38..a7eefd802 100644 --- a/companion_protocol/index.html +++ b/companion_protocol/index.html @@ -5537,7 +5537,7 @@ response = wait_for_response(PACKET_MSG_SENT) - + diff --git a/companion_radio_diagnostics/index.html b/companion_radio_diagnostics/index.html index 443bfd01a..62bf3b44f 100644 --- a/companion_radio_diagnostics/index.html +++ b/companion_radio_diagnostics/index.html @@ -2502,7 +2502,7 @@ clears the sticky error flags shown bystats-core.
-
+
diff --git a/companion_radio_full/index.html b/companion_radio_full/index.html
index 895ecdb65..c96ab6698 100644
--- a/companion_radio_full/index.html
+++ b/companion_radio_full/index.html
@@ -4004,7 +4004,7 @@ selection, nRF52 in-place deltas, relays, trust checks, and recovery behavior.
-
+
diff --git a/companion_usb_ascii_validation/index.html b/companion_usb_ascii_validation/index.html
index 2114a27d2..3ffd61604 100644
--- a/companion_usb_ascii_validation/index.html
+++ b/companion_usb_ascii_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/companion_usb_client_validation/index.html b/companion_usb_client_validation/index.html
index d2645dfcb..22fd9314c 100644
--- a/companion_usb_client_validation/index.html
+++ b/companion_usb_client_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/docs/index.html b/docs/index.html
index ab023b6f0..eb76679f8 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -2546,7 +2546,7 @@ pip install mkdocs-material
-
+
diff --git a/double_frequency_v4_validation/index.html b/double_frequency_v4_validation/index.html
index 7d8bebdc9..6f01ad9ad 100644
--- a/double_frequency_v4_validation/index.html
+++ b/double_frequency_v4_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/esp32_memory_budget/index.html b/esp32_memory_budget/index.html
index f9acfdd2a..48daf8e3d 100644
--- a/esp32_memory_budget/index.html
+++ b/esp32_memory_budget/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/esp32_partition_catalog/index.html b/esp32_partition_catalog/index.html
index 6cad2b4b2..571fd8140 100644
--- a/esp32_partition_catalog/index.html
+++ b/esp32_partition_catalog/index.html
@@ -2761,7 +2761,7 @@ LUT. No scheduled refresh job or release upload is installed by this script.
-
+
diff --git a/esp32_wifi_partition_migration/index.html b/esp32_wifi_partition_migration/index.html
index 139f52ff6..7fabdcedf 100644
--- a/esp32_wifi_partition_migration/index.html
+++ b/esp32_wifi_partition_migration/index.html
@@ -3086,7 +3086,7 @@ The 16 MiB target table creates two 6.25 MiB OTA slots. See the
-
+
diff --git a/espnow_bridge_setup/index.html b/espnow_bridge_setup/index.html
index 13a868cb4..2448ca407 100644
--- a/espnow_bridge_setup/index.html
+++ b/espnow_bridge_setup/index.html
@@ -2998,7 +2998,7 @@ a crossover-only block. See the
-
+
diff --git a/faq/index.html b/faq/index.html
index bc8fae769..6e1e3d301 100644
--- a/faq/index.html
+++ b/faq/index.html
@@ -5423,7 +5423,7 @@ Flash one of the Ethernet-enabled firmware variants:
-
+
diff --git a/filter_tool/index.html b/filter_tool/index.html
index 5792bdd17..170a0d164 100644
--- a/filter_tool/index.html
+++ b/filter_tool/index.html
@@ -3400,7 +3400,7 @@ sized structure for every possible condition and action.
-
+
diff --git a/firmware_memory_budget/index.html b/firmware_memory_budget/index.html
index c0f8001f3..7fa3b1851 100644
--- a/firmware_memory_budget/index.html
+++ b/firmware_memory_budget/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/firmware_picker/index.html b/firmware_picker/index.html
index b61e8ffc6..7dfb79cbd 100644
--- a/firmware_picker/index.html
+++ b/firmware_picker/index.html
@@ -3413,7 +3413,7 @@ and each replacement's .memory.json report before updating.
-
+
diff --git a/fleet_management/index.html b/fleet_management/index.html
index 3b21765f9..8a3db5cf7 100644
--- a/fleet_management/index.html
+++ b/fleet_management/index.html
@@ -3225,7 +3225,7 @@ amplification; it cannot recover airtime already occupied by an RF transmitter.<
-
+
diff --git a/flood_filtering/index.html b/flood_filtering/index.html
index db9adc765..7f6178d59 100644
--- a/flood_filtering/index.html
+++ b/flood_filtering/index.html
@@ -4496,7 +4496,7 @@ inspect or reset those separately when troubleshooting.
-
+
diff --git a/four_fixed_tx_dwell_validation/index.html b/four_fixed_tx_dwell_validation/index.html
index 8bd1ae17e..be4767de6 100644
--- a/four_fixed_tx_dwell_validation/index.html
+++ b/four_fixed_tx_dwell_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/four_fixed_tx_single_pass_validation/index.html b/four_fixed_tx_single_pass_validation/index.html
index dbc1bebda..e7a7f002a 100644
--- a/four_fixed_tx_single_pass_validation/index.html
+++ b/four_fixed_tx_single_pass_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/full_companion_features/index.html b/full_companion_features/index.html
index 2543ac0c6..ef4d1ebbb 100644
--- a/full_companion_features/index.html
+++ b/full_companion_features/index.html
@@ -2868,7 +2868,7 @@ serve host-supplied packages without needing that receiver storage layout.
-
+
diff --git a/full_companion_usb_switcher/index.html b/full_companion_usb_switcher/index.html
index 8b9f438b2..11dcc34f4 100644
--- a/full_companion_usb_switcher/index.html
+++ b/full_companion_usb_switcher/index.html
@@ -3107,7 +3107,7 @@ ownership in
-
+
diff --git a/full_profiles/index.html b/full_profiles/index.html
index 9adb0e10e..92abd7883 100644
--- a/full_profiles/index.html
+++ b/full_profiles/index.html
@@ -2854,7 +2854,7 @@ network setup.
-
+
diff --git a/full_usb_logging_validation/index.html b/full_usb_logging_validation/index.html
index e55889467..def35a004 100644
--- a/full_usb_logging_validation/index.html
+++ b/full_usb_logging_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/gps_tracking/index.html b/gps_tracking/index.html
index 81679cb0a..fe3c4bbb3 100644
--- a/gps_tracking/index.html
+++ b/gps_tracking/index.html
@@ -2841,7 +2841,7 @@ fresh data is available.
-
+
diff --git a/halo_keymind_settings/index.html b/halo_keymind_settings/index.html
index a13fab0ef..999b0e5c9 100644
--- a/halo_keymind_settings/index.html
+++ b/halo_keymind_settings/index.html
@@ -3425,7 +3425,7 @@ set flood.retry.path 2
-
+
diff --git a/hardware_validation_bluetooth_stealth_2026-09-07/index.html b/hardware_validation_bluetooth_stealth_2026-09-07/index.html
index b8d1649c6..af538fa6d 100644
--- a/hardware_validation_bluetooth_stealth_2026-09-07/index.html
+++ b/hardware_validation_bluetooth_stealth_2026-09-07/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/hardware_validation_checklist/index.html b/hardware_validation_checklist/index.html
index eea4753b9..1119b0a7a 100644
--- a/hardware_validation_checklist/index.html
+++ b/hardware_validation_checklist/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/heltec_t114/index.html b/heltec_t114/index.html
index 83e39b17f..a9acb9f86 100644
--- a/heltec_t114/index.html
+++ b/heltec_t114/index.html
@@ -2502,7 +2502,7 @@ for the startup checks and hardware-testing boundary.
-
+
diff --git a/heltec_v4_wifi_partition_migration/index.html b/heltec_v4_wifi_partition_migration/index.html
index 8383c7f80..0fc4309ff 100644
--- a/heltec_v4_wifi_partition_migration/index.html
+++ b/heltec_v4_wifi_partition_migration/index.html
@@ -2501,7 +2501,7 @@ route instead restores supported settings and retains the saved admin password.<
-
+
diff --git a/home_text_spacing/index.html b/home_text_spacing/index.html
index b46829133..85f1a1a39 100644
--- a/home_text_spacing/index.html
+++ b/home_text_spacing/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/host_cli_service/index.html b/host_cli_service/index.html
index f9ef05dee..92a3f9bc4 100644
--- a/host_cli_service/index.html
+++ b/host_cli_service/index.html
@@ -2917,7 +2917,7 @@ sign serial requests.
-
+
diff --git a/index.html b/index.html
index 539c04235..0f9683c77 100644
--- a/index.html
+++ b/index.html
@@ -2632,7 +2632,7 @@
-
+
diff --git a/kiss_modem_protocol/index.html b/kiss_modem_protocol/index.html
index 83b97a173..9c1897e93 100644
--- a/kiss_modem_protocol/index.html
+++ b/kiss_modem_protocol/index.html
@@ -4284,7 +4284,7 @@ never falls back to the other profile.
-
+
diff --git a/lora_ota_automation/index.html b/lora_ota_automation/index.html
index 42f0f390f..becabd96f 100644
--- a/lora_ota_automation/index.html
+++ b/lora_ota_automation/index.html
@@ -3919,7 +3919,7 @@ image: the default active-download guard preserves it until you explicitly use
-
+
diff --git a/management_decoder/index.html b/management_decoder/index.html
index 6ccf35c8b..f38ef11ce 100644
--- a/management_decoder/index.html
+++ b/management_decoder/index.html
@@ -2661,7 +2661,7 @@ offline Python capture tool, see Management rep
-
+
diff --git a/management_reports/index.html b/management_reports/index.html
index 5b8c22281..470a60e9f 100644
--- a/management_reports/index.html
+++ b/management_reports/index.html
@@ -3037,7 +3037,7 @@ public metadata and entry/page counts remain visible.
-
+
diff --git a/mbedtls-tls-footprint/index.html b/mbedtls-tls-footprint/index.html
index 9d4879433..b5727dfbb 100644
--- a/mbedtls-tls-footprint/index.html
+++ b/mbedtls-tls-footprint/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/mesh_pocket_gui/index.html b/mesh_pocket_gui/index.html
index c1481bc5e..16625cb41 100644
--- a/mesh_pocket_gui/index.html
+++ b/mesh_pocket_gui/index.html
@@ -2527,7 +2527,7 @@ retains the standard Pocket display.
-
+
diff --git a/mixed_scan_validation/index.html b/mixed_scan_validation/index.html
index 274d520a2..d54b5b08c 100644
--- a/mixed_scan_validation/index.html
+++ b/mixed_scan_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/mixed_sf_bw_validation/index.html b/mixed_sf_bw_validation/index.html
index 06d292432..e2a5aab3b 100644
--- a/mixed_sf_bw_validation/index.html
+++ b/mixed_sf_bw_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/nimble_companion_trial/index.html b/nimble_companion_trial/index.html
index 4291eb72c..045dba7d1 100644
--- a/nimble_companion_trial/index.html
+++ b/nimble_companion_trial/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/nimble_companion_trial_results/index.html b/nimble_companion_trial_results/index.html
index a2765af1f..883b57aa5 100644
--- a/nimble_companion_trial_results/index.html
+++ b/nimble_companion_trial_results/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/notifications/index.html b/notifications/index.html
index 9d227f125..85e407bec 100644
--- a/notifications/index.html
+++ b/notifications/index.html
@@ -2943,7 +2943,7 @@ If those should stay quiet too, revoke their permission with
-
+
diff --git a/nrf52-usb-ready-fix/index.html b/nrf52-usb-ready-fix/index.html
index 965e7d4a4..e5c7b3cb8 100644
--- a/nrf52-usb-ready-fix/index.html
+++ b/nrf52-usb-ready-fix/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/nrf52_bluetooth_debug/index.html b/nrf52_bluetooth_debug/index.html
index a6704a912..498537a84 100644
--- a/nrf52_bluetooth_debug/index.html
+++ b/nrf52_bluetooth_debug/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/nrf52_companion_storage_recovery/index.html b/nrf52_companion_storage_recovery/index.html
index 715685e5c..809e67757 100644
--- a/nrf52_companion_storage_recovery/index.html
+++ b/nrf52_companion_storage_recovery/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/nrf52_embedded_bootloader/index.html b/nrf52_embedded_bootloader/index.html
index 7cbffcd77..1c57f5321 100644
--- a/nrf52_embedded_bootloader/index.html
+++ b/nrf52_embedded_bootloader/index.html
@@ -2613,7 +2613,7 @@ unchanged-settings claim.
-
+
diff --git a/nrf52_power_management/index.html b/nrf52_power_management/index.html
index ae9747611..9abd2c8a2 100644
--- a/nrf52_power_management/index.html
+++ b/nrf52_power_management/index.html
@@ -3421,7 +3421,7 @@ from the battery-protection SYSTEMOFF shutdown described here.
-
+
diff --git a/nrf52_sleep_event_validation/index.html b/nrf52_sleep_event_validation/index.html
index 8ebeedc41..dafe74533 100644
--- a/nrf52_sleep_event_validation/index.html
+++ b/nrf52_sleep_event_validation/index.html
@@ -2724,7 +2724,7 @@ veto path instead.
-
+
diff --git a/number_allocations/index.html b/number_allocations/index.html
index e5b9e86bd..4c2acded1 100644
--- a/number_allocations/index.html
+++ b/number_allocations/index.html
@@ -2525,7 +2525,7 @@
-
+
diff --git a/old-releases/1.17.1.5-doc-audit/index.html b/old-releases/1.17.1.5-doc-audit/index.html
index 0b3ede500..112989542 100644
--- a/old-releases/1.17.1.5-doc-audit/index.html
+++ b/old-releases/1.17.1.5-doc-audit/index.html
@@ -2831,7 +2831,7 @@ it does not certify all historical statements as current hardware behavior.
-
+
diff --git a/old-releases/1.17.1.5/index.html b/old-releases/1.17.1.5/index.html
index a2dec88f7..d37fccef5 100644
--- a/old-releases/1.17.1.5/index.html
+++ b/old-releases/1.17.1.5/index.html
@@ -2887,7 +2887,7 @@ the larger layout and do not fit a 1.25 MiB slot.
-
+
diff --git a/old-releases/1.17.1.6/index.html b/old-releases/1.17.1.6/index.html
index 8f29a0eee..02102f9d3 100644
--- a/old-releases/1.17.1.6/index.html
+++ b/old-releases/1.17.1.6/index.html
@@ -2649,7 +2649,7 @@ remain available; Full alternatives require their matching partition layout.
-
+
diff --git a/old-releases/1.17.1.7/index.html b/old-releases/1.17.1.7/index.html
index 7a03ea407..e85a6e495 100644
--- a/old-releases/1.17.1.7/index.html
+++ b/old-releases/1.17.1.7/index.html
@@ -2496,7 +2496,7 @@
-
+
diff --git a/old-releases/index.html b/old-releases/index.html
index 2a05e7de1..5890397ce 100644
--- a/old-releases/index.html
+++ b/old-releases/index.html
@@ -2476,7 +2476,7 @@
-
+
diff --git a/optional_screens/index.html b/optional_screens/index.html
index c095cd0c5..9fb776860 100644
--- a/optional_screens/index.html
+++ b/optional_screens/index.html
@@ -2675,7 +2675,7 @@ transmit/receive, and GPS or touch operation where fitted.
-
+
diff --git a/ota_easy/index.html b/ota_easy/index.html
index 1a36cc102..143afb2e0 100644
--- a/ota_easy/index.html
+++ b/ota_easy/index.html
@@ -3383,7 +3383,7 @@ and container internals, see the OTA protocol specifi
-
+
diff --git a/ota_meshtower_v2_sdcard/index.html b/ota_meshtower_v2_sdcard/index.html
index c5067d404..20dbe166c 100644
--- a/ota_meshtower_v2_sdcard/index.html
+++ b/ota_meshtower_v2_sdcard/index.html
@@ -3087,7 +3087,7 @@ as an alias.
-
+
diff --git a/ota_nrf52_bootloader_update/index.html b/ota_nrf52_bootloader_update/index.html
index 982b4e725..fa82a7bfe 100644
--- a/ota_nrf52_bootloader_update/index.html
+++ b/ota_nrf52_bootloader_update/index.html
@@ -2969,7 +2969,7 @@ Use USB/BLE DFU or SWD for initial provisioning and local recovery.
-
+
diff --git a/ota_nrf52_qspi/index.html b/ota_nrf52_qspi/index.html
index 938c4a63f..fd096d65b 100644
--- a/ota_nrf52_qspi/index.html
+++ b/ota_nrf52_qspi/index.html
@@ -3407,7 +3407,7 @@ card insertion has been field-tested.
-
+
diff --git a/ota_protocol/index.html b/ota_protocol/index.html
index 7567bed6f..738f4dbba 100644
--- a/ota_protocol/index.html
+++ b/ota_protocol/index.html
@@ -4478,7 +4478,7 @@ reject v2+BOOTLOADER, v3 without exact FULL|SIGNED|BOOTLOADER, and
-
+
diff --git a/ota_user_guide/index.html b/ota_user_guide/index.html
index ae2320c20..59c0291f1 100644
--- a/ota_user_guide/index.html
+++ b/ota_user_guide/index.html
@@ -3598,7 +3598,7 @@ that only contains what changed). You get them by:
-
+
diff --git a/packet_format/index.html b/packet_format/index.html
index ee455e895..e42343831 100644
--- a/packet_format/index.html
+++ b/packet_format/index.html
@@ -3054,7 +3054,7 @@ support only a subset of the path encodings and payload types described here.
-
+
diff --git a/pair_4p6_300us_validation/index.html b/pair_4p6_300us_validation/index.html
index 552ade9dd..039d9cca7 100644
--- a/pair_4p6_300us_validation/index.html
+++ b/pair_4p6_300us_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/pair_preamble32_validation/index.html b/pair_preamble32_validation/index.html
index 0cb71391c..f6e9534ad 100644
--- a/pair_preamble32_validation/index.html
+++ b/pair_preamble32_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/payloads/index.html b/payloads/index.html
index 651f7a5d7..a6dce1109 100644
--- a/payloads/index.html
+++ b/payloads/index.html
@@ -4329,7 +4329,7 @@ relay an opaque OTA packet when their routing policy permits it.
-
+
diff --git a/power_saving_diagnostics/index.html b/power_saving_diagnostics/index.html
index 1814a8cde..c4a9fb508 100644
--- a/power_saving_diagnostics/index.html
+++ b/power_saving_diagnostics/index.html
@@ -2966,7 +2966,7 @@ to validate the TX improvement and quantify power use.
-
+
diff --git a/pr7_review_validation/index.html b/pr7_review_validation/index.html
index ec0eff75e..a17838f49 100644
--- a/pr7_review_validation/index.html
+++ b/pr7_review_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/preamble_detection_investigation/index.html b/preamble_detection_investigation/index.html
index 941953107..5868feb63 100644
--- a/preamble_detection_investigation/index.html
+++ b/preamble_detection_investigation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/preset_test/index.html b/preset_test/index.html
index 641522803..6f5d5e0ff 100644
--- a/preset_test/index.html
+++ b/preset_test/index.html
@@ -2968,7 +2968,7 @@ clock
-
+
diff --git a/qr_codes/index.html b/qr_codes/index.html
index a73167ff6..308b21784 100644
--- a/qr_codes/index.html
+++ b/qr_codes/index.html
@@ -2591,7 +2591,7 @@
-
+
diff --git a/radio_chirp_math_validation/index.html b/radio_chirp_math_validation/index.html
index db058a946..aaa3dbe50 100644
--- a/radio_chirp_math_validation/index.html
+++ b/radio_chirp_math_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/radio_dwell_policy_validation/index.html b/radio_dwell_policy_validation/index.html
index 7e0cbcd9e..39bb3a9c0 100644
--- a/radio_dwell_policy_validation/index.html
+++ b/radio_dwell_policy_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/radio_presets/index.html b/radio_presets/index.html
index d01605595..905b266e6 100644
--- a/radio_presets/index.html
+++ b/radio_presets/index.html
@@ -2593,7 +2593,7 @@
-
+
diff --git a/radio_profile_switch_validation/index.html b/radio_profile_switch_validation/index.html
index b88b45754..90f7e8e77 100644
--- a/radio_profile_switch_validation/index.html
+++ b/radio_profile_switch_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/radio_profiles/index.html b/radio_profiles/index.html
index 204874e02..fb94a5379 100644
--- a/radio_profiles/index.html
+++ b/radio_profiles/index.html
@@ -4493,7 +4493,7 @@ single-profile mode.
-
+
diff --git a/radio_profiles_validation/index.html b/radio_profiles_validation/index.html
index 423d28265..55f129b07 100644
--- a/radio_profiles_validation/index.html
+++ b/radio_profiles_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/radio_receive_calibration/index.html b/radio_receive_calibration/index.html
index 54aed44ec..36ff70a52 100644
--- a/radio_receive_calibration/index.html
+++ b/radio_receive_calibration/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/rak3401_1.17.1.7_legacy24/index.html b/rak3401_1.17.1.7_legacy24/index.html
index 8da987b14..a2bf6345c 100644
--- a/rak3401_1.17.1.7_legacy24/index.html
+++ b/rak3401_1.17.1.7_legacy24/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/rak3401_mota_chain/index.html b/rak3401_mota_chain/index.html
index ae6353d1f..909af7f37 100644
--- a/rak3401_mota_chain/index.html
+++ b/rak3401_mota_chain/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/releases/1.17.1.5-doc-audit/index.html b/releases/1.17.1.5-doc-audit/index.html
index 7d3b1117b..5e3b9caf6 100644
--- a/releases/1.17.1.5-doc-audit/index.html
+++ b/releases/1.17.1.5-doc-audit/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/releases/1.17.1.5/index.html b/releases/1.17.1.5/index.html
index 8100f840f..3531ded15 100644
--- a/releases/1.17.1.5/index.html
+++ b/releases/1.17.1.5/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/releases/1.17.1.6/index.html b/releases/1.17.1.6/index.html
index 06c2bd4d0..5cf64ed62 100644
--- a/releases/1.17.1.6/index.html
+++ b/releases/1.17.1.6/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/releases/1.17.1.7/index.html b/releases/1.17.1.7/index.html
index 03e9ddeaa..952b23099 100644
--- a/releases/1.17.1.7/index.html
+++ b/releases/1.17.1.7/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/releases/1.17.1.8/index.html b/releases/1.17.1.8/index.html
index 931da6f8f..47901d835 100644
--- a/releases/1.17.1.8/index.html
+++ b/releases/1.17.1.8/index.html
@@ -2612,7 +2612,7 @@
-
+
diff --git a/releases/1.17.1.9/index.html b/releases/1.17.1.9/index.html
index 04c112832..b24d6aba0 100644
--- a/releases/1.17.1.9/index.html
+++ b/releases/1.17.1.9/index.html
@@ -2794,7 +2794,7 @@ phone, operating system, bootloader or starting firmware version.
-
+
diff --git a/releases/1.18.0.1/index.html b/releases/1.18.0.1/index.html
index bb0446d76..da9decfdf 100644
--- a/releases/1.18.0.1/index.html
+++ b/releases/1.18.0.1/index.html
@@ -2670,7 +2670,7 @@ bootloader migration path.
-
+
diff --git a/research/companion_contact_cache/index.html b/research/companion_contact_cache/index.html
index 67efb0f0e..6121d95ff 100644
--- a/research/companion_contact_cache/index.html
+++ b/research/companion_contact_cache/index.html
@@ -2835,7 +2835,7 @@ policy. The second invocation verifies the persisted paths after reboot.
-
+
diff --git a/research/esp32_full_build_audit_2026-10-06/index.html b/research/esp32_full_build_audit_2026-10-06/index.html
index 860b67ddf..8a90e9cf4 100644
--- a/research/esp32_full_build_audit_2026-10-06/index.html
+++ b/research/esp32_full_build_audit_2026-10-06/index.html
@@ -2955,7 +2955,7 @@ qualification; build success alone does not cover them.
-
+
diff --git a/research/esp32_memory_budget/index.html b/research/esp32_memory_budget/index.html
index ae372e0c1..afbaae5a1 100644
--- a/research/esp32_memory_budget/index.html
+++ b/research/esp32_memory_budget/index.html
@@ -2559,7 +2559,7 @@ the Arduino 2.x repeater releases unused Bluetooth controller RAM in
-
+
diff --git a/research/firmware_choice_followup_2026-10-06/index.html b/research/firmware_choice_followup_2026-10-06/index.html
index 452a67e07..885a044fd 100644
--- a/research/firmware_choice_followup_2026-10-06/index.html
+++ b/research/firmware_choice_followup_2026-10-06/index.html
@@ -2763,7 +2763,7 @@ applications unless a separate combined application is designed and tested.
-
+
diff --git a/research/firmware_memory_budget/index.html b/research/firmware_memory_budget/index.html
index a5c0e663c..633327b43 100644
--- a/research/firmware_memory_budget/index.html
+++ b/research/firmware_memory_budget/index.html
@@ -3734,7 +3734,7 @@ for artifact hashes, tests, upgrade behavior and hardware limits.
-
+
diff --git a/research/index.html b/research/index.html
index 65eb7bcdf..5861e63b0 100644
--- a/research/index.html
+++ b/research/index.html
@@ -2571,7 +2571,7 @@
-
+
diff --git a/research/linux_chromium_web_serial_tty/index.html b/research/linux_chromium_web_serial_tty/index.html
index 47c71bf8c..72cd6e057 100644
--- a/research/linux_chromium_web_serial_tty/index.html
+++ b/research/linux_chromium_web_serial_tty/index.html
@@ -2598,7 +2598,7 @@ for the context-manager example and the hardware-free pseudoterminal test.
-
+
diff --git a/research/nrf52_bluetooth_debug/index.html b/research/nrf52_bluetooth_debug/index.html
index b3c36f0c3..aa1d601a2 100644
--- a/research/nrf52_bluetooth_debug/index.html
+++ b/research/nrf52_bluetooth_debug/index.html
@@ -2622,7 +2622,7 @@ SoftDevice radio timing and invalidates the test.
-
+
diff --git a/research/rak3401_1.17.1.7_legacy24/index.html b/research/rak3401_1.17.1.7_legacy24/index.html
index cba901577..a358a1f6f 100644
--- a/research/rak3401_1.17.1.7_legacy24/index.html
+++ b/research/rak3401_1.17.1.7_legacy24/index.html
@@ -2870,7 +2870,7 @@ checkout directories that share the same PlatformIO package installation.
-
+
diff --git a/research/rak3401_mota_chain/index.html b/research/rak3401_mota_chain/index.html
index db8858ee0..a269dfcd0 100644
--- a/research/rak3401_mota_chain/index.html
+++ b/research/rak3401_mota_chain/index.html
@@ -3489,7 +3489,7 @@ because its number appears first.
-
+
diff --git a/role_feature_switches/index.html b/role_feature_switches/index.html
index 7b6e910f9..484777d06 100644
--- a/role_feature_switches/index.html
+++ b/role_feature_switches/index.html
@@ -3318,7 +3318,7 @@ and Full Companion feature guide provi
-
+
diff --git a/room_services/index.html b/room_services/index.html
index 5619e35a2..78a283631 100644
--- a/room_services/index.html
+++ b/room_services/index.html
@@ -3411,7 +3411,7 @@ a physical LoRa/Wi-Fi transfer.
-
+
diff --git a/rs232_bridge_setup/index.html b/rs232_bridge_setup/index.html
index f25e1ebd0..6e85d72ac 100644
--- a/rs232_bridge_setup/index.html
+++ b/rs232_bridge_setup/index.html
@@ -2743,7 +2743,7 @@ corresponding peer and message checks.
-
+
diff --git a/s3_memory_soak_validation/index.html b/s3_memory_soak_validation/index.html
index 8cb71e3e1..229a758d6 100644
--- a/s3_memory_soak_validation/index.html
+++ b/s3_memory_soak_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/sensor_tracker/index.html b/sensor_tracker/index.html
index 8557c225a..09bd0a1c9 100644
--- a/sensor_tracker/index.html
+++ b/sensor_tracker/index.html
@@ -2913,7 +2913,7 @@ reporting intervals.
-
+
diff --git a/separated_radio_modulation_cache_validation/index.html b/separated_radio_modulation_cache_validation/index.html
index 07dca562b..62648c66c 100644
--- a/separated_radio_modulation_cache_validation/index.html
+++ b/separated_radio_modulation_cache_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/sf10_10_vs_100hz_full_sample_validation/index.html b/sf10_10_vs_100hz_full_sample_validation/index.html
index 2ac6a4c0c..e74ca7409 100644
--- a/sf10_10_vs_100hz_full_sample_validation/index.html
+++ b/sf10_10_vs_100hz_full_sample_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/sf10_10hz_cr_detour_validation/index.html b/sf10_10hz_cr_detour_validation/index.html
index 7db7d52d4..44b5ea312 100644
--- a/sf10_10hz_cr_detour_validation/index.html
+++ b/sf10_10hz_cr_detour_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/sf10_full_retune_twice_validation/index.html b/sf10_full_retune_twice_validation/index.html
index f6d9e2779..7a686609e 100644
--- a/sf10_full_retune_twice_validation/index.html
+++ b/sf10_full_retune_twice_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/sf10_nrf52_double_write_settling_validation/index.html b/sf10_nrf52_double_write_settling_validation/index.html
index cdf391027..686eb7052 100644
--- a/sf10_nrf52_double_write_settling_validation/index.html
+++ b/sf10_nrf52_double_write_settling_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/sf10_rollback_failure_validation/index.html b/sf10_rollback_failure_validation/index.html
index 8690ac577..99bd2deff 100644
--- a/sf10_rollback_failure_validation/index.html
+++ b/sf10_rollback_failure_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/sf125_settling_limits_validation/index.html b/sf125_settling_limits_validation/index.html
index 8618d5eb4..324b3990b 100644
--- a/sf125_settling_limits_validation/index.html
+++ b/sf125_settling_limits_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/sf5_250_dwell_validation/index.html b/sf5_250_dwell_validation/index.html
index 41ee32c9b..2f2136507 100644
--- a/sf5_250_dwell_validation/index.html
+++ b/sf5_250_dwell_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/sf6_125_settling_validation/index.html b/sf6_125_settling_validation/index.html
index 9a1fa4248..d31741916 100644
--- a/sf6_125_settling_validation/index.html
+++ b/sf6_125_settling_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/sf6_5p1_trace_validation/index.html b/sf6_5p1_trace_validation/index.html
index be88e422c..d538a9f11 100644
--- a/sf6_5p1_trace_validation/index.html
+++ b/sf6_5p1_trace_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/sf6_channel_scan_validation/index.html b/sf6_channel_scan_validation/index.html
index 42c24c9b9..45d7bc638 100644
--- a/sf6_channel_scan_validation/index.html
+++ b/sf6_channel_scan_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/sf8_5p1_trace_validation/index.html b/sf8_5p1_trace_validation/index.html
index 145b1c014..2f81997ff 100644
--- a/sf8_5p1_trace_validation/index.html
+++ b/sf8_5p1_trace_validation/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/solarxiao_power/index.html b/solarxiao_power/index.html
index 5fc736f94..b31cd426e 100644
--- a/solarxiao_power/index.html
+++ b/solarxiao_power/index.html
@@ -2891,7 +2891,7 @@ No state-of-charge percentage or coulomb counting is inferred from voltage.
-
+
diff --git a/spiffs_regular_file_reads/index.html b/spiffs_regular_file_reads/index.html
index fd848d203..da4524984 100644
--- a/spiffs_regular_file_reads/index.html
+++ b/spiffs_regular_file_reads/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/stats_binary_frames/index.html b/stats_binary_frames/index.html
index c41b882dc..6942725a3 100644
--- a/stats_binary_frames/index.html
+++ b/stats_binary_frames/index.html
@@ -3424,7 +3424,7 @@ function parseStatsPackets(buffer: ArrayBuffer): StatsPackets {
-
+
diff --git a/telemetry_decoder/index.html b/telemetry_decoder/index.html
index b17c7366c..7f121b30b 100644
--- a/telemetry_decoder/index.html
+++ b/telemetry_decoder/index.html
@@ -3062,7 +3062,7 @@ CLI Base64 page rather than analyzer hex.
-
+
diff --git a/terminal_chat_cli/index.html b/terminal_chat_cli/index.html
index 6e7279a8c..8faaa5132 100644
--- a/terminal_chat_cli/index.html
+++ b/terminal_chat_cli/index.html
@@ -3350,7 +3350,7 @@ length, which also includes the sender-name prefix added over the air.
-
+
diff --git a/test-results/2026-10-23-meshtext-full-defaults/index.html b/test-results/2026-10-23-meshtext-full-defaults/index.html
index 0991c10a6..fc01e181c 100644
--- a/test-results/2026-10-23-meshtext-full-defaults/index.html
+++ b/test-results/2026-10-23-meshtext-full-defaults/index.html
@@ -2650,7 +2650,7 @@ exclude LongFast; enabling software cannot add that hardware mode.
-
+
diff --git a/test-results/battery_calibration_2026-10-22/index.html b/test-results/battery_calibration_2026-10-22/index.html
index 4f503a08a..46603e0b3 100644
--- a/test-results/battery_calibration_2026-10-22/index.html
+++ b/test-results/battery_calibration_2026-10-22/index.html
@@ -2691,7 +2691,7 @@ records release-wrapper failures that these direct recipe builds did not cover.<
-
+
diff --git a/test-results/bootloader_version_stock_audit/index.html b/test-results/bootloader_version_stock_audit/index.html
index 674095c7f..8be7ca12b 100644
--- a/test-results/bootloader_version_stock_audit/index.html
+++ b/test-results/bootloader_version_stock_audit/index.html
@@ -2897,7 +2897,7 @@ cannot recover a version that was never embedded.
-
+
diff --git a/test-results/cad_scan_validation/index.html b/test-results/cad_scan_validation/index.html
index 8def96b0b..14a944f1d 100644
--- a/test-results/cad_scan_validation/index.html
+++ b/test-results/cad_scan_validation/index.html
@@ -2737,7 +2737,7 @@
-
+
diff --git a/test-results/carrier_wave_validation/index.html b/test-results/carrier_wave_validation/index.html
index c1a286a92..39725b2f5 100644
--- a/test-results/carrier_wave_validation/index.html
+++ b/test-results/carrier_wave_validation/index.html
@@ -2633,7 +2633,7 @@ Command guide: carrier-wave RF checks.
-
+
diff --git a/test-results/cli_settings_audit/index.html b/test-results/cli_settings_audit/index.html
index a76ccd09e..a67b1eff3 100644
--- a/test-results/cli_settings_audit/index.html
+++ b/test-results/cli_settings_audit/index.html
@@ -2576,7 +2576,7 @@ and build checks; subsequent hardware checks are recorded in the
-
+
diff --git a/test-results/companion_ble_refresh_2026-10-19/index.html b/test-results/companion_ble_refresh_2026-10-19/index.html
index 80d4a4907..69f98bfb2 100644
--- a/test-results/companion_ble_refresh_2026-10-19/index.html
+++ b/test-results/companion_ble_refresh_2026-10-19/index.html
@@ -2708,7 +2708,7 @@ page. The page contains no private device identifiers or raw contact records.
-
+
diff --git a/test-results/companion_cli_parity_2026-10-23/index.html b/test-results/companion_cli_parity_2026-10-23/index.html
index ae4e6e164..161acd958 100644
--- a/test-results/companion_cli_parity_2026-10-23/index.html
+++ b/test-results/companion_cli_parity_2026-10-23/index.html
@@ -2647,7 +2647,7 @@ that detects destructive loss of an unrelated update.
-
+
diff --git a/test-results/companion_contact_cache_results/index.html b/test-results/companion_contact_cache_results/index.html
index aa91a95ea..f35d5b18e 100644
--- a/test-results/companion_contact_cache_results/index.html
+++ b/test-results/companion_contact_cache_results/index.html
@@ -2741,7 +2741,7 @@ assets or firmware-picker entries were replaced by these experimental builds.
-
+
diff --git a/test-results/companion_lost_reply/index.html b/test-results/companion_lost_reply/index.html
index e9347dde8..d5239a1c7 100644
--- a/test-results/companion_lost_reply/index.html
+++ b/test-results/companion_lost_reply/index.html
@@ -2629,7 +2629,7 @@ boundaries are unchanged on those compact boards.
-
+
diff --git a/test-results/companion_qualification_f807_followup_2026-10-19/index.html b/test-results/companion_qualification_f807_followup_2026-10-19/index.html
index 8663ac3c6..356484e1a 100644
--- a/test-results/companion_qualification_f807_followup_2026-10-19/index.html
+++ b/test-results/companion_qualification_f807_followup_2026-10-19/index.html
@@ -2740,7 +2740,7 @@ Results and failures above retain their original firmware sources.
-
+
diff --git a/test-results/companion_qualification_followup_2026-10-19/index.html b/test-results/companion_qualification_followup_2026-10-19/index.html
index 27ee7960d..32f02db6c 100644
--- a/test-results/companion_qualification_followup_2026-10-19/index.html
+++ b/test-results/companion_qualification_followup_2026-10-19/index.html
@@ -2579,7 +2579,7 @@ Results and failures above retain their original firmware sources.
-
+
diff --git a/test-results/companion_usb_ascii_validation/index.html b/test-results/companion_usb_ascii_validation/index.html
index 3e1a8e609..f6b0761d5 100644
--- a/test-results/companion_usb_ascii_validation/index.html
+++ b/test-results/companion_usb_ascii_validation/index.html
@@ -2541,7 +2541,7 @@ across the board matrix.
-
+
diff --git a/test-results/companion_usb_client_validation/index.html b/test-results/companion_usb_client_validation/index.html
index 40e59f9f9..fbe3b20f6 100644
--- a/test-results/companion_usb_client_validation/index.html
+++ b/test-results/companion_usb_client_validation/index.html
@@ -2623,7 +2623,7 @@ reboot so the default-ASCII check has a new session. On ESP32, omit both
-
+
diff --git a/test-results/contact_memory_2026-10-19/index.html b/test-results/contact_memory_2026-10-19/index.html
index c19101372..38a3b3f42 100644
--- a/test-results/contact_memory_2026-10-19/index.html
+++ b/test-results/contact_memory_2026-10-19/index.html
@@ -2823,7 +2823,7 @@ outside this qualification.
-
+
diff --git a/test-results/double_frequency_v4_validation/index.html b/test-results/double_frequency_v4_validation/index.html
index 729694641..8cc3284cf 100644
--- a/test-results/double_frequency_v4_validation/index.html
+++ b/test-results/double_frequency_v4_validation/index.html
@@ -2671,7 +2671,7 @@ and frequency-repeat scope/error propagation. Temporary build overlay removed.
-
+
diff --git a/test-results/esp32_ble_radio2_sleep_2026-10-21/index.html b/test-results/esp32_ble_radio2_sleep_2026-10-21/index.html
index 6f9e386b0..ac0b84a7e 100644
--- a/test-results/esp32_ble_radio2_sleep_2026-10-21/index.html
+++ b/test-results/esp32_ble_radio2_sleep_2026-10-21/index.html
@@ -3385,7 +3385,7 @@ and the limits of interpreting wait counters as energy savings.
-
+
diff --git a/test-results/esp32_full_power_ap_2026-10-06/index.html b/test-results/esp32_full_power_ap_2026-10-06/index.html
index c75153560..0ec57d147 100644
--- a/test-results/esp32_full_power_ap_2026-10-06/index.html
+++ b/test-results/esp32_full_power_ap_2026-10-06/index.html
@@ -2690,7 +2690,7 @@ CLI success and mocked SDK state alone are insufficient.
-
+
diff --git a/test-results/esp32_management_password_2026-10-19/index.html b/test-results/esp32_management_password_2026-10-19/index.html
index d34e74b2e..248b3a657 100644
--- a/test-results/esp32_management_password_2026-10-19/index.html
+++ b/test-results/esp32_management_password_2026-10-19/index.html
@@ -2674,7 +2674,7 @@ roles, partition migration, and other hardware families.
-
+
diff --git a/test-results/esp32_spi_clock_retune_2026-10-23/index.html b/test-results/esp32_spi_clock_retune_2026-10-23/index.html
index de1c784c7..0b47aa127 100644
--- a/test-results/esp32_spi_clock_retune_2026-10-23/index.html
+++ b/test-results/esp32_spi_clock_retune_2026-10-23/index.html
@@ -2732,7 +2732,7 @@ control and analysis behavior.
-
+
diff --git a/test-results/espnow_bridge_diagnostics_2026-10-22/index.html b/test-results/espnow_bridge_diagnostics_2026-10-22/index.html
index 3d62b19d4..61ad9d104 100644
--- a/test-results/espnow_bridge_diagnostics_2026-10-22/index.html
+++ b/test-results/espnow_bridge_diagnostics_2026-10-22/index.html
@@ -2594,7 +2594,7 @@ are not a complete end-to-end delivery ledger.
-
+
diff --git a/test-results/firmware_variant_consolidation/index.html b/test-results/firmware_variant_consolidation/index.html
index a086f358e..f2b1025b0 100644
--- a/test-results/firmware_variant_consolidation/index.html
+++ b/test-results/firmware_variant_consolidation/index.html
@@ -2656,7 +2656,7 @@ The packages were built locally; physical testing of these combinations remains
-
+
diff --git a/test-results/four_fixed_tx_dwell_validation/index.html b/test-results/four_fixed_tx_dwell_validation/index.html
index 1211523bf..f67e7ddc8 100644
--- a/test-results/four_fixed_tx_dwell_validation/index.html
+++ b/test-results/four_fixed_tx_dwell_validation/index.html
@@ -2734,7 +2734,7 @@ is a finite bench comparison, not a calibrated sensitivity or interference test.
-
+
diff --git a/test-results/four_fixed_tx_single_pass_validation/index.html b/test-results/four_fixed_tx_single_pass_validation/index.html
index 4fa75b68d..f422faf84 100644
--- a/test-results/four_fixed_tx_single_pass_validation/index.html
+++ b/test-results/four_fixed_tx_single_pass_validation/index.html
@@ -2782,7 +2782,7 @@ were preserved.
-
+
diff --git a/test-results/full_usb_logging_validation/index.html b/test-results/full_usb_logging_validation/index.html
index 911c68ba3..34150e9a8 100644
--- a/test-results/full_usb_logging_validation/index.html
+++ b/test-results/full_usb_logging_validation/index.html
@@ -2579,7 +2579,7 @@ Room Server: 7ee81f1cb65fc274bd363397c3c80ce9006d575efae50fe952c8ca246613a18c
-
+
diff --git a/test-results/hardware_validation_bluetooth_stealth_2026-09-07/index.html b/test-results/hardware_validation_bluetooth_stealth_2026-09-07/index.html
index b6a28d590..b267ee520 100644
--- a/test-results/hardware_validation_bluetooth_stealth_2026-09-07/index.html
+++ b/test-results/hardware_validation_bluetooth_stealth_2026-09-07/index.html
@@ -2785,7 +2785,7 @@ about 5.9 MiB. No USB reset, Pi reboot, or target battery removal was used.
-
+
diff --git a/test-results/hardware_validation_checklist/index.html b/test-results/hardware_validation_checklist/index.html
index 61a7bbd9a..6a6895897 100644
--- a/test-results/hardware_validation_checklist/index.html
+++ b/test-results/hardware_validation_checklist/index.html
@@ -4368,7 +4368,7 @@ network, and reboot record in that manifest.
-
+
diff --git a/test-results/hardware_validation_esp32_web_console_ota_2026-10-05/index.html b/test-results/hardware_validation_esp32_web_console_ota_2026-10-05/index.html
index 8d610d1eb..09c2e51b6 100644
--- a/test-results/hardware_validation_esp32_web_console_ota_2026-10-05/index.html
+++ b/test-results/hardware_validation_esp32_web_console_ota_2026-10-05/index.html
@@ -2867,7 +2867,7 @@ for their exact source revisions and measured scope.
-
+
diff --git a/test-results/hardware_validation_esp32_web_console_startup_2026-10-05/index.html b/test-results/hardware_validation_esp32_web_console_startup_2026-10-05/index.html
index aef022c4f..4e82e4d21 100644
--- a/test-results/hardware_validation_esp32_web_console_startup_2026-10-05/index.html
+++ b/test-results/hardware_validation_esp32_web_console_startup_2026-10-05/index.html
@@ -3146,7 +3146,7 @@ corrected to accept the prefix and never controlled first-connect PASS/FAIL.
-
+
diff --git a/test-results/hardware_validation_heltec_v4_native_console_2026-10-06/index.html b/test-results/hardware_validation_heltec_v4_native_console_2026-10-06/index.html
index 2922ca475..100bbc03b 100644
--- a/test-results/hardware_validation_heltec_v4_native_console_2026-10-06/index.html
+++ b/test-results/hardware_validation_heltec_v4_native_console_2026-10-06/index.html
@@ -2817,7 +2817,7 @@ and unpublished.
-
+
diff --git a/test-results/hardware_validation_heltec_v4_scan_first_ap_2026-10-06/index.html b/test-results/hardware_validation_heltec_v4_scan_first_ap_2026-10-06/index.html
index e161e0fc8..3dfe3aa36 100644
--- a/test-results/hardware_validation_heltec_v4_scan_first_ap_2026-10-06/index.html
+++ b/test-results/hardware_validation_heltec_v4_scan_first_ap_2026-10-06/index.html
@@ -2670,7 +2670,7 @@ CLI success and simulated state alone are insufficient.
-
+
diff --git a/test-results/hardware_validation_known_failures_1_18_0_1_2026-10-20/index.html b/test-results/hardware_validation_known_failures_1_18_0_1_2026-10-20/index.html
index 57c90c2f4..3b29e3f7d 100644
--- a/test-results/hardware_validation_known_failures_1_18_0_1_2026-10-20/index.html
+++ b/test-results/hardware_validation_known_failures_1_18_0_1_2026-10-20/index.html
@@ -2673,7 +2673,7 @@ remain visible. Private device identities, addresses and raw responses are omitt
-
+
diff --git a/test-results/hardware_validation_mercerwood_1_18_0_1_2026-10-18/index.html b/test-results/hardware_validation_mercerwood_1_18_0_1_2026-10-18/index.html
index 393243373..5523d62de 100644
--- a/test-results/hardware_validation_mercerwood_1_18_0_1_2026-10-18/index.html
+++ b/test-results/hardware_validation_mercerwood_1_18_0_1_2026-10-18/index.html
@@ -3209,7 +3209,7 @@ cores remain outside the repository in the dated campaign directories.
-
+
diff --git a/test-results/hardware_validation_mercerwood_1_18_0_1_2026-10-19/index.html b/test-results/hardware_validation_mercerwood_1_18_0_1_2026-10-19/index.html
index 266db2620..e9552d215 100644
--- a/test-results/hardware_validation_mercerwood_1_18_0_1_2026-10-19/index.html
+++ b/test-results/hardware_validation_mercerwood_1_18_0_1_2026-10-19/index.html
@@ -2619,7 +2619,7 @@ C2 bootloader entries describe source-qualified installation evidence, including
-
+
diff --git a/test-results/hardware_validation_mercerwood_1_18_0_1_2026-10-20/index.html b/test-results/hardware_validation_mercerwood_1_18_0_1_2026-10-20/index.html
index 66bcd6b0c..4a3effa23 100644
--- a/test-results/hardware_validation_mercerwood_1_18_0_1_2026-10-20/index.html
+++ b/test-results/hardware_validation_mercerwood_1_18_0_1_2026-10-20/index.html
@@ -2630,7 +2630,7 @@ results remain in the
-
+
diff --git a/test-results/hardware_validation_ota_1_18_0_1_2026-10-20/index.html b/test-results/hardware_validation_ota_1_18_0_1_2026-10-20/index.html
index 750e88b4b..8504c7025 100644
--- a/test-results/hardware_validation_ota_1_18_0_1_2026-10-20/index.html
+++ b/test-results/hardware_validation_ota_1_18_0_1_2026-10-20/index.html
@@ -3023,7 +3023,7 @@ Earlier accepted Companion tests are not repeated without a relevant change.
-
+
diff --git a/test-results/heltec_t114_display_detection/index.html b/test-results/heltec_t114_display_detection/index.html
index a632f0081..805acf98b 100644
--- a/test-results/heltec_t114_display_detection/index.html
+++ b/test-results/heltec_t114_display_detection/index.html
@@ -2591,7 +2591,7 @@ screen sleep/wake, Bluetooth/USB connections, and normal radio receive/transmit.
-
+
diff --git a/test-results/heltec_v2_ble_memory_2026-10-22/index.html b/test-results/heltec_v2_ble_memory_2026-10-22/index.html
index afc7b1670..2c8e31a4d 100644
--- a/test-results/heltec_v2_ble_memory_2026-10-22/index.html
+++ b/test-results/heltec_v2_ble_memory_2026-10-22/index.html
@@ -2591,7 +2591,7 @@ hardware qualification claims.
-
+
diff --git a/test-results/heltec_v3_full_memory_2026-10-19/index.html b/test-results/heltec_v3_full_memory_2026-10-19/index.html
index 57823be70..ff4aacfd3 100644
--- a/test-results/heltec_v3_full_memory_2026-10-19/index.html
+++ b/test-results/heltec_v3_full_memory_2026-10-19/index.html
@@ -2602,7 +2602,7 @@ These software results do not establish that hardware acceptance.
-
+
diff --git a/test-results/heltec_v3_preview3_ram/index.html b/test-results/heltec_v3_preview3_ram/index.html
index 77ea59f14..2eb6a8e1c 100644
--- a/test-results/heltec_v3_preview3_ram/index.html
+++ b/test-results/heltec_v3_preview3_ram/index.html
@@ -2663,7 +2663,7 @@ python3 -B test/test_firmware_ram.py
-
+
diff --git a/test-results/home_text_spacing/index.html b/test-results/home_text_spacing/index.html
index dd0c27457..67b292d03 100644
--- a/test-results/home_text_spacing/index.html
+++ b/test-results/home_text_spacing/index.html
@@ -2472,7 +2472,7 @@ then check the repeater's five rows and the V4's non-blinking reader footer.
-
+
diff --git a/test-results/index.html b/test-results/index.html
index 642f91cd2..8fa836e8d 100644
--- a/test-results/index.html
+++ b/test-results/index.html
@@ -2677,7 +2677,7 @@
-
+
diff --git a/test-results/mbedtls-tls-footprint/index.html b/test-results/mbedtls-tls-footprint/index.html
index 4ae926ea7..d6bc89121 100644
--- a/test-results/mbedtls-tls-footprint/index.html
+++ b/test-results/mbedtls-tls-footprint/index.html
@@ -2830,7 +2830,7 @@ not the cause, and waev does not cap connections per IP.
-
+
diff --git a/test-results/mesh_pocket_qualification_1_18_0_1_2026-10-21/index.html b/test-results/mesh_pocket_qualification_1_18_0_1_2026-10-21/index.html
index fc92fb6c4..728843dda 100644
--- a/test-results/mesh_pocket_qualification_1_18_0_1_2026-10-21/index.html
+++ b/test-results/mesh_pocket_qualification_1_18_0_1_2026-10-21/index.html
@@ -2543,7 +2543,7 @@ installation is disabled and was not claimed tested.
-
+
diff --git a/test-results/mixed_scan_validation/index.html b/test-results/mixed_scan_validation/index.html
index d1bc55c0a..bdf27b1b5 100644
--- a/test-results/mixed_scan_validation/index.html
+++ b/test-results/mixed_scan_validation/index.html
@@ -2556,7 +2556,7 @@ were restarted in phase B-post-CAD-soak, marking the intentional up
-
+
diff --git a/test-results/mixed_sf_bw_validation/index.html b/test-results/mixed_sf_bw_validation/index.html
index 92cac07a0..2a8b20211 100644
--- a/test-results/mixed_sf_bw_validation/index.html
+++ b/test-results/mixed_sf_bw_validation/index.html
@@ -2735,7 +2735,7 @@ these HIL changes; this is not a clean-release comparison.
-
+
diff --git a/test-results/morse_rx_hil_2026-10-12/index.html b/test-results/morse_rx_hil_2026-10-12/index.html
index 2c184b3db..771388128 100644
--- a/test-results/morse_rx_hil_2026-10-12/index.html
+++ b/test-results/morse_rx_hil_2026-10-12/index.html
@@ -3046,7 +3046,7 @@ remains on the identified fast HIL applications, not shipping images.
-
+
diff --git a/test-results/mqtt_tls_v4_regression/index.html b/test-results/mqtt_tls_v4_regression/index.html
index b9f0b519e..f5ebf8a00 100644
--- a/test-results/mqtt_tls_v4_regression/index.html
+++ b/test-results/mqtt_tls_v4_regression/index.html
@@ -2833,7 +2833,7 @@ not the cause of the reporter's hardware failure or website-side availability.
-
+
diff --git a/test-results/nimble_companion_trial/index.html b/test-results/nimble_companion_trial/index.html
index 4dc31d3e8..92350947c 100644
--- a/test-results/nimble_companion_trial/index.html
+++ b/test-results/nimble_companion_trial/index.html
@@ -2673,7 +2673,7 @@ Android camera/pairing compatibility.
-
+
diff --git a/test-results/nimble_companion_trial_results/index.html b/test-results/nimble_companion_trial_results/index.html
index 9aad8e7cf..7840d9251 100644
--- a/test-results/nimble_companion_trial_results/index.html
+++ b/test-results/nimble_companion_trial_results/index.html
@@ -2682,7 +2682,7 @@ profile does not include direct MQTT; the V4 does.
-
+
diff --git a/test-results/nrf52-bluetooth-dfu-handoff/index.html b/test-results/nrf52-bluetooth-dfu-handoff/index.html
index 5145f08eb..ac67cf699 100644
--- a/test-results/nrf52-bluetooth-dfu-handoff/index.html
+++ b/test-results/nrf52-bluetooth-dfu-handoff/index.html
@@ -2896,7 +2896,7 @@ physical charge-only-cable, battery-only, or LoRa transfer qualification.
-
+
diff --git a/test-results/nrf52-usb-ready-fix/index.html b/test-results/nrf52-usb-ready-fix/index.html
index 1c61f11bd..58364a748 100644
--- a/test-results/nrf52-usb-ready-fix/index.html
+++ b/test-results/nrf52-usb-ready-fix/index.html
@@ -2495,7 +2495,7 @@ The harness is shared with OTAFIX's TinyUSB fork at
-
+
diff --git a/test-results/nrf52_companion_storage_recovery/index.html b/test-results/nrf52_companion_storage_recovery/index.html
index fb8000873..7b6b33a41 100644
--- a/test-results/nrf52_companion_storage_recovery/index.html
+++ b/test-results/nrf52_companion_storage_recovery/index.html
@@ -2552,7 +2552,7 @@ values; receiving new verified advertisements can refresh them normally.
-
+
diff --git a/test-results/other_board_radio2_fast_switch_2026-10-23/index.html b/test-results/other_board_radio2_fast_switch_2026-10-23/index.html
index 55e065e1a..414cfd23a 100644
--- a/test-results/other_board_radio2_fast_switch_2026-10-23/index.html
+++ b/test-results/other_board_radio2_fast_switch_2026-10-23/index.html
@@ -2940,7 +2940,7 @@ record the build sizes and physical test scope. Command details are in
-
+
diff --git a/test-results/pair_4p6_300us_validation/index.html b/test-results/pair_4p6_300us_validation/index.html
index 07fb1e33c..d796a3e9e 100644
--- a/test-results/pair_4p6_300us_validation/index.html
+++ b/test-results/pair_4p6_300us_validation/index.html
@@ -2576,7 +2576,7 @@ services are active, and the previously paused memory soak remains inactive.
-
+
diff --git a/test-results/pair_preamble32_validation/index.html b/test-results/pair_preamble32_validation/index.html
index 4121f3fdc..2c3a58899 100644
--- a/test-results/pair_preamble32_validation/index.html
+++ b/test-results/pair_preamble32_validation/index.html
@@ -2695,7 +2695,7 @@ completed 197/200 scanning packets: slow 97/100, fast 100/100, after fresh
-
+
diff --git a/test-results/pr7_review_validation/index.html b/test-results/pr7_review_validation/index.html
index d7dfe5446..d215e67e0 100644
--- a/test-results/pr7_review_validation/index.html
+++ b/test-results/pr7_review_validation/index.html
@@ -2564,7 +2564,7 @@ cover that path. Physical display readability was not inspected.
-
+
diff --git a/test-results/preamble_detection_investigation/index.html b/test-results/preamble_detection_investigation/index.html
index fa6c64841..b5a082e7c 100644
--- a/test-results/preamble_detection_investigation/index.html
+++ b/test-results/preamble_detection_investigation/index.html
@@ -2726,7 +2726,7 @@ tests, and results were initially handed off locally before publication.
-
+
diff --git a/test-results/preview-1.17.1.8/heltec-v4-preview4-bluetooth-oled/index.html b/test-results/preview-1.17.1.8/heltec-v4-preview4-bluetooth-oled/index.html
index 84a03732e..f2949b471 100644
--- a/test-results/preview-1.17.1.8/heltec-v4-preview4-bluetooth-oled/index.html
+++ b/test-results/preview-1.17.1.8/heltec-v4-preview4-bluetooth-oled/index.html
@@ -2655,7 +2655,7 @@ label once generation finishes.
-
+
diff --git a/test-results/preview-1.17.1.8/index.html b/test-results/preview-1.17.1.8/index.html
index efd629621..558a5b9cd 100644
--- a/test-results/preview-1.17.1.8/index.html
+++ b/test-results/preview-1.17.1.8/index.html
@@ -2521,7 +2521,7 @@
-
+
diff --git a/test-results/radio2_simultaneous_receivers_2026-10-22/index.html b/test-results/radio2_simultaneous_receivers_2026-10-22/index.html
index 56c7a73e8..672de7723 100644
--- a/test-results/radio2_simultaneous_receivers_2026-10-22/index.html
+++ b/test-results/radio2_simultaneous_receivers_2026-10-22/index.html
@@ -3042,7 +3042,7 @@ Earlier failures and causal limits also remain in the
-
+
diff --git a/test-results/radio_chirp_math_validation/index.html b/test-results/radio_chirp_math_validation/index.html
index 4c46b60da..100d96168 100644
--- a/test-results/radio_chirp_math_validation/index.html
+++ b/test-results/radio_chirp_math_validation/index.html
@@ -2635,7 +2635,7 @@ checks equality against the production 4.6/300-us allocation.
-
+
diff --git a/test-results/radio_dwell_policy_validation/index.html b/test-results/radio_dwell_policy_validation/index.html
index 0fc6d656b..461ae4321 100644
--- a/test-results/radio_dwell_policy_validation/index.html
+++ b/test-results/radio_dwell_policy_validation/index.html
@@ -2543,7 +2543,7 @@ ownership alongside the timing model.
-
+
diff --git a/test-results/radio_profile_switch_validation/index.html b/test-results/radio_profile_switch_validation/index.html
index 39b41ef91..e99742a84 100644
--- a/test-results/radio_profile_switch_validation/index.html
+++ b/test-results/radio_profile_switch_validation/index.html
@@ -3301,7 +3301,7 @@ measurements, not on-board qualification of every CustomSX1262 targ
-
+
diff --git a/test-results/radio_profiles_validation/index.html b/test-results/radio_profiles_validation/index.html
index b7e3b3cec..13d865085 100644
--- a/test-results/radio_profiles_validation/index.html
+++ b/test-results/radio_profiles_validation/index.html
@@ -2888,7 +2888,7 @@ The Pi's soak service and Indicator telemetry were also healthy after restoratio
-
+
diff --git a/test-results/radio_receive_calibration/index.html b/test-results/radio_receive_calibration/index.html
index bfe7f1be8..23f62a264 100644
--- a/test-results/radio_receive_calibration/index.html
+++ b/test-results/radio_receive_calibration/index.html
@@ -2570,7 +2570,7 @@ checks do not establish battery-life or hardware fault-recovery results.
-
+
diff --git a/test-results/rak3401_all_roles_cpu_sleep_2026-10-21/index.html b/test-results/rak3401_all_roles_cpu_sleep_2026-10-21/index.html
index 2cd2ad3f7..f141d774e 100644
--- a/test-results/rak3401_all_roles_cpu_sleep_2026-10-21/index.html
+++ b/test-results/rak3401_all_roles_cpu_sleep_2026-10-21/index.html
@@ -2719,7 +2719,7 @@ bootloader-byte preservation check.
-
+
diff --git a/test-results/rak3401_radio2_fast_switch_2026-10-23/index.html b/test-results/rak3401_radio2_fast_switch_2026-10-23/index.html
index c8dfbf49f..d7c7750d8 100644
--- a/test-results/rak3401_radio2_fast_switch_2026-10-23/index.html
+++ b/test-results/rak3401_radio2_fast_switch_2026-10-23/index.html
@@ -2839,7 +2839,7 @@ record the same scope and failures.
-
+
diff --git a/test-results/rak3401_radio2_recommended_preamble_2026-10-23/index.html b/test-results/rak3401_radio2_recommended_preamble_2026-10-23/index.html
index e693c157a..90a91fe43 100644
--- a/test-results/rak3401_radio2_recommended_preamble_2026-10-23/index.html
+++ b/test-results/rak3401_radio2_recommended_preamble_2026-10-23/index.html
@@ -2585,7 +2585,7 @@ analysis confirmed the packet losses and the separate debugger failure.
-
+
diff --git a/test-results/rak3401_radio2_sf5_bw500_p384_2026-10-23/index.html b/test-results/rak3401_radio2_sf5_bw500_p384_2026-10-23/index.html
index 82e90df57..092466668 100644
--- a/test-results/rak3401_radio2_sf5_bw500_p384_2026-10-23/index.html
+++ b/test-results/rak3401_radio2_sf5_bw500_p384_2026-10-23/index.html
@@ -2680,7 +2680,7 @@ qualification results.
-
+
diff --git a/test-results/rak_release_fixes_2026-10-22/index.html b/test-results/rak_release_fixes_2026-10-22/index.html
index 41cdafcf0..0dd6f98a1 100644
--- a/test-results/rak_release_fixes_2026-10-22/index.html
+++ b/test-results/rak_release_fixes_2026-10-22/index.html
@@ -2684,7 +2684,7 @@ traffic, physical OTA installation, maximum-load operation or a long RF soak.
-
+
diff --git a/test-results/regulator_recovery_2026-10-18/index.html b/test-results/regulator_recovery_2026-10-18/index.html
index da85c9992..63e82a1a8 100644
--- a/test-results/regulator_recovery_2026-10-18/index.html
+++ b/test-results/regulator_recovery_2026-10-18/index.html
@@ -2882,7 +2882,7 @@
-
+
diff --git a/test-results/room_mailboxes/index.html b/test-results/room_mailboxes/index.html
index 84cb35286..3513bf3be 100644
--- a/test-results/room_mailboxes/index.html
+++ b/test-results/room_mailboxes/index.html
@@ -2568,7 +2568,7 @@ They do not replace a live long-duration stack-watermark test.
-
+
diff --git a/test-results/rs232_bridge_diagnostics_2026-10-22/index.html b/test-results/rs232_bridge_diagnostics_2026-10-22/index.html
index 86ce36437..8eb3d9070 100644
--- a/test-results/rs232_bridge_diagnostics_2026-10-22/index.html
+++ b/test-results/rs232_bridge_diagnostics_2026-10-22/index.html
@@ -2598,7 +2598,7 @@ for this change.
-
+
diff --git a/test-results/s3_memory_soak_validation/index.html b/test-results/s3_memory_soak_validation/index.html
index 693772b0f..2681e3a91 100644
--- a/test-results/s3_memory_soak_validation/index.html
+++ b/test-results/s3_memory_soak_validation/index.html
@@ -2812,7 +2812,7 @@ rollover. They are not substitutes for the hardware evidence.
-
+
diff --git a/test-results/saved_spi9_2026-10-23/index.html b/test-results/saved_spi9_2026-10-23/index.html
index af99828bd..7a2d537fe 100644
--- a/test-results/saved_spi9_2026-10-23/index.html
+++ b/test-results/saved_spi9_2026-10-23/index.html
@@ -2567,7 +2567,7 @@ identities and CLI logs are excluded.
-
+
diff --git a/test-results/sensor_dog_tracker/index.html b/test-results/sensor_dog_tracker/index.html
index 49bf53e5a..d0ce53723 100644
--- a/test-results/sensor_dog_tracker/index.html
+++ b/test-results/sensor_dog_tracker/index.html
@@ -2626,7 +2626,7 @@ needed on T1000-E and RAK Tag are listed in the
-
+
diff --git a/test-results/separated_radio_modulation_cache_validation/index.html b/test-results/separated_radio_modulation_cache_validation/index.html
index f3e18f1f3..2be13b8b3 100644
--- a/test-results/separated_radio_modulation_cache_validation/index.html
+++ b/test-results/separated_radio_modulation_cache_validation/index.html
@@ -2759,7 +2759,7 @@ again unless requested. No private backup contents were added to Git.
-
+
diff --git a/test-results/sf10_10_vs_100hz_full_sample_validation/index.html b/test-results/sf10_10_vs_100hz_full_sample_validation/index.html
index ea1e4a780..760288b1c 100644
--- a/test-results/sf10_10_vs_100hz_full_sample_validation/index.html
+++ b/test-results/sf10_10_vs_100hz_full_sample_validation/index.html
@@ -2789,7 +2789,7 @@ Earlier captures were not overwritten.
-
+
diff --git a/test-results/sf10_10hz_cr_detour_validation/index.html b/test-results/sf10_10hz_cr_detour_validation/index.html
index c2296d2f3..b0eb593a9 100644
--- a/test-results/sf10_10hz_cr_detour_validation/index.html
+++ b/test-results/sf10_10hz_cr_detour_validation/index.html
@@ -2696,7 +2696,7 @@ the exact tested-image identifier. Prior captures were preserved.
-
+
diff --git a/test-results/sf10_full_retune_twice_validation/index.html b/test-results/sf10_full_retune_twice_validation/index.html
index 8309a68e9..6370209d0 100644
--- a/test-results/sf10_full_retune_twice_validation/index.html
+++ b/test-results/sf10_full_retune_twice_validation/index.html
@@ -2661,7 +2661,7 @@ these HIL-only additions, not a clean-release comparison.
-
+
diff --git a/test-results/sf10_nrf52_double_write_settling_validation/index.html b/test-results/sf10_nrf52_double_write_settling_validation/index.html
index 5da43d9e2..99bea11d9 100644
--- a/test-results/sf10_nrf52_double_write_settling_validation/index.html
+++ b/test-results/sf10_nrf52_double_write_settling_validation/index.html
@@ -2620,7 +2620,7 @@ build overlay removed. No background test collector remains running.
-
+
diff --git a/test-results/sf10_rollback_failure_validation/index.html b/test-results/sf10_rollback_failure_validation/index.html
index cd4960a55..c86440f06 100644
--- a/test-results/sf10_rollback_failure_validation/index.html
+++ b/test-results/sf10_rollback_failure_validation/index.html
@@ -3004,7 +3004,7 @@ these uncommitted HIL additions; this is not a clean-release comparison.
-
+
diff --git a/test-results/sf125_settling_limits_validation/index.html b/test-results/sf125_settling_limits_validation/index.html
index 43726c28f..cbd9f9f06 100644
--- a/test-results/sf125_settling_limits_validation/index.html
+++ b/test-results/sf125_settling_limits_validation/index.html
@@ -2637,7 +2637,7 @@ has been removed.
-
+
diff --git a/test-results/sf5_250_dwell_validation/index.html b/test-results/sf5_250_dwell_validation/index.html
index 78862eef8..10e795ab2 100644
--- a/test-results/sf5_250_dwell_validation/index.html
+++ b/test-results/sf5_250_dwell_validation/index.html
@@ -2715,7 +2715,7 @@ S3 soak work were not modified. The temporary build overlay was removed.
-
+
diff --git a/test-results/sf6_125_settling_validation/index.html b/test-results/sf6_125_settling_validation/index.html
index c37bae805..26e63f4a0 100644
--- a/test-results/sf6_125_settling_validation/index.html
+++ b/test-results/sf6_125_settling_validation/index.html
@@ -2740,7 +2740,7 @@ The temporary build overlay was removed; no autonomous test TX remains.
-
+
diff --git a/test-results/sf6_5p1_trace_validation/index.html b/test-results/sf6_5p1_trace_validation/index.html
index ec0fcad26..799a1d35c 100644
--- a/test-results/sf6_5p1_trace_validation/index.html
+++ b/test-results/sf6_5p1_trace_validation/index.html
@@ -2720,7 +2720,7 @@ logger was not restarted. Changes were initially handed off locally before publi
-
+
diff --git a/test-results/sf6_channel_scan_validation/index.html b/test-results/sf6_channel_scan_validation/index.html
index 82763b22a..ec6d016f6 100644
--- a/test-results/sf6_channel_scan_validation/index.html
+++ b/test-results/sf6_channel_scan_validation/index.html
@@ -2636,7 +2636,7 @@ before publication.
-
+
diff --git a/test-results/sf8_5p1_trace_validation/index.html b/test-results/sf8_5p1_trace_validation/index.html
index dfaae6c2d..902687516 100644
--- a/test-results/sf8_5p1_trace_validation/index.html
+++ b/test-results/sf8_5p1_trace_validation/index.html
@@ -2697,7 +2697,7 @@ results were initially handed off locally before publication.
-
+
diff --git a/test-results/solarxiao_33s_head_bootloader_lora_ota_2026-10-21/index.html b/test-results/solarxiao_33s_head_bootloader_lora_ota_2026-10-21/index.html
index ddeb38eff..6e2af399a 100644
--- a/test-results/solarxiao_33s_head_bootloader_lora_ota_2026-10-21/index.html
+++ b/test-results/solarxiao_33s_head_bootloader_lora_ota_2026-10-21/index.html
@@ -2637,7 +2637,7 @@ preserves that initial cleanup result and the completed restoration check.
-
+
diff --git a/test-results/solarxiao_advanced_2026-10-21/index.html b/test-results/solarxiao_advanced_2026-10-21/index.html
index 8124a1192..654261af0 100644
--- a/test-results/solarxiao_advanced_2026-10-21/index.html
+++ b/test-results/solarxiao_advanced_2026-10-21/index.html
@@ -2622,7 +2622,7 @@ measure charge current, solar power or charger state.
-
+
diff --git a/test-results/solarxiao_auto_2026-10-21/index.html b/test-results/solarxiao_auto_2026-10-21/index.html
index 3d6219b49..f82b5354f 100644
--- a/test-results/solarxiao_auto_2026-10-21/index.html
+++ b/test-results/solarxiao_auto_2026-10-21/index.html
@@ -2647,7 +2647,7 @@ chemistry/cell-count checks still independently guard all charger writes.
-
+
diff --git a/test-results/solarxiao_basic_2026-10-21/index.html b/test-results/solarxiao_basic_2026-10-21/index.html
index 55ccc8233..fcd18bd84 100644
--- a/test-results/solarxiao_basic_2026-10-21/index.html
+++ b/test-results/solarxiao_basic_2026-10-21/index.html
@@ -2567,7 +2567,7 @@ commands. Packages and logs are retained under
-
+
diff --git a/test-results/solarxiao_ina260_2026-10-21/index.html b/test-results/solarxiao_ina260_2026-10-21/index.html
index 904e09756..7be8fce71 100644
--- a/test-results/solarxiao_ina260_2026-10-21/index.html
+++ b/test-results/solarxiao_ina260_2026-10-21/index.html
@@ -2607,7 +2607,7 @@ build-checked only; live INA260 acceptance used the Full package.
-
+
diff --git a/test-results/solarxiao_power_2026-10-21/index.html b/test-results/solarxiao_power_2026-10-21/index.html
index 57a5864fa..74d5b9e39 100644
--- a/test-results/solarxiao_power_2026-10-21/index.html
+++ b/test-results/solarxiao_power_2026-10-21/index.html
@@ -2632,7 +2632,7 @@ package is qualified by this report.
-
+
diff --git a/test-results/solarxiao_room_2026-10-21/index.html b/test-results/solarxiao_room_2026-10-21/index.html
index 639297cec..0c0e03941 100644
--- a/test-results/solarxiao_room_2026-10-21/index.html
+++ b/test-results/solarxiao_room_2026-10-21/index.html
@@ -2611,7 +2611,7 @@ target selection.
-
+
diff --git a/test-results/spiffs_regular_file_reads/index.html b/test-results/spiffs_regular_file_reads/index.html
index a027e72e8..ac159e81e 100644
--- a/test-results/spiffs_regular_file_reads/index.html
+++ b/test-results/spiffs_regular_file_reads/index.html
@@ -2547,7 +2547,7 @@ Host simulations do not replace a post-flash LoRa login test on the G2.
-
+
diff --git a/test-results/station_g3_g2_compatibility/index.html b/test-results/station_g3_g2_compatibility/index.html
index dcee0d251..bb51daf9a 100644
--- a/test-results/station_g3_g2_compatibility/index.html
+++ b/test-results/station_g3_g2_compatibility/index.html
@@ -2921,7 +2921,7 @@ the user's original problem is claimed by these host checks.
-
+
diff --git a/test-results/stm32_companion_help_2026-10-23/index.html b/test-results/stm32_companion_help_2026-10-23/index.html
index 41978cb49..38e369ebb 100644
--- a/test-results/stm32_companion_help_2026-10-23/index.html
+++ b/test-results/stm32_companion_help_2026-10-23/index.html
@@ -2519,7 +2519,7 @@ stored profiles. These are build checks, not physical device qualification.
-
+
diff --git a/test-results/t1000_usb_bluetooth_priority_2026-10-20/index.html b/test-results/t1000_usb_bluetooth_priority_2026-10-20/index.html
index 03ea2321b..649443943 100644
--- a/test-results/t1000_usb_bluetooth_priority_2026-10-20/index.html
+++ b/test-results/t1000_usb_bluetooth_priority_2026-10-20/index.html
@@ -2549,7 +2549,7 @@ Results and failures above retain their original firmware sources.
-
+
diff --git a/test-results/tdeck_radio2_display/index.html b/test-results/tdeck_radio2_display/index.html
index 22929304f..7e66a8f30 100644
--- a/test-results/tdeck_radio2_display/index.html
+++ b/test-results/tdeck_radio2_display/index.html
@@ -2615,7 +2615,7 @@ also passed after adding this report.
-
+
diff --git a/test-results/tdeck_radio2_retune_experiments/index.html b/test-results/tdeck_radio2_retune_experiments/index.html
index 36bd7827d..ad44d943e 100644
--- a/test-results/tdeck_radio2_retune_experiments/index.html
+++ b/test-results/tdeck_radio2_retune_experiments/index.html
@@ -3036,7 +3036,7 @@ before the retry and is not attributed to an active-pair retune.
-
+
diff --git a/test-results/udp_bridge_2026-10-22/index.html b/test-results/udp_bridge_2026-10-22/index.html
index bc25a27f3..a18375b10 100644
--- a/test-results/udp_bridge_2026-10-22/index.html
+++ b/test-results/udp_bridge_2026-10-22/index.html
@@ -2607,7 +2607,7 @@ network isolation.
-
+
diff --git a/test-results/udp_bridge_hardware_2026-10-22/index.html b/test-results/udp_bridge_hardware_2026-10-22/index.html
index d9e111d0e..06829ab53 100644
--- a/test-results/udp_bridge_hardware_2026-10-22/index.html
+++ b/test-results/udp_bridge_hardware_2026-10-22/index.html
@@ -2792,7 +2792,7 @@ outside this campaign.
-
+
diff --git a/test-results/unit_test_workflow_fix_2026-10-22/index.html b/test-results/unit_test_workflow_fix_2026-10-22/index.html
index 08ba7b21b..81fa485b6 100644
--- a/test-results/unit_test_workflow_fix_2026-10-22/index.html
+++ b/test-results/unit_test_workflow_fix_2026-10-22/index.html
@@ -2658,7 +2658,7 @@ USB, RF, ADC readings, charging, bootloaders or installed devices.
-
+
diff --git a/test-results/usb_serial_backpressure/index.html b/test-results/usb_serial_backpressure/index.html
index 57b72cc1d..a83eb1afb 100644
--- a/test-results/usb_serial_backpressure/index.html
+++ b/test-results/usb_serial_backpressure/index.html
@@ -2933,7 +2933,7 @@ compatibility for every affected board or host operating system.
-
+
diff --git a/test-results/v4_mqtt_bellevue_g2_2026-10-21/index.html b/test-results/v4_mqtt_bellevue_g2_2026-10-21/index.html
index 6ec27b48c..f662b3735 100644
--- a/test-results/v4_mqtt_bellevue_g2_2026-10-21/index.html
+++ b/test-results/v4_mqtt_bellevue_g2_2026-10-21/index.html
@@ -2580,7 +2580,7 @@ installation and long-duration behavior were not tested in this deployment.
-
+
diff --git a/test-results/v4_pixel5_font_trial/index.html b/test-results/v4_pixel5_font_trial/index.html
index baa80f4ee..4218c5dd7 100644
--- a/test-results/v4_pixel5_font_trial/index.html
+++ b/test-results/v4_pixel5_font_trial/index.html
@@ -2771,7 +2771,7 @@ comparison covers all 95 printable ASCII glyphs.
-
+
diff --git a/tx_beacons/index.html b/tx_beacons/index.html
index 92b9c3606..b305a67c8 100644
--- a/tx_beacons/index.html
+++ b/tx_beacons/index.html
@@ -2575,7 +2575,7 @@ retuning duration on unmeasured hardware.
-
+
diff --git a/udp_bridge_setup/index.html b/udp_bridge_setup/index.html
index 2c64dd7fa..4a4c82bee 100644
--- a/udp_bridge_setup/index.html
+++ b/udp_bridge_setup/index.html
@@ -2745,7 +2745,7 @@ WiFi passwords or get bridge.secret in logs you share.
-
+
diff --git a/upgrading_1.17.1.8_to_1.17.1.9/index.html b/upgrading_1.17.1.8_to_1.17.1.9/index.html
index e04a3af1f..d81f101bf 100644
--- a/upgrading_1.17.1.8_to_1.17.1.9/index.html
+++ b/upgrading_1.17.1.8_to_1.17.1.9/index.html
@@ -2801,7 +2801,7 @@ browser, phone or starting version. See the
-
+
diff --git a/usb_logging_watchdog/index.html b/usb_logging_watchdog/index.html
index 4e71b7acb..86d4e0b11 100644
--- a/usb_logging_watchdog/index.html
+++ b/usb_logging_watchdog/index.html
@@ -2798,7 +2798,7 @@ invalid management sends release their packet without queueing it.
-
+
diff --git a/usb_serial_backpressure/index.html b/usb_serial_backpressure/index.html
index 83957d7ae..967a2cbac 100644
--- a/usb_serial_backpressure/index.html
+++ b/usb_serial_backpressure/index.html
@@ -2457,7 +2457,7 @@
-
+
diff --git a/v4_pixel5_font_trial/index.html b/v4_pixel5_font_trial/index.html
index ddc3c4c88..46ff7e804 100644
--- a/v4_pixel5_font_trial/index.html
+++ b/v4_pixel5_font_trial/index.html
@@ -2457,7 +2457,7 @@
-
+