2025-11-23 - 2026-05-23
Overview
1 Release published by 1 user
Published
v0.1.0
162 Pull requests merged by 4 users
Merged
#320 [READY][Gameplay] #310 Host transition idempotency and error catalog for scoreboard -> next round / finish
Merged
#319 refactor(fupogfakta): extract first lobby gameplay slice (#312)
Merged
#306 fix(frontend): prefer canonical phase for client action gating (#301 follow-up)
Merged
#304 test(gameplay): add canonical loop smoke evidence (#302)
Merged
#305 fix(gameplay): harden scoreboard -> next round bootstrap invariants (#300)
Merged
#303 fix(gameplay): gate client actions from canonical phase state (#301)
Merged
#298 feat(lobby): canonical backend round flow for issue #287
Merged
#297 feat(gameplay): canonical reveal payload for round question refs #289 parent #287
Merged
#295 [Gameplay] Canonical reveal payload for round question incl. who-fooled-whom
Merged
#291 fix(gameplay): explicit scoreboard phase after reveal (#288)
Merged
#286 docs(#279): add i18n MVP close-out note
Merged
#283 feat(#275): harden django i18n locale negotiation and fallback
Merged
#282 docs(#277): add shared i18n parity artifact
Merged
#285 test: issue #278 da+en smoke gate and primary-only audio verification
Merged
#281 feat: simplify Angular host/player MVP flow for issue #276
Merged
#280 docs: design doc for fup og fakta game engine + platform architecture
Merged
#274 docs(#252): document React fallback trigger criteria
Merged
#272 docs(issue-252): define React fallback triggers for delivery-blocking only
Merged
#273 feat(issue-175): share i18n locale/catalog in legacy lobby shells
Merged
#271 test(#268): guard phone-client flow from triggering audio playback
Merged
#269 docs(#257): add acceptance artifact for shared i18n keyspace loader
Merged
#270 test(#225): lock backend i18n error payload contract keys
Merged
#267 docs(#225): refresh backend i18n baseline acceptance artifact
Merged
#266 docs(#257): acceptance artifact for shared i18n keyspace + frontend loader
Merged
#265 test(#257): normalize underscore locale tags in shared frontend loader
Merged
#264 fix(#225): honor Accept-Language q-values in backend locale resolver
Merged
#263 test(#257): harden shared i18n loader parity/locale guards
Merged
#262 [Issue #251] Batch A plan hardening: execution checks + rollback + parallelization
Merged
#261 [MVP] Issue #260: phone/client no-audio guard regression coverage
Merged
#259 feat(#257): shared i18n keyspace loader + da/en parity guard (Angular-first)
Merged
#258 docs(#225): add backend i18n baseline verification artifact
Merged
#256 Issue #250: MVP guardrail for phone-client audio playback policy
Merged
#255 [Docs][Issue #251] Release-often lane: SPA MVP split into 3 merge-ready micro-PR batches
Merged
#254 [MVP][backend] #248 Shared i18n keyspace + Django i18n bootstrap (da/en)
Merged
#253 [MVP][frontend] #249 Angular-first SPA foundation: host/player shell + API client skeleton
Merged
#247 [MVP][frontend] Issue #241: host/player route i18n integration + secondary no-audio guard
Merged
#245 [MVP][READY] #225 Backend i18n baseline (resolver + fallback) follow-up
Merged
#246 [MVP][Issue #223] Telefon-klient guard: ingen lydafspilning på secondary device
Merged
#244 [MVP][READY] #175-B Angular i18n shell (shared keys + da/en bootstrap) (#239)
Merged
#243 [MVP][READY][nice] Shared i18n key manifest + drift-check script (#240)
Merged
#242 [MVP][READY] #223 Telefon-klient guard: ingen lydafspilning på secondary device
Merged
#238 [MVP][READY] #175-C Angular host/player integration + hardcoded kerneflow-tekster cleanup (#227)
Merged
#237 [MVP][READY] #225 Backend i18n baseline (resolver + fallback)
Merged
#236 [MVP][READY] #223 Telefon-klient guard: stop aktiv lyd på secondary device
Merged
#235 [MVP][READY] #223 Telefon-klient guard: ingen lydafspilning på secondary device
Merged
#233 [MVP][READY] #220 Angular host/player shared i18n key-map bootstrap (da+en)
Merged
#231 [MVP][READY] #175-B: Shared key-map + locale-kontrakt mellem backend/frontend
Merged
#234 [MVP][READY] #223 Telefon-klient guard: ingen lydafspilning på secondary device
Merged
#232 [MVP][READY] #225 Backend i18n baseline (resolver + fallback)
Merged
#230 [MVP][READY] #226 Shared key-map + locale-kontrakt mellem backend/frontend
Merged
#229 [MVP] Angular-first host+player i18n integration without React (issue #222)
Merged
#228 [MVP][READY] #224 Trunk-sekvens for #175: A/B/C små mergeklare bidder
Merged
#218 [Need-to-have] #175 Shared i18n contract docs + bilingual MVP flow smoke
Merged
#217 [API] Issue #205: Django i18n foundation validation hardening
Merged
#216 feat(cutover): asset versioning + rollback playbook hardening (#188)
Merged
#215 [READY][i18n][P19] Issue #207 smoke/e2e artifact: da+en locale switch + primary-only audio policy
Merged
#214 docs(issue-201): USE_SPA_UI rollout checklist + staging smoke-gate updates
Merged
#213 fix(spa): preserve scoreboard phase in Angular state sync (#200)
Merged
#212 [READY][SPA][P14] Issue #200: host/player phase-sync artifact
Merged
#211 [READY][i18n][P18] Angular host+player i18n binding med simpel telefon-UX og nul client-audio
Merged
#210 [READY][i18n][P16] Shared keyspace-kontrakt (Django+Angular) med en-default + da/en matrix
Merged
#209 [READY][i18n][P17] Django i18n foundation: locale pipeline + resolver for shared keys (da/en)
Merged
#208 [READY][i18n][P17] Django i18n foundation: locale pipeline + resolver for shared keys (da/en)
Merged
#203 [SPA][P13] Angular API-kontrakt smoke for host/player endpoints (#199)
Merged
#197 [SPA] Issue #180: next-round sync + final leaderboard flow evidence
Merged
#202 [SPA] Issue #191: route/session guard bootstrap wiring for host+player
Merged
#198 [SPA] Issue #187: reconnect/loading/error states for player flow
Merged
#195 [SPA][P12] Harden Angular host/player route session guards (#191)
Merged
#196 [READY][SPA][P9] Angular API-contract guard: typed client + response mappers for host/player flow
Merged
#194 [READY][SPA][P8] #180 Next-round + final leaderboard flow in Angular SPA
Merged
#193 [SPA][P12] Foundation hardening: Angular route/session guards for host+player entry
Merged
#192 [SPA][P10] Issue #187: Player reconnect/loading/error states
Merged
#190 [SPA][P9] Typed client + response mappers for host/player flow
Merged
#189 [SPA][P8] Host final leaderboard summary + reset flow
Merged
#185 [SPA][P8] #180 Next-round + final leaderboard flow i Angular SPA
Merged
#184 [SPA][P6] Cutover prep: USE_SPA_UI smoke artefact update
Merged
#183 [Need-to-have] #175 Shared i18n across frontend/backend for lobby flow
Merged
#182 [SPA][P4] #169 Lobby join + start round wired via vertical slice in shell
Merged
#181 [SPA][P7] #172 Gameplay MVP-del 2: Lie -> guess -> reveal -> scoreboard wired flow
Merged
#177 [SPA][P5] #161 Gameplay phase state-machine skeleton (lie/guess/reveal/scoreboard)
Merged
#178 [SPA][P2] Angular API-client lag fix for health + session read (#168)
Merged
#176 [SPA][P4] #169 Gameplay MVP del 1: lobby join + start round flow (v2)
Merged
#170 [READY][SPA][P2] Angular API-client (health + session read) (#168)
Merged
#171 [SPA][P3] Session context store for SPA flow (#159)
Merged
#167 [SPA] Non-blocking loading skeletons for host+player critical views (issue #150)
Merged
#164 [SPA] Angular app-shell + host/player routing skeleton (#157)
Merged
#165 [SPA] MVP vertical slice: Lobby -> Join -> Start round (#160)
Merged
#166 [SPA] Cutover feature-flag USE_SPA_UI med sikker fallback (#152)
Merged
#163 [SPA] API-client baseline for health + session read (#158)
Merged
#155 [SPA] Shared contract for lobby/game phase view-model
Merged
#156 [SPA] Error boundary + recover actions on top-level app shell
Merged
#154 [SPA] Host shell route-guards + deep-link fallback (#147)
Merged
#153 [SPA] Player reconnect UX-state (lost connection banner + retry)
Merged
#146 [Execution] Add staging gameplay smoke artifact template (#144)
Merged
#145 Issue #144: staging gameplay smoke artifact output
Merged
#143 Fix #129: normalize session code input across host/player flows
Merged
#142 fix(devops): harden staging deploy health check race
Merged
#140 fix(smoke): load staging env before migration/gameplay checks
Merged
#139 fix(staging): keep /opt/wpp-staging/app writable for wpp runtime (fix #138)
Merged
#137 fix(smoke): schema-drift guard + token-aware staging smoke flow (refs #130 #90)
Merged
#136 fix(staging): avoid schema/code drift after failed deploy
Merged
#135 fix(staging): remove tracked sqlite artifact from deploy archives (fixes #131)
Merged
#134 feat(staging): enforce MySQL-only staging deploy (fixes #133)
Merged
#128 UI: lås "Opret session" under aktiv handling/session-opdatering (#127)
Merged
#126 UI: lås sessionkode-felt under aktiv host-handling (#125)
Merged
#124 UI: lås kategori-valg under session-opdatering (#123)
Merged
#122 UI: lås round question-id under aktiv session-opdatering (#121)
Merged
#120 UI: lås host-actions under aktiv session-opdatering (#119)
Merged
#118 UI: lås host auto-refresh-toggle under in-flight handlinger (#117)
Merged
#116 UI: lås session-opdatering mens lie/guess submit kører (#115)
Merged
#114 UI: lås auto-refresh-toggle mens join kører i player-panelet (#113)
Merged
#112 UI: lås session-opdatering mens join kører (#111)
Merged
#110 UI: lock Join while player session refresh is active (#109)
Merged
#108 UI: lås lie/guess submit under aktiv session-opdatering (#107)
Merged
#106 UI: lås auto-refresh-toggle under aktiv session-opdatering (#105)
Merged
#104 UI: nulstil spiller-runde-kontekst ved kode-/spillerskift (#103)
Merged
#102 UI: lås host session-status under in-flight request (#101)
Merged
#100 UI: lås round_question_id felt i player-panelet (#99)
Merged
#98 UI need-to-have: aktiv round-question guard i player-panelet (#97)
Merged
#96 UI need-to-have: guard mod dobbelt guess-submit i player panel
Merged
#94 UI: lås session-opdatering ved in-flight request (#93)
Merged
#92 MVP UI: lås spillerkontekstfelter efter join (#91)
Merged
#89 UI: player auto-refresh + sidst opdateret status (#88)
Merged
#87 UI: vis sidst opdateret status i host auto-refresh (#86)
Merged
#85 UI: lås host-actions under in-flight request (#84)
Merged
#83 UI: lås lie/guess submit under in-flight request (#82)
Merged
#81 UI: ensartede fejl-hints for fase/token/round-state (#80)
Merged
#79 UI: host auto-refresh toggle for lobby-status (#78)
Merged
#77 UI: håndhæv 3-5 spillere i host start-runde guard (#76)
Merged
#75 UI: lås round question-id input efter fase (#74)
Merged
#73 UI: fase-lock af lie/guess i spillerpanelet (#72)
Merged
#71 UI: lås kategori-valg udenfor lobby-fasen (#70)
Merged
#69 UI: fasebaserede host-action guards i hostpanelet (#68)
Merged
#67 UI: host action guards ved manglende kontekst (#66)
Merged
#65 UI: robust join-state guard i player panel (#64)
Merged
#63 UI: guard mod dobbelt-join i player panel (#62)
Merged
#61 MVP UI: robust reconnect-konsistens for host + spiller (#60)
Merged
#58 MVP UI: Host-screen viser spillerantal og blokerer start ved <3 spillere
Merged
#56 UI: guard submit-knapper indtil spillerkontekst er klar (#55)
Merged
#54 UI: lås løgn-input efter submit + status (#53)
Merged
#52 UI: vis låst status efter guess-submit (#51)
Merged
#50 UI: lås svarvalg efter guess-submit (#49)
Merged
#48 UI: reconnect-konsistens for valgt svar i guess-fase
Merged
#46 MVP UI: disable guess-submit indtil klikket svarvalg
Merged
#44 UI: lås guess-submit til viste svarmuligheder
Merged
#42 UI: klikbare svarvalg i guess-fase (MVP)
Merged
#40 F3 UI+sikkerhed: kræv session_token ved guess submit
Merged
#38 UI: player screen sender session_token til lie-submit
Merged
#36 F3: beskyt lie-submit med player session token
Merged
#34 F3/UI: Persistér mixed svarrækkefølge for reconnect
Merged
#32 test(staging): smoke-suite for gameplay flow
Merged
#31 F3 UI: MVP host + player templates
Merged
#29 chore: remove tracked __pycache__ artifacts
Merged
#28 fix(staging): canonical deploy context via proxmox SSH wrapper
Merged
#25 devops: staging runbook, db setup runbook, and release policy
Merged
#24 DevOps: staging deploy runbook + release policy (#20 #23)
Merged
#19 docs(f3): align MVP player default with scope guardrail
Merged
#15 F3: Slutresultat-endpoint (afslut spil + final leaderboard)
Merged
#12 F3: Reveal scoreboard + next-round transition
Merged
#10 F3: Beregn point efter guessfase og skift til reveal
Merged
#8 F3: Guessfase submit-endpoint med deadline-validering
Merged
#6 feat(f3): bland korrekt svar med løgne og skift til guessfase
135 Issues closed from 5 users
Closed
#310 [READY][Gameplay] #287-F Host transition idempotency and error catalog for scoreboard -> next round / finish
Closed
#294 Governance incident: PR #291 stagnation loop, artifact-gate failure og killswitch
Closed
#307 [Architect blocker] Epic #287 mangler ny READY child task efter lukning af #288/#289
Closed
#290 [Scheduler blocker] READY gameplay issues #288/#289 mangler intake/acceptance før dev-run
Closed
#292 [Scheduler blocker] PR #291 kan ikke passere artifact-gate pga. push/auth-fejl
Closed
#293 [Governance] Killswitch: PR #291 loop/stagnation despite artifact-gate rules
Closed
#299 [Scheduler blocker] Issue #287 mangler intake/acceptance og kan ikke omsættes til READY dev-run
Closed
#301 [READY][Gameplay] #287-B Client action gating from canonical phase state (bluff/guess/reveal/scoreboard)
Closed
#302 [READY][Gameplay] #287-C Canonical loop evidence: end-to-end regression for bluff -> guess -> reveal -> scoreboard
Closed
#300 [READY][Gameplay] #287-A Canonical round transition invariants: scoreboard -> next round bootstrap
Closed
#289 [READY][Gameplay] Canonical reveal payload for round question incl. who-fooled-whom
Closed
#288 [READY][Gameplay] Canonical session state model: explicit scoreboard phase after reveal
Closed
#175 [Need-to-have] Shared i18n mellem frontend/backend + fjern hardcoded danske tekster
Closed
#279 [READY][#175][P5] MVP close-out note: migration/changelog + release-readiness checklist for i18n
Closed
#284 Integrator merge blocker: PR #283 is merge-ready but Gitea merge API returns HTTP 405
Closed
#277 [READY][#175][P3] Shared i18n registry artifact: backend/frontend keyspace parity report
Closed
#275 [READY][#175][P1] Django i18n hardening: locale middleware/negotiation + deterministic en fallback
Closed
#278 [READY][#175][P4] Smoke/e2e gate: da+en locale run + audio routing primary-only
Closed
#276 [READY][#175][P2] Angular host+player i18n binding cleanup (da/en) + enforce no client audio
Closed
#268 [MVP][READY] #175-C: Telefon-klient uden lydafspilning (UI guard)
Closed
#257 [MVP][READY] #175-B: Shared i18n keyspace + frontend loader (da/en, Angular-first)
Closed
#225 [MVP][READY] #175-A: Backend i18n baseline (resolver + fallback)
Closed
#251 Release-often lane: split SPA MVP into 3 merge-klare micro-PR batches
Closed
#260 [MVP][READY] Phone/client no-audio guard (primary-device only playback)
Closed
#250 MVP guardrail: Telefon-klient uden lydafspilning (primary-device only audio policy)
Closed
#248 MVP #175: Shared i18n keyspace + Django i18n bootstrap (da/en)
Closed
#249 Angular-first SPA foundation: host/player app shell + router + API client skeleton
Closed
#241 [MVP][READY][nice] Angular host/player route i18n integration uden telefon-lyd
Closed
#223 [MVP][READY] Telefon-klient guard: ingen lydafspilning på secondary device
Closed
#239 [MVP][READY] #175-B: Angular i18n shell (shared keys + da/en bootstrap)
Closed
#240 [MVP][READY][nice] #175-C: Shared i18n key manifest + drift-check script
Closed
#227 [MVP][READY] #175-C: Angular host/player integration + cleanup af hardcoded kerneflow-tekster
Closed
#221 [MVP][READY] Django i18n baseline (da+en) + shared key-resolver
Closed
#220 [MVP][READY] Angular host/player: shared i18n key-map bootstrap (da+en)
Closed
#226 [MVP][READY] #175-B: Shared key-map + locale-kontrakt mellem backend/frontend
Closed
#222 [MVP][READY] Angular-first: host+player i18n integration uden React
Closed
#224 [MVP][READY] Trunk-sekvens for #175: A/B/C små mergeklare bidder
Closed
#205 [READY][i18n][P17] Django i18n foundation: locale pipeline + resolver for shared keys (da/en)
Closed
#188 [READY][SPA][P11] Cutover hardening: static asset versioning + rollback playbook for USE_SPA_UI
Closed
#207 [READY][i18n][P19] Smoke/e2e bevis: da+en locale switch + audio-routing policy (primary-only)
Closed
#201 [READY][SPA][P15] Cutover prep: USE_SPA_UI rollout-checkliste + staging smoke-gate
Closed
#200 [READY][SPA][P14] Gameplay MVP-del 5: Angular host handoff + round-phase state sync
Closed
#206 [READY][i18n][P18] Angular host+player i18n binding med simpel telefon-UX og nul client-audio
Closed
#204 [READY][i18n][P16] Shared keyspace-kontrakt (Django+Angular) med en-default + da/en matrix
Closed
#199 [READY][SPA][P13] Foundation: Angular API-kontrakt smoke for host/player endpoints
Closed
#180 [READY][SPA][P8] Gameplay MVP-del 3: Next-round + final leaderboard flow i Angular SPA
Closed
#191 [READY][SPA][P12] Foundation hardening: Angular route/session guards for host+player entry
Closed
#187 [READY][SPA][P10] Gameplay MVP-del 4: Reconnect/loading/error states i Angular player flow
Closed
#186 [READY][SPA][P9] Angular API-contract guard: typed client + response mappers for host/player flow
Closed
#162 [READY][SPA][P6] Cutover prep: USE_SPA_UI feature-flag + smoke artefact update
Closed
#169 [READY][SPA][P4] Gameplay MVP-del 1: Lobby join + start round wired i SPA-flow
Closed
#172 [READY][SPA][P7] Gameplay MVP-del 2: Lie -> guess -> reveal -> scoreboard wired i Angular-flow
Closed
#161 [READY][SPA][P5] Gameplay phase state-machine skeleton (lie/guess/reveal/scoreboard)
Closed
#179 [AUTH_PATH_MISMATCH] DEV role cannot push PR fix artifacts (SSH/HTTPS write path)
Closed
#168 [READY][SPA][P2] Angular API-client lag for health + session read (Django-kontrakt kompatibel)
Closed
#159 [READY][SPA][P3] Session context store (sessionCode/playerId/token) i Angular
Closed
#150 [READY][SPA] Non-blocking loading skeletons for host+player critical views
Closed
#157 [READY][SPA][P1] Angular app-shell + host/player routing skeleton
Closed
#160 [READY][SPA][P4] MVP vertical slice: Lobby -> Join -> Start round
Closed
#152 [READY][SPA] Cutover feature-flag USE_SPA_UI med sikker fallback
Closed
#158 [READY][SPA][P2] Angular API-client baseline for health + session read
Closed
#149 [READY][SPA] Shared contract for lobby/game phase view-model
Closed
#151 [READY][SPA] Error boundary + recover actions on top-level app shell
Closed
#147 [READY][SPA] Host shell route-guards + deep-link fallback
Closed
#148 [READY][SPA] Player reconnect UX-state (lost connection banner + retry)
Closed
#144 [Execution] #16 scope: staging gameplay smoke artifact (anti-stall assignment)
Closed
#129 MVP UI need-to-have: normalisér sessionkode-input (trim + uppercase) i host/player
Closed
#90 MVP need-to-have: release readiness (staging deploy + smoke sign-off)
Closed
#141 [devops][need-to-have] deploy_staging.sh health check race blocks release-readiness
Closed
#130 [smoke-fail] staging gameplay smoke fails (schema mismatch after failed deploy)
Closed
#138 [devops][need-to-have] staging deploy script leaves app dir root-owned (db open failure)
Closed
#131 [staging-blocker] deploy_staging.sh main fails: readonly SQLite during migrate
Closed
#133 Staging skal bruge MySQL i stedet for SQLite
Closed
#127 MVP UI need-to-have: lås "Opret session" under aktiv handling/session-opdatering
Closed
#125 MVP UI need-to-have: lås sessionkode-felt under aktiv host-handling/session-opdatering
Closed
#123 MVP UI need-to-have: lås kategori-valg under aktiv session-opdatering i hostpanelet
Closed
#121 MVP UI need-to-have: lås round question-id under aktiv session-opdatering i hostpanelet
Closed
#119 MVP UI need-to-have: lås host-actions under aktiv session-opdatering
Closed
#117 UI need-to-have: lås host auto-refresh-toggle under in-flight handlinger
Closed
#115 MVP UI need-to-have: lås session-opdatering mens lie/guess submit er in-flight
Closed
#113 MVP UI need-to-have: lås auto-refresh-toggle mens join kører i player-panelet
Closed
#111 MVP UI need-to-have: lås session-opdatering mens join kører i player-panelet
Closed
#109 UI need-to-have: lås Join under aktiv session-opdatering i player panel
Closed
#107 MVP UI need-to-have: lås lie/guess submit under aktiv session-opdatering i playerpanelet
Closed
#105 MVP UI need-to-have: lås auto-refresh-toggle under aktiv session-opdatering i playerpanelet
Closed
#103 MVP UI need-to-have: nulstil spiller-runde-kontekst ved kode-/spillerskift
Closed
#101 MVP UI need-to-have: lås host session-status under in-flight request
Closed
#99 MVP UI need-to-have: lås round_question_id feltet i player-panelet
Closed
#97 MVP UI need-to-have: kræv aktiv round-question før svarvalg i player-panelet
Closed
#95 MVP UI need-to-have: client-guard mod dobbelt guess-submit i player panel
Closed
#93 MVP UI need-to-have: lås session-opdatering under in-flight request i playerpanelet
Closed
#91 MVP UI need-to-have: lås spillerkontekstfelter efter join
Closed
#88 MVP UI need-to-have: player auto-refresh + sidst opdateret status
Closed
#86 MVP UI need-to-have: vis "sidst opdateret" i host auto-refresh
Closed
#84 MVP UI need-to-have: lås host-actions under in-flight request
Closed
#82 MVP UI need-to-have: lås lie/guess submit under in-flight request (anti-dobbeltsubmit)
Closed
#80 MVP UI need-to-have: ensartede fejl-hints for fase/token/round-state i host+player panel
Closed
#78 MVP UI need-to-have: auto-opdatér lobby-status i hostpanelet
Closed
#76 MVP UI need-to-have: håndhæv max 5 spillere i start-runde guard i hostpanelet
Closed
#74 MVP UI need-to-have: lås round question-id felt efter fase og kontekst
Closed
#72 MVP UI need-to-have: fasebaseret lock af lie/guess-input i spillerpanelet
Closed
#70 MVP UI need-to-have: lås kategori-valg i hostpanelet udenfor lobby-fasen
Closed
#68 MVP UI need-to-have: fasebaserede host-action guards i hostpanelet
Closed
#66 MVP UI need-to-have: host action guards for manglende session/round context
Closed
#64 MVP UI need-to-have: robust join-state (input-validering + lås efter succes)
Closed
#62 MVP UI need-to-have: guard mod dobbelt-join (disable + status under request)
Closed
#60 MVP UI need-to-have: robust reconnect-konsistens for host + spiller
Closed
#57 MVP UI need-to-have: Host-screen skal håndhæve min 3 spillere før start
Closed
#55 MVP UI need-to-have: guard submit-knapper på manglende spillerkontekst
Closed
#53 MVP UI need-to-have: lås løgn-input efter submit + tydelig status
Closed
#51 MVP UI need-to-have: vis låst status efter guess-submit
Closed
#49 MVP UI need-to-have: lås svarvalg efter guess er sendt
Closed
#47 MVP UI: reconnect-konsistens i guess-fase (bevar valgt svar efter refresh)
Closed
#45 MVP UI need-to-have: disable guess-submit indtil svarvalg er klikket
Closed
#43 MVP UI: lås guess-submit til klikbart svarvalg (ingen frit tekst-gæt)
Closed
#41 MVP UI: klikbare svarvalg i guess-fase (undgå free-text fejl)
Closed
#39 MVP UI+sikkerhed: kræv session_token ved guess submit
Closed
#37 MVP UI need-to-have: player screen skal sende session_token ved lie-submit
Closed
#35 F3 need-to-have: spiller-session-token for lie submit
Closed
#33 F3/UI need-to-have: Persistér mixed svarrækkefølge for reconnect
Closed
#22 TEST: Smoke test-suite for staging
Closed
#30 MVP UI: Host + Player web screens (templates)
Closed
#26 DEVOPS: Afklar canonical deploy execution context for staging script
Closed
#21 DEVOPS: Opret test/prod database + credentials i Secrets
Closed
#27 DEVOPS: Staging CT143 mangler env mount/sync til wpp_test/wpp_prod credentials
Closed
#20 DEVOPS: Provision staging LXC for WPP
Closed
#23 RELEASE: Changelog + release-tag policy
Closed
#18 F3: Håndhæv spillergrænser ved round-start (min 3, max 5)
Closed
#14 F3: Slutresultat-endpoint (afslut spil + final leaderboard)
Closed
#13 [DEV_FIX_PRIORITY] Afklar/indarbejd review-kommentarer før nye features
Closed
#11 F3: Scoreboard endpoint + næste runde flow fra reveal
Closed
#9 F3: Beregn point efter guessfase (correct + bluff) og skift til reveal
Closed
#4 Scheduler task board
Closed
#7 F3 Guessfase: submit guess endpoint med deadline
Closed
#5 [need-to-have] CI-gates er ikke håndhævet konsekvent på åbne PRs
154 Issues created by 2 users
Opened
#4 Scheduler task board
Opened
#5 [need-to-have] CI-gates er ikke håndhævet konsekvent på åbne PRs
Opened
#7 F3 Guessfase: submit guess endpoint med deadline
Opened
#9 F3: Beregn point efter guessfase (correct + bluff) og skift til reveal
Opened
#11 F3: Scoreboard endpoint + næste runde flow fra reveal
Opened
#13 [DEV_FIX_PRIORITY] Afklar/indarbejd review-kommentarer før nye features
Opened
#14 F3: Slutresultat-endpoint (afslut spil + final leaderboard)
Opened
#16 EPIC: Fase 3 gameplay scope board
Opened
#17 Scope Guardrail: MVP beslutninger (PO source-of-truth)
Opened
#18 F3: Håndhæv spillergrænser ved round-start (min 3, max 5)
Opened
#20 DEVOPS: Provision staging LXC for WPP
Opened
#21 DEVOPS: Opret test/prod database + credentials i Secrets
Opened
#22 TEST: Smoke test-suite for staging
Opened
#23 RELEASE: Changelog + release-tag policy
Opened
#26 DEVOPS: Afklar canonical deploy execution context for staging script
Opened
#27 DEVOPS: Staging CT143 mangler env mount/sync til wpp_test/wpp_prod credentials
Opened
#30 MVP UI: Host + Player web screens (templates)
Opened
#33 F3/UI need-to-have: Persistér mixed svarrækkefølge for reconnect
Opened
#35 F3 need-to-have: spiller-session-token for lie submit
Opened
#37 MVP UI need-to-have: player screen skal sende session_token ved lie-submit
Opened
#39 MVP UI+sikkerhed: kræv session_token ved guess submit
Opened
#41 MVP UI: klikbare svarvalg i guess-fase (undgå free-text fejl)
Opened
#43 MVP UI: lås guess-submit til klikbart svarvalg (ingen frit tekst-gæt)
Opened
#45 MVP UI need-to-have: disable guess-submit indtil svarvalg er klikket
Opened
#47 MVP UI: reconnect-konsistens i guess-fase (bevar valgt svar efter refresh)
Opened
#49 MVP UI need-to-have: lås svarvalg efter guess er sendt
Opened
#51 MVP UI need-to-have: vis låst status efter guess-submit
Opened
#53 MVP UI need-to-have: lås løgn-input efter submit + tydelig status
Opened
#55 MVP UI need-to-have: guard submit-knapper på manglende spillerkontekst
Opened
#57 MVP UI need-to-have: Host-screen skal håndhæve min 3 spillere før start
Opened
#59 Forslag (post-MVP): Persistente spillerprofiler + historik
Opened
#60 MVP UI need-to-have: robust reconnect-konsistens for host + spiller
Opened
#62 MVP UI need-to-have: guard mod dobbelt-join (disable + status under request)
Opened
#64 MVP UI need-to-have: robust join-state (input-validering + lås efter succes)
Opened
#66 MVP UI need-to-have: host action guards for manglende session/round context
Opened
#68 MVP UI need-to-have: fasebaserede host-action guards i hostpanelet
Opened
#70 MVP UI need-to-have: lås kategori-valg i hostpanelet udenfor lobby-fasen
Opened
#72 MVP UI need-to-have: fasebaseret lock af lie/guess-input i spillerpanelet
Opened
#74 MVP UI need-to-have: lås round question-id felt efter fase og kontekst
Opened
#76 MVP UI need-to-have: håndhæv max 5 spillere i start-runde guard i hostpanelet
Opened
#78 MVP UI need-to-have: auto-opdatér lobby-status i hostpanelet
Opened
#80 MVP UI need-to-have: ensartede fejl-hints for fase/token/round-state i host+player panel
Opened
#82 MVP UI need-to-have: lås lie/guess submit under in-flight request (anti-dobbeltsubmit)
Opened
#84 MVP UI need-to-have: lås host-actions under in-flight request
Opened
#86 MVP UI need-to-have: vis "sidst opdateret" i host auto-refresh
Opened
#88 MVP UI need-to-have: player auto-refresh + sidst opdateret status
Opened
#90 MVP need-to-have: release readiness (staging deploy + smoke sign-off)
Opened
#91 MVP UI need-to-have: lås spillerkontekstfelter efter join
Opened
#93 MVP UI need-to-have: lås session-opdatering under in-flight request i playerpanelet
Opened
#95 MVP UI need-to-have: client-guard mod dobbelt guess-submit i player panel
Opened
#97 MVP UI need-to-have: kræv aktiv round-question før svarvalg i player-panelet
Opened
#99 MVP UI need-to-have: lås round_question_id feltet i player-panelet
Opened
#101 MVP UI need-to-have: lås host session-status under in-flight request
Opened
#103 MVP UI need-to-have: nulstil spiller-runde-kontekst ved kode-/spillerskift
Opened
#105 MVP UI need-to-have: lås auto-refresh-toggle under aktiv session-opdatering i playerpanelet
Opened
#107 MVP UI need-to-have: lås lie/guess submit under aktiv session-opdatering i playerpanelet
Opened
#109 UI need-to-have: lås Join under aktiv session-opdatering i player panel
Opened
#111 MVP UI need-to-have: lås session-opdatering mens join kører i player-panelet
Opened
#113 MVP UI need-to-have: lås auto-refresh-toggle mens join kører i player-panelet
Opened
#115 MVP UI need-to-have: lås session-opdatering mens lie/guess submit er in-flight
Opened
#117 UI need-to-have: lås host auto-refresh-toggle under in-flight handlinger
Opened
#119 MVP UI need-to-have: lås host-actions under aktiv session-opdatering
Opened
#121 MVP UI need-to-have: lås round question-id under aktiv session-opdatering i hostpanelet
Opened
#123 MVP UI need-to-have: lås kategori-valg under aktiv session-opdatering i hostpanelet
Opened
#125 MVP UI need-to-have: lås sessionkode-felt under aktiv host-handling/session-opdatering
Opened
#127 MVP UI need-to-have: lås "Opret session" under aktiv handling/session-opdatering
Opened
#129 MVP UI need-to-have: normalisér sessionkode-input (trim + uppercase) i host/player
Opened
#130 [smoke-fail] staging gameplay smoke fails (schema mismatch after failed deploy)
Opened
#131 [staging-blocker] deploy_staging.sh main fails: readonly SQLite during migrate
Opened
#133 Staging skal bruge MySQL i stedet for SQLite
Opened
#138 [devops][need-to-have] staging deploy script leaves app dir root-owned (db open failure)
Opened
#141 [devops][need-to-have] deploy_staging.sh health check race blocks release-readiness
Opened
#144 [Execution] #16 scope: staging gameplay smoke artifact (anti-stall assignment)
Opened
#147 [READY][SPA] Host shell route-guards + deep-link fallback
Opened
#148 [READY][SPA] Player reconnect UX-state (lost connection banner + retry)
Opened
#149 [READY][SPA] Shared contract for lobby/game phase view-model
Opened
#150 [READY][SPA] Non-blocking loading skeletons for host+player critical views
Opened
#151 [READY][SPA] Error boundary + recover actions on top-level app shell
Opened
#152 [READY][SPA] Cutover feature-flag USE_SPA_UI med sikker fallback
Opened
#157 [READY][SPA][P1] Angular app-shell + host/player routing skeleton
Opened
#158 [READY][SPA][P2] Angular API-client baseline for health + session read
Opened
#159 [READY][SPA][P3] Session context store (sessionCode/playerId/token) i Angular
Opened
#160 [READY][SPA][P4] MVP vertical slice: Lobby -> Join -> Start round
Opened
#161 [READY][SPA][P5] Gameplay phase state-machine skeleton (lie/guess/reveal/scoreboard)
Opened
#162 [READY][SPA][P6] Cutover prep: USE_SPA_UI feature-flag + smoke artefact update
Opened
#168 [READY][SPA][P2] Angular API-client lag for health + session read (Django-kontrakt kompatibel)
Opened
#169 [READY][SPA][P4] Gameplay MVP-del 1: Lobby join + start round wired i SPA-flow
Opened
#172 [READY][SPA][P7] Gameplay MVP-del 2: Lie -> guess -> reveal -> scoreboard wired i Angular-flow
Opened
#175 [Need-to-have] Shared i18n mellem frontend/backend + fjern hardcoded danske tekster
Opened
#179 [AUTH_PATH_MISMATCH] DEV role cannot push PR fix artifacts (SSH/HTTPS write path)
Opened
#180 [READY][SPA][P8] Gameplay MVP-del 3: Next-round + final leaderboard flow i Angular SPA
Opened
#186 [READY][SPA][P9] Angular API-contract guard: typed client + response mappers for host/player flow
Opened
#187 [READY][SPA][P10] Gameplay MVP-del 4: Reconnect/loading/error states i Angular player flow
Opened
#188 [READY][SPA][P11] Cutover hardening: static asset versioning + rollback playbook for USE_SPA_UI
Opened
#191 [READY][SPA][P12] Foundation hardening: Angular route/session guards for host+player entry
Opened
#199 [READY][SPA][P13] Foundation: Angular API-kontrakt smoke for host/player endpoints
Opened
#200 [READY][SPA][P14] Gameplay MVP-del 5: Angular host handoff + round-phase state sync
Opened
#201 [READY][SPA][P15] Cutover prep: USE_SPA_UI rollout-checkliste + staging smoke-gate
Opened
#204 [READY][i18n][P16] Shared keyspace-kontrakt (Django+Angular) med en-default + da/en matrix
Opened
#205 [READY][i18n][P17] Django i18n foundation: locale pipeline + resolver for shared keys (da/en)
Opened
#206 [READY][i18n][P18] Angular host+player i18n binding med simpel telefon-UX og nul client-audio
Opened
#207 [READY][i18n][P19] Smoke/e2e bevis: da+en locale switch + audio-routing policy (primary-only)
Opened
#220 [MVP][READY] Angular host/player: shared i18n key-map bootstrap (da+en)
Opened
#221 [MVP][READY] Django i18n baseline (da+en) + shared key-resolver
Opened
#222 [MVP][READY] Angular-first: host+player i18n integration uden React
Opened
#223 [MVP][READY] Telefon-klient guard: ingen lydafspilning på secondary device
Opened
#224 [MVP][READY] Trunk-sekvens for #175: A/B/C små mergeklare bidder
Opened
#225 [MVP][READY] #175-A: Backend i18n baseline (resolver + fallback)
Opened
#226 [MVP][READY] #175-B: Shared key-map + locale-kontrakt mellem backend/frontend
Opened
#227 [MVP][READY] #175-C: Angular host/player integration + cleanup af hardcoded kerneflow-tekster
Opened
#239 [MVP][READY] #175-B: Angular i18n shell (shared keys + da/en bootstrap)
Opened
#240 [MVP][READY][nice] #175-C: Shared i18n key manifest + drift-check script
Opened
#241 [MVP][READY][nice] Angular host/player route i18n integration uden telefon-lyd
Opened
#248 MVP #175: Shared i18n keyspace + Django i18n bootstrap (da/en)
Opened
#249 Angular-first SPA foundation: host/player app shell + router + API client skeleton
Opened
#250 MVP guardrail: Telefon-klient uden lydafspilning (primary-device only audio policy)
Opened
#251 Release-often lane: split SPA MVP into 3 merge-klare micro-PR batches
Opened
#257 [MVP][READY] #175-B: Shared i18n keyspace + frontend loader (da/en, Angular-first)
Opened
#260 [MVP][READY] Phone/client no-audio guard (primary-device only playback)
Opened
#268 [MVP][READY] #175-C: Telefon-klient uden lydafspilning (UI guard)
Opened
#275 [READY][#175][P1] Django i18n hardening: locale middleware/negotiation + deterministic en fallback
Opened
#276 [READY][#175][P2] Angular host+player i18n binding cleanup (da/en) + enforce no client audio
Opened
#277 [READY][#175][P3] Shared i18n registry artifact: backend/frontend keyspace parity report
Opened
#278 [READY][#175][P4] Smoke/e2e gate: da+en locale run + audio routing primary-only
Opened
#279 [READY][#175][P5] MVP close-out note: migration/changelog + release-readiness checklist for i18n
Opened
#284 Integrator merge blocker: PR #283 is merge-ready but Gitea merge API returns HTTP 405
Opened
#287 [Need-to-have][Gameplay] Canonical FupOgFakta/WPP round flow aligned to bluff/guess/reveal loop
Opened
#288 [READY][Gameplay] Canonical session state model: explicit scoreboard phase after reveal
Opened
#289 [READY][Gameplay] Canonical reveal payload for round question incl. who-fooled-whom
Opened
#290 [Scheduler blocker] READY gameplay issues #288/#289 mangler intake/acceptance før dev-run
Opened
#292 [Scheduler blocker] PR #291 kan ikke passere artifact-gate pga. push/auth-fejl
Opened
#293 [Governance] Killswitch: PR #291 loop/stagnation despite artifact-gate rules
Opened
#294 Governance incident: PR #291 stagnation loop, artifact-gate failure og killswitch
Opened
#299 [Scheduler blocker] Issue #287 mangler intake/acceptance og kan ikke omsættes til READY dev-run
Opened
#300 [READY][Gameplay] #287-A Canonical round transition invariants: scoreboard -> next round bootstrap
Opened
#301 [READY][Gameplay] #287-B Client action gating from canonical phase state (bluff/guess/reveal/scoreboard)
Opened
#302 [READY][Gameplay] #287-C Canonical loop evidence: end-to-end regression for bluff -> guess -> reveal -> scoreboard
Opened
#307 [Architect blocker] Epic #287 mangler ny READY child task efter lukning af #288/#289
Opened
#308 [READY][Gameplay] #287-D Canonical phase contract parity between session-detail and phase transition responses
Opened
#309 [READY][Gameplay] #287-E Realtime phase-event contract for client refresh and route sync
Opened
#310 [READY][Gameplay] #287-F Host transition idempotency and error catalog for scoreboard -> next round / finish
Opened
#311 [Need-to-have][Architecture] Restore game-cartridge boundary: move FupOgFakta-specific flow out of lobby and under fupogfakta
Opened
#312 [READY][Architecture] #311-A Map and isolate FupOgFakta-specific logic currently living in lobby/
Opened
#313 [READY][Architecture] #311-B Extract FupOgFakta phase/state engine from lobby into fupogfakta/
Opened
#314 [READY][Architecture] #311-C Reintroduce explicit GameDriver/GameRun boundary or document the replacement contract
Opened
#315 Forslag (fremtidigt spil): tegn + gæt relay / drawing telephone cartridge
Opened
#316 [READY][Gameplay] #287-G Extract canonical phase_view_model builder out of lobby.views hot path
Opened
#317 [READY][Gameplay] #287-H Add session-detail refresh contract tests for host/player route sync after phase events
Opened
#318 [READY][Architecture] #311-D Move one concrete FupOgFakta write endpoint out of lobby as the first cartridge slice
Opened
#321 [READY][Architecture] #311-E Split session_detail into platform envelope + cartridge-owned game payload
Opened
#322 [READY][Architecture] #311-F Extract round selection and next-round bootstrap into fupogfakta round services
Opened
#323 [READY][Gameplay] #311-G Extract answer mixing and scoring engine out of lobby
Opened
#324 [READY][Architecture] #311-H Move reveal/lie payload builders under cartridge-owned payload modules
Opened
#325 [READY][Architecture] #311-I Move gameplay tests and smoke ownership out of lobby