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
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
daniel156161
43c7720480
fix circular import errors so the server and start again
2026-04-06 04:30:02 +02:00
daniel156161
98be2fe6fe
move Server code into more services and use them into blueprints or server
2026-04-06 04:20:07 +02:00
daniel156161
30eb17bb83
reuse the code from quart_common.web.env to import env_bool and env_int into all classes that are useing this functions
2026-04-06 03:33:22 +02:00
daniel156161
d89986dba9
move route code out of server into own blueprints and cleanup the codebase
2026-04-06 03:10:49 +02:00
daniel156161
0ebb04f0a2
change websocket and game publish to redis backend with pub sub
Build and Push Docker Container / build-and-push (push) Successful in 1m59s
2026-04-06 02:05:56 +02:00
daniel156161
097a7f295a
update dashboards over websocket and remove database path from GameplayDatabase output
Build and Push Docker Container / build-and-push (push) Failing after 13m18s
2026-04-06 01:49:26 +02:00
daniel156161
4626a491f5
update Dashboard with new keyboard bindings fix errors with hazards, set win or loss on stale games (older) and push new games real time over the websocket connection when they are finished
Build and Push Docker Container / build-and-push (push) Failing after 12m39s
2026-04-06 00:36:06 +02:00
daniel156161
e7d0227cf9
show snake body correctly under hazards
Build and Push Docker Container / build-and-push (push) Successful in 1m34s
2026-04-05 23:08:17 +02:00
daniel156161
b7c6a0e345
fix svg color problem show dead resions when very sure and allow to highlight snakes when clicking into them store timout and calcumate Snake Win Rate Overall, fix to use full page of games-body, get win lloss or unknown
2026-04-05 23:01:27 +02:00
daniel156161
050dd1083c
add snake customizations to dashboard to show head and tail correctly
Build and Push Docker Container / build-and-push (push) Successful in 3m59s
2026-04-05 19:58:20 +02:00
daniel156161
2d603a3b0b
add better dashboard with full snake game board
2026-04-05 19:57:43 +02:00
daniel156161
b9b02cf273
fix UltimateBattleSnake version in snake registry
2026-04-05 16:48:45 +02:00
daniel156161
4151810f1b
add GameplayDatabase database with dashboard
2026-04-05 16:48:12 +02:00
daniel156161
2601c2dcff
fix ladder error because api changed values
2026-04-05 15:20:25 +02:00
daniel156161
efe15dd8e7
update UltimateBattleSnake to 4.5.0
2026-04-05 15:19:53 +02:00
daniel156161
3cb3517892
update snakes with new code
Build and Push Docker Container / build-and-push (push) Successful in 1m21s
2026-04-05 12:20:10 +02:00
daniel156161
00d55b5419
update UltimateBattleSnake to 4.2.0
Build and Push Docker Container / build-and-push (push) Successful in 1m12s
2026-04-05 03:05:46 +02:00
daniel156161
643f4b468e
add snake from claude code
Build and Push Docker Container / build-and-push (push) Successful in 1m36s
2026-04-05 02:52:44 +02:00
daniel156161
332e86e3cc
rework dataset function and class structure
2026-04-05 02:21:15 +02:00
daniel156161
066a93f755
move RLBootstrapDataset into a own class with its own test file
2026-04-05 00:54:15 +02:00
daniel156161
eb290dd634
rework folder structure complitly
2026-04-04 23:01:34 +02:00
daniel156161
2b8f0396e3
rename Test file and add init file for metric backend to import all at once
2026-04-04 22:26:19 +02:00
daniel156161
043d7654f9
rename Metric Classes and change Folder Structure
2026-04-04 22:14:14 +02:00
daniel156161
a38a600bdc
rename ServerMetricsCollector to MetricsCollector
2026-04-04 21:29:40 +02:00
daniel156161
9d33c6fded
cleanup all worker stats when starting up servers
2026-04-04 21:28:26 +02:00
daniel156161
79f23b8be6
Update Best Battle Snake Logic
Build and Push Docker Container / build-and-push (push) Successful in 1m21s
2026-04-04 20:50:01 +02:00
daniel156161
6c68f412d2
don't log move_direction_counts into metric because looking almost the same
2026-04-04 19:08:19 +02:00
daniel156161
92a700409d
remove http_requests_by_endpoint into metrics
2026-04-04 19:05:59 +02:00
daniel156161
fc8e0657a0
change that oldest_active_game_age_sec not gets inflated when redis already deleted it
Build and Push Docker Container / build-and-push (push) Successful in 1m2s
2026-04-04 16:40:49 +02:00
daniel156161
f8c492f333
not count stale games as active games because they will get deletet after ttl expire into redis
Build and Push Docker Container / build-and-push (push) Successful in 56s
2026-04-04 16:02:51 +02:00
daniel156161
5997a1f6c1
only update stuck game metric when game state backend is not redis
Build and Push Docker Container / build-and-push (push) Successful in 57s
2026-04-04 15:33:07 +02:00
daniel156161
8564606f4c
disable removeing cound of stale games in the backend because redis is doing it
Build and Push Docker Container / build-and-push (push) Successful in 1m1s
2026-04-04 15:28:25 +02:00
daniel156161
561527a21b
correct end game active metric count
Build and Push Docker Container / build-and-push (push) Successful in 52s
2026-04-04 15:23:56 +02:00
daniel156161
47051a6068
make Metrics Collector Class and auto send to redis when change happend
Build and Push Docker Container / build-and-push (push) Successful in 1m0s
2026-04-04 14:52:21 +02:00
daniel156161
c3da096320
allow to send metrics to memory or redis
Build and Push Docker Container / build-and-push (push) Successful in 52s
2026-04-04 14:21:54 +02:00
daniel156161
eb6a054bc9
removed --websocket-ping-interval into docker startup
Build and Push Docker Container / build-and-push (push) Successful in 1m10s
2026-04-04 13:35:02 +02:00
daniel156161
4daf63d483
update uv.lock file
Build and Push Docker Container / build-and-push (push) Successful in 56s
2026-04-04 13:26:17 +02:00
daniel156161
33c8fabc4c
use redis.asyncio insted of the old aioredis package
Build and Push Docker Container / build-and-push (push) Successful in 51s
2026-04-04 13:25:23 +02:00
daniel156161
00d456a412
update requirements
Build and Push Docker Container / build-and-push (push) Successful in 1m11s
2026-04-04 12:59:52 +02:00
daniel156161
65128b25c2
allow to disable self.running_games as L1 Cache into Worker when useing Redis Backend
Build and Push Docker Container / build-and-push (push) Successful in 54s
2026-04-04 12:53:31 +02:00
daniel156161
a1c4a4b68d
create MemoryGameBoardStore Class and rework Building of Game Board Storage
2026-04-04 12:34:00 +02:00
daniel156161
4547e3443b
add redis backend for storage of gameboards
2026-04-04 12:07:05 +02:00
daniel156161
bbdc8b288a
create better future planning into BestBattleSnake
2026-04-04 12:00:02 +02:00
daniel156161
c6ebb5834b
auto remove stuck games
Build and Push Docker Container / build-and-push (push) Successful in 51s
2026-04-04 10:23:12 +02:00
daniel156161
dbcf9cadaf
add more metrics data
Build and Push Docker Container / build-and-push (push) Successful in 1m2s
2026-04-04 09:58:11 +02:00
daniel156161
316870ef7a
add enemy cut off trap check
2026-04-04 09:55:58 +02:00
daniel156161
b0d484dbab
add dataset and models folder into git ignore file and change train-ai to get the input data from the dataset
Build and Push Docker Container / build-and-push (push) Failing after 12m11s
2026-04-04 00:00:33 +02:00
daniel156161
9e826afa5f
add Training for AI and AI Model and allow to collect rl data from BestBattleSnake
Build and Push Docker Container / build-and-push (push) Successful in 1m36s
2026-04-03 23:19:09 +02:00
daniel156161
d3b0488e0f
update python packages
Build and Push Docker Container / build-and-push (push) Successful in 1m32s
2026-04-03 21:51:13 +02:00
daniel156161
4e9a5595bc
cahange battlsnake cli to https url
Build and Push Docker Container / build-and-push (push) Successful in 1m43s
2026-04-03 21:48:27 +02:00
daniel156161
8f938ce3fe
Update BestBattleSnake Version to 2.6.0
Build and Push Docker Container / build-and-push (push) Failing after 23s
2026-04-03 21:40:31 +02:00