fix(taskfile): remove build targets for binaries deleted months ago, and make check build
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>
This commit is contained in:
@@ -1,64 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Boot the routing binary and exercise its four tools against live deps.
|
||||
# Skipped when LITELLM_BASE_URL or BRAIN_URL is unreachable.
|
||||
|
||||
LITELLM_BASE_URL="${LITELLM_BASE_URL:-https://llm-api.d-ma.be}"
|
||||
BRAIN_URL="${BRAIN_URL:-http://koala:30330}"
|
||||
|
||||
if ! curl -sS --max-time 2 "${LITELLM_BASE_URL}/v1/models" >/dev/null 2>&1; then
|
||||
echo "SKIP: LITELLM at ${LITELLM_BASE_URL} unreachable"
|
||||
exit 0
|
||||
fi
|
||||
if ! curl -sS --max-time 2 "${BRAIN_URL}/query" -X POST -d '{"query":"x","k":1}' -H 'Content-Type: application/json' >/dev/null 2>&1; then
|
||||
echo "SKIP: BRAIN at ${BRAIN_URL} unreachable"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
PORT=33310
|
||||
BIN=$(mktemp)
|
||||
trap 'rm -f $BIN; pkill -P $$ -f "$BIN" 2>/dev/null || true' EXIT
|
||||
|
||||
go build -o "$BIN" ./cmd/routing
|
||||
|
||||
LITELLM_BASE_URL="$LITELLM_BASE_URL" BRAIN_URL="$BRAIN_URL" \
|
||||
ROUTING_PORT="$PORT" SUPERVISOR_CONFIG_DIR="$(pwd)/config/supervisor" \
|
||||
"$BIN" &
|
||||
|
||||
# Wait for the binary to bind.
|
||||
for _ in $(seq 1 50); do
|
||||
curl -sS "http://127.0.0.1:${PORT}/healthz" >/dev/null 2>&1 && break
|
||||
sleep 0.1
|
||||
done
|
||||
|
||||
call_tool() {
|
||||
local tool="$1"
|
||||
local args="$2"
|
||||
curl -sS -X POST "http://127.0.0.1:${PORT}/mcp" \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"${tool}\",\"arguments\":${args}}}" \
|
||||
| jq -e '.result // .error' > /dev/null
|
||||
}
|
||||
|
||||
echo "calling tools/list..."
|
||||
curl -sS -X POST "http://127.0.0.1:${PORT}/mcp" \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' \
|
||||
| jq -r '.result.tools | map(.name) | sort | .[]'
|
||||
|
||||
echo "calling each tool..."
|
||||
call_tool review '{"project_root":"/tmp","files":["README.md"],"session_id":"smoke-1"}'
|
||||
call_tool debug '{"project_root":"/tmp","error":"smoke test","session_id":"smoke-1"}'
|
||||
call_tool retrospective '{"session_id":"smoke-1"}'
|
||||
call_tool trainer '{"session_id":"smoke-1"}'
|
||||
|
||||
echo "checking brain has _routing entries..."
|
||||
sleep 2
|
||||
COUNT=$(curl -sS "${BRAIN_URL}/pass-rate?skill=_routing&window=1h" | jq -r '.total // 0')
|
||||
if [ "${COUNT}" -lt 4 ]; then
|
||||
echo "FAIL: expected >=4 _routing entries in last 1h, got ${COUNT}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "PASS: smoke:routing"
|
||||
Reference in New Issue
Block a user