feat: add live replays and PostgreSQL maintenance tools
Build and Push Docker Container / build-and-push (push) Successful in 7m53s
Build and Push Docker Container / build-and-push (push) Successful in 7m53s
- Stream compact live replay updates across local and clustered dashboards. - Render responsive snake bodies as SVG paths with aligned custom icons. - Add cache-busted assets, replay fallback routes, and live-follow playback. - Support PostgreSQL benchmark sampling and idempotent SQLite migration. - Add dry-run cleanup for old low-quality PostgreSQL replay payloads. - Reward safe perimeter lanes and bump Prism to version 1.5.0. - Add backend, migration, dashboard, and perimeter regression coverage.
This commit is contained in:
@@ -62,13 +62,33 @@ bench-best-snake iterations="1000":
|
||||
|
||||
PYTHONPATH="{{justfile_directory()}}" python "{{justfile_directory()}}/tests/bench_best_battle_snake.py" --iterations "{{iterations}}"
|
||||
|
||||
bench-snake-arena positions="100" output="":
|
||||
bench-snake-arena positions="100" output="" database="":
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
args=(--positions "{{positions}}")
|
||||
if [ -n "{{database}}" ]; then args+=(--database "{{database}}"); fi
|
||||
if [ -n "{{output}}" ]; then args+=(--json-output "{{output}}"); fi
|
||||
PYTHONPATH="{{justfile_directory()}}" python "{{justfile_directory()}}/scripts/benchmark_snake_arena.py" "${args[@]}"
|
||||
PYTHONPATH="{{justfile_directory()}}" uv run python "{{justfile_directory()}}/scripts/benchmark_snake_arena.py" "${args[@]}"
|
||||
|
||||
bench-snake-arena-postgres positions="100" output="":
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
: "${GAMEPLAY_DB_PG_DSN:?Set GAMEPLAY_DB_PG_DSN in .env or the environment}"
|
||||
args=(--positions "{{positions}}" --database "$GAMEPLAY_DB_PG_DSN")
|
||||
if [ -n "{{output}}" ]; then args+=(--json-output "{{output}}"); fi
|
||||
PYTHONPATH="{{justfile_directory()}}" uv run python "{{justfile_directory()}}/scripts/benchmark_snake_arena.py" "${args[@]}"
|
||||
|
||||
cleanup-gameplay-postgres older_than_days="30" execute="false" vacuum="false":
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
: "${GAMEPLAY_DB_PG_DSN:?Set GAMEPLAY_DB_PG_DSN in .env or the environment}"
|
||||
args=(--dsn "$GAMEPLAY_DB_PG_DSN" --older-than-days "{{older_than_days}}")
|
||||
if [ "{{execute}}" = "true" ]; then args+=(--execute); fi
|
||||
if [ "{{vacuum}}" = "true" ]; then args+=(--vacuum); fi
|
||||
PYTHONPATH="{{justfile_directory()}}" uv run python "{{justfile_directory()}}/scripts/cleanup_postgresql_gameplay.py" "${args[@]}"
|
||||
|
||||
bench-snake-tournament games="20" gametype="standard" map="standard" output="":
|
||||
#!/usr/bin/env bash
|
||||
@@ -109,6 +129,19 @@ battlesnake-cli-version:
|
||||
# Testing helpers
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
test-unit:
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
PYTHONPATH="{{justfile_directory()}}" python -m unittest discover -s "{{justfile_directory()}}/tests" -p "test_*.py"
|
||||
|
||||
# Dashboard front-end logic (head/tail orientation, board geometry).
|
||||
test-js:
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
node --test "{{justfile_directory()}}"/tests/js/*.test.mjs
|
||||
|
||||
test-constrictor: build-battlesnake-cli
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
Reference in New Issue
Block a user