docs(memory): SVOS/Miranda fully live; bank two restart patterns from svos-dev
svos-dev restarted :8770 at 02:17 and both roster lines printed clean. Confirmed from this side rather than taken on their word: :8770 answers 200 on the new pid, an unauthenticated Bifrost dispatch gets 401, and Hermes reports 29 toolsets with svos_miranda the sole enabled=True row. Two patterns from their restart that generalise past this service. A dry-run boot against the still-held port: start the new process while the old one still owns the socket, and it proves every check above the bind before dying on EADDRINUSE. Zero downtime, no commitment, and it turns a one-way restart into a rehearsed one. Worth doing for any service whose startup validates before binding. And a trap: SIGTERM released the port but left the process alive for 35 seconds, needing SIGKILL. The port was free that entire time, so a script waiting on port availability would have started the replacement alongside a still-running old process. Kill by PID and wait on the PID, never on the port - a freed port is not evidence of a dead process, the same way an unreachable post office is an outage rather than an empty inbox.
This commit is contained in:
@@ -59,6 +59,35 @@ expected refusal — which looked like the plugin's collision reading was wrong.
|
||||
was not: doctor's sandbox holds no built-ins, so nothing was claimed and **my
|
||||
positive case was not positive.** Reported as untested rather than as a finding.
|
||||
|
||||
## ✅✅ FULLY LIVE 2026-09-15 02:17 — SVOS restarted, roster verified both ends
|
||||
|
||||
svos-dev restarted `:8770` (pid 3931403; the pre-cutover process running since 09-09 is
|
||||
gone) and both startup lines printed clean:
|
||||
|
||||
hermes roster required: platform_toolsets[api_server] = ['svos_miranda'] ;
|
||||
agent.disabled_toolsets NOT required
|
||||
hermes roster verified: ('svos_miranda',) -> [the eight]
|
||||
|
||||
**Independently confirmed from this side**, not taken on their word: `:8770` → 200,
|
||||
pid matches, an unauthenticated Bifrost dispatch → **401** (wall armed), and Hermes
|
||||
reports 29 toolsets with `svos_miranda` the sole `enabled=True`.
|
||||
|
||||
### ⭐⭐ Two ops patterns from their restart — both generalise well past SVOS
|
||||
|
||||
**1. Dry-run boot against the still-held port.** They ran `python -m server` while the
|
||||
OLD process still held `:8770`. It printed both roster lines and restored the thread,
|
||||
then died on `[Errno 98] address already in use`. **Every check above the bind proven,
|
||||
zero downtime, before touching anything.** It converts a one-way restart into a
|
||||
rehearsed one and costs nothing. Adopt for any service whose startup does meaningful
|
||||
validation before it binds.
|
||||
|
||||
**2. ⚠⚠ SIGTERM released the port but did NOT end the process.** It sat in shutdown for
|
||||
**35 seconds** and needed SIGKILL — and **the port was free that whole time.** A script
|
||||
that waits on the port would have started the replacement alongside a still-live old
|
||||
process. ⭐ **Kill by PID and wait on the PID, never on the port.** Same family as
|
||||
*an unreachable post office is an OUTAGE, not an empty inbox*: a freed port is not
|
||||
evidence of a dead process.
|
||||
|
||||
## ✅ LIVE 2026-09-15 02:10 — gateway restarted, plugin registered
|
||||
|
||||
`GET /v1/toolsets` = **29 rows including `svos_miranda`**. An api_server session
|
||||
|
||||
Reference in New Issue
Block a user