2026-10-16T11:35:14.907Z start test on stage (full/parallel, trigger manual) 2026-10-16T11:35:15.208Z deployed: {"hotel-backend-core":"a8ca94b65b759dbe836470f451c6eb252f702cb7","hotel-frontend-core":"4acca3f543c11fc6170c2b2b0a5697443651ff78"} 2026-10-16T11:35:15.208Z $ git fetch --quiet --prune origin (cwd /home/ubuntu/regression-runner/repos/stage/hotel-backend-core) 2026-10-16T11:35:16.616Z -> exit 0 2026-10-16T11:35:16.616Z $ git cat-file -e a8ca94b65b759dbe836470f451c6eb252f702cb7^{commit} (cwd /home/ubuntu/regression-runner/repos/stage/hotel-backend-core) 2026-10-16T11:35:16.625Z -> exit 0 2026-10-16T11:35:16.625Z $ git diff --name-only a8ca94b65b759dbe836470f451c6eb252f702cb7 origin/stage (cwd /home/ubuntu/regression-runner/repos/stage/hotel-backend-core) 2026-10-16T11:35:16.634Z -> exit 0 2026-10-16T11:35:16.634Z $ git checkout --quiet --detach a8ca94b65b759dbe836470f451c6eb252f702cb7 && git clean -fdq -e playwright-report -e .auth && git rev-parse HEAD (cwd /home/ubuntu/regression-runner/repos/stage/hotel-backend-core) 2026-10-16T11:35:16.703Z a8ca94b65b759dbe836470f451c6eb252f702cb7 2026-10-16T11:35:16.703Z -> exit 0 2026-10-16T11:35:16.703Z $ CI=1 corepack pnpm@9.15.4 install --no-frozen-lockfile --config.confirmModulesPurge=false --reporter=append-only (cwd /home/ubuntu/regression-runner/repos/stage/hotel-backend-core) 2026-10-16T11:35:17.144Z Scope: all 31 workspace projects 2026-10-16T11:35:17.352Z Lockfile is up to date, resolution step is skipped 2026-10-16T11:35:17.555Z Already up to date 2026-10-16T11:35:18.496Z . prepare$ husky 2026-10-16T11:35:18.550Z . prepare: Done 2026-10-16T11:35:18.672Z Done in 1.8s 2026-10-16T11:35:18.708Z -> exit 0 2026-10-16T11:35:18.708Z $ git fetch --quiet --prune origin (cwd /home/ubuntu/regression-runner/repos/stage/hotel-frontend-core) 2026-10-16T11:35:19.746Z -> exit 0 2026-10-16T11:35:19.747Z $ git cat-file -e 4acca3f543c11fc6170c2b2b0a5697443651ff78^{commit} (cwd /home/ubuntu/regression-runner/repos/stage/hotel-frontend-core) 2026-10-16T11:35:19.756Z fatal: Not a valid object name 4acca3f543c11fc6170c2b2b0a5697443651ff78^{commit} 2026-10-16T11:35:19.756Z -> exit 128 2026-10-16T11:35:19.756Z hotel-frontend-core: served commit 4acca3f54 is not in the repository's history; testing origin/stage instead 2026-10-16T11:35:19.756Z $ git checkout --quiet --detach origin/stage && git clean -fdq -e playwright-report -e .auth && git rev-parse HEAD (cwd /home/ubuntu/regression-runner/repos/stage/hotel-frontend-core) 2026-10-16T11:35:19.806Z 04dceb5287bf95b2076097d4b1dd7548d16d1462 2026-10-16T11:35:19.806Z -> exit 0 2026-10-16T11:35:19.806Z $ CI=1 corepack pnpm@9.15.4 install --frozen-lockfile --config.confirmModulesPurge=false --reporter=append-only (cwd /home/ubuntu/regression-runner/repos/stage/hotel-frontend-core) 2026-10-16T11:35:20.333Z Lockfile is up to date, resolution step is skipped 2026-10-16T11:35:20.467Z Already up to date 2026-10-16T11:35:21.036Z . prepare$ husky 2026-10-16T11:35:21.094Z . prepare: Done 2026-10-16T11:35:21.095Z Done in 1.2s 2026-10-16T11:35:21.122Z -> exit 0 2026-10-16T11:35:21.122Z $ corepack pnpm@9.15.4 e2e:prepare-property -- --count 8 (cwd /home/ubuntu/regression-runner/repos/stage/hotel-backend-core) 2026-10-16T11:35:21.503Z > hotel-backend-core@ e2e:prepare-property /home/ubuntu/regression-runner/repos/stage/hotel-backend-core 2026-10-16T11:35:21.503Z > node scripts/e2e/prepare-property.mjs "--" "--count" "8" 2026-10-16T11:35:44.441Z ✓ E2E Hotel 01 (2ada23e1-4c1e-4ec9-909d-d31945728a5e): test user has access; created room 107; created room 108; created room 109; created room 110; created room 111; created room 112; switched on MODULE.KITCHEN_ENABLED; switched on MODULE.RESTAURANT_ENABLED; switched on PMS.CHANNEL_MANAGER_ENABLED; created kitchen 2026-10-16T11:36:06.045Z ✓ E2E Hotel 02 (7ea986de-cbe0-47e5-a3ba-78d8ff9a9a8a): test user has access; created room 107; created room 108; created room 109; created room 110; created room 111; created room 112; switched on MODULE.KITCHEN_ENABLED; switched on MODULE.RESTAURANT_ENABLED; switched on PMS.CHANNEL_MANAGER_ENABLED; created kitchen 2026-10-16T11:36:25.864Z ✓ E2E Hotel 03 (42d19440-fc22-4b19-9b99-2d91edc96d5b): test user has access; created room 107; created room 108; created room 109; created room 110; created room 111; created room 112; switched on MODULE.KITCHEN_ENABLED; switched on MODULE.RESTAURANT_ENABLED; switched on PMS.CHANNEL_MANAGER_ENABLED; created kitchen 2026-10-16T11:36:49.028Z ✓ E2E Hotel 04 (4f5eaff5-08c7-43c8-b225-815924c73049): test user has access; created room 107; created room 108; created room 109; created room 110; created room 111; created room 112; switched on MODULE.KITCHEN_ENABLED; switched on MODULE.RESTAURANT_ENABLED; switched on PMS.CHANNEL_MANAGER_ENABLED; created kitchen 2026-10-16T11:37:10.864Z ✓ E2E Hotel 05 (691e5e40-b42f-4fb1-a97a-70db2d1089f3): test user has access; created room 107; created room 108; created room 109; created room 110; created room 111; created room 112; switched on MODULE.KITCHEN_ENABLED; switched on MODULE.RESTAURANT_ENABLED; switched on PMS.CHANNEL_MANAGER_ENABLED; created kitchen 2026-10-16T11:37:32.054Z ✓ E2E Hotel 06 (b4efab29-34cd-43d8-8da4-862ddcffb9cd): test user has access; created room 107; created room 108; created room 109; created room 110; created room 111; created room 112; switched on MODULE.KITCHEN_ENABLED; switched on MODULE.RESTAURANT_ENABLED; switched on PMS.CHANNEL_MANAGER_ENABLED; created kitchen 2026-10-16T11:37:53.763Z ✓ E2E Hotel 07 (194dadb0-5436-4b4e-8de8-a6d04df90597): test user has access; created room 107; created room 108; created room 109; created room 110; created room 111; created room 112; switched on MODULE.KITCHEN_ENABLED; switched on MODULE.RESTAURANT_ENABLED; switched on PMS.CHANNEL_MANAGER_ENABLED; created kitchen 2026-10-16T11:38:13.657Z ✓ E2E Hotel 08 (689cbadd-593b-460a-badf-162608435ed8): test user has access; created room 107; created room 108; created room 109; created room 110; created room 111; created room 112; switched on MODULE.KITCHEN_ENABLED; switched on MODULE.RESTAURANT_ENABLED; switched on PMS.CHANNEL_MANAGER_ENABLED; created kitchen 2026-10-16T11:38:13.657Z E2E_PROPERTIES=[{"id":"2ada23e1-4c1e-4ec9-909d-d31945728a5e","name":"E2E Hotel 01"},{"id":"7ea986de-cbe0-47e5-a3ba-78d8ff9a9a8a","name":"E2E Hotel 02"},{"id":"42d19440-fc22-4b19-9b99-2d91edc96d5b","name":"E2E Hotel 03"},{"id":"4f5eaff5-08c7-43c8-b225-815924c73049","name":"E2E Hotel 04"},{"id":"691e5e40-b42f-4fb1-a97a-70db2d1089f3","name":"E2E Hotel 05"},{"id":"b4efab29-34cd-43d8-8da4-862ddcffb9cd","name":"E2E Hotel 06"},{"id":"194dadb0-5436-4b4e-8de8-a6d04df90597","name":"E2E Hotel 07"},{"id":"689cbadd-593b-460a-badf-162608435ed8","name":"E2E Hotel 08"}] 2026-10-16T11:38:13.675Z -> exit 0 2026-10-16T11:38:13.675Z $ corepack pnpm@9.15.4 e2e:sweep -- --hours 0 (cwd /home/ubuntu/regression-runner/repos/stage/hotel-backend-core) 2026-10-16T11:38:14.058Z > hotel-backend-core@ e2e:sweep /home/ubuntu/regression-runner/repos/stage/hotel-backend-core 2026-10-16T11:38:14.058Z > node scripts/e2e/sweep.mjs "--" "--hours" "0" 2026-10-16T11:38:14.534Z releasing E2E Hotel 01 · E2E-202610160504-1428 ARM-0-1 cards (241cf8c4-7f60-4cdb-86c4-a2f4db58dbb7) 2026-10-16T11:38:14.969Z releasing E2E Hotel 01 · E2E-202610160504-1428 ARM-0-1 fin-ui (489b1d74-d03f-49bd-aa1f-c90eaa342667) 2026-10-16T11:38:15.447Z releasing E2E Hotel 02 · E2E-202610160504-1428 ARM-1-1 aggr (bd0860c9-932f-43ae-a54d-31e4f0667ed0) 2026-10-16T11:38:15.686Z releasing E2E Hotel 02 · E2E-202610160504-1428 ARM-1-1 slot-default (dc386648-aaa6-43e5-b618-7be5b34b143a) 2026-10-16T11:38:16.659Z releasing E2E Hotel 03 · E2E-202610160504-1428 ARM-2-1 ns-ui (75d13d2d-a609-4207-b149-98502eaf4cbd) 2026-10-16T11:38:17.754Z releasing E2E Hotel 05 · E2E-202610160504-1428 ARM-4-1 cr-conflict-a (5e154505-c064-447e-9f40-6286e2adc6f2) 2026-10-16T11:38:18.028Z releasing E2E Hotel 05 · E2E-202610160504-1428 ARM-4-4 cr-perroom (83752c6e-6b1c-4f5d-abef-0246d95cf3fb) 2026-10-16T11:38:18.417Z releasing E2E Hotel 05 · E2E-202610160504-1428 ARM-4-6 cr-rebook (436ea997-bc8f-4e15-b6f7-e3b09623eb96) 2026-10-16T11:38:18.637Z releasing E2E Hotel 05 · E2E-202610160504-1428 ARM-4-7 cr-list (1b2e591d-049b-462f-9e19-24bc3613ccb6) 2026-10-16T11:38:18.836Z releasing E2E Hotel 05 · E2E-202610160504-1428 ARM-4-5 cr-baddates (b275847b-c26b-4578-bc52-04cc1b9489b4) 2026-10-16T11:38:19.326Z releasing E2E Hotel 06 · E2E-202610160504-1428 ARM-5-1 lock-delta (712b9214-fb18-4102-b567-bc99960dffaa) 2026-10-16T11:38:19.918Z releasing E2E Hotel 07 · E2E-202610160504-1428 ARM-6-1 pci-ui (954c95da-f806-4b6d-8d6f-121f0430bd39) 2026-10-16T11:38:20.171Z releasing E2E Hotel 07 · E2E-202610160504-1428 ARM-6-1 aggr (5c53b4ce-de80-4fcd-908b-e7dcd5339c1b) 2026-10-16T11:38:20.690Z releasing E2E Hotel 08 · E2E-202610160504-1428 ARM-7-1 aggr (89ea6dc0-a82c-4274-b343-4dac424d1679) 2026-10-16T11:38:20.959Z Released 14 reservation(s) older than 0 h across 8 hotel(s). 2026-10-16T11:38:20.979Z -> exit 0 2026-10-16T11:38:20.980Z === hotel-backend-core === 2026-10-16T11:38:20.980Z $ corepack pnpm@9.15.4 e2e (cwd /home/ubuntu/regression-runner/repos/stage/hotel-backend-core) 2026-10-16T11:38:21.360Z > hotel-backend-core@ e2e /home/ubuntu/regression-runner/repos/stage/hotel-backend-core 2026-10-16T11:38:21.360Z > playwright test -c e2e/api/playwright.config.ts 2026-10-16T11:38:23.592Z Running 9 tests using 8 workers 2026-10-16T11:38:23.594Z - 1 e2e/api/specs/channel-manager.spec.ts:221:8 › Channel manager · Channex incoming › TC-API-CM-CHX-2 a real Channex staging booking appears as an upcoming reservation 2026-10-16T11:38:24.633Z ✓ 3 e2e/api/specs/health.spec.ts:4:7 › Backend health › TC-API-HEALTH-1 health reports database and redis up @smoke (134ms) 2026-10-16T11:38:24.760Z - 2 e2e/api/specs/channel-manager.spec.ts:227:9 › Channel manager · SU outgoing › TC-API-CM-SU-OUT-1 a booking on the hotel makes us push to SU 2026-10-16T11:38:24.776Z - 5 e2e/api/specs/channel-manager.spec.ts:227:9 › Channel manager · CHANNEX outgoing › TC-API-CM-CHX-OUT-1 a booking on the hotel makes us push to CHANNEX 2026-10-16T11:38:24.806Z - 6 e2e/api/specs/channel-manager.spec.ts:134:7 › Channel manager · SU incoming › TC-API-CM-SU-1 an SU booking posted to our webhook appears as an upcoming reservation 2026-10-16T11:38:24.842Z - 8 e2e/api/specs/channel-manager.spec.ts:189:7 › Channel manager · Channex incoming › TC-API-CM-CHX-1 a Channex booking ping for the hotel is accepted and routed to its connection 2026-10-16T11:38:24.946Z - 9 e2e/api/specs/channel-manager.spec.ts:172:7 › Channel manager · SU incoming › TC-API-CM-SU-2 an SU cancellation cancels that reservation 2026-10-16T11:38:28.284Z ✘ 4 e2e/api/specs/reservations.spec.ts:61:7 › Reservations › TC-API-RES-2 a reservation whose check-out is before its check-in is rejected (3.2s) 2026-10-16T11:38:28.351Z ✓ 7 e2e/api/specs/reservations.spec.ts:22:7 › Reservations › TC-API-RES-1 a direct reservation is created as upcoming and can be cancelled @prod (3.4s) 2026-10-16T11:38:28.372Z 6 skipped 2026-10-16T11:38:28.372Z 3 passed (6.3s) 2026-10-16T11:38:28.442Z -> exit 0 2026-10-16T11:38:28.445Z === hotel-frontend-core === 2026-10-16T11:38:28.445Z $ corepack pnpm@9.15.4 e2e (cwd /home/ubuntu/regression-runner/repos/stage/hotel-frontend-core) 2026-10-16T11:38:28.824Z > hotel-frontend-core@0.1.0 e2e /home/ubuntu/regression-runner/repos/stage/hotel-frontend-core 2026-10-16T11:38:28.824Z > playwright test 2026-10-16T11:38:44.491Z Running 247 tests using 8 workers 2026-10-16T11:38:48.907Z ✓ 7 [chromium] › e2e/specs/prd-2026-005-flags-gating.spec.ts:16:6 › PRD-2026-005 — flag visibility › TC-PRD-003 Bank Accounts page renders Add button when permission granted (3.1s) 2026-10-16T11:38:49.005Z ✓ 1 [chromium] › e2e/specs/prd-2026-005-flags-gating.spec.ts:43:6 › PRD-2026-005 — flag visibility › TC-PRD-001 propertyConfig delivers the 4 INVOICE flags (3.3s) 2026-10-16T11:38:49.610Z ✓ 4 [chromium] › e2e/specs/prd-2026-005-bank-accounts.spec.ts:29:6 › PRD-2026-005 — Bank Accounts › TC-PRD-010 list view renders the Add button and existing rows (3.9s) 2026-10-16T11:38:49.702Z ✓ 2 [chromium] › e2e/specs/prd-2026-005-flags-gating.spec.ts:23:6 › PRD-2026-005 — flag visibility › TC-PRD-004 manage-taxes page renders HSN/SAC card when GST flag on (3.9s) 2026-10-16T11:38:50.142Z ✓ 3 [chromium] › e2e/specs/prd-2026-005-flags-gating.spec.ts:30:6 › PRD-2026-005 — flag visibility › TC-PRD-005 Invoice Settings surfaces Documents sections (Templates + Bank + Auto-Create); HSN/SAC stays consolidated (4.5s) 2026-10-16T11:38:50.151Z ✓ 6 [chromium] › e2e/specs/prd-2026-005-auto-triggers.spec.ts:9:6 › PRD-2026-005 — Auto-Triggers › TC-PRD-032 toggle Restaurant Session Settle persists (4.5s) 2026-10-16T11:38:51.687Z ✓ 5 [chromium] › e2e/specs/prd-2026-005-hsn-sac.spec.ts:8:6 › PRD-2026-005 — HSN/SAC defaults › TC-PRD-020/021/022 expand → fill → save → reload preserves values (6.0s) 2026-10-16T11:38:53.359Z ✓ 11 [chromium] › e2e/specs/prd-2026-005-bank-accounts.spec.ts:37:6 › PRD-2026-005 — Bank Accounts › TC-PRD-011 empty form keeps modal open with validation errors (3.7s) 2026-10-16T11:38:54.825Z ✘ 8 [chromium] › e2e/specs/prd-2026-005-active-template.spec.ts:61:6 › PRD-2026-005 — Active custom template wins › TC-PRD-093 template with empty image schemas still renders (no SOI crash) (3.4s) 2026-10-16T11:38:56.383Z ✓ 9 [chromium] › e2e/specs/prd-2026-005-invoice-editor.spec.ts:33:6 › PRD-2026-005 — Invoice editor › TC-PRD-040/041 IGST switch is off by default and the header reads CGST + SGST (7.4s) 2026-10-16T11:38:56.437Z ✓ 10 [chromium] › e2e/specs/prd-2026-005-invoice-editor.spec.ts:41:6 › PRD-2026-005 — Invoice editor › TC-PRD-042 switching IGST on changes the per-line header (7.3s) 2026-10-16T11:38:57.020Z ✓ 12 [chromium] › e2e/specs/prd-2026-005-invoice-editor.spec.ts:48:6 › PRD-2026-005 — Invoice editor › TC-PRD-043 switching IGST back off returns to the default mode (7.2s) 2026-10-16T11:38:57.533Z ✓ 13 [chromium] › e2e/specs/prd-2026-005-invoice-editor.spec.ts:61:6 › PRD-2026-005 — Invoice editor › TC-PRD-046 Place of Supply input accepts a state name once IGST is on (7.3s) 2026-10-16T11:38:58.416Z ✓ 16 [chromium] › e2e/specs/prd-2026-005-bank-accounts.spec.ts:48:6 › PRD-2026-005 — Bank Accounts › TC-PRD-012 valid form creates row and closes modal (5.0s) 2026-10-16T11:39:00.847Z ✓ 20 [chromium] › e2e/specs/smoke-core-pages.spec.ts:23:7 › Core pages open › TC-SMOKE-001 Room View opens on the test hotel @smoke (3.8s) 2026-10-16T11:39:02.156Z ✓ 21 [chromium] › e2e/specs/smoke-core-pages.spec.ts:23:7 › Core pages open › TC-SMOKE-002 Stay View opens on the test hotel @smoke (4.5s) 2026-10-16T11:39:03.297Z ✓ 18 [chromium] › e2e/specs/prod-stay-journey.spec.ts:59:6 › Stay journey (prod-safe) › TC-PROD-001 a direct booking for tonight shows as upcoming @prod (6.4s) 2026-10-16T11:39:03.364Z ✓ 22 [chromium] › e2e/specs/prd-2026-005-bank-accounts.spec.ts:69:6 › PRD-2026-005 — Bank Accounts › TC-PRD-013/014 edit modal opens prefilled and saves UPI (4.9s) 2026-10-16T11:39:04.182Z ✓ 23 [chromium] › e2e/specs/smoke-core-pages.spec.ts:23:7 › Core pages open › TC-SMOKE-003 Reservations opens on the test hotel @smoke (3.3s) 2026-10-16T11:39:04.243Z ✓ 15 [chromium] › e2e/specs/prd-2026-005-template-builder.spec.ts:15:6 › PRD-2026-005 — Template Builder › TC-PRD-080 Templates gallery opens visual Designer for custom templates (12.5s) 2026-10-16T11:39:05.815Z ✓ 24 [chromium] › e2e/specs/smoke-core-pages.spec.ts:23:7 › Core pages open › TC-SMOKE-004 Guests opens on the test hotel @smoke (3.6s) 2026-10-16T11:39:07.345Z ✓ 26 [chromium] › e2e/specs/prd-2026-005-bank-accounts.spec.ts:91:6 › PRD-2026-005 — Bank Accounts › TC-PRD-015 make primary toggles the badge (3.9s) 2026-10-16T11:39:07.511Z ✓ 28 [chromium] › e2e/specs/smoke-core-pages.spec.ts:23:7 › Core pages open › TC-SMOKE-006 Invoices opens on the test hotel @smoke (3.2s) 2026-10-16T11:39:07.625Z ✓ 27 [chromium] › e2e/specs/smoke-core-pages.spec.ts:23:7 › Core pages open › TC-SMOKE-005 All Checkins opens on the test hotel @smoke (3.4s) 2026-10-16T11:39:07.969Z ✓ 25 [chromium] › e2e/specs/prod-stay-journey.spec.ts:97:6 › Stay journey (prod-safe) › TC-PROD-002 checking the room in shows the stay as checked in @prod (4.6s) 2026-10-16T11:39:08.998Z ✓ 19 [chromium] › e2e/specs/prd-2026-005-template-builder.spec.ts:76:6 › PRD-2026-005 — Template Builder › TC-PRD-081 Saving from Designer hits PATCH /document-templates/:id (11.9s) 2026-10-16T11:39:09.298Z ✓ 29 [chromium] › e2e/specs/smoke-core-pages.spec.ts:23:7 › Core pages open › TC-SMOKE-007 Ledger opens on the test hotel @smoke (3.5s) 2026-10-16T11:39:10.270Z ✓ 31 [chromium] › e2e/specs/smoke-core-pages.spec.ts:23:7 › Core pages open › TC-SMOKE-008 Reports opens on the test hotel @smoke (2.7s) 2026-10-16T11:39:11.473Z ✓ 32 [chromium] › e2e/specs/prod-stay-journey.spec.ts:106:6 › Stay journey (prod-safe) › TC-PROD-004 a charge added to the stay shows on its charges screen @prod (3.5s) 2026-10-16T11:39:12.667Z ✓ 35 [arm] › e2e/specs/prd-2026-007-create-reservation.spec.ts:45:6 › PRD-2026-007 — reservation creation (API semantics) › TC-ARM-200 single-room create: UPCOMING, one room instance, default slot [CR-1] (1.2s) 2026-10-16T11:39:13.069Z ✓ 30 [chromium] › e2e/specs/prd-2026-005-bank-accounts.spec.ts:108:6 › PRD-2026-005 — Bank Accounts › TC-PRD-016 delete removes row (5.7s) 2026-10-16T11:39:14.407Z ✓ 37 [chromium] › e2e/specs/prod-stay-journey.spec.ts:114:6 › Stay journey (prod-safe) › TC-PROD-005 paying the full due settles the stay @prod (2.9s) 2026-10-16T11:39:15.542Z ✓ 33 [mobile-chromium] › e2e/specs/prd-2026-005-mobile.spec.ts:25:6 › PRD-2026-005 — mobile › TC-PRD-047 Tax Mode card visible on mobile invoice editor (5.9s) 2026-10-16T11:39:15.695Z ✓ 36 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:84:6 › PRD-2026-007 — reservation-level rollup (G6/Must 8/NG4) › TC-ARM-260 created booking exposes a reservation-level finance summary [Must 8] (3.7s) 2026-10-16T11:39:16.731Z ✓ 40 [chromium] › e2e/specs/prod-stay-journey.spec.ts:127:6 › Stay journey (prod-safe) › TC-PROD-003 checking the room out closes the stay @prod (2.2s) 2026-10-16T11:39:17.430Z ✓ 34 [mobile-chromium] › e2e/specs/prd-2026-005-mobile.spec.ts:38:6 › PRD-2026-005 — mobile › TC-PRD-048 IGST toggle changes selection on mobile (6.8s) 2026-10-16T11:39:17.917Z ✓ 38 [arm] › e2e/specs/prd-2026-007-create-reservation.spec.ts:56:6 › PRD-2026-007 — reservation creation (API semantics) › TC-ARM-201 multi-room (3) create: three instances sharing the default slot [Must 1/CR-1] (5.2s) 2026-10-16T11:39:18.647Z ✓ 39 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:61:6 › PRD-2026-007 — Move/Swap lock › TC-ARM-140 API: lock then unlock round-trips [lock] (3.3s) 2026-10-16T11:39:18.790Z ✓ 45 [arm] › e2e/specs/prd-2026-007-rbac-ux.spec.ts:56:6 › PRD-2026-007 — authentication wall (Must 18) › TC-ARM-300 every ARM mutation endpoint returns 401 without a token [Must 18] (296ms) 2026-10-16T11:39:18.835Z ✓ 47 [arm] › e2e/specs/prd-2026-007-rbac-ux.spec.ts:65:6 › PRD-2026-007 — authentication wall (Must 18) › TC-ARM-301 garbage bearer token → 401 [Must 18] (29ms) 2026-10-16T11:39:18.884Z ✓ 48 [arm] › e2e/specs/prd-2026-007-rbac-ux.spec.ts:77:6 › PRD-2026-007 — authentication wall (Must 18) › TC-ARM-302 reads are also walled (checkin detail, finance, guest accounts) [Must 18] (34ms) 2026-10-16T11:39:19.207Z ✓ 41 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:91:6 › PRD-2026-007 — reservation-level rollup (G6/Must 8/NG4) › TC-ARM-261 partial check-in does not change totals [G6] (3.5s) 2026-10-16T11:39:19.397Z ✓ 42 [arm] › e2e/specs/prd-2026-007-noshow-cancel.spec.ts:55:6 › PRD-2026-007 — no-show per room › TC-ARM-103 API: noShowReason and noShowMarkedAt persist on the room [Should-1 audit] (1.9s) 2026-10-16T11:39:19.723Z ✓ 44 [arm] › e2e/specs/prd-2026-007-create-reservation.spec.ts:65:6 › PRD-2026-007 — reservation creation (API semantics) › TC-ARM-202 created rooms carry the requested physical room numbers [Must 6] (1.8s) 2026-10-16T11:39:20.809Z ✓ 51 [arm] › e2e/specs/prd-2026-007-noshow-cancel.spec.ts:73:6 › PRD-2026-007 — no-show per room › TC-ARM-104 API: NO_SHOW is terminal — late guest cannot be checked into the same room [S-22/NG1] (1.4s) 2026-10-16T11:39:21.006Z ✓ 52 [arm] › e2e/specs/prd-2026-007-create-reservation.spec.ts:74:6 › PRD-2026-007 — reservation creation (API semantics) › TC-ARM-203 guest name persists and the booking window round-trips [data integrity] (1.3s) 2026-10-16T11:39:21.031Z ✓ 54 [arm] › e2e/specs/prd-2026-007-create-reservation.spec.ts:84:6 › PRD-2026-007 — reservation creation (API semantics) › TC-ARM-204 missing guestName → validation error [validation] (12ms) 2026-10-16T11:39:21.412Z ✓ 50 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:101:6 › PRD-2026-007 — reservation-level rollup (G6/Must 8/NG4) › TC-ARM-262 explicit recalculate is idempotent on totals [G6 "no unexplained delta"] (2.2s) 2026-10-16T11:39:22.110Z ✘ 55 [arm] › e2e/specs/prd-2026-007-create-reservation.spec.ts:101:6 › PRD-2026-007 — reservation creation (API semantics) › TC-ARM-205 checkOut ≤ checkIn → rejected [validation] (1.0s) 2026-10-16T11:39:22.110Z ✓ 46 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:80:6 › PRD-2026-007 — Move/Swap lock › TC-ARM-141 API: batch lock of 3 rooms in one call [lock] (3.4s) 2026-10-16T11:39:22.259Z ✓ 53 [arm] › e2e/specs/prd-2026-007-noshow-cancel.spec.ts:83:6 › PRD-2026-007 — no-show per room › TC-ARM-105 API: second no-show on the same room is rejected, single effect [S-20 manual leg] (1.4s) 2026-10-16T11:39:22.629Z ✓ 43 [arm] › e2e/specs/prd-2026-007-partial-checkin.spec.ts:87:6 › PRD-2026-007 — partial check-in › TC-ARM-073 Continue stays disabled with zero rooms selected [UX] (4.7s) 2026-10-16T11:39:22.759Z ✓ 49 [arm] › e2e/specs/prd-2026-007-rbac-ux.spec.ts:92:6 › PRD-2026-007 — full-permission UI affordances (positive RBAC) › TC-ARM-303 owner-role kebab exposes all ARM actions on an UPCOMING booking [§10] (3.8s) 2026-10-16T11:39:23.199Z ✓ 57 [arm] › e2e/specs/prd-2026-007-create-reservation.spec.ts:126:6 › PRD-2026-007 — reservation creation (API semantics) › TC-ARM-206 double-booking the same physical room for the same window — pin actual behavior [Must 10/S-27 probe] (1.1s) 2026-10-16T11:39:23.263Z ✓ 59 [arm] › e2e/specs/prd-2026-007-noshow-cancel.spec.ts:95:6 › PRD-2026-007 — no-show per room › TC-ARM-106 API: no-show requires a reason (validation) [Must 4] (990ms) 2026-10-16T11:39:23.303Z ✓ 62 [arm] › e2e/specs/prd-2026-007-create-reservation.spec.ts:161:6 › PRD-2026-007 — reservation creation (API semantics) › TC-ARM-207 unknown roomTypeId → rejected [validation] (87ms) 2026-10-16T11:39:23.334Z - 64 [arm] › e2e/specs/prd-2026-007-create-reservation.spec.ts:179:6 › PRD-2026-007 — reservation creation (API semantics) › TC-ARM-208 booking-level add-ons at create are accepted and priced [Must 7 add-ons] 2026-10-16T11:39:23.371Z ✓ 56 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:111:6 › PRD-2026-007 — reservation-level rollup (G6/Must 8/NG4) › TC-ARM-263 cancelling one room updates totals consistently (recalc has run) [Must 5/G6] (1.9s) 2026-10-16T11:39:24.090Z ✓ 58 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:92:6 › PRD-2026-007 — Move/Swap lock › TC-ARM-142 API: lock survives an unrelated lifecycle op on a sibling room [lock persistence] (2.0s) 2026-10-16T11:39:25.252Z ✓ 66 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:127:6 › PRD-2026-007 — reservation-level rollup (G6/Must 8/NG4) › TC-ARM-264 cancellation charge lands at reservation level [NG4/S-23] (1.8s) 2026-10-16T11:39:25.260Z ✓ 60 [arm] › e2e/specs/prd-2026-007-partial-checkin.spec.ts:94:6 › PRD-2026-007 — partial check-in › TC-ARM-075 API: checking in a subset flips only those rooms [Must 3/S-08] (2.6s) 2026-10-16T11:39:25.266Z ✓ 65 [arm] › e2e/specs/prd-2026-007-create-reservation.spec.ts:200:6 › PRD-2026-007 — reservation creation (API semantics) › TC-ARM-209 per-room stay windows at create produce per-room card windows [Must 7] (1.9s) 2026-10-16T11:39:26.367Z ✓ 61 [arm] › e2e/specs/prd-2026-007-rbac-ux.spec.ts:102:6 › PRD-2026-007 — full-permission UI affordances (positive RBAC) › TC-ARM-304 partial check-in entry visible for an in-window UPCOMING booking [§10] (3.6s) 2026-10-16T11:39:26.712Z ✓ 68 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:142:6 › PRD-2026-007 — reservation-level rollup (G6/Must 8/NG4) › TC-ARM-265 intermediate room checkout leaves the other rooms' charges untouched [CR-3] (1.4s) 2026-10-16T11:39:26.955Z ✓ 63 [arm] › e2e/specs/prd-2026-007-noshow-cancel.spec.ts:104:6 › PRD-2026-007 — no-show per room › TC-ARM-107 UI: no-show entry absent for a CHECKED_IN-only booking [state gating] (3.6s) 2026-10-16T11:39:27.055Z ✓ 70 [arm] › e2e/specs/prd-2026-007-create-reservation.spec.ts:235:6 › PRD-2026-007 — reservation creation (API semantics) › TC-ARM-210 created booking releases its rooms again after cancel [inventory release/S-23] (1.8s) 2026-10-16T11:39:27.398Z ✓ 69 [arm] › e2e/specs/prd-2026-007-partial-checkin.spec.ts:108:6 › PRD-2026-007 — partial check-in › TC-ARM-076 API: untouched rooms keep null actualCheckInTime [audit integrity, §1] (2.1s) 2026-10-16T11:39:29.189Z ✓ 75 [arm] › e2e/specs/prd-2026-007-partial-checkin.spec.ts:120:6 › PRD-2026-007 — partial check-in › TC-ARM-077 API: arrival timestamp ≈ now on checked rooms [audit-true arrival] (1.8s) 2026-10-16T11:39:29.394Z ✓ 73 [arm] › e2e/specs/prd-2026-007-noshow-cancel.spec.ts:118:6 › PRD-2026-007 — cancellation per room › TC-ARM-111 API: cancel metadata persists (reason + amount) [Should-1] (2.4s) 2026-10-16T11:39:29.646Z ✓ 72 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:154:6 › PRD-2026-007 — reservation-level rollup (G6/Must 8/NG4) › TC-ARM-266 totals stable across a full staggered journey [G6 drift check] (2.9s) 2026-10-16T11:39:29.970Z ✘ 17 [chromium] › e2e/specs/prd-2026-012-pricing-rules-readiness.spec.ts:4:7 › PRD-2026-012 pricing rules production readiness › renders pricing controls and the non-mutating remove-cap path (32.7s) 2026-10-16T11:39:30.402Z ✓ 67 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:103:6 › PRD-2026-007 — Move/Swap lock › TC-ARM-143 UI: lock one room through the modal; reopening pre-selects it [lock/§6 modal] (6.2s) 2026-10-16T11:39:30.498Z ✓ 76 [arm] › e2e/specs/prd-2026-007-partial-checkin.spec.ts:131:6 › PRD-2026-007 — partial check-in › TC-ARM-078 API: explicit actualCheckInTime is honored [Must 3] (1.3s) 2026-10-16T11:39:30.597Z ✓ 74 [arm] › e2e/specs/prd-2026-007-create-reservation.spec.ts:249:6 › PRD-2026-007 — created reservations in the UI › TC-ARM-211 created booking appears in the reservations list with an Upcoming pill [§6.7] (3.4s) 2026-10-16T11:39:30.973Z ✓ 71 [arm] › e2e/specs/prd-2026-007-rbac-ux.spec.ts:111:6 › PRD-2026-007 — UX guarantees (§3, G5) › TC-ARM-305 room number, status color, type, plan and dates co-located — zero extra clicks [G5] (4.6s) 2026-10-16T11:39:31.756Z ✓ 78 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:169:6 › PRD-2026-007 — charges, discounts, payments, add-ons › TC-ARM-267 add a misc charge → total rises by amount (+tax) [charges] (2.1s) 2026-10-16T11:39:32.530Z ✓ 77 [arm] › e2e/specs/prd-2026-007-noshow-cancel.spec.ts:133:6 › PRD-2026-007 — cancellation per room › TC-ARM-112 API: all-rooms cancel lands parent CANCELLED [S-05] (3.1s) 2026-10-16T11:39:34.009Z ✓ 85 [arm] › e2e/specs/prd-2026-007-noshow-cancel.spec.ts:142:6 › PRD-2026-007 — cancellation per room › TC-ARM-113 API: cancelling a CHECKED_IN room is blocked with 409 [S-10/NG1] (1.5s) 2026-10-16T11:39:34.329Z ✓ 80 [arm] › e2e/specs/prd-2026-007-partial-checkin.spec.ts:141:6 › PRD-2026-007 — partial check-in › TC-ARM-079 staggered arrival journey: 2 then 2 — parent PARTIAL_CHECKED_IN then CHECKED_IN [S-03/S-04/§6.2] (3.8s) 2026-10-16T11:39:34.885Z ✓ 84 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:178:6 › PRD-2026-007 — charges, discounts, payments, add-ons › TC-ARM-268 charge scoped to a room instance still rolls up to the reservation [NG4] (3.1s) 2026-10-16T11:39:35.181Z ✓ 86 [arm] › e2e/specs/prd-2026-007-noshow-cancel.spec.ts:153:6 › PRD-2026-007 — cancellation per room › TC-ARM-114 API: CANCELLED is terminal — no later check-in [state machine] (1.1s) 2026-10-16T11:39:35.470Z ✓ 79 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:121:6 › PRD-2026-007 — Move/Swap lock › TC-ARM-144 UI: Continue stays disabled with no delta from initial state [LMS modal] (5.0s) 2026-10-16T11:39:35.615Z ✓ 82 [arm] › e2e/specs/prd-2026-007-rbac-ux.spec.ts:125:6 › PRD-2026-007 — UX guarantees (§3, G5) › TC-ARM-306 no-show flow is ≤3 interactions from booking details [§3 ≤3-click rule] (4.6s) 2026-10-16T11:39:35.692Z ✓ 81 [arm] › e2e/specs/prd-2026-007-create-reservation.spec.ts:258:6 › PRD-2026-007 — created reservations in the UI › TC-ARM-212 multi-room created booking opens with N room cards [§6.7/Must 7] (5.0s) 2026-10-16T11:39:35.877Z ✓ 87 [arm] › e2e/specs/prd-2026-007-partial-checkin.spec.ts:154:6 › PRD-2026-007 — partial check-in › TC-ARM-080 full-subset check-in (all rooms at once) lands parent CHECKED_IN [Must 3] (1.5s) 2026-10-16T11:39:35.975Z ✓ 88 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:190:6 › PRD-2026-007 — charges, discounts, payments, add-ons › TC-ARM-269 record a payment → due drops by the amount [payments] (1.0s) 2026-10-16T11:39:36.581Z ✓ 83 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:86:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-040 multi-room booking renders one card per room with number, type and dates [Must 7/S-02] (4.8s) 2026-10-16T11:39:38.003Z ✓ 94 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:200:6 › PRD-2026-007 — charges, discounts, payments, add-ons › TC-ARM-270 apply a flat discount → total drops accordingly [discounts] (2.0s) 2026-10-16T11:39:38.144Z ✓ 89 [arm] › e2e/specs/prd-2026-007-noshow-cancel.spec.ts:162:6 › PRD-2026-007 — cancellation per room › TC-ARM-115 API: cancel subset across two calls accumulates correctly [Must 12] (2.9s) 2026-10-16T11:39:38.843Z ✓ 93 [arm] › e2e/specs/prd-2026-007-partial-checkin.spec.ts:163:6 › PRD-2026-007 — partial check-in › TC-ARM-081 retried check-in call is rejected and does not double-apply [S-16/S-17] (3.0s) 2026-10-16T11:39:39.380Z ✓ 96 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:211:6 › PRD-2026-007 — charges, discounts, payments, add-ons › TC-ARM-271 zero/negative charge amount is rejected [validation] (1.4s) 2026-10-16T11:39:41.306Z ✓ 91 [arm] › e2e/specs/prd-2026-007-rbac-ux.spec.ts:145:6 › PRD-2026-007 — UX guarantees (§3, G5) › TC-ARM-307 state-machine violations surface as visible errors, not silent failures [S-19 family] (5.7s) 2026-10-16T11:39:41.733Z ✓ 99 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:218:6 › PRD-2026-007 — charges, discounts, payments, add-ons › TC-ARM-272 charges on a fully terminal (all-cancelled) booking are rejected or isolated [G6 dangling-entry guard] (2.3s) 2026-10-16T11:39:41.864Z ✓ 92 [arm] › e2e/specs/prd-2026-007-create-reservation.spec.ts:268:6 › PRD-2026-007 — created reservations in the UI › TC-ARM-213 details page total reflects rooms × nightly price [finance surface] (6.2s) 2026-10-16T11:39:42.174Z ✓ 95 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:97:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-041 UPCOMING card is blue; CHECKED_IN card is red [Must 2/G5] (5.6s) 2026-10-16T11:39:42.526Z ✓ 98 [arm] › e2e/specs/prd-2026-007-partial-checkin.spec.ts:179:6 › PRD-2026-007 — partial check-in › TC-ARM-082 one-by-one staggering over 5 rooms keeps every intermediate state exact [Must 12] (3.7s) 2026-10-16T11:39:42.684Z ✓ 101 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:245:6 › PRD-2026-007 — guest accounts (party) under room ops › TC-ARM-273 booking carries at least one default guest account [party model] (927ms) 2026-10-16T11:39:42.703Z ✓ 97 [arm] › e2e/specs/prd-2026-007-noshow-cancel.spec.ts:174:6 › PRD-2026-007 — cancellation per room › TC-ARM-116 UI: cancelled room card stays visible (grey), booking stays open [§6.4] (4.5s) 2026-10-16T11:39:43.438Z ✓ 90 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:128:6 › PRD-2026-007 — Move/Swap lock › TC-ARM-145 UI: CANCELLED/NO_SHOW rooms are not offered for locking [LMS eligibility] (7.9s) 2026-10-16T11:39:44.014Z ✓ 106 [arm] › e2e/specs/prd-2026-007-noshow-cancel.spec.ts:187:6 › PRD-2026-007 — scheduled cancel/no-show with withdraw window › TC-ARM-117 schedule-cancel stages the action and reports an expiry [staged ops] (1.3s) 2026-10-16T11:39:44.877Z ✓ 104 [arm] › e2e/specs/prd-2026-007-partial-checkin.spec.ts:192:6 › PRD-2026-007 — partial check-in › TC-ARM-083 check-in proceeds while a sibling room is NO_SHOW (terminal+progression mix) [CR-2] (2.3s) 2026-10-16T11:39:44.901Z ✓ 105 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:252:6 › PRD-2026-007 — guest accounts (party) under room ops › TC-ARM-274 guest-account balances reconcile with the finance read [party vs finance] (2.2s) 2026-10-16T11:39:45.398Z ✓ 108 [arm] › e2e/specs/prd-2026-007-noshow-cancel.spec.ts:199:6 › PRD-2026-007 — scheduled cancel/no-show with withdraw window › TC-ARM-118 GET scheduled-action reflects the staged op [staged ops] (1.4s) 2026-10-16T11:39:45.709Z ✓ 100 [arm] › e2e/specs/prd-2026-007-rbac-ux.spec.ts:168:6 › PRD-2026-007 — UX guarantees (§3, G5) › TC-ARM-308 happy-path journey emits no console errors and no 5xx [§6 quality gate] (4.4s) 2026-10-16T11:39:46.380Z - 103 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:108:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-042 CHECKED_IN room near/after its checkout time shows checkout-due yellow, then overdue orange [Must 2] 2026-10-16T11:39:47.715Z ✓ 107 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:141:6 › PRD-2026-007 — Move/Swap lock › TC-ARM-146 UI: terminal-only booking hides the Lock/Unlock entry entirely [LMS-003] (4.3s) 2026-10-16T11:39:49.529Z ✘ 110 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:265:6 › PRD-2026-007 — guest accounts (party) under room ops › TC-ARM-275 room checkout locks its guest account (isLocked=true) [party lock] (4.6s) 2026-10-16T11:39:51.090Z ✓ 109 [arm] › e2e/specs/prd-2026-007-partial-checkin.spec.ts:203:6 › PRD-2026-007 — partial check-in › TC-ARM-084 UI reflects partial state immediately after API check-in + reload [G5] (6.2s) 2026-10-16T11:39:51.225Z ✓ 115 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:281:6 › PRD-2026-007 — guest accounts (party) under room ops › TC-ARM-276 custom guest account: create on a room, then delete at zero balance [party CRUD] (1.7s) 2026-10-16T11:39:52.263Z ✓ 117 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:296:6 › PRD-2026-007 — balance-at-checkout gate (Must 14/16) › TC-ARM-277 room checkout with outstanding balance: gate behavior pinned [ship-blocker risk row] (1.0s) 2026-10-16T11:39:52.700Z ✓ 112 [arm] › e2e/specs/prd-2026-007-rbac-ux.spec.ts:188:6 › PRD-2026-007 — UX guarantees (§3, G5) › TC-ARM-309 reservations list status pills match the detail state for partial bookings [G5 consistency] (6.9s) 2026-10-16T11:39:52.700Z - 119 [arm] › e2e/specs/prd-2026-007-rbac-ux.spec.ts:212:6 › TC-ARM-310 restricted role: room check-in → 403 [S-09/Must 18] 2026-10-16T11:39:52.700Z - 120 [arm] › e2e/specs/prd-2026-007-rbac-ux.spec.ts:213:6 › TC-ARM-311 restricted role: cancel → 403 [S-09] 2026-10-16T11:39:52.701Z - 121 [arm] › e2e/specs/prd-2026-007-rbac-ux.spec.ts:214:6 › TC-ARM-312 restricted role: no-show → 403 [S-09] 2026-10-16T11:39:52.701Z - 122 [arm] › e2e/specs/prd-2026-007-rbac-ux.spec.ts:215:6 › TC-ARM-313 restricted role: lock-move-swap → 403 [Must 18] 2026-10-16T11:39:52.702Z - 123 [arm] › e2e/specs/prd-2026-007-rbac-ux.spec.ts:216:6 › TC-ARM-314 restricted role UI: lifecycle buttons absent/disabled [S-09] 2026-10-16T11:39:53.498Z ✓ 113 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:150:7 › PRD-2026-007 — room cards on Booking Details › TC-ARM-043 CANCELLED room card is grey and stays listed [Must 2] (7.1s) 2026-10-16T11:39:53.756Z ✓ 118 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:315:6 › PRD-2026-007 — balance-at-checkout gate (Must 14/16) › TC-ARM-278 settle then check out: succeeds and closes the room [Must 14] (1.4s) 2026-10-16T11:39:54.595Z - 124 [arm] › e2e/specs/prd-2026-007-rbac-ux.spec.ts:217:6 › TC-ARM-315 restricted role: checkout-with-balance strictly blocked [Must 16] 2026-10-16T11:39:55.328Z ✓ 116 [arm] › e2e/specs/prd-2026-007-partial-checkin.spec.ts:212:6 › PRD-2026-007 — partial check-in › TC-ARM-086 single-room booking has no partial check-in entry — plain Create check-in only [S-01 equivalence] (4.2s) 2026-10-16T11:39:55.552Z ✓ 114 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:152:6 › PRD-2026-007 — Move/Swap lock › TC-ARM-147 UI: mixed batch (lock A, unlock B) applies both directions in one Continue [LMS modal] (7.8s) 2026-10-16T11:39:58.140Z ✓ 129 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:171:6 › PRD-2026-007 — Move/Swap lock › TC-ARM-148 API: lock with a foreign roomInstanceId is rejected [tenancy] (2.6s) 2026-10-16T11:39:58.219Z ✓ 125 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:150:7 › PRD-2026-007 — room cards on Booking Details › TC-ARM-044 NO_SHOW room card is grey and stays listed [Must 2] (4.7s) 2026-10-16T11:39:58.243Z ✓ 126 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:332:6 › PRD-2026-007 — finance surfaces in the UI › TC-ARM-279 charges screen adds a charge that lands in the payment summary [charges UI] (4.3s) 2026-10-16T11:39:58.761Z ✓ 102 [arm] › e2e/specs/prd-2026-007-create-reservation.spec.ts:309:6 › PRD-2026-007 — create reservation panel (UI) › TC-ARM-216 UI create: availability cap blocks over-request up front [Must 10/S-27] (16.9s) 2026-10-16T11:39:58.783Z - 133 [arm] › e2e/specs/prd-2026-007-create-reservation.spec.ts:339:7 › PRD-2026-007 — create reservation panel (UI) › TC-ARM-217 UI create: error copy names the available count [S-27] 2026-10-16T11:39:59.147Z ✓ 127 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:74:6 › PRD-2026-007 — default slot guarantee (CR-1) › TC-ARM-170 new reservation is backed by exactly one slot grouping all rooms [CR-1/Must 13] (4.1s) 2026-10-16T11:39:59.497Z ✓ 130 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:185:6 › PRD-2026-007 — Move / Swap / Bulk-assign contract › TC-ARM-149 move/preview returns the price preview and changes nothing [Must 17] (1.3s) 2026-10-16T11:40:00.774Z ✓ 135 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:83:6 › PRD-2026-007 — default slot guarantee (CR-1) › TC-ARM-171 single-room booking also carries its default slot [S-01/CR-1] (1.6s) 2026-10-16T11:40:01.089Z ✓ 128 [arm] › e2e/specs/prd-2026-007-partial-checkin.spec.ts:222:6 › PRD-2026-007 — partial check-in › TC-ARM-088 navigating away from the wizard without confirming leaves rooms UPCOMING [S-18] (5.7s) 2026-10-16T11:40:01.360Z ✓ 136 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:200:6 › PRD-2026-007 — Move / Swap / Bulk-assign contract › TC-ARM-150 move commit puts the guest in the target room [Must 6] (1.8s) 2026-10-16T11:40:01.858Z ✓ 131 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:150:7 › PRD-2026-007 — room cards on Booking Details › TC-ARM-045 CHECKED_OUT room card is grey and stays listed [Must 2] (3.6s) 2026-10-16T11:40:01.902Z ✓ 134 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-001 all UPCOMING → UPCOMING [CR-2/S-02] (2.8s) 2026-10-16T11:40:02.782Z ✓ 132 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:341:6 › PRD-2026-007 — finance surfaces in the UI › TC-ARM-281 details payment summary reflects an added charge after reload [Must 8 UI] (4.5s) 2026-10-16T11:40:03.747Z ✓ 139 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:213:6 › PRD-2026-007 — Move / Swap / Bulk-assign contract › TC-ARM-151 swap/preview names both rooms and a zero price delta [Must 16] (2.4s) 2026-10-16T11:40:04.373Z ✓ 142 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:407:6 › PRD-2026-007 — folios, charge moves and ledger integrity › TC-ARM-282 folio list shows the booking folio; detail opens [folio] (1.6s) 2026-10-16T11:40:04.584Z ✓ 138 [arm] › e2e/specs/prd-2026-007-partial-checkin.spec.ts:234:6 › PRD-2026-007 — partial check-in › TC-ARM-089 fully-terminal booking offers no partial check-in entry [state gating] (3.4s) 2026-10-16T11:40:04.614Z ✓ 141 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-002 all CHECKED_IN → CHECKED_IN [CR-2/S-04] (2.7s) 2026-10-16T11:40:05.131Z ✓ 140 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:170:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-046 status legend lists Upcoming / Checked-In / Check-Out Due / Checked-Out [Should-2] (3.2s) 2026-10-16T11:40:05.877Z ✓ 137 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:90:6 › PRD-2026-007 — default slot guarantee (CR-1) › TC-ARM-172 lifecycle ops do not change the slot count — status lives on the room [CR-1] (5.1s) 2026-10-16T11:40:06.197Z ✓ 144 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:419:6 › PRD-2026-007 — folios, charge moves and ledger integrity › TC-ARM-283 link a charge to a folio; folio totals update [folio] (1.8s) 2026-10-16T11:40:06.277Z ✓ 146 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-003 all CHECKED_OUT → CHECKED_OUT (terminal close) [CR-2/CR-3] (1.6s) 2026-10-16T11:40:06.492Z ✓ 143 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:229:6 › PRD-2026-007 — Move / Swap / Bulk-assign contract › TC-ARM-152 swap commit exchanges the two rooms [Must 16/S-30] (2.7s) 2026-10-16T11:40:07.592Z ✓ 145 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:119:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-230 created booking appears as a block with the guest name [stay view] (2.7s) 2026-10-16T11:40:08.043Z ✓ 151 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:243:6 › PRD-2026-007 — Move / Swap / Bulk-assign contract › TC-ARM-153 bulk-assign is still a 422 stub [Must 10/S-27 — not built] (1.5s) 2026-10-16T11:40:08.073Z ✓ 153 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:252:6 › PRD-2026-007 — Move / Swap / Bulk-assign contract › TC-ARM-154 move and swap still enforce auth: unauthenticated move → 401 [Must 18] (14ms) 2026-10-16T11:40:08.228Z ✓ 147 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:181:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-047 single-room booking renders exactly one room card and no slot wording [S-01/CR-1] (3.1s) 2026-10-16T11:40:08.240Z ✓ 149 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:431:6 › PRD-2026-007 — folios, charge moves and ledger integrity › TC-ARM-284 unlink restores the unassigned pool [folio] (2.0s) 2026-10-16T11:40:08.635Z ✓ 150 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-004 all CANCELLED → CANCELLED [CR-2/S-05] (2.3s) 2026-10-16T11:40:09.600Z ✓ 148 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:100:6 › PRD-2026-007 — default slot guarantee (CR-1) › TC-ARM-173 mutation response slots[] carries window + roomCount and no name/status [CR-1/S-32] (3.7s) 2026-10-16T11:40:10.576Z ✓ 156 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:446:6 › PRD-2026-007 — folios, charge moves and ledger integrity › TC-ARM-285 folio totals reconcile with the finance read after a room cancel [G6] (2.3s) 2026-10-16T11:40:11.115Z ✓ 157 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-005 all NO_SHOW → NO_SHOW [CR-2] (2.5s) 2026-10-16T11:40:11.263Z ✓ 158 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:118:6 › PRD-2026-007 — default slot guarantee (CR-1) › TC-ARM-174 default slot window equals the reservation window [CR-1] (1.6s) 2026-10-16T11:40:11.730Z ✓ 155 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:192:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-048 per-room date range on the card matches the reservation window [Must 7] (3.5s) 2026-10-16T11:40:11.777Z ✓ 154 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:260:6 › PRD-2026-007 — Move / Swap / Bulk-assign contract › TC-ARM-155 UI: More actions offers only Lock/Unlock Room — Move and Swap live in the Room Details edit sheet [UX] (3.7s) 2026-10-16T11:40:11.794Z ✓ 152 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:125:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-231 multi-room booking renders one block per room row [stay view/slots] (4.2s) 2026-10-16T11:40:12.436Z ✓ 159 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:462:6 › PRD-2026-007 — folios, charge moves and ledger integrity › TC-ARM-286 move charges between guest accounts shifts balances, total unchanged [NG4] (1.8s) 2026-10-16T11:40:13.433Z ✓ 161 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:134:6 › PRD-2026-007 — multi-cycle via re-check-in (G7/OQ-6) › TC-ARM-175 re-check-in creates a NEW room instance; the source stays CHECKED_OUT [OQ-6] (2.2s) 2026-10-16T11:40:13.709Z ✓ 163 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:279:6 › PRD-2026-007 — Move / Swap behaviour › TC-ARM-156 move shows Current → New → Price diff before confirm [S-28] (1.9s) 2026-10-16T11:40:13.990Z ✓ 160 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-006 1 CHECKED_IN + 2 UPCOMING → PARTIAL_CHECKED_IN [CR-2/S-03] (2.9s) 2026-10-16T11:40:14.696Z ✓ 164 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:132:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-232 UPCOMING reservation block is purple family [stay view colors] (2.9s) 2026-10-16T11:40:15.887Z ✘ 165 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:480:6 › PRD-2026-007 — folios, charge moves and ledger integrity › TC-ARM-287 locked (checked-out) account rejects charge moves [party lock] (3.4s) 2026-10-16T11:40:16.274Z ✓ 166 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:145:6 › PRD-2026-007 — multi-cycle via re-check-in (G7/OQ-6) › TC-ARM-176 after re-check-in the booking has two slots with distinct windows [G7/S-31] (2.8s) 2026-10-16T11:40:17.011Z ✘ 167 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:305:6 › PRD-2026-007 — Move / Swap behaviour › TC-ARM-157 move sets isDirty on the vacated room and recalculates finance [Must 6/S-26] (3.3s) 2026-10-16T11:40:17.916Z ✓ 169 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:138:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-233 CHECKED_IN room block is red family [stay view colors] (3.2s) 2026-10-16T11:40:19.287Z ✓ 170 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:497:6 › PRD-2026-007 — folios, charge moves and ledger integrity › TC-ARM-288 discount scoped to a guest account [discounts] (3.4s) 2026-10-16T11:40:19.529Z ✓ 168 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-007 4 CHECKED_IN + 1 UPCOMING → PARTIAL_CHECKED_IN [CR-2] (5.5s) 2026-10-16T11:40:20.117Z ✓ 171 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:159:6 › PRD-2026-007 — multi-cycle via re-check-in (G7/OQ-6) › TC-ARM-177 reservation does NOT close after cycle-1 checkout while cycle 2 exists [CR-3/S-31] (3.8s) 2026-10-16T11:40:20.991Z ✓ 162 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:211:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-050 >6-room booking collapses with an expand control that reveals all rooms [S-13] (9.2s) 2026-10-16T11:40:21.472Z ✓ 173 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:146:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-234 CHECKED_OUT room block is grey family [stay view colors] (3.5s) 2026-10-16T11:40:22.099Z ✓ 174 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:511:6 › PRD-2026-007 — folios, charge moves and ledger integrity › TC-ARM-289 payment distribution strategies (EQUAL/SINGLE/MANUAL) [payments] (2.8s) 2026-10-16T11:40:22.625Z ✓ 175 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-008 1 CHECKED_OUT + 1 CHECKED_IN → PARTIALLY_CHECKED_OUT (stays open) [CR-2/CR-3/S-31] (3.1s) 2026-10-16T11:40:23.330Z ✓ 172 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:323:6 › PRD-2026-007 — Move / Swap behaviour › TC-ARM-158 swap exchanges two occupied rooms bidirectionally, across bookings too [S-30] (6.3s) 2026-10-16T11:40:23.349Z - 181 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:339:6 › PRD-2026-007 — Move / Swap behaviour › TC-ARM-159 swap moves room add-ons with each room [Must 16] 2026-10-16T11:40:23.350Z - 182 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:345:7 › PRD-2026-007 — Move / Swap behaviour › TC-ARM-160 bulk auto-allocate fills by room type without over-allocating [Must 10] — not built: bulk-assign is still a 422 stub 2026-10-16T11:40:23.350Z - 183 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:346:7 › PRD-2026-007 — Move / Swap behaviour › TC-ARM-161 bulk assignment blocks requests beyond availability up front [S-27] — not built: bulk-assign is still a 422 stub 2026-10-16T11:40:23.827Z ✓ 176 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:168:6 › PRD-2026-007 — multi-cycle via re-check-in (G7/OQ-6) › TC-ARM-178 cycle 2 check-in → PARTIALLY_CHECKED_OUT; final checkout closes the reservation [CR-3] (3.7s) 2026-10-16T11:40:24.239Z ✘ 14 [chromium] › e2e/specs/prd-2026-005-supplementary-docs.spec.ts:48:6 › PRD-2026-005 — Supplementary documents › TC-PRD-054 Refund Voucher generates 201 + sequential RV number (1.5m) 2026-10-16T11:40:28.543Z ✓ 180 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-009 UPCOMING + CHECKED_OUT (no CHECKED_IN) → VARIED_STATUS [CR-2 else-branch] (5.9s) 2026-10-16T11:40:29.289Z ✓ 179 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:545:6 › PRD-2026-007 — folios, charge moves and ledger integrity › TC-ARM-290 invoice generation still reservation-scoped after partial ops [NG4/PRD-2026-005 seam] (7.2s) 2026-10-16T11:40:29.645Z ✓ 178 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:162:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-235 partial state renders mixed blocks: one red, one purple, same reservation [Must 2/slots] (8.2s) 2026-10-16T11:40:29.836Z ✓ 177 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:225:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-051 mixed-state booking shows the full mix inline — zero extra clicks [G5/S-03] (8.8s) 2026-10-16T11:40:30.496Z ✓ 184 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:348:6 › PRD-2026-007 — Move / Swap behaviour › TC-ARM-162 a Move/Swap-locked room cannot be moved; unlocking allows it [lock semantics] (7.1s) 2026-10-16T11:40:33.075Z ✓ 185 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:178:6 › PRD-2026-007 — multi-cycle via re-check-in (G7/OQ-6) › TC-ARM-179 re-check-in is rejected while the source room is not CHECKED_OUT [OQ-6 guard] (9.2s) 2026-10-16T11:40:38.488Z ✓ 189 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:241:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-052 card shows the per-night price [Must 7] (8.6s) 2026-10-16T11:40:38.687Z ✓ 186 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-010 UPCOMING + CHECKED_IN + CHECKED_OUT → VARIED_STATUS [CR-2 else-branch] (10.1s) 2026-10-16T11:40:39.456Z ✘ 191 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:190:6 › PRD-2026-007 — multi-cycle via re-check-in (G7/OQ-6) › TC-ARM-180 re-check-in into a different physical room via targetRoomId [G7] (6.4s) 2026-10-16T11:40:40.496Z ✓ 190 [arm] › e2e/specs/prd-2026-007-lock-move-swap.spec.ts:367:6 › PRD-2026-007 — Move / Swap behaviour › TC-ARM-163 swap respects Move/Swap locks on either side [lock semantics] (10.0s) 2026-10-16T11:40:40.518Z ✓ 188 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:175:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-236 cancelled room frees its row — block no longer rendered [inventory release] (10.9s) 2026-10-16T11:40:42.066Z ✓ 192 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:252:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-053 card shows a meal-plan label [Must 7] (3.6s) 2026-10-16T11:40:47.990Z ✓ 193 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-011 CANCELLED + UPCOMING → UPCOMING (collapse; deviates from PRD §6.4 prose) [CR-2 collapse/S-23] (9.3s) 2026-10-16T11:40:50.440Z ✓ 194 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:211:6 › PRD-2026-007 — multi-cycle via re-check-in (G7/OQ-6) › TC-ARM-181 multi-room re-check-in (2 rooms into the new cycle) [G7] (11.0s) 2026-10-16T11:40:51.465Z ✓ 197 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-012 NO_SHOW + UPCOMING → UPCOMING (collapse) [CR-2 collapse/S-11] (3.5s) 2026-10-16T11:40:51.790Z ✓ 111 [arm] › e2e/specs/prd-2026-007-noshow-cancel.spec.ts:211:6 › PRD-2026-007 — scheduled cancel/no-show with withdraw window › TC-ARM-119 withdraw-scheduled aborts the staged action [staged ops] (1.1m) 2026-10-16T11:40:52.138Z ✓ 195 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:184:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-237 no-show room frees its row likewise [inventory release] (11.6s) 2026-10-16T11:40:52.395Z ✓ 196 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:260:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-054 parent status chip reflects CR-2 for a mixed set [CR-2/Must 12] (10.3s) 2026-10-16T11:40:53.772Z ✓ 199 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-013 CANCELLED + CHECKED_IN → CHECKED_IN (collapse) [CR-2 collapse] (2.3s) 2026-10-16T11:40:55.361Z ✓ 198 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:221:6 › PRD-2026-007 — multi-cycle via re-check-in (G7/OQ-6) › TC-ARM-182 §6.8 story: 1→10 window run as two cycles in ONE reservation, zero re-creation [G7/S-31] (4.9s) 2026-10-16T11:40:55.381Z ✓ 203 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-014 NO_SHOW + CHECKED_IN → CHECKED_IN (collapse) [CR-2 collapse] (1.6s) 2026-10-16T11:40:56.369Z ✓ 202 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:272:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-055 card count equals live RoomInstance count after a cancel [consistency] (4.0s) 2026-10-16T11:40:56.566Z ✓ 205 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-015 CANCELLED + CHECKED_OUT → CHECKED_OUT (collapse) [CR-2 collapse] (1.2s) 2026-10-16T11:40:56.675Z ✓ 187 [arm] › e2e/specs/prd-2026-007-finance.spec.ts:571:6 › PRD-2026-007 — folios, charge moves and ledger integrity › TC-ARM-291 ledger entries balanced after the full §6.2 journey (no dangling entry) [G6] (11.1s) 2026-10-16T11:40:56.683Z ✓ 204 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:258:6 › PRD-2026-007 — multi-cycle via re-check-in (G7/OQ-6) › TC-ARM-183 slot windows of sequential cycles do not overlap [data sanity] (1.3s) 2026-10-16T11:40:57.833Z ✓ 208 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:266:6 › PRD-2026-007 — multi-cycle via re-check-in (G7/OQ-6) › TC-ARM-184 slots in mutation response agree with slotIds on the read [consistency] (1.1s) 2026-10-16T11:40:57.835Z ✓ 207 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-016 CANCELLED + NO_SHOW (mixed terminals only) → VARIED_STATUS [CR-2 else/S-07] (1.3s) 2026-10-16T11:40:59.105Z ✓ 206 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:284:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-057 payment summary is reservation-level on the details page [NG4/Must 8] (2.7s) 2026-10-16T11:40:59.355Z ✓ 210 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-017 CANCELLED + NO_SHOW + CHECKED_OUT → CHECKED_OUT (single progression state collapses) [CR-2 collapse/S-07] (1.5s) 2026-10-16T11:41:00.831Z ✓ 212 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-018 CANCELLED + UPCOMING + CHECKED_IN → PARTIAL_CHECKED_IN (terminal ignored) [CR-2] (1.5s) 2026-10-16T11:41:02.059Z ✓ 213 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-019 NO_SHOW + CHECKED_IN + CHECKED_OUT → PARTIALLY_CHECKED_OUT (terminal ignored) [CR-2] (1.2s) 2026-10-16T11:41:02.635Z ✓ 211 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:293:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-058 details reflect fresh API state after reload (no stale card status) [G5] (3.5s) 2026-10-16T11:41:02.843Z ✓ 214 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-020 single room: created → UPCOMING (zero-regression) [S-01/Must 9] (770ms) 2026-10-16T11:41:03.666Z ✓ 216 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-021 single room: check-in → CHECKED_IN [S-01/Must 9] (805ms) 2026-10-16T11:41:04.411Z ✓ 217 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-022 single room: checkout → CHECKED_OUT (closed) [S-01/CR-3] (728ms) 2026-10-16T11:41:05.009Z ✓ 215 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:305:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-060 no console errors or 5xx network responses on the details page [quality gate] (2.4s) 2026-10-16T11:41:05.276Z ✓ 218 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-023 single room: cancel → CANCELLED [S-23] (853ms) 2026-10-16T11:41:05.337Z ✘ 201 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:214:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-238 multi-cycle reservation renders one block PER SLOT with a gap between cycles [G7/slots — the slot-correctness check] (13.2s) 2026-10-16T11:41:06.247Z ✓ 220 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-024 single room: no-show → NO_SHOW [S-22] (957ms) 2026-10-16T11:41:07.745Z ✓ 219 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:320:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-061 cancelled-room reason is not silently lost (API carries reason; UI shows terminal state) [Should-1] (2.7s) 2026-10-16T11:41:07.818Z ✓ 222 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:143:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-025 5-room staggered full journey lands CHECKED_OUT [G2/G3] (1.6s) 2026-10-16T11:41:08.970Z ✓ 224 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:151:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-026 cannot CANCEL a CHECKED_IN room (NG1) [S-10/NG1] (1.1s) 2026-10-16T11:41:10.001Z ✓ 225 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:151:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-027 cannot NO_SHOW a CHECKED_IN room [state machine] (1.0s) 2026-10-16T11:41:10.199Z ✘ 209 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:273:6 › PRD-2026-007 — multi-cycle via re-check-in (G7/OQ-6) › TC-ARM-185 UI: booking details after re-check-in shows the cycle-2 room card with its own window [Must 7/G5] (12.3s) 2026-10-16T11:41:10.550Z ✓ 223 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:330:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-062 room-card layout holds at 1280×720 (chip not clipped) [UX] (2.8s) 2026-10-16T11:41:12.205Z ✓ 226 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:151:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-028 cannot CHECK_OUT an UPCOMING room [state machine] (2.2s) 2026-10-16T11:41:12.419Z ✓ 227 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:285:6 › PRD-2026-007 — multi-cycle via re-check-in (G7/OQ-6) › TC-ARM-186 re-check-in on a closed (all-CHECKED_OUT) reservation re-opens operability [G7] (2.2s) 2026-10-16T11:41:13.375Z ✓ 229 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:151:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-029 cannot CHECK_IN a CANCELLED room [state machine] (1.2s) 2026-10-16T11:41:14.569Z ✓ 231 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:151:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-030 cannot CHECK_IN a NO_SHOW room (late guest ⇒ new reservation) [S-22] (1.2s) 2026-10-16T11:41:15.473Z ✓ 230 [arm] › e2e/specs/prd-2026-007-slots-multicycle.spec.ts:305:6 › PRD-2026-007 — multi-cycle via re-check-in (G7/OQ-6) › TC-ARM-187 legacy pre-ARM booking reads back with a backfilled slot [S-21 migration] (81ms) 2026-10-16T11:41:15.890Z ✓ 232 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:151:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-031 cannot CHECK_IN an already CHECKED_OUT room [CR-3 terminal] (1.3s) 2026-10-16T11:41:17.071Z ✓ 233 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:151:7 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-032 batch is all-or-nothing: one ineligible room rejects the whole call [room-lifecycle.guards assertBatch] (1.2s) 2026-10-16T11:41:17.624Z ✘ 221 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:226:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-239 cycle-2 block sits on its own dates (not stretched across the gap) [slots] (12.3s) 2026-10-16T11:41:17.830Z ✓ 234 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:168:6 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-033 double check-in of the same room: second call rejected, state stable [S-16/S-17] (747ms) 2026-10-16T11:41:18.778Z ✓ 236 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:185:6 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-034 check-in with empty roomInstanceIds → validation error, no mutation (936ms) 2026-10-16T11:41:19.266Z ✓ 228 [arm] › e2e/specs/prd-2026-007-room-cards.spec.ts:345:6 › PRD-2026-007 — room cards on Booking Details › TC-ARM-063 NO_SHOW + UPCOMING mix: parent collapses to UPCOMING in UI too [CR-2 collapse] (3.1s) 2026-10-16T11:41:20.199Z ✓ 235 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:246:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-240 block context menu offers status-appropriate actions [stay view menu] (2.6s) 2026-10-16T11:41:20.262Z ✓ 237 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:193:6 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-035 check-in with a foreign roomInstanceId → 4xx, foreign booking untouched (1.5s) 2026-10-16T11:41:22.051Z ✓ 239 [arm] › e2e/specs/prd-2026-007-status-aggregation.spec.ts:202:6 › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-036 parent status persists correctly after EVERY step of a staggered journey [CR-2] (1.8s) 2026-10-16T11:41:23.141Z ✓ 238 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:257:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-241 block menu navigates to the booking details of that checkin [stay view → details] (2.9s) 2026-10-16T11:41:26.403Z ✓ 240 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:266:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-242 stay view reflects a mutation after reload (no stale grid) [freshness] (3.2s) 2026-10-16T11:41:28.360Z ✓ 241 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:275:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-243 every clean inventory room has a row in the grid [stay view completeness] (1.9s) 2026-10-16T11:41:30.845Z ✓ 242 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:283:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-244 two back-to-back bookings on one room render side by side without overlap [slot boundaries] (2.5s) 2026-10-16T11:41:32.681Z ✓ 243 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:297:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-245 stay view loads without console errors or 5xx [quality gate] (1.8s) 2026-10-16T11:41:34.782Z ✓ 244 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:309:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-246 stay view interactive within 3s on a warm server [soft perf, logged] (2.1s) 2026-10-16T11:41:39.641Z ✓ 245 [arm] › e2e/specs/prd-2026-007-stay-view.spec.ts:318:6 › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-247 maintenance blocks render alongside ARM blocks [regression smoke] (2.3s) 2026-10-16T11:41:54.171Z ✓ 200 [arm] › e2e/specs/prd-2026-007-noshow-cancel.spec.ts:224:6 › PRD-2026-007 — scheduled cancel/no-show with withdraw window › TC-ARM-120 staged no-show executes after the window elapses [staged ops] (1.0m) 2026-10-16T11:41:54.843Z ✓ 246 [arm] › e2e/specs/prd-2026-007-noshow-cancel.spec.ts:238:6 › PRD-2026-007 — scheduled cancel/no-show with withdraw window › TC-ARM-121 concurrent cancel + check-in race resolves to exactly one winner [S-19] (657ms) 2026-10-16T11:41:57.301Z ✓ 247 [arm] › e2e/specs/prd-2026-007-noshow-cancel.spec.ts:253:6 › PRD-2026-007 — scheduled cancel/no-show with withdraw window › TC-ARM-122 two parallel identical cancels: one wins, one 409s, state single-applied [S-20] (736ms) 2026-10-16T11:41:57.356Z 1) [chromium] › e2e/specs/prd-2026-005-active-template.spec.ts:61:6 › PRD-2026-005 — Active custom template wins › TC-PRD-093 template with empty image schemas still renders (no SOI crash) 2026-10-16T11:41:57.357Z Error: expect(received).toBe(expected) // Object.is equality 2026-10-16T11:41:57.357Z Expected: true 2026-10-16T11:41:57.357Z Received: false 2026-10-16T11:41:57.357Z 135 | }, 2026-10-16T11:41:57.357Z 136 | ); 2026-10-16T11:41:57.357Z > 137 | expect(created.ok()).toBe(true); 2026-10-16T11:41:57.357Z | ^ 2026-10-16T11:41:57.357Z 138 | const createdBody = (await created.json()) as { id: string }; 2026-10-16T11:41:57.357Z 139 | 2026-10-16T11:41:57.357Z 140 | const beforeResp = await authedPage.request.get( 2026-10-16T11:41:57.357Z at /home/ubuntu/regression-runner/repos/stage/hotel-frontend-core/e2e/specs/prd-2026-005-active-template.spec.ts:137:24 2026-10-16T11:41:57.357Z attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── 2026-10-16T11:41:57.357Z test-results/prd-2026-005-active-templa-d3179-still-renders-no-SOI-crash--chromium/test-failed-1.png 2026-10-16T11:41:57.357Z ──────────────────────────────────────────────────────────────────────────────────────────────── 2026-10-16T11:41:57.357Z Error Context: test-results/prd-2026-005-active-templa-d3179-still-renders-no-SOI-crash--chromium/error-context.md 2026-10-16T11:41:57.357Z Error Context: test-results/prd-2026-005-active-templa-d3179-still-renders-no-SOI-crash--chromium/error-context.md 2026-10-16T11:41:57.357Z attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── 2026-10-16T11:41:57.357Z test-results/prd-2026-005-active-templa-d3179-still-renders-no-SOI-crash--chromium/trace.zip 2026-10-16T11:41:57.357Z Usage: 2026-10-16T11:41:57.357Z pnpm exec playwright show-trace test-results/prd-2026-005-active-templa-d3179-still-renders-no-SOI-crash--chromium/trace.zip 2026-10-16T11:41:57.357Z ──────────────────────────────────────────────────────────────────────────────────────────────── 2026-10-16T11:41:57.357Z 2) [chromium] › e2e/specs/prd-2026-005-supplementary-docs.spec.ts:48:6 › PRD-2026-005 — Supplementary documents › TC-PRD-054 Refund Voucher generates 201 + sequential RV number 2026-10-16T11:41:57.357Z Test timeout of 90000ms exceeded. 2026-10-16T11:41:57.358Z Error: locator.click: Test timeout of 90000ms exceeded. 2026-10-16T11:41:57.358Z Call log: 2026-10-16T11:41:57.358Z  - waiting for getByTestId('invoice-generate-refund-voucher') 2026-10-16T11:41:57.358Z 56 | }); 2026-10-16T11:41:57.358Z 57 | await authedPage.getByTestId('invoice-generate-button').click(); 2026-10-16T11:41:57.358Z > 58 | await authedPage.getByTestId('invoice-generate-refund-voucher').click(); 2026-10-16T11:41:57.358Z | ^ 2026-10-16T11:41:57.358Z 59 | await authedPage.locator('#rv-amount').fill('100'); 2026-10-16T11:41:57.358Z 60 | const [response] = await Promise.all([ 2026-10-16T11:41:57.358Z 61 | authedPage.waitForResponse( 2026-10-16T11:41:57.358Z at /home/ubuntu/regression-runner/repos/stage/hotel-frontend-core/e2e/specs/prd-2026-005-supplementary-docs.spec.ts:58:67 2026-10-16T11:41:57.358Z attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── 2026-10-16T11:41:57.358Z test-results/prd-2026-005-supplementary-2dc2f-es-201-sequential-RV-number-chromium/test-failed-1.png 2026-10-16T11:41:57.358Z ──────────────────────────────────────────────────────────────────────────────────────────────── 2026-10-16T11:41:57.358Z Error Context: test-results/prd-2026-005-supplementary-2dc2f-es-201-sequential-RV-number-chromium/error-context.md 2026-10-16T11:41:57.358Z Error Context: test-results/prd-2026-005-supplementary-2dc2f-es-201-sequential-RV-number-chromium/error-context.md 2026-10-16T11:41:57.358Z attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── 2026-10-16T11:41:57.358Z test-results/prd-2026-005-supplementary-2dc2f-es-201-sequential-RV-number-chromium/trace.zip 2026-10-16T11:41:57.358Z Usage: 2026-10-16T11:41:57.358Z pnpm exec playwright show-trace test-results/prd-2026-005-supplementary-2dc2f-es-201-sequential-RV-number-chromium/trace.zip 2026-10-16T11:41:57.358Z ──────────────────────────────────────────────────────────────────────────────────────────────── 2026-10-16T11:41:57.358Z 3) [chromium] › e2e/specs/prd-2026-012-pricing-rules-readiness.spec.ts:4:7 › PRD-2026-012 pricing rules production readiness › renders pricing controls and the non-mutating remove-cap path 2026-10-16T11:41:57.358Z Error: expect(locator).toBeVisible() failed 2026-10-16T11:41:57.358Z Locator: getByRole('button', { name: 'Pricing Rules', exact: true }) 2026-10-16T11:41:57.358Z Expected: visible 2026-10-16T11:41:57.358Z Timeout: 30000ms 2026-10-16T11:41:57.359Z Error: element(s) not found 2026-10-16T11:41:57.359Z Call log: 2026-10-16T11:41:57.359Z  - Expect "toBeVisible" with timeout 30000ms 2026-10-16T11:41:57.359Z  - waiting for getByRole('button', { name: 'Pricing Rules', exact: true }) 2026-10-16T11:41:57.359Z 12 | await expect( 2026-10-16T11:41:57.359Z 13 | authedPage.getByRole('button', { name: 'Pricing Rules', exact: true }), 2026-10-16T11:41:57.359Z > 14 | ).toBeVisible({ timeout: 30_000 }); 2026-10-16T11:41:57.359Z | ^ 2026-10-16T11:41:57.359Z 15 | 2026-10-16T11:41:57.359Z 16 | await authedPage.getByRole('button', { name: 'Actions', exact: true }).click(); 2026-10-16T11:41:57.359Z 17 | await authedPage.getByRole('menuitem', { name: 'Rates & inventory' }).click(); 2026-10-16T11:41:57.359Z at /home/ubuntu/regression-runner/repos/stage/hotel-frontend-core/e2e/specs/prd-2026-012-pricing-rules-readiness.spec.ts:14:7 2026-10-16T11:41:57.359Z attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── 2026-10-16T11:41:57.359Z test-results/prd-2026-012-pricing-rules-fb7b5-on-mutating-remove-cap-path-chromium/test-failed-1.png 2026-10-16T11:41:57.359Z ──────────────────────────────────────────────────────────────────────────────────────────────── 2026-10-16T11:41:57.359Z Error Context: test-results/prd-2026-012-pricing-rules-fb7b5-on-mutating-remove-cap-path-chromium/error-context.md 2026-10-16T11:41:57.359Z attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── 2026-10-16T11:41:57.359Z test-results/prd-2026-012-pricing-rules-fb7b5-on-mutating-remove-cap-path-chromium/trace.zip 2026-10-16T11:41:57.359Z Usage: 2026-10-16T11:41:57.359Z pnpm exec playwright show-trace test-results/prd-2026-012-pricing-rules-fb7b5-on-mutating-remove-cap-path-chromium/trace.zip 2026-10-16T11:41:57.359Z ──────────────────────────────────────────────────────────────────────────────────────────────── 2026-10-16T11:41:57.359Z 3 failed 2026-10-16T11:41:57.359Z [chromium] › e2e/specs/prd-2026-005-active-template.spec.ts:61:6 › PRD-2026-005 — Active custom template wins › TC-PRD-093 template with empty image schemas still renders (no SOI crash) 2026-10-16T11:41:57.359Z [chromium] › e2e/specs/prd-2026-005-supplementary-docs.spec.ts:48:6 › PRD-2026-005 — Supplementary documents › TC-PRD-054 Refund Voucher generates 201 + sequential RV number 2026-10-16T11:41:57.359Z [chromium] › e2e/specs/prd-2026-012-pricing-rules-readiness.spec.ts:4:7 › PRD-2026-012 pricing rules production readiness › renders pricing controls and the non-mutating remove-cap path 2026-10-16T11:41:57.359Z 12 skipped 2026-10-16T11:41:57.359Z 232 passed (3.5m) 2026-10-16T11:41:57.669Z  ELIFECYCLE  Command failed with exit code 1. 2026-10-16T11:41:57.692Z -> exit 1 2026-10-16T11:41:57.745Z slack: 202 2026-10-16T11:41:58.836Z github status hotel-backend-core@a8ca94b65: 201 2026-10-16T11:41:59.292Z github status hotel-frontend-core@4acca3f54: 422