feat(api): tcp driver registry, identify, preset push delivery

- Track Wi-Fi TCP clients, liveness pings, disconnect broadcast, bind errors via gather\n- Device list/get include connected; POST identify with __identify preset\n- Presets push/send delivery helpers; bump led-driver hello type

Made-with: Cursor
This commit is contained in:
pi
2026-04-06 00:21:57 +12:00
parent e6b5bf2cf1
commit f8eba0ee7e
15 changed files with 1052 additions and 108 deletions

View File

@@ -349,9 +349,7 @@ def test_tabs_ui(browser: BrowserTest) -> bool:
# Fill in tab name
if browser.fill_input(By.ID, 'new-tab-name', 'Browser Test Tab'):
print(" ✓ Filled tab name")
# Fill in device IDs
if browser.fill_input(By.ID, 'new-tab-ids', '1,2,3'):
print(" ✓ Filled device IDs")
# Devices default from registry or placeholder name "1"
# Click create button
if browser.click_element(By.ID, 'create-tab-btn'):
print(" ✓ Clicked create button")
@@ -790,7 +788,6 @@ def test_preset_drag_and_drop(browser: BrowserTest) -> bool:
if tabs_list and 'No tabs found' in tabs_list.text:
# Create a tab
browser.fill_input(By.ID, 'new-tab-name', 'Drag Test Tab')
browser.fill_input(By.ID, 'new-tab-ids', '1')
browser.click_element(By.ID, 'create-tab-btn')
time.sleep(1)
@@ -848,7 +845,7 @@ def test_preset_drag_and_drop(browser: BrowserTest) -> bool:
print("✓ Created 3 presets for drag test")
passed += 1
# Test 4: Add presets to the tab (via Edit Tab modal Select buttons in list)
# Test 4: Add presets to the tab (via Edit Tab modal Add buttons in list)
total += 1
try:
tab_id = browser.driver.execute_script(
@@ -864,12 +861,12 @@ def test_preset_drag_and_drop(browser: BrowserTest) -> bool:
time.sleep(1)
list_el = browser.wait_for_element(By.ID, 'edit-tab-presets-list', timeout=5)
if list_el:
select_buttons = browser.driver.find_elements(By.XPATH, "//div[@id='edit-tab-presets-list']//button[text()='Select']")
select_buttons = browser.driver.find_elements(By.XPATH, "//div[@id='edit-tab-presets-list']//button[text()='Add']")
if len(select_buttons) >= 2:
browser.driver.execute_script("arguments[0].click();", select_buttons[0])
time.sleep(1.5)
browser.handle_alert(accept=True, timeout=1)
select_buttons = browser.driver.find_elements(By.XPATH, "//div[@id='edit-tab-presets-list']//button[text()='Select']")
select_buttons = browser.driver.find_elements(By.XPATH, "//div[@id='edit-tab-presets-list']//button[text()='Add']")
if len(select_buttons) >= 1:
browser.driver.execute_script("arguments[0].click();", select_buttons[0])
time.sleep(1.5)
@@ -949,7 +946,7 @@ def test_preset_drag_and_drop(browser: BrowserTest) -> bool:
tab_id
)
time.sleep(1)
select_buttons = browser.driver.find_elements(By.XPATH, "//div[@id='edit-tab-presets-list']//button[text()='Select']")
select_buttons = browser.driver.find_elements(By.XPATH, "//div[@id='edit-tab-presets-list']//button[text()='Add']")
if select_buttons:
print(" Attempting to add another preset...")
browser.driver.execute_script("arguments[0].click();", select_buttons[0])
@@ -973,7 +970,7 @@ def test_preset_drag_and_drop(browser: BrowserTest) -> bool:
else:
print(f" ✗ Still only {len(draggable_presets)} preset(s) after adding")
else:
print(" ✗ No Select buttons found in Edit Tab modal")
print(" ✗ No Add buttons found in Edit Tab modal")
else:
print(f"✗ No presets found in tab (found {len(draggable_presets)})")
else: