chore(meta): docs/build sweep + tooling test gate (T-1069, T-1066)
- make test-tooling: planet-gen determinism guard + import_economics
--dry-run, wired into pre-push on TOOLING_CHANGED; ruff widened to
E4/E7/E9/F/W (90 safe auto-fixes applied; E402/E702/F841 ignored with
documented counts)
- one-generator reality fixed in DEVOPS.md, asset-pipeline rule, CLAUDE.md
(import_economics sole generator since #951/D-223); dead check-protocol
target deleted; DEVOPS hook/config sections rewritten from the actual
hook sources; team-patterns gate description updated (client+tooling)
- project.yaml: 0.2.0 → 0.4.0 per the 0.{phase}.{n} scheme, description
refreshed from the v0.1 Sova narration to cascade reality
- stale comment sweep: voxel.rs stub claims (all 8 families implemented),
cascade.rs TODO recited to T-1044, main.rs D-192 handshake claim,
relationships.rs/chunk_streaming.rs version targets → phase language
- gitignore: client/settings.db* e2e-run artifacts
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
GODOT := $(shell command -v godot4 2>/dev/null || command -v godot 2>/dev/null)
|
||||
|
||||
.PHONY: help setup build check-protocol client server game stop test lint lint-python setup-venv ci ci-client ci-server clean \
|
||||
.PHONY: help setup build client server game stop test test-tooling lint lint-python setup-venv ci ci-client ci-server clean \
|
||||
decisions-sync decisions-active decisions-validate \
|
||||
validate-content check-fact-ids setup-hooks install-hooks \
|
||||
audit deny atlas-verify economy-db regen-db check-systems-db \
|
||||
@@ -30,6 +30,7 @@ help:
|
||||
@echo " make client Run the Godot client (test mode)"
|
||||
@echo " make server Run the Rust simulation server"
|
||||
@echo " make test Run all tests"
|
||||
@echo " make test-tooling Tooling test gate: sim determinism + economics dry-run"
|
||||
@echo " make test-ipc-fixtures Layer 1: IPC serialization fixtures"
|
||||
@echo " make test-ipc-protocol Layer 2: mock IPC protocol tests"
|
||||
@echo " make test-ipc-integration Layer 3: real subprocess round-trip"
|
||||
@@ -39,7 +40,6 @@ help:
|
||||
@echo " make ci Run full CI pipeline locally"
|
||||
@echo " make ci-client Run client CI checks"
|
||||
@echo " make ci-server Run server CI checks"
|
||||
@echo " make check-protocol Verify server/client protocol versions match"
|
||||
@echo " make clean Remove build artifacts and caches"
|
||||
@echo ""
|
||||
@echo " make decisions-sync Sync governance/*.md decision records into pql.db"
|
||||
@@ -120,16 +120,7 @@ setup-venv:
|
||||
|
||||
# --- Build ---
|
||||
|
||||
check-protocol:
|
||||
@SERVER_V=$$(grep 'pub const PROTOCOL_VERSION' server/src/bridge/types.rs | sed 's/.*= *//;s/[^0-9]//g'); \
|
||||
CLIENT_V=$$(grep 'const PROTOCOL_VERSION' client/scripts/protocol/protocol.gd | sed 's/.*= *//;s/[^0-9]//g'); \
|
||||
if [ "$$SERVER_V" != "$$CLIENT_V" ]; then \
|
||||
echo "ERROR: Protocol version mismatch — server=$$SERVER_V, client=$$CLIENT_V"; \
|
||||
echo " Fix: update client/scripts/protocol/protocol.gd to match server/src/bridge/types.rs"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
build: check-protocol build-server build-client
|
||||
build: build-server build-client
|
||||
|
||||
build-server:
|
||||
cd server && cargo build
|
||||
@@ -227,6 +218,36 @@ test-ipc-integration:
|
||||
test-ipc-benchmark:
|
||||
tests/run-ipc-benchmark
|
||||
|
||||
# Python with tooling deps (numpy/scipy) — .venv from `make setup-venv`, else system python3
|
||||
VENV_PY := $(shell test -x .venv/bin/python && echo .venv/bin/python || echo python3)
|
||||
|
||||
# Tooling test gate (T-1066) — called by pre-push when tooling/ changed.
|
||||
# 1. planet-gen determinism guard (#963): simulating the same body twice must
|
||||
# be bit-identical (guards the expensive 271-body heightmap bake).
|
||||
# Exit 2 = no testable body found — warn, don't block.
|
||||
# 2. import_economics --dry-run against the committed DB: full parse +
|
||||
# structural/coverage validation, no writes. Exit 2 = coverage-gate
|
||||
# warning (D-175) — tolerated, matching regen-db's treatment.
|
||||
test-tooling:
|
||||
@echo " [test-tooling] planet-gen determinism guard (#963)..."
|
||||
@rc=0; $(VENV_PY) tooling/planet-gen/test_sim_determinism.py || rc=$$?; \
|
||||
if [ $$rc -eq 2 ]; then \
|
||||
echo " WARNING: determinism guard found no testable body (exit 2) — not blocking"; \
|
||||
elif [ $$rc -ne 0 ]; then \
|
||||
echo " FAIL: planet_simulation determinism drift (exit $$rc)"; exit $$rc; \
|
||||
fi
|
||||
@echo " [test-tooling] import_economics --dry-run (committed DB)..."
|
||||
@mkdir -p .cache
|
||||
@rc=0; python3 tooling/economy-db/import_economics.py --dry-run \
|
||||
> .cache/test-tooling-dryrun.log 2>&1 || rc=$$?; \
|
||||
if [ $$rc -eq 2 ]; then \
|
||||
echo " WARNING: coverage gate warning (exit 2) — not blocking (matches regen-db)"; \
|
||||
elif [ $$rc -ne 0 ]; then \
|
||||
echo " FAIL: import_economics --dry-run exited $$rc — log follows:"; \
|
||||
cat .cache/test-tooling-dryrun.log; exit $$rc; \
|
||||
fi
|
||||
@echo " test-tooling: PASS"
|
||||
|
||||
# --- Clean ---
|
||||
|
||||
clean-imports:
|
||||
|
||||
Reference in New Issue
Block a user