mirror of
https://github.com/Twigpine/zero.git
synced 2026-11-11 23:40:28 -10:00
From the 2026-06-21 behavioral audit. Each verified by tests + the real binary. - exec: accept the advertised `-p`/`-p=` short flag in the exec subcommand parser; previously only `--prompt` worked even though top-level help advertises `-p`, so the documented `zero exec -p "..."` form errored (internal/cli/exec_parse.go). - version: `version --help` prints a usage line instead of the version string (internal/cli/app.go). - specialist: `specialist edit <builtin>` explains builtins are read-only instead of the misleading "specialist not found" (internal/cli/specialist.go). - cron: `pause`/`resume`/`rm` now print a success confirmation (rm's verb arg was previously dead) (internal/cli/cron.go). - update_plan: coerce non-canonical statuses (e.g. "done", "in-progress") to the nearest canonical value instead of failing the whole call, and keep at most one in_progress item (internal/tools/update_plan.go + tests). - build: add a Makefile (build/test/lint/...) backing AGENTS.MD's `make`/`make lint`. Investigated but intentionally NOT changed (guarded by existing tests): - write_stdin AdvertiseInAuto — TestCoreToolsExposeShellTools asserts it stays visible in auto mode for polling/interrupts. - --list-tools not resolving config (so tool_search is absent there) — TestRunExecListsMCPToolsWithoutProviderResolution asserts list-tools must not resolve provider config. Out of scope: LICENSE (owner decision), provider-resolve startup crash (PR #283), OAuth default storage + MCP auto-reconnect (design choices).
45 lines
1.0 KiB
Makefile
45 lines
1.0 KiB
Makefile
# Zero build/test/lint targets. AGENTS.MD says "Build with `make`" and "Run `make
|
|
# lint` before opening a PR" — these targets back those instructions.
|
|
.DEFAULT_GOAL := build
|
|
.PHONY: build build-all test test-race vet fmt fmt-check lint tidy clean help
|
|
|
|
# Build the main CLI binary into ./zero.
|
|
build:
|
|
go build -o zero ./cmd/zero
|
|
|
|
# Build every command in cmd/.
|
|
build-all:
|
|
go build ./...
|
|
|
|
# Run the full test suite with the race detector (matches CI expectations).
|
|
test:
|
|
go test ./... -race -count=1
|
|
|
|
# Faster, no race detector.
|
|
test-quick:
|
|
go test ./...
|
|
|
|
vet:
|
|
go vet ./...
|
|
|
|
fmt:
|
|
gofmt -w $(shell git ls-files '*.go')
|
|
|
|
# Fail if any tracked Go file is not gofmt-clean.
|
|
fmt-check:
|
|
@out="$$(gofmt -l $$(git ls-files '*.go'))"; \
|
|
if [ -n "$$out" ]; then echo "gofmt needed:"; echo "$$out"; exit 1; fi
|
|
|
|
# Lint = formatting check + vet (no extra tooling required).
|
|
lint: fmt-check vet
|
|
|
|
tidy:
|
|
go mod tidy
|
|
|
|
clean:
|
|
rm -f zero
|
|
go clean ./...
|
|
|
|
help:
|
|
@echo "Targets: build (default), build-all, test, test-quick, vet, fmt, fmt-check, lint, tidy, clean"
|