feat: improve mode and peripheral orchestration

This commit is contained in:
Miayui
2026-09-21 00:13:47 +08:00
parent 89707a42e2
commit 448c8b31a0
39 changed files with 3068 additions and 277 deletions
+9 -7
View File
@@ -17,7 +17,7 @@ def test_unified_console_exposes_device_id_based_nfc_authorization() -> None:
vite_entry = source("src/main.js")
assert 'data-open-nfc-binding' in script
assert '靠近读卡器后' in script
assert '请将 NFC 卡靠近读卡器' in script
assert '<h2>NFC 设备授权</h2>' in script
assert 'NFC 设备授权' in script
assert 'api("nfc/status")' in script
@@ -55,23 +55,25 @@ def test_unified_console_exposes_device_id_based_nfc_authorization() -> None:
assert '学习指令已下发,但物理槽位回读为空' in script
assert 'signalSource: "n7web"' in script
assert 'if (capability.signalSource === "n7web") return' in script
assert 'const activeCatalog = sensedCardUid' in script
assert 'normalizeCardUid(item.card_uid) === sensedCardUid' in script
assert 'const persistentCatalog = (' in script
assert 'durablePeripheralCatalogHydrated' in script
assert 'durablePeripheralCatalog' in script
assert 'normalizeCardUid(item.card_uid)' in script
assert '&& item.status === "learned"' in script
assert 'slot: capability.slot' in script
assert 'device_aliases: device?.aliases || []' in script
assert 'async function hydratePeripheralCatalog()' in script
assert 'api("peripherals")' in script
assert 'signalSource: "backend_catalog"' in script
assert '当前未感应到外设' in script
assert '将已绑定设备 ID 的 NFC 卡靠近读卡器后显示命令' in script
assert '当前没有已绑定外设' in script
assert '外设绑定 NFC 后将持续显示,解除绑定后移除' in script
assert '.v2-nfc-inline' in styles
assert '.v2-nfc-dialog' in styles
assert '.v2-nfc-command-list' in styles
assert '.v2-nfc-command-option' in styles
assert '.v2-nfc-select-all' in styles
assert 'self-extension.js?v=nfc-mqtt-56' in html
assert 'self-extension.js?v=nfc-persistent-57' in html
assert 'import "../self-extension.css";' in vite_entry
@@ -219,5 +221,5 @@ def test_main_parsed_control_panel_renders_validated_infrared_operations() -> No
assert "下发控制指令" in console
assert "已解析控制指令" not in console
assert 'li[data-can-channel="IR"]' in styles
assert "console-v2.js?v=local-first-77-performance" in html
assert "console-v2.js?v=local-first-79-cinema-status" in html
assert 'speech_semantic: "语音语义"' in console