You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Two stranded artifacts: self-hosted-stack.yaml (354 lines, deployed nowhere) and lambda/alert-handler (builds in CI, runs nowhere) #783
Found while mapping the infra account for docs/infra-account.md. Two artifacts
that are built and maintained but reach nothing — and one of them is relevant to #780 rather than merely unused.
No functions. It creates the stores a self-hosted spawn would need and
nothing that runs.
Referenced by nothing — no Makefile target, no script, no doc, no other
template.
Deployed in neither account (list-stacks for *self-host*: 0 in
966362334030 and 435415984226).
This is the most interesting part: it looks like an earlier attempt at exactly
what #780 describes — an institution standing up its own spore.host
infrastructure. Whoever picks up #780 should know it exists, either as prior art
worth resuming or as a dead end worth deleting. Leaving it unlabelled is the
worst of the three.
lambda/alert-handler/ — builds in CI, runs nowhere
No live function in either account, under any name.
It is mentioned by the stack above, but only as a log group
(/spawn/alert-handler) — the stack never declares the function.
It is in .github/dependabot.yml, so its dependencies are maintained, and the
nested-module CI loop builds, vets and tests it on every PR.
So it consumes CI time and dependency churn on every change to the repo while
reaching nothing. spawn-alert-evaluator is live and does the alert evaluation,
which suggests this was either superseded or never finished.
Why this is worth a decision rather than a shrug
Both are the same shape as the findings in #653 and #654: not expensive, but indistinguishable from working code to anyone reading the repo. Someone
modifying the alert path would reasonably assume alert-handler runs. The cost
is misleading a future reader, not dollars.
Decide what alert-handler is — finish, or delete. If it is a deliberate
placeholder for the self-hosted stack, the stack should declare the function
so the two agree.
Either way, record the answer in docs/infra-account.md, which currently just
reports that neither is deployed.
Related: #780 (self-hosted deployment — the context that makes the stack
interesting), #653 (nothing reaps the control plane), the infra-account map in #782.
One commit, the first one. It has never been edited since the repo began. So
"prior art worth resuming" overstates it — nobody ever developed this; it was
sketched on day one and left. That lowers the cost of deleting it and lowers the
value of keeping it, but it is still a 354-line starting point for exactly what #780 describes. The call is still yours; it is just a cheaper call than it looked.
alert-handler was not superseded — it is the missing half of a shipped feature
This is the part that changes. alert-handler is not a duplicate of the live alert-evaluator:
The evaluator never reads spawn-alerts. And spawn alerts create <sweep-id> —
a shipped CLI command — writes to spawn-alerts and validates all five triggers.
So spawn alerts create succeeds and no alert can ever fire, and spawn alerts history is permanently empty.spawn validate --infrastructure
already reports the missing function as a hard error against the live account
today. Filed as #790 with the full trace, including two further defects in that
same command.
Its history matches: every commit touching lambda/alert-handler/ since the
initial one is mechanical — CVE bumps, Go version standardisation, a test
migration. No functional work, ever.
What this means for the decision
Deleting alert-handler is no longer a tidy-up; it is removing a feature the
CLI advertises. The options are now:
Deploy it — finishes spawn alerts, and the self-hosted stack's /spawn/alert-handler log group starts making sense.
Remove it and the spawn alerts CLI surface together — honest, and the
cost path keeps working via alert-evaluator.
Activity
scttfrdmn commentedon Oct 10, 2026
Evidence gathered before deciding, since both items turned on intent. Two of the
three framings in this issue change.
self-hosted-stack.yamlis initial-commit scaffolding, not iterated prior artOne commit, the first one. It has never been edited since the repo began. So
"prior art worth resuming" overstates it — nobody ever developed this; it was
sketched on day one and left. That lowers the cost of deleting it and lowers the
value of keeping it, but it is still a 354-line starting point for exactly what
#780 describes. The call is still yours; it is just a cheaper call than it looked.
alert-handlerwas not superseded — it is the missing half of a shipped featureThis is the part that changes.
alert-handleris not a duplicate of the livealert-evaluator:alert-evaluator(live, hourly)spawn-alert-preferences,spawn-cost-historyCOST_ALERTS_TOPIC_ARNalert-handler(deployed nowhere)spawn-alerts, writesspawn-alert-historyThe evaluator never reads
spawn-alerts. Andspawn alerts create <sweep-id>—a shipped CLI command — writes to
spawn-alertsand validates all five triggers.So
spawn alerts createsucceeds and no alert can ever fire, andspawn alerts historyis permanently empty.spawn validate --infrastructurealready reports the missing function as a hard error against the live account
today. Filed as #790 with the full trace, including two further defects in that
same command.
Its history matches: every commit touching
lambda/alert-handler/since theinitial one is mechanical — CVE bumps, Go version standardisation, a test
migration. No functional work, ever.
What this means for the decision
Deleting
alert-handleris no longer a tidy-up; it is removing a feature theCLI advertises. The options are now:
spawn alerts, and the self-hosted stack's/spawn/alert-handlerlog group starts making sense.spawn alertsCLI surface together — honest, and thecost path keeps working via
alert-evaluator.spawn alertsstops acceptingalerts it cannot deliver, which is spawn validate --infrastructure reports 2 errors against the real infra account; one is false, one means
spawn alertsis a dead surface, and the remediation names a command that does not exist #790's point 2 regardless.Option 3's caveat is a bug in its own right and does not need this decision made
first. 1 vs 2 is a product call.
fix(validate): stop reporting a deployed Lambda as missing, and point…
fix(alerts): refuse an alert that cannot be delivered (#790) (#793)
remove: the spawn alerts path and the stranded self-hosted stack (#783)…
remove: alert-evaluator and the dashboard's alert-preferences endpoin…