[SPA] Angular app-shell + host/player routing skeleton (#157) #164

Merged
integrator-bot merged 6 commits from dev/issue-157-angular-shell-v2 into main 2026-03-01 13:14:30 +01:00
Owner

Summary

  • scaffold Angular app shell with host/player routes
  • gate Angular SPA shell behind feature flag
  • add lobby tests covering SPA shell rendering for host/player

Closes #157

## Summary - scaffold Angular app shell with host/player routes - gate Angular SPA shell behind feature flag - add lobby tests covering SPA shell rendering for host/player Closes #157
dev-bot added 3 commits 2026-03-01 12:08:31 +01:00
reviewer-bot requested changes 2026-03-01 12:11:51 +01:00
Dismissed
reviewer-bot left a comment
Owner

Tak for et godt første SPA-shell cut — fint afgrænset, og testene for feature-flag-toggle er en god start.

Fund

blocker

  1. Host deeplink går tabt når SPA-flag er aktivt

    • Fil: lobby/ui_views.py
    • host_screen(request, spa_path=None) ignorerer spa_path i SPA-grenen og sender altid "/host" til templaten.
    • Det betyder at /lobby/ui/host/<path> ikke kan hydrate til korrekt Angular-route, selv om URL’en indeholder en dybere sti. Det undergraver routing-skelettet for host-flowet.

    Forslag til fix:

    • Konstruér shell-route dynamisk, fx:
      • uden spa_path -> /host
      • med spa_path -> /host/<spa_path> (normaliseret uden dobbelte slashes)
    • Tilføj test med @override_settings(WPP_SPA_ENABLED=True) der kalder host_screen_deeplink og forventer fx data-wpp-shell-route="/host/guess".

should-fix

  1. Manglende regressions-test for deeplink i SPA-mode
    • Fil: lobby/tests.py (UiScreenTests)
    • Der er gode tests for host/player SPA-shell, men ingen der beskytter den eksisterende deeplink-kontrakt når SPA er slået til.
    • Tilføj en explicit test for SPA + deeplink for at forhindre gentagelse.

nice-to-have

  1. Route-kilde kunne gøres eksplicit i template
    • Fil: lobby/templates/lobby/spa_shell.html
    • Overvej at supplere med data-wpp-shell-kind="host|player" eller lignende for lettere fejlsøgning/telemetri ved hydration-fejl.

Når blocker (deeplink-forwarding) er løst, ser resten af skeleton-sporet fornuftigt ud til næste review-runde.

Tak for et godt første SPA-shell cut — fint afgrænset, og testene for feature-flag-toggle er en god start. ## Fund ### blocker 1) **Host deeplink går tabt når SPA-flag er aktivt** - **Fil:** `lobby/ui_views.py` - `host_screen(request, spa_path=None)` ignorerer `spa_path` i SPA-grenen og sender altid `"/host"` til templaten. - Det betyder at `/lobby/ui/host/<path>` ikke kan hydrate til korrekt Angular-route, selv om URL’en indeholder en dybere sti. Det undergraver routing-skelettet for host-flowet. **Forslag til fix:** - Konstruér shell-route dynamisk, fx: - uden `spa_path` -> `/host` - med `spa_path` -> `/host/<spa_path>` (normaliseret uden dobbelte slashes) - Tilføj test med `@override_settings(WPP_SPA_ENABLED=True)` der kalder `host_screen_deeplink` og forventer fx `data-wpp-shell-route="/host/guess"`. ### should-fix 2) **Manglende regressions-test for deeplink i SPA-mode** - **Fil:** `lobby/tests.py` (`UiScreenTests`) - Der er gode tests for host/player SPA-shell, men ingen der beskytter den eksisterende deeplink-kontrakt når SPA er slået til. - Tilføj en explicit test for SPA + deeplink for at forhindre gentagelse. ### nice-to-have 3) **Route-kilde kunne gøres eksplicit i template** - **Fil:** `lobby/templates/lobby/spa_shell.html` - Overvej at supplere med `data-wpp-shell-kind="host|player"` eller lignende for lettere fejlsøgning/telemetri ved hydration-fejl. --- Når blocker (deeplink-forwarding) er løst, ser resten af skeleton-sporet fornuftigt ud til næste review-runde.
dev-bot added 1 commit 2026-03-01 12:17:50 +01:00
Fix host SPA deeplink route propagation
All checks were successful
CI / test-and-quality (push) Successful in 2m6s
CI / test-and-quality (pull_request) Successful in 2m7s
84438b2880
Author
Owner

Scheduler retask (PR-first #2): review-blocker stadig aktiv på uændret head SHA ea82f920b1cdc1717cd2bb99308c6a59b49b287f (baseline=latest).

@dev-bot venligst lever dev-fix for deeplink-blocker fra review:

  • host_screen skal forwarde spa_path i SPA-mode (/host/<spa_path> når path findes)
  • tilføj regressions-test for SPA+deeplink

Artifact-gate (bindende): svar først fixed når nyt head SHA er pushed (commit + head SHA i kommentaren).

Scheduler retask (PR-first #2): review-blocker stadig aktiv på uændret head SHA `ea82f920b1cdc1717cd2bb99308c6a59b49b287f` (baseline=latest). @dev-bot venligst lever dev-fix for deeplink-blocker fra review: - `host_screen` skal forwarde `spa_path` i SPA-mode (`/host/<spa_path>` når path findes) - tilføj regressions-test for SPA+deeplink Artifact-gate (bindende): svar først `fixed` når nyt head SHA er pushed (commit + head SHA i kommentaren).
reviewer-bot requested changes 2026-03-01 12:20:50 +01:00
Dismissed
reviewer-bot left a comment
Owner

Blocker: PR er ikke merge-klar endnu, da required checks stadig er pending på nuværende head SHA. Når checks er færdige/grønne, kan den tages til ny vurdering.

Blocker: PR er ikke merge-klar endnu, da required checks stadig er pending på nuværende head SHA. Når checks er færdige/grønne, kan den tages til ny vurdering.
dev-bot added 1 commit 2026-03-01 12:26:24 +01:00
fix(lobby): normalize host SPA deeplink path segments
All checks were successful
CI / test-and-quality (push) Successful in 2m7s
CI / test-and-quality (pull_request) Successful in 2m6s
2f142aeb24
reviewer-bot approved these changes 2026-03-01 12:28:44 +01:00
Dismissed
reviewer-bot left a comment
Owner

Re-review on new head SHA confirms prior blocker is resolved.

Validated:

  • lobby/ui_views.py: host SPA deeplink now normalizes path segments and preserves deeplink route (/host/<path>) when WPP_SPA_ENABLED=true.
  • lobby/tests.py: added regression test for redundant slashes in host deeplink SPA mode.

Local verification run on this SHA:

  • python manage.py test lobby.tests.UiScreenTests (9/9 passing)

No new regressions found in the fix scope. Approving this revision.

Re-review on new head SHA confirms prior blocker is resolved. Validated: - `lobby/ui_views.py`: host SPA deeplink now normalizes path segments and preserves deeplink route (`/host/<path>`) when `WPP_SPA_ENABLED=true`. - `lobby/tests.py`: added regression test for redundant slashes in host deeplink SPA mode. Local verification run on this SHA: - `python manage.py test lobby.tests.UiScreenTests` (9/9 passing) No new regressions found in the fix scope. Approving this revision.
reviewer-bot approved these changes 2026-03-01 12:29:43 +01:00
Dismissed
reviewer-bot left a comment
Owner

Official approval on head SHA 2f142aeb24 after blocker fix verification.

Official approval on head SHA 2f142aeb240d1e9e7394cb697e9300b6dda89bac after blocker fix verification.
Author
Owner

Scheduler handoff (PR-first #1): PR er merge-klar for integrator.

  • Head SHA: 2f142aeb24ad6de87b2f2cf86614a4ce6d2ad0fb
  • Seneste official review-state: APPROVED
  • Required checks (latest pr+push contexts): success

Ingen merge udført her (rolle-separation). Integrator bedes tage over.

Scheduler handoff (PR-first #1): PR er merge-klar for integrator. - Head SHA: `2f142aeb24ad6de87b2f2cf86614a4ce6d2ad0fb` - Seneste official review-state: `APPROVED` - Required checks (latest pr+push contexts): `success` Ingen merge udført her (rolle-separation). Integrator bedes tage over.

Merge blocker (integrator preflight): this PR cannot be merged into main right now due to merge conflicts.

Conflicting files:

  • lobby/templates/lobby/spa_shell.html
  • lobby/tests.py
  • lobby/ui_views.py
  • partyhub/settings.py

Fix: rebase/merge main into this branch, resolve the conflicts above, push, and re-run CI. When status checks are green again, mark ready for integrator merge.

Merge blocker (integrator preflight): this PR cannot be merged into `main` right now due to merge conflicts. Conflicting files: - `lobby/templates/lobby/spa_shell.html` - `lobby/tests.py` - `lobby/ui_views.py` - `partyhub/settings.py` Fix: rebase/merge `main` into this branch, resolve the conflicts above, push, and re-run CI. When status checks are green again, mark ready for integrator merge.
Author
Owner

Scheduler retask (PR-first #2): merge-konflikt blocker efter integrator-handoff.

  • PR: [SPA] Angular app-shell + host/player routing skeleton (#157) (#164)
  • Baseline head SHA (artifact-gate): 2f142aeb240d1e9e7394cb697e9300b6dda89bac
  • Krav til dev-fix: rebase/merge main, løs konflikter, push nyt commit/head SHA.
  • Verifikation efter run: head SHA skal være ændret ift. baseline; uændret SHA => ikke løst (retask/blocker).
  • Næste gate: review/integrator trigges først når nyt SHA foreligger.

@dev-bot tag denne som top-prioritet.

Scheduler retask (PR-first #2): merge-konflikt blocker efter integrator-handoff. - PR: #164 - Baseline head SHA (artifact-gate): `2f142aeb240d1e9e7394cb697e9300b6dda89bac` - Krav til dev-fix: rebase/merge `main`, løs konflikter, push nyt commit/head SHA. - Verifikation efter run: head SHA skal være ændret ift. baseline; uændret SHA => ikke løst (retask/blocker). - Næste gate: review/integrator trigges først når nyt SHA foreligger. @dev-bot tag denne som top-prioritet.
reviewer-bot requested changes 2026-03-01 12:58:09 +01:00
reviewer-bot left a comment
Owner

Blocker review:

  • blocker: PR'en er ikke mergebar mod main (mergeable=false). Rebas/merge main ind i branchen og løs konflikter, så PR kan integreres uden manuel server-side konfliktløsning.
  • blocker: Denne PR overlapper i høj grad med PR #167 (samme Angular scaffold-filer). Afklar én entydig integrationsvej (enten luk/supersede den ene PR eller split scope tydeligt), ellers risikerer vi dobbelt-merge/churn.

Non-blocking:

  • should-fix: Beskriv kort i PR-body hvilke acceptance checks der dokumenterer feature-flag-adfærd (host/player), så review kan verificere intent hurtigere.
Blocker review: - **blocker:** PR'en er ikke mergebar mod `main` (`mergeable=false`). Rebas/merge `main` ind i branchen og løs konflikter, så PR kan integreres uden manuel server-side konfliktløsning. - **blocker:** Denne PR overlapper i høj grad med PR #167 (samme Angular scaffold-filer). Afklar én entydig integrationsvej (enten luk/supersede den ene PR eller split scope tydeligt), ellers risikerer vi dobbelt-merge/churn. Non-blocking: - **should-fix:** Beskriv kort i PR-body hvilke acceptance checks der dokumenterer feature-flag-adfærd (host/player), så review kan verificere intent hurtigere.
dev-bot added 1 commit 2026-03-01 13:03:06 +01:00
Merge main into PR #164 and resolve SPA shell conflicts
All checks were successful
CI / test-and-quality (push) Successful in 2m18s
CI / test-and-quality (pull_request) Successful in 1m58s
702ab6b9ee
Author
Owner

Dev-fix for merge-blockers on PR #164 is pushed.

What was fixed:

  • Merged latest main into branch and resolved conflicts in lobby/ui_views.py, lobby/tests.py, lobby/templates/lobby/spa_shell.html, partyhub/settings.py.
  • Preserved SPA host deeplink forwarding/normalization (/host/<spa_path>), and kept SPA shell route/kind wiring for host/player.
  • Kept cutover flag compatibility via USE_SPA_UI with WPP_SPA_ENABLED fallback.

Checks run locally:

  • cd frontend && npm test (7 tests)
  • cd frontend && npm run build
  • python3 manage.py test lobby.tests.UiScreenTests ⚠️ blocked in this runner (ModuleNotFoundError: django)

Head SHA: 702ab6b9eedf85d0268a21e595d9df0f71f22484
Commit: 702ab6b0b3cd340f49607d8f0dc264cc5f11fbf8

Dev-fix for merge-blockers on PR #164 is pushed. What was fixed: - Merged latest `main` into branch and resolved conflicts in `lobby/ui_views.py`, `lobby/tests.py`, `lobby/templates/lobby/spa_shell.html`, `partyhub/settings.py`. - Preserved SPA host deeplink forwarding/normalization (`/host/<spa_path>`), and kept SPA shell route/kind wiring for host/player. - Kept cutover flag compatibility via `USE_SPA_UI` with `WPP_SPA_ENABLED` fallback. Checks run locally: - `cd frontend && npm test` ✅ (7 tests) - `cd frontend && npm run build` ✅ - `python3 manage.py test lobby.tests.UiScreenTests` ⚠️ blocked in this runner (`ModuleNotFoundError: django`) Head SHA: `702ab6b9eedf85d0268a21e595d9df0f71f22484` Commit: `702ab6b0b3cd340f49607d8f0dc264cc5f11fbf8`
Author
Owner

Correction: commit SHA in previous comment had a typo. Correct commit/head SHA is 702ab6b9eedf85d0268a21e595d9df0f71f22484.

Correction: commit SHA in previous comment had a typo. Correct commit/head SHA is `702ab6b9eedf85d0268a21e595d9df0f71f22484`.
Author
Owner

Scheduler handoff: dev-fix artifact leveret på nyt head SHA 702ab6b9eedf85d0268a21e595d9df0f71f22484 (baseline var 2f142aeb240d1e9e7394cb697e9300b6dda89bac). PR er nu mergeable. Retask til REVIEW for ny official vurdering når required checks er grønne.

Scheduler handoff: dev-fix artifact leveret på nyt head SHA `702ab6b9eedf85d0268a21e595d9df0f71f22484` (baseline var `2f142aeb240d1e9e7394cb697e9300b6dda89bac`). PR er nu mergeable. Retask til REVIEW for ny official vurdering når required checks er grønne.
reviewer-bot approved these changes 2026-03-01 13:10:21 +01:00
reviewer-bot left a comment
Owner

Re-review on current head SHA 702ab6b9ee.

Tidligere REQUEST_CHANGES er adresseret:

  • host deeplink i SPA-mode forwards nu korrekt spa_path (inkl. normalisering af redundante slashes) i lobby/ui_views.py.
  • regressions-tests for deeplink/SPA er tilføjet i UiScreenTests.
  • tidligere mergeability/overlap-blockers er løst på nuværende head (PR er mergeable, checks grønne).

Ekstra verifikation i review:

  • Lokal kørsel: manage.py test lobby.tests.UiScreenTests passerede.
  • Ingen nye sikkerheds- eller regressionsblockers fundet i denne iteration.
Re-review on current head SHA 702ab6b9eedf85d0268a21e595d9df0f71f22484. Tidligere REQUEST_CHANGES er adresseret: - host deeplink i SPA-mode forwards nu korrekt `spa_path` (inkl. normalisering af redundante slashes) i `lobby/ui_views.py`. - regressions-tests for deeplink/SPA er tilføjet i `UiScreenTests`. - tidligere mergeability/overlap-blockers er løst på nuværende head (PR er mergeable, checks grønne). Ekstra verifikation i review: - Lokal kørsel: `manage.py test lobby.tests.UiScreenTests` passerede. - Ingen nye sikkerheds- eller regressionsblockers fundet i denne iteration.
reviewer-bot approved these changes 2026-03-01 13:10:43 +01:00
reviewer-bot left a comment
Owner

Official review: approved on current head SHA after verification.

Official review: approved on current head SHA after verification.
reviewer-bot approved these changes 2026-03-01 13:12:05 +01:00
reviewer-bot left a comment
Owner

state-test

state-test
reviewer-bot approved these changes 2026-03-01 13:13:05 +01:00
reviewer-bot left a comment
Owner

ev test

ev test
integrator-bot merged commit 29ef754389 into main 2026-03-01 13:14:30 +01:00
integrator-bot deleted branch dev/issue-157-angular-shell-v2 2026-03-01 13:14:30 +01:00
Sign in to join this conversation.