feat(nh3-svos): SVOS voice (app-voice) live — /voice route before Basic auth (lease bearer), unit + quiesce hook; app credentials vaulted

This commit is contained in:
vh
2026-10-08 13:55:13 -07:00
parent a3184f66b9
commit b04cee5579
7 changed files with 50 additions and 3 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ import tempfile
import time
SERVICES = ('svos-kernel.service', 'svos-interface.service', 'svos-terminal.service',
'svos-knowledge.service', 'svos-postoffice.service')
'svos-knowledge.service', 'svos-postoffice.service', 'svos-voice.service')
class Quiesce:
def __init__(self, directory, *, run=None):
+1
View File
@@ -13,3 +13,4 @@
- 2026-10-07 (a737a06 refresh): `SERVICES` gained `svos-terminal`, `svos-knowledge` and `svos-postoffice` before
they were started. The hook restores only the units that were active at freeze, so a declared-but-stopped app
(postoffice until its bridge handle exists) is recorded as inactive and left stopped.
- 2026-10-08: `svos-voice` added (Prime: voice on), before it started.
+2 -1
View File
@@ -10,7 +10,8 @@ class QuiesceTests(unittest.TestCase):
spec=importlib.util.spec_from_loader('svos_quiesce',loader)
self.module=importlib.util.module_from_spec(spec);spec.loader.exec_module(self.module)
self.states={'svos-kernel.service':('active','success'),'svos-interface.service':('inactive','success'),
'svos-terminal.service':('inactive','success'),'svos-knowledge.service':('inactive','success'),'svos-postoffice.service':('inactive','success')}
'svos-terminal.service':('inactive','success'),'svos-knowledge.service':('inactive','success'),'svos-postoffice.service':('inactive','success'),
'svos-voice.service':('inactive','success')}
self.calls=[];self.stop_fail=False;self.start_fail=False;self.dirty_stop=False
def run(args,**kwargs):
self.calls.append(args)