run: ## Run the application (cross-platform; uses go run for dev on Linux/macOS/Windows) @go run . run-debug: ## Run the application with debug logging (cross-platform) @go run . --log-level debug build: deps ## Build a snapshot of the application for the current platform (uses -short for fast feedback) @go test -short -v ./... @goreleaser build --single-target --snapshot --clean test: deps ## Run all tests @go test -shuffle=on -timeout=5m -v ./... test-race: deps ## Run all tests with the race detector @go test -race -shuffle=on -timeout=5m -v ./... lint: deps check-review-labels ## Run golangci-lint + review label hygiene check @golangci-lint run ./... check-review-labels: ## Fail if temporary review labels (P0-01, T1, I3, R2, etc.) are found in source @! grep -rnE '\b[A-Z][0-9][^a-zA-Z]' --include='*.go' . 2>/dev/null | grep -v 'G[0-9]\{3\}' || (echo "Error: Found temporary review labels (P*, T*, I*, etc.) in source. See AGENTS.md for the rule." && exit 1) deps: ## Download dependencies @go mod tidy clean: ## Remove build artifacts and test cache @rm -rf bin/ dist/ *.test coverage.out steamcache2 bench: deps ## Run all benchmarks (MemoryFS + DiskFS variants, including all eviction strategies) @echo "Running MemoryFS benchmarks..." @go test -bench=. -benchmem -run=^$ -benchtime=1s ./vfs/memory @echo "Running DiskFS benchmarks..." @go test -bench=. -benchmem -run=^$ -benchtime=1s ./vfs/disk @echo "Bench done." help: ## Show this help message @echo steamcache2 Makefile @echo Available targets: @echo run Run the application (cross-platform via go run) @echo run-debug Run the application with debug logging (cross-platform) @echo build Build the application (goreleaser snapshot) @echo test Run all tests @echo test-race Run all tests with the race detector @echo lint Run golangci-lint + review label check @echo check-review-labels Fail on temporary review labels (P*, T*, I*, R*, etc.) @echo deps Download dependencies @echo clean Remove build/test artifacts