Merge pull request #1: feat(client): Godot 4 project boilerplate (epic #277)

Merge origin/client into main. Resolve binary conflict in
commonwealth.db by keeping main's version (latest ticket state).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-11 18:27:20 +01:00
co-authored by Claude Opus 4.6
1016 changed files with 55981 additions and 12 deletions
+12 -12
View File
@@ -1,3 +1,5 @@
GODOT := $(shell command -v godot4 2>/dev/null || command -v godot 2>/dev/null)
.PHONY: help setup build client server test lint ci ci-client ci-server clean \
decisions-sync decisions-coverage decisions-active decisions-orphan
@@ -52,8 +54,8 @@ build-server:
cd server && cargo build
build-client:
@echo "Client build: Godot exports are configured via the editor."
@echo "Use 'make client' to run the client directly."
@test -n "$(GODOT)" || { echo "Godot not found. Run 'make setup' first."; exit 1; }
$(GODOT) --headless --path client --quit
# --- Run ---
@@ -61,13 +63,8 @@ server:
cd server && cargo run
client:
@if command -v godot4 >/dev/null 2>&1; then \
godot4 --path client; \
elif command -v godot >/dev/null 2>&1; then \
godot --path client; \
else \
echo "Godot not found. Run 'make setup' first."; exit 1; \
fi
@test -n "$(GODOT)" || { echo "Godot not found. Run 'make setup' first."; exit 1; }
$(GODOT) --path client
# --- Test ---
@@ -77,8 +74,8 @@ test-server:
cd server && cargo nextest run
test-client:
@echo "Client tests run via gdUnit4 inside Godot."
@echo "TODO: headless test runner integration"
@test -n "$(GODOT)" || { echo "Godot not found. Run 'make setup' first."; exit 1; }
$(GODOT) --headless --path client -s res://addons/gdUnit4/bin/GdUnitCmdTool.gd --ignoreHeadlessMode -a res://tests/
# --- Lint ---
@@ -89,7 +86,9 @@ lint-server:
cd server && cargo fmt --check
lint-client:
@echo "Client lint: TODO — gdlint / gdformat integration"
@test -n "$(GODOT)" || { echo "Godot not found. Run 'make setup' first."; exit 1; }
@echo "Checking GDScript for errors..."
@$(GODOT) --headless --path client --quit 2>&1 | grep -i "SCRIPT ERROR" && { echo "GDScript errors found"; exit 1; } || echo "No script errors found"
# --- CI (run locally) ---
@@ -118,4 +117,5 @@ decisions-orphan:
clean:
cd server && cargo clean || true
rm -rf .cache/*
rm -rf client/.godot client/reports
@echo "Clean complete."