daniel156161
f14d780f29
feat: add live replays and PostgreSQL maintenance tools
...
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.
2026-08-02 00:50:46 +02:00
daniel156161
9b99b526e4
perf(snake): cache survival rollout state
...
Build and Push Docker Container / build-and-push (push) Successful in 6m1s
- Cache occupancy bitboards for repeated multiplayer rollout positions.
- Memoize position evaluations to avoid duplicate flood-fill calculations.
- Reuse shared values while ranking simultaneous enemy responses.
- Include evaluation hits in Prism rollout telemetry.
- Document the optimization and bump Prism to version 1.4.0.
2026-08-01 20:39:56 +02:00
daniel156161
3a9af3f54d
feat(snake): modularize engine and add tournament tools
...
- Split active strategies, reusable engine code, core classes, and legacy snakes.
- Replace implicit snake imports with explicit module registrations.
- Extract Prism duel, spatial, and survival behavior into focused mixins.
- Improve duel scoring with food races, pressure, caches, and depth metrics.
- Add deterministic arena scenarios and paired seeded engine tournaments.
- Expand benchmark telemetry and bump Prism to version 1.3.0.
- Update documentation and tests for the new package layout and tooling.
2026-08-01 20:25:07 +02:00
daniel156161
cb6c8d4dc8
feat(snake): add adaptive adversarial search
...
- Share duel search contexts and transpositions across candidate moves.
- Add aspiration windows, principal variation ordering, and body caches.
- Model simultaneous multiplayer responses with a compact beam rollout.
- Adapt search depth and response breadth to the remaining deadline.
- Add a deterministic arena benchmark with optional JSON reporting.
- Expose search metrics, document benchmarking, and bump Prism to 1.2.0.
2026-08-01 19:26:19 +02:00
daniel156161
6643eb35af
fix: resolve duel roots and recover legacy snake data
...
- Resolve selected moves and enemy replies on the same simulated turn.
- Add an Apex candidate hook and bump the Prism snake to version 1.1.0.
- Rebuild benchmark states from normalized turn data when snapshots are empty.
- Synthesize missing game snake identities during legacy database migration.
- Add regression coverage for duel timing and partial legacy schemas.
2026-08-01 19:11:32 +02:00
daniel156161
c646392b84
fix: preserve gameplay data and correct duel evaluation
...
- Preserve snake customizations across database migrations and merges.
- Lazily load optional storage backends for SQLite maintenance scripts.
- Match Apex territory and nearest-food tie-breaking semantics.
- Resolve duel occupancy after simultaneous movement and food growth.
- Recompute simulated head-to-head danger after body growth.
- Add regression coverage and declare the aiofiles dependency.
2026-08-01 18:16:04 +02:00
daniel156161
4f022d3d01
feat(snake): optimize duels and persist customizations
...
Build and Push Docker Container / build-and-push (push) Successful in 7m29s
- Add deadline-aware iterative duel search with bitboards and tuple bodies.
- Reuse transposition bounds and move-order hints across search depths.
- Persist snake colors, heads, and tails in SQLite and PostgreSQL.
- Restore customization metadata when hydrating dashboard replays.
- Cover duel deadlines, cache reuse, schema storage, and replay output.
2026-08-01 17:19:35 +02:00
daniel156161
65c97b219b
fix(deps): add httpx, remove unused gel dependency
...
Build and Push Docker Container / build-and-push (push) Successful in 8m20s
- Add httpx>=0.28.0 (required by quart_common.web.wide_event)
- Remove gel>=3.1.0 (only lazy-imported in EdgeDB.py with try/except)
- Update uv.lock with resolved dependency changes
2026-08-01 16:33:37 +02:00
daniel156161
c704fbc742
feat: add Prism snake and gameplay database lifecycle
...
Build and Push Docker Container / build-and-push (push) Successful in 8m3s
- Add bitboard-accelerated Prism and versioned Supreme snake implementations.
- Add database-backed move benchmarks and focused strategy tests.
- Normalize gameplay storage while preserving replay compatibility.
- Add deterministic game quality scoring and replay retention tiers.
- Add backup-first SQLite cleanup, verification, and replacement tooling.
- Add safe compact-plus-delta database merging with conflict detection.
- Extend SQLite and PostgreSQL schemas for replay and quality metadata.
- Add PostgreSQL development service and pytest import configuration.
- Update gameplay documentation and the quart_common submodule revision.
2026-08-01 16:21:02 +02:00
daniel156161
9a7f4de586
remove console.log into buildSnakesRows
Build and Push Docker Container / build-and-push (push) Successful in 5m2s
2026-08-01 11:58:57 +02:00
daniel156161
ce3f9f1d82
rework that the sqlite and postgresql backend uses the same code to build the data for the dashboard
2026-08-01 11:58:49 +02:00
Daniel Dolezal
60fe19c61c
fix: rewrite SSH submodule URLs to HTTPS in CI
Build and Push Docker Container / build-and-push (push) Successful in 7m35s
2026-05-02 09:39:15 +02:00
daniel156161
79c6b00ace
install python-dotenv and asyncpg for postgres
Build and Push Docker Container / build-and-push (push) Successful in 4m30s
2026-04-08 15:03:55 +02:00
daniel156161
3614625c56
remove tail and head of snakes-section
2026-04-08 15:03:04 +02:00
daniel156161
341bb27278
change that GameplayDatabase can have different backends, sqlite and postgresql with a Template example backend
2026-04-08 14:28:39 +02:00
daniel156161
a62501cf22
remove stroing of the Game Board State into Redis or Memory
2026-04-08 08:36:54 +02:00
daniel156161
f6e19e18e6
speed up loading and saving to redis that the move request are getting a answer when switching workers, strip data that neats to get recomuted every turn
Build and Push Docker Container / build-and-push (push) Successful in 4m49s
2026-04-07 12:13:11 +02:00
daniel156161
f479541c04
remove : space between function args
2026-04-07 12:02:50 +02:00
daniel156161
f0d62a6049
add new Snake with the Name ApexBattleSnake
Build and Push Docker Container / build-and-push (push) Successful in 4m41s
2026-04-07 10:46:45 +02:00
daniel156161
d2e1f2560e
change metrics endpoint to return json by default and when the useragent contains prometheus to return the output as prometheus string format
Build and Push Docker Container / build-and-push (push) Successful in 4m53s
2026-04-07 07:57:52 +02:00
daniel156161
739c0520f9
move dashboard script block content into own files with new classes to update, render to have a better code overview
Build and Push Docker Container / build-and-push (push) Successful in 3m55s
2026-04-07 03:25:10 +02:00
daniel156161
03968fecdf
removed reloading of full gameboard when pushing new game
2026-04-07 02:58:12 +02:00
daniel156161
f4c0ad193e
only allow access to start, move, end endpoint with the user agent BattlesnakeEngine
Build and Push Docker Container / build-and-push (push) Successful in 4m8s
2026-04-07 02:34:31 +02:00
daniel156161
898f8106ed
only allow metrics endpoint from localhost and wireguard and prometheus metrics neat to have the prometheus user agent as a extra
2026-04-07 02:34:19 +02:00
daniel156161
dfa658e4ce
only allow access to metrics from prometheus or local adresses and wireguard vpn connection
Build and Push Docker Container / build-and-push (push) Successful in 4m45s
2026-04-07 01:42:25 +02:00
daniel156161
abed259129
cleanup server extra variables that are only getting used into server.py
2026-04-07 00:23:23 +02:00
daniel156161
8c4f83fb4b
move css styleing into own files and allow to open the game with a url on the battlesnake side
2026-04-06 23:47:31 +02:00
daniel156161
1b8fa67059
use snake class name and version from GameBoard and remove snake type and version from GameplayTrackingService init
2026-04-06 23:24:37 +02:00
daniel156161
a2a79b7efb
allow to connect the snake head and tail with the body
2026-04-06 22:05:13 +02:00
daniel156161
59d01428a9
move side templates and static files into root folder structure to not have it in the code folder
Build and Push Docker Container / build-and-push (push) Failing after 14m3s
2026-04-06 19:35:53 +02:00
daniel156161
3da10189b7
move snake config read functions into battlesnake template and use TemplateSnake as default Version of Snakes
Build and Push Docker Container / build-and-push (push) Failing after 13m9s
2026-04-06 19:24:45 +02:00
daniel156161
a8eb6a4447
remove depricated version tag and use .env for container mount path
Build and Push Docker Container / build-and-push (push) Failing after 10m8s
2026-04-06 19:02:39 +02:00
daniel156161
5c1875be60
move imports that longst is ontop
2026-04-06 19:02:04 +02:00
daniel156161
7c990f98fc
disable GameplayDatabase compression by default
Build and Push Docker Container / build-and-push (push) Successful in 4m19s
2026-04-06 18:30:11 +02:00
daniel156161
dd3547678c
add 2.5x speed selector
Build and Push Docker Container / build-and-push (push) Successful in 5m52s
2026-04-06 17:59:32 +02:00
daniel156161
0af5f58688
fix loading of storage and not crash the request
2026-04-06 17:59:10 +02:00
daniel156161
fdc22af4cf
fix building of sqlite-zstd with current version to not have a version missmatch error
Build and Push Docker Container / build-and-push (push) Successful in 5m21s
2026-04-06 17:42:53 +02:00
daniel156161
ed41c32ad8
don't crash server when sqlite-zstd extension can't be loaded
Build and Push Docker Container / build-and-push (push) Successful in 3m58s
2026-04-06 17:22:27 +02:00
daniel156161
6c34df103e
build sqlite-zstd from source to not have a version missmatch of sqlite3
Build and Push Docker Container / build-and-push (push) Successful in 4m14s
2026-04-06 16:49:00 +02:00
daniel156161
af7df92f4d
cleanup codebase to use the .testing as local folder with test content
2026-04-06 16:48:09 +02:00
daniel156161
fbc7a50f34
install qlite_zstd into docker container to compress gameplay database
Build and Push Docker Container / build-and-push (push) Successful in 1m56s
2026-04-06 16:35:59 +02:00
daniel156161
1a1bcd8ec3
move ensure auto vacuum full when init database or change to full when already exists
2026-04-06 16:35:05 +02:00
daniel156161
fe999c11f4
add compression to GameplayDatabase and test if compression works with the sqlite_zstd extension
2026-04-06 16:34:15 +02:00
daniel156161
01343472df
move all Databases into the database folder to not have storeage and Database when they are all Databases
2026-04-06 16:24:28 +02:00
daniel156161
c4238d19e8
remove lines between snakes body parts
Build and Push Docker Container / build-and-push (push) Successful in 1m9s
2026-04-06 06:05:20 +02:00
daniel156161
afaf6c7c63
add curves to body when snake moves and show boarder color correctly in the background
2026-04-06 06:04:05 +02:00
daniel156161
1cd0f1ed1d
fix svg loading to remove garbage icons
2026-04-06 05:46:32 +02:00
daniel156161
8f6a2ef674
add Backend Env to use as default for all then spesicich down to memory
2026-04-06 05:28:10 +02:00
daniel156161
5328252cf1
move snake builder into game_runtime.py to not pass it around very where
2026-04-06 05:27:37 +02:00
daniel156161
41f117e3a8
render Observed At time into user local time and move Snake Status and Thinking Boxes around to look more better
Build and Push Docker Container / build-and-push (push) Successful in 1m12s
2026-04-06 04:44:34 +02:00