From 6137762786e0583a83630b208ba98c50cc8ef4fb Mon Sep 17 00:00:00 2001 From: archipelago Date: Fri, 14 Aug 2026 08:57:53 -0400 Subject: [PATCH] =?UTF-8?q?feat(settings):=20Routstr=20AI=20budget=20panel?= =?UTF-8?q?=20=E2=80=94=20the=20integration's=20missing=20switch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Routstr backend (Cashu-paid inference fallback, shipped 1.7.127) was fully wired but permanently dormant: its D-05 gate requires an operator-set sats allowance and nothing in the UI ever called assistant.budget-get/set — default 0 meant never selected. New Settings panel (below AI Data Access): allowance/spent/remaining, set-allowance with 0-disables semantics, enabled/off badge. Backend untouched. Co-Authored-By: Claude Fable 5 --- .../views/settings/RoutstrBudgetSection.vue | 112 ++++++++++++++++++ neode-ui/src/views/settings/SystemSection.vue | 2 + 2 files changed, 114 insertions(+) create mode 100644 neode-ui/src/views/settings/RoutstrBudgetSection.vue diff --git a/neode-ui/src/views/settings/RoutstrBudgetSection.vue b/neode-ui/src/views/settings/RoutstrBudgetSection.vue new file mode 100644 index 00000000..6c1694a7 --- /dev/null +++ b/neode-ui/src/views/settings/RoutstrBudgetSection.vue @@ -0,0 +1,112 @@ + + + diff --git a/neode-ui/src/views/settings/SystemSection.vue b/neode-ui/src/views/settings/SystemSection.vue index 023b652d..ab75b4ce 100644 --- a/neode-ui/src/views/settings/SystemSection.vue +++ b/neode-ui/src/views/settings/SystemSection.vue @@ -3,6 +3,7 @@ import InterfaceModeSection from '@/views/settings/InterfaceModeSection.vue' import KioskDisplaySection from '@/views/settings/KioskDisplaySection.vue' import ClaudeAuthSection from '@/views/settings/ClaudeAuthSection.vue' import AIDataAccessSection from '@/views/settings/AIDataAccessSection.vue' +import RoutstrBudgetSection from '@/views/settings/RoutstrBudgetSection.vue' import WebhookSection from '@/views/settings/WebhookSection.vue' import TelemetrySection from '@/views/settings/TelemetrySection.vue' import NodeCertificateSection from '@/views/settings/NodeCertificateSection.vue' @@ -16,6 +17,7 @@ import SystemDangerZone from '@/views/settings/SystemDangerZone.vue' +