fix(taskfile): remove build targets for binaries deleted months ago, and make check build #121

Merged
mathias merged 1 commits from fix/120-dead-build-targets into main 2026-09-16 22:36:49 +00:00
Owner

Closes #120 — items 2 and the suggested gate fix.

The finding is the gate, not the path

task build has been broken since cmd/supervisor was deleted in c117634, and CI stayed green the whole time.

check ran lint, test and vet. All three walk ./..., which enumerates the packages that exist. A build target naming a deleted package is invisible to every one of them — go vet ./... cannot complain about a directory it never visits.

The gate was complete with respect to the code present, and blind to the code referenced.

build is now part of check, with that reasoning written above it.

Removed — all pointing at binaries that no longer exist

Target Pointed at
supervisor:dev, supervisor:build ./cmd/supervisor
supervisor:test:smoke curls a server nothing can start
smoke:routing + scripts/smoke-routing.sh ./cmd/routing
supervisor: line in Procfile also still set SUPERVISOR_MODELS_FILE at the file deleted in #116

build now aggregates hyperguild:build + ingestion:build — the two binaries that actually exist.

A false lead, recorded so nobody re-investigates it

My first sweep flagged ./cmd/server and ./cmd/frontmatterlint as missing too. They are not. Their tasks set dir: ingestion, and both exist under ingestion/cmd/.

Any checker for this class has to resolve a task's working directory before judging its paths, or it reports two false positives for every true one. I ran that sweep across the whole estate expecting a systemic hole and found only this repo and dma-cli — so this is a local defect, not an estate-wide one.

Verification

task build     exit 0   (bin/hyperguild, bin/ingestion-server)
task check     exit 0   0 FAIL

Flip-tested — reintroducing a dead build target:

task: [build] go build -o /dev/null ./cmd/supervisor
stat .../cmd/supervisor: directory not found
check_exit=201

bin/ is already in .gitignore, so adding build to the gate leaves no artifacts in git status.

Not addressed

#120's third item — internal/config has zero non-test callers, the same defect class as #116 itself. RoutingConfig is the only written record of the routing pod's configuration contract, so deleting it is a judgement call rather than a correction. Left open on #120.


Created via git-mcp on behalf of @mathias

Closes #120 — items 2 and the suggested gate fix. ## The finding is the gate, not the path `task build` has been broken since `cmd/supervisor` was deleted in c117634, and **CI stayed green the whole time.** `check` ran `lint`, `test` and `vet`. All three walk `./...`, which enumerates the packages that **exist**. A build target naming a **deleted** package is invisible to every one of them — `go vet ./...` cannot complain about a directory it never visits. The gate was complete with respect to the code present, and blind to the code *referenced*. `build` is now part of `check`, with that reasoning written above it. ## Removed — all pointing at binaries that no longer exist | Target | Pointed at | |---|---| | `supervisor:dev`, `supervisor:build` | `./cmd/supervisor` | | `supervisor:test:smoke` | curls a server nothing can start | | `smoke:routing` + `scripts/smoke-routing.sh` | `./cmd/routing` | | `supervisor:` line in `Procfile` | also still set `SUPERVISOR_MODELS_FILE` at the file deleted in #116 | `build` now aggregates `hyperguild:build` + `ingestion:build` — the two binaries that actually exist. ## A false lead, recorded so nobody re-investigates it My first sweep flagged `./cmd/server` and `./cmd/frontmatterlint` as missing too. **They are not.** Their tasks set `dir: ingestion`, and both exist under `ingestion/cmd/`. Any checker for this class has to resolve a task's working directory before judging its paths, or it reports two false positives for every true one. I ran that sweep across the whole estate expecting a systemic hole and found only this repo and `dma-cli` — so this is a local defect, not an estate-wide one. ## Verification ``` task build exit 0 (bin/hyperguild, bin/ingestion-server) task check exit 0 0 FAIL ``` Flip-tested — reintroducing a dead build target: ``` task: [build] go build -o /dev/null ./cmd/supervisor stat .../cmd/supervisor: directory not found check_exit=201 ``` `bin/` is already in `.gitignore`, so adding `build` to the gate leaves no artifacts in `git status`. ## Not addressed #120's third item — `internal/config` has zero non-test callers, the same defect class as #116 itself. `RoutingConfig` is the only written record of the routing pod's configuration contract, so deleting it is a judgement call rather than a correction. Left open on #120. --- _Created via git-mcp on behalf of @mathias_
mathias added 1 commit 2026-09-16 22:32:46 +00:00
fix(taskfile): remove build targets for binaries deleted months ago, and make check build
CI / Lint / Test / Vet (pull_request) Successful in 54s
CI / Mirror to GitHub (pull_request) Skipped
760aa45afc
Closes #120 (items 2 and the suggested gate fix).

`task build` has been broken since `cmd/supervisor` was deleted in c117634, and
CI stayed green the entire time. That combination is the finding: not that a
path went stale, but that nothing could notice.

`check` ran lint, test and vet. All three walk `./...`, which enumerates the
packages that EXIST. A build target naming a DELETED package is invisible to
every one of them — `go vet ./...` cannot complain about a directory it never
visits. The gate was complete with respect to the code present and blind to the
code referenced.

`build` is now part of `check`, with that reasoning written above it.
Flip-tested: reintroducing `go build ./cmd/supervisor` takes `task check` to
exit 201, naming the missing directory.

Removed, all pointing at binaries that no longer exist:

- `supervisor:dev` and `supervisor:build`     -> ./cmd/supervisor
- `supervisor:test:smoke`                     -> curls a server nothing can start
- `smoke:routing` + scripts/smoke-routing.sh  -> ./cmd/routing
- the `supervisor:` line in Procfile, which also still pointed
  SUPERVISOR_MODELS_FILE at the file deleted in #116

`build` now aggregates `hyperguild:build` + `ingestion:build`, the two binaries
that actually exist.

A false lead worth recording so it is not re-investigated: a first sweep flagged
`./cmd/server` and `./cmd/frontmatterlint` as missing too. They are not — their
tasks set `dir: ingestion`, and both exist under `ingestion/cmd/`. Any checker
for this class has to resolve a task's working directory before judging its
paths, or it reports two false positives for every true one.

Not addressed here: #120's third item, that `internal/config` has zero non-test
callers. `RoutingConfig` is the only written record of the routing pod's
configuration contract, so deleting it is a judgement call rather than a
correction.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
mathias merged commit 6e449b464c into main 2026-09-16 22:36:49 +00:00
Sign in to join this conversation.