Two pieces of upstream promotion came out of this deployment. The sidebar "apiRelay" tab only opened a registration page on a third-party site, so it goes with no replacement. The circuit badge next to Settings was not what it looked like. It opened an ESP32 device manager: add a device, show LAN status, remote connect/disconnect, rename, delete, backed by six REST routes and an mcu_devices table. The purchase button inside that dialog was the promotional part; the rest was real device management. Since the hardware is out of scope here, the entire feature is removed rather than just the link that pointed upstream - UI entry, client API, routes, controller, store, schema, locale strings, and the one GlobalAgentServer method that only existed to answer its status column. Table creation is dropped but no DROP TABLE was added, so an already-provisioned database keeps its rows as harmless orphans instead of losing data on upgrade. DevicesView and the hermes.devices route are untouched: that is LAN device discovery, a separate feature. AGENTS.md now records the removal so the badge does not come back.
2.0 KiB
2.0 KiB
date, pr, feature, impact
| date | pr | feature | impact |
|---|---|---|---|
| 2026-10-17 | pending | Remove the upstream ESP32/MCU device panel from the chat sidebars | Sidebar-only deletion. Both files lose one child component (SettingsCircuitBadge) and its import from the settings row at the bottom of the page sidebar. No chat store, no message rendering, no /chat-run payload, no streaming, and no tool-call path is touched. Nothing in the chat chain gains or loses a capability. |
What changed
ChatPanel.vue and GroupChatPanel.vue each rendered <SettingsCircuitBadge />
next to the settings button in .page-sidebar-bottom. Both now omit it.
Why
The badge opened an ESP32/MCU device management dialog. Its only outbound call to
the upstream operator was the "purchase" button inside that dialog, but the rest was
real functionality (add device, LAN status, remote connect/disconnect, rename,
delete) backed by six REST routes and the mcu_devices table. The hardware is out
of scope for this deployment, so the whole feature is gone rather than hidden.
Removal scope
SettingsCircuitBadge.vue,api/hermes/mcu-devices.ts- server
routes/mcu-devices.ts,controllers/mcu-devices.ts,db/hermes/mcu-devices-store.ts, theroutes/index.tsregistration, and themcu_devicesentry inschemas.ts GlobalAgentServer.hasMcuDeviceCode(), which only existed to answer the panel's LAN-status columnmcuDevices.*locale keys in bothzh.tsanden.ts- the corresponding harness and
no-legacy-brandwhitelist entries
Deliberately kept
DevicesView.vueand thehermes.devicesroute. That is LAN device discovery backed by@/api/hermes/devices, a separate feature from MCU device management.packages/server/src/services/global-agent/server.tsitself. Only the one now-unused method was removed; the relay is load-bearing for other features.- Existing
mcu_devicestables in already-provisioned databases. The table creation was dropped but noDROP TABLEwas added, so an old deployment keeps its rows as harmless orphans instead of losing data on upgrade.