[service_complete] should soft-fail per service so one failure doesn't take down the rest #234

Open
opened 2026-05-07 17:22:39 +00:00 by mik-tf · 0 comments
Owner

Surfaced during session 74.

Symptom

service_complete --download hard-errors at the first failing service. Operators don't see the full picture of what works and what doesn't until they hand-patch the loop.

Current behavior

packages.nu service_complete does:

try {
    do $svc.run
} catch {|e|
    print $"  ✗ ($svc.name): ($e.msg)"
    error make {msg: $"($svc.name) start failed — fix the error above and re-run."}
}

The error make short-circuits the loop. One bad release / one missing dep = no information about anything downstream.

Proposed fix

Replace the error make with a failed accumulator. Continue the loop. Print a summary at the end:

=== Results: 14/17 services started ===
  failed:
    - service_collab
    - service_aibroker
    - service_slides

This is what session 74's hand-patch did.

Severity

Medium — usability + investigation efficiency. Doesn't block the happy path, but every from-nothing test surfaces multiple issues and you only see one at a time.

Pairs with #(this issue's # for cargo-only-skip) and the upstream-debt cluster from session 74.

Filed as part of home#227 follow-ups.

Surfaced during session 74. ## Symptom `service_complete --download` hard-errors at the first failing service. Operators don't see the full picture of what works and what doesn't until they hand-patch the loop. ## Current behavior `packages.nu` `service_complete` does: ```nu try { do $svc.run } catch {|e| print $" ✗ ($svc.name): ($e.msg)" error make {msg: $"($svc.name) start failed — fix the error above and re-run."} } ``` The `error make` short-circuits the loop. One bad release / one missing dep = no information about anything downstream. ## Proposed fix Replace the `error make` with a `failed` accumulator. Continue the loop. Print a summary at the end: ``` === Results: 14/17 services started === failed: - service_collab - service_aibroker - service_slides ``` This is what session 74's hand-patch did. ## Severity Medium — usability + investigation efficiency. Doesn't block the happy path, but every from-nothing test surfaces multiple issues and you only see one at a time. Pairs with #(this issue's # for cargo-only-skip) and the upstream-debt cluster from session 74. Filed as part of [home#227](https://forge.ourworld.tf/lhumina_code/home/issues/227) follow-ups.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_skills#234
No description provided.