inventory can't sweep an instance — a discovery verb that needs you to have discovered #22
Labels
No labels
blocked
blocker:ci-red
blocker:conflict
blocker:drill-pending
blocker:unrequested
bug
claimed
documentation
enhancement
epic
merge-next
needs-triage
ready
release
scope:apply
scope:capture
scope:coolify-api
scope:fleet
scope:manifest
scope:secrets
stale
state:addressing
state:bots-reviewing
state:building
state:needs-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: heavy-duty/cast#22
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
The gap
cast inventory(#19, shipped in #20) reconciles a manifest against oneproject and one environment that you name. But the premise of the verb is that
you are looking at a box you did not build — so you do not know those
coordinates yet. It is a discovery tool that requires you to have already
discovered.
Consequence, from the first real use, an hour after it merged: an operator
adopting a hand-built box still had to hand-curl
/projects,/projects/{uuid}and
/applicationsto find out where anything lived. The verb could answer "howdoes this one spot compare to my manifest?" but not "what is on this box?" —
which is the question that was actually being asked.
Worse: an empty live side reads as quiet, not as wrong
Pointed at a project's
productionenvironment (Coolify's auto-created default,which was empty), inventory reported:
Every word of that is true, and the overall impression — "the box has nothing;
the manifest has five things" — is exactly the D-237 lie, which cast refuses
elsewhere. The resources were alive and serving production the whole time, in a
different environment of the same project. (It was named
staging. Nobody hadever swapped it.)
An environment with zero resources is far more often the wrong coordinate than
an empty environment.
Proposal
--project/--environment→ sweep the instance. Every project, everyenvironment, every resource, with counts. No manifest needed, no reconciliation
— just what is here. This is the pass that must come first, and it is the one
thing cast currently cannot do at all.
empty environment is more likely a wrong coordinate than an empty box, and
point at the sweep. Same spirit as the absent-target refusal (#12) and the
absent-resource refusal (#18) — this is the third face of the same lie.
Acceptance
cast inventory <slug> --instance <name>with no project/environment printsevery project → environment → resource on the instance.
names the sweep as the way to find where things actually are.
per-repo) — but looking never does.