fix(service_router): unescaped paren parser error + mycelium soft-fail + --bind opt-out #232
No reviewers
Labels
No labels
prio_critical
prio_low
type_bug
type_contact
type_issue
type_lead
type_question
type_story
type_task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lhumina_code/hero_skills!232
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "development_mik_router_bind_fixforward"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Three fixes-forward on top of #231, surfaced when validating the public-cloud bootstrap on a fresh DigitalOcean droplet (lhumina_code/home#227).
1. Parser error in summary banner
The
--bind 0.0.0.0notice in the summary banner used unescaped parens:Nu's string-interpolation treats
(...)as a sub-expression, so it tried to resolvealsoas a command:Only fires on the
--bind 0.0.0.0code path, which is why #231'sstart --helpsmoke didn't catch it. Escape with\(/\).2. Mycelium hard-requirement on Linux
svx_mycelium_node_addrdelegated tosvc_mycelium_ensurewhicherror makes when the daemon isn't reachable, blocking anyservice_router starton a non-overlay host. This is fine on a TF Grid VM but breaks every public-cloud (DO/Hetzner/AWS) bootstrap.Wrap in
try { ... } catch { "" }so the caller's existingno mycelium found; UI on 127.0.0.1 onlybranch fires instead. Mirrors the macOS soft-fall-back already in the same function.3.
--bind != 127.0.0.1should skip auto-detect entirelyWhen the operator explicitly opts in to a non-loopback bind, mycelium probing is irrelevant — they want a public-facing local listener. Add an early branch:
This is what makes
service_router start --download --bind 0.0.0.0work end-to-end on a fresh DO droplet without mycelium installed.Validation
On a fresh DigitalOcean s-2vcpu-4gb Ubuntu 24.04 droplet (159.223.232.67):
service_proc start --download --version v0.5.0-rc1→ greenservice_mycelium start --download --version v0.7.5-rc1→ greenservice_router start --download --version v0.2.4-rc1 --bind 0.0.0.0→ green, public IP:9988/health200service_mycelium stopthenservice_router start --reset --download→ green, 127.0.0.1-only listener (the fix that THIS PR enables)https://159.223.232.67.nip.io/healthreturns 401 without auth, hero_router JSON with admin creds.Signed-off-by: mik-tf