Procfile, Taskfile and smoke-routing.sh still invoke cmd/supervisor and cmd/routing, neither of which exists #120
Closed
opened 2026-09-16 22:25:40 +00:00 by mathias
·
2 comments
No Branch/Tag Specified
main
fix/pipeline-writes-158
fix/edit-path-io-192
fix/create-regular-188
fix/guard-special-179
fix/linkcheck-keeps-write-178
fix/write-dir-redirect-173
fix/tunnel-detect-174
fix/pipeline-root-157
w3/154-mcp-auth-wiring
fix/tunnel-traversal
test/in-brain-targets-171
fix/brain-scan-root-157
fix/graph-wiki-root-157
fix/vectorstore-root-157
fix/notes-root-157
fix/search-root-157
fix/brainwide-root-157
fix/raw-symlinks-153
feat/symlink-tripwire-157
fix/rest-auth-149
fix/123-brain-edit-envelope-check
feat/106-page-aware-extraction
fix/105-source-drift-on-main
fix/104-surface-merge-conflicts-on-main
agent/b1-compile-on-ingest
agent/104-surface-merge-conflicts
agent/105-source-drift
agent/107-loud-unconfigured-alerting
feat/brain-read-edit
fix/capture-i1-refusal-names-target
renovate/configure
feat/consolidate-single-harness
icebox/cmd-routing
feat/brain-pending-promote
fix/close-session-classification-refresh
fix/capture-summarywriter
v0.24.0
v0.23.1
v0.23.0
v0.22.0
v0.21.1
v0.21.0
v0.20.1
v0.20.0
v0.19.1
v0.19.0
v0.18.4
v0.18.3
v0.18.2
v0.18.1
v0.18.0
v0.17.0
v0.16.1
v0.16.0
v0.15.0
v0.14.0
v0.13.2
v0.13.1
v0.13.0
v0.12.1
v0.12.0
v0.11.2
icebox/cmd-routing-2026-07-01
v0.11.1
v0.11.0
v0.10.0
v0.9.0
v0.8.0
v0.7.0
v0.6.0
v0.5.0
v0.4.1
v0.4.0
v0.3.0
v0.2.0
v0.1.0
Labels
Clear labels
agent/ready
blocked/client
blocked/supplier
blocked/upstream
risk/high
risk/low
risk/medium
size/l
size/m
size/s
size/xs
status:dispatch
status:dispatched
status:review
status:reviewing
type/chore
type/decision
type/docs
type/feat
type/fix
type/ops
type/research
type/test
Meets the agent-ready contract; authorizes unattended execution
Waiting on the client
Waiting on a supplier
Waiting on an upstream project or vendor
Irreversible, security-relevant, or control plane
Reversible, local, test-covered
Touches shared state, deploys or data
Too big - split it
Under two days
Under half a day
Under an hour
Maintenance, no behaviour change
Human decision required; never agent/ready
Documentation only
New capability
Corrects broken behaviour
Infrastructure, deploy, runtime
Investigate; output is a finding, not code
Test coverage only
Milestone
No items
No Milestone
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: mathias/hyperguild#120
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Found while merge-gating #119 (which closed #116). Not caused by that PR — all of this predates it. Same defect class as #116: artifacts that look correct and are connected to nothing.
cmd/contains exactly one binary:cmd/hyperguild.cmd/supervisorwas deleted inc117634("feat(plan7): retire supervisor pod — delete cmd/supervisor, tdd/spec skills, Dockerfile").cmd/routingdoes not exist anywhere in the tree (find . -type d -name routingreturns nothing).Four call sites still reference them:
Procfile:2go run ./cmd/supervisor/task start/goreman startfails on this lineTaskfile.yml:38(supervisor:dev)go run ./cmd/supervisorTaskfile.yml:76(supervisor:build)go build ... ./cmd/supervisortask buildcalls it, sotask buildis brokenscripts/smoke-routing.sh:23(task smoke:routing)go build -o "$BIN" ./cmd/routingProcfile:2also still setsSUPERVISOR_MODELS_FILE=./config/models.yaml, now pointing at a file deleted in #119. Harmless in isolation (nothing reads the var), but it is the last textual reference to the routing config in a non-docs file.None of this is caught by CI, because
task checkrunslint/test/vetand nevertask build— so a Taskfile target can reference a deleted package indefinitely while the gate stays green. That gap is the reason this survived sincec117634.Related dead surface found in the same sweep
internal/confighas no non-test callers at all:config.Load()/ theConfigstruct — referenced only byinternal/config/config_test.goconfig.LoadRouting()/RoutingConfig— referenced only byinternal/config/routing_test.goRoutingConfigis the struct that documents the live env surface (HYPERGUILD_FAST_MODEL,HYPERGUILD_ROUTE_LOCAL_FLOOR, the Gitea MCP wiring), and its consumer — the routing pod — went withcmd/routing. So the whole package is currently tests-testing-themselves. Worth deciding deliberately rather than deleting on sight, since these structs are also the closest thing to documentation of the routing pod's contract.Suggested scope
Procfilesupervisor line, two Taskfile targets,smoke:routing+ its script) — or restorecmd/routingif the routing pod is meant to come back.internal/config: delete, or re-point at a real consumer.task buildtocheckso a Taskfile target referencing a deleted package fails the gate.Item 2 is a judgement call about whether the routing pod is coming back — flagging rather than deciding.
Created via git-mcp on behalf of @mathias
Merge gate — PR #121 MERGED, this issue stays OPEN
Squashed to
mainas6e449b4. #120 is deliberately still open: only items 1 and 3 of "Suggested scope" are done. Item 2 (internal/confighas no non-test callers) is untouched and is the reason this issue is not closed.Note on numbering: PR #121's description says it closes "items 2 and the suggested gate fix", and later calls
internal/config"#120's third item". That is off by one against this issue's own list — what shipped is item 1 (delete the four stale call sites) and item 3 (buildincheck). What remains is item 2 (internal/config). Recording it here so the leftover is not misidentified later.Gitea auto-closed this issue on merge (the PR body carried
Closes #120); reopened by hand immediately after. The squash commit message saysRefs #120, notCloses, so it will not re-close on any later replay.What I verified, not took on trust
The gate change is load-bearing — flip-tested both directions. Re-added a
supervisor:buildtarget pointing at./cmd/supervisoron top of the PR head:Then, with that broken target still present, removed only
- task: buildfromcheck(i.e. the pre-PR gate):So the old gate really was blind to a build target naming a deleted package, and the new one really catches it. Tree restored byte-for-byte afterwards (
Taskfile.ymlsha2565fc04891…,git status --porcelainempty).Adding
buildtocheckdoes not dirty the tree or break CI.bin/is gitignored (.gitignore:5) and is the only path written:hyperguild:builddoesmkdir -p bin+-o bin/hyperguild,ingestion:buildwrites../bin/ingestion-serverfromdir: ingestion— samebin/.hyperguild:buildruns first, so themkdir -pcoversingestion:buildon a fresh runner with nobin/.git status --porcelainis empty after a fullCI=1 task check. The porcelain/context-sync assertion incheckonly coversAGENTS.md,CLAUDE.md,.context/system-prompt.txtand runs beforebuildanyway.buildnow runs beforesecurity:gitleaks— checked that interaction rather than assuming it. gitleaks runs--no-git --source .with 57 MB of fresh binaries sitting inbin/, and scanned 1.81 MB in both my local run and CI run 7387 — it honours.gitignore, so the binaries are not scanned. No slowdown, no false positives.Nothing removed is still reachable. Grepped
supervisor:dev,supervisor:build,supervisor:test:smoke,smoke:routing,smoke-routingacross the whole repo. Every surviving hit is indocs/superpowers/plans/anddocs/superpowers/specs/— dated historical plan records, not live call sites. Zero hits in.gitea/workflows/,README.md,Procfileor any other task. Thesupervisorstrings incd.ymlare the k8s namespace, unrelated to the binary.Both binaries are genuinely meant to be gone.
cmd/supervisor— deleted 2026-05-12 inc117634, and the retirement is written down twice:DECISIONS.md"Plan 7: supervisor pod retired (2026-05-12)" andCLAUDE.md"The supervisor MCP (koala:30320) was retired in Plan 7". No commit anywhere in the repo has tried to re-add it (git log --all --diff-filter=A -- cmd/supervisorreturns only the original creation).cmd/routing— iceboxed 2026-07-01 infb59c39(#75), withICEBOX.mdgiving a restore recipe pinned to tagicebox/cmd-routing-2026-07-01.scripts/smoke-routing.shbuilt./cmd/routingfrom this tree, so it has been non-runnable since that day regardless of whether the routing pod still runs in the cluster.The deleted smoke script was also an instance of the defect class this repo keeps hitting.
scripts/smoke-routing.shexited 0 with aSKIP:line whenever LiteLLM or the brain was unreachable. Run anywhere without Tailscale it was a guaranteed green that proved nothing — and aftercmd/routingwent, it could not even reach that point. Deleting it removes a check that could only ever pass.Spot-checked the author's
dir:-aware sweep on this repo. Every remaining path inTaskfile.ymlresolves once the task's working directory is applied:scripts/context-sync.sh,cmd/hyperguild(root module),ingestion/cmd/serverandingestion/cmd/frontmatterlint(both viadir: ingestionorcd ingestion), plus theProcfileline. No remaining dead target here. I did not re-run the sweep across the estate, so the "only this repo and dma-cli" claim is unverified beyond this repo.CI
Run 7387, job 10984 "Lint / Test / Vet", head
760aa45(the exact PR head, i.e. the commit that addsbuildtocheck) — success, 22:33:06→22:34:00Z. The log proves the new step actually executed on the runner, not just that the job was green:Local
CI=1 task checkon koala: exit 0, 7.6 s wall.Follow-ups this merge does not cover (recording so they have a locator)
internal/config. Still zero non-test callers. Unchanged, and the reason this issue stays open.ICEBOX.mdis now slightly stale. Its restore recipe forcmd/routinglistscmd/routing internal/routing internal/skills/* Dockerfile.routing, and its "what was iceboxed" table does not mentionscripts/smoke-routing.shor thesmoke:routingtask — which is exactly why they survived the 2026-07-01 cut and were still here today. A future restore fromicebox/cmd-routing-2026-07-01will bring the binary back without its smoke test, and nothing will say the script ever existed. Recoverable viagit show 6e449b4^:scripts/smoke-routing.sh, but the recipe should say so..gitignore:7still ignorescmd/supervisor/supervisor— a rule for a directory deleted 4 months ago. Harmless, same dead-reference class.stopstill kills port 3200, the retired supervisor's port. Harmless leftover.vetrunsgovulncheck ./... || true(a vulnerability finding cannot fail the gate), andsecurity:gitleaksexit 0s when gitleaks is absent. gitleaks was genuinely present and did run in CI 7387 — verified in the log — but that is an environmental fact, not a guarantee.Not checked
infrak3s/apps/routing/is still deployed. Out of this PR's scope — it touches no manifests — butICEBOX.md:43says that deployment still runs its last image and tearing it down is a separate infra task.dma-cliand the other repos).Merge-gate review by Claude Opus 5 on behalf of @mathias
Already fixed, just never linked to close this issue. PR #121 (commit
6e449b4, "fix(taskfile): remove build targets for binaries deleted months ago, and make check build") landed all three suggested-scope items:Procfilenow has only theingestiontarget (./cmd/server/), no supervisor line.Taskfile.ymlhas nosupervisor:dev/supervisor:build/smoke:routingtargets.scripts/smoke-routing.shis gone.task buildadded tocheck, deliberately, with a comment inTaskfile.ymlciting this issue by number and explaining why (vet/testwalk./..., which only enumerates packages that exist — a build target naming a deleted package was invisible to both).task buildsucceeds cleanly (bin/hyperguild+bin/ingestion-serverboth build).Not resolved, and deliberately not touched — the one item the issue itself flagged as a judgment call, not something to decide unilaterally:
internal/config'sconfig.go/routing.gostill have zero non-test callers (config.Load()/RoutingConfigare only referenced from their own_test.gofiles). Whether to delete this package or re-point it at a real consumer depends on whether the routing pod is coming back — that's still an open question for whenever it's decided, not a defect.🤖 Generated with Claude Code
Created via git-mcp on behalf of @mathias