Daniel Schädler
b930ff574f
Merge remote-tracking branch 'origin/master' into codex/tur-210-playoff-deletion
2026-05-04 15:06:21 +02:00
Daniel Schädler
bbaca69265
feat: allow unplayed playoff deletion
2026-05-04 15:06:08 +02:00
Daniel Schädler
7fae7e2d95
feat(timer): update reason without restart
2026-05-04 14:40:04 +02:00
Daniel Schädler
54975d969b
Merge remote-tracking branch 'origin/master' into codex/tur-30-transaction-log
2026-04-30 14:07:12 +02:00
Daniel Schädler
21e1463b64
feat: add tournament transaction log
2026-04-30 10:04:56 +02:00
Daniel Schädler
2b63e61475
fix(sync): protect follower sync tokens
...
Store read-only receiver tokens as keyed digests and expose only sync_auth_configured in owner responses. Keep leader push tokens write-only in API responses because outbound sync still needs to send them.
Refs TUR-84
2026-04-30 09:32:37 +02:00
Daniel Schädler
df227f9397
feat(matches): stop in-progress matches
2026-04-29 19:56:25 +02:00
Daniel Schädler
6df5cb2502
fix(ci): restore Rails 8 spec suite
...
Confirm factory users for real Devise auth in request specs and use Rails 8-compatible status and route calls to remove deprecation warnings.
2026-04-29 15:48:20 +02:00
Daniel Schädler
fcfdead118
feat: start group matches by catch-up position
2026-04-28 23:46:00 +02:00
Daniel Schädler
3008b9fd50
TUR-137 add timer reasons
2026-04-28 12:28:01 +02:00
Daniel Schädler
244952093c
Merge branch 'codex/tur-117-match-filters' into 'master'
...
TUR-117: Add match endpoint filters
See merge request turniere/turniere-backend!60
2026-04-26 20:23:27 +00:00
Daniel Schädler
acdef9f5b4
feat(beamers): replace asset URLs with config
...
Add beamer config JSON, drop obsolete asset URL fields, and narrow display_state to the new beamer API states. Migration maps legacy display states to supported values and initializes config to {}.
2026-04-26 16:13:12 +02:00
Daniel Schädler
0ccce16849
feat: add match endpoint filters
2026-04-26 16:03:55 +02:00
Daniel Schädler
35e66f6aeb
Keep group identity in live match payload
2026-04-24 16:12:43 +02:00
Daniel Schädler
63757c6b5c
Add live tournament match websockets
2026-04-24 13:47:19 +02:00
Daniel Schädler
e9ef73c230
refactor: rename timer db column
2026-04-24 11:39:26 +02:00
Daniel Schädler
13acbad55f
refactor: clean timer api routes
2026-04-24 11:24:56 +02:00
Daniel Schädler
8b17bc0608
Merge remote-tracking branch 'origin/codex/tur-55-tur-56-timer-websocket' into codex/tur-55-tur-56-timer-websocket
...
# Conflicts:
# README.md
2026-04-24 10:15:14 +02:00
Daniel Schädler
69bd43b288
refactor: rename timer API field to timestamp
2026-04-24 10:13:44 +02:00
Daniel Schädler
b0bbbb8ce5
Merge branch 'master' into 'codex/tur-55-tur-56-timer-websocket'
...
# Conflicts:
# e2e/lib/action_cable_client.rb
# tasks.py
2026-04-23 21:57:14 +00:00
Daniel Schädler
afff813994
feat: add timer modes and websocket updates
2026-04-23 23:29:03 +02:00
Daniel Schädler
b40e64cde8
feat: add manual team action list creation
2026-04-23 22:47:51 +02:00
Daniel Schädler
05e4372250
Fix team action not-found responses
2026-04-23 19:59:19 +02:00
Daniel Schädler
e41ef870f9
Merge branch 'codex/TUR-80-team-action-lists' into 'master'
...
TUR-80 playoff token collection tracking
Closes TUR-80
See merge request turniere/turniere-backend!49
2026-04-23 11:46:41 +00:00
Daniel Schädler
fa83923bf2
docs: add team action list frontend guide
2026-04-23 10:08:19 +02:00
Daniel Schädler
443b7ff869
fix: sync team action item updates
2026-04-23 09:39:39 +02:00
Daniel Schädler
ad96668a04
Merge branch 'TUR-52-backend-match-swap' into 'master'
...
TUR-52 backend match swap endpoint
Closes TUR-52
See merge request turniere/turniere-backend!48
2026-04-22 15:10:45 +00:00
Daniel Schädler
7d65e4df82
feat: track team action list completion
2026-04-22 16:51:17 +02:00
Daniel Schädler
99538a3343
Add backend group match swap endpoint
2026-04-22 15:48:06 +02:00
Daniel Schädler
2912645499
fix: require deciders for advancing ties
2026-04-22 15:19:53 +02:00
Daniel Schädler
2019d0d029
test: hide sync metadata from public show
2026-04-20 19:48:10 +02:00
Daniel Schädler
b65dd35654
fix: add sync roundtrip verification
2026-04-20 19:36:40 +02:00
Daniel Schädler
03947ac0ca
Sync beamer state to followers
2026-04-16 15:55:20 +02:00
Daniel Schädler
8789c2cb2e
Merge origin/master into follower sync
2026-04-16 15:54:32 +02:00
Daniel Schädler
761bb8daea
Simplify default beamer handling
2026-04-16 13:02:40 +02:00
Tobias Huber
2ceba1dfcf
Merge branch 'master' into TUR-32_backend-beamer
2026-04-16 08:11:02 +02:00
Daniel Schädler
07b7a78bd5
Merge origin/master into follower sync
2026-04-15 16:43:38 +02:00
Daniel Schädler
3e2400616b
Stabilize backend test fixtures
2026-04-15 12:29:32 +02:00
Daniel Schädler
43aa0e11ba
Restrict render profiling to non-prod
2026-04-15 10:02:26 +02:00
Daniel Schädler
8bdd7fd1be
Enqueue sync after transaction commit
2026-04-14 20:59:30 +02:00
Daniel Schädler
3cbeff617a
Allow follower takeover updates
2026-04-14 20:11:42 +02:00
Tobias Huber
58267b6b3a
Fix timer timezone handling
2026-04-14 07:10:51 +02:00
Tobias Huber
19f744daeb
Add Beamer entity with CRUD API and name-based lookup
...
New Beamer model scoped to tournaments for multi-projector display control.
Includes migration, validations, serializer, controller with by_name
fallback endpoint, routing, and full RSpec test coverage.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 07:10:44 +02:00
Daniel Schädler
133ebae847
Add read-only tournament follower sync
2026-04-13 20:32:34 +02:00
Daniel Schädler
4713a020fa
Implement TUR-58 group stage decider matches
2026-04-12 19:13:52 +02:00
Daniel Schädler
11b1004053
Stabilize match controller failure spec
2026-04-12 18:19:28 +02:00
Daniel Schädler
eedafe1276
Add ranking decision metadata for group scores
2026-04-12 17:47:28 +02:00
Daniel Schädler
060f3d0422
Hopefully 🤞 fix flaky test
2025-03-16 13:44:37 +01:00
Daniel Schädler
cccb8cc806
Mock groupstageservice when changing playoff params
2025-03-16 12:41:28 +01:00
Daniel Schädler
4d62f6777a
Adjust tests to match new version of advancing teams
2025-03-14 13:32:15 +01:00