{"id":"202610160504-1428","env":"stage","branch":"stage","suite":"full","mode":"parallel","workers":8,"kind":"test","trigger":"manual","requestedBy":"U08HZDHJ35E","githubLogin":null,"waitFor":null,"sweepHours":null,"status":"failed","createdAt":"2026-10-16T05:04:05.252Z","updatedAt":"2026-10-16T05:10:51.360Z","commits":{"hotel-backend-core":"942b12070ff5cd3580c842fdcbb7062480c5ff37","hotel-frontend-core":"89986c7af7f60c301bd73dd45f6785148c95b641"},"tested":{"hotel-backend-core":"942b12070ff5cd3580c842fdcbb7062480c5ff37","hotel-frontend-core":"89986c7af7f60c301bd73dd45f6785148c95b641"},"prepare":["✓ E2E Hotel 01 (2ada23e1-4c1e-4ec9-909d-d31945728a5e): test user has access","✓ E2E Hotel 02 (7ea986de-cbe0-47e5-a3ba-78d8ff9a9a8a): test user has access","✓ E2E Hotel 03 (42d19440-fc22-4b19-9b99-2d91edc96d5b): test user has access","✓ E2E Hotel 04 (4f5eaff5-08c7-43c8-b225-815924c73049): test user has access","✓ E2E Hotel 05 (691e5e40-b42f-4fb1-a97a-70db2d1089f3): test user has access","✓ E2E Hotel 06 (b4efab29-34cd-43d8-8da4-862ddcffb9cd): test user has access","✓ E2E Hotel 07 (194dadb0-5436-4b4e-8de8-a6d04df90597): test user has access","✓ E2E Hotel 08 (689cbadd-593b-460a-badf-162608435ed8): test user has access"],"results":{"hotel-backend-core":{"total":3,"passed":3,"failed":0,"skipped":0,"flaky":0,"failures":[],"warnings":[],"fixedKnownBugs":[],"durationMs":3072.0409999999997,"exitCode":0},"hotel-frontend-core":{"total":320,"passed":80,"failed":176,"skipped":64,"flaky":0,"failures":["hfe-food-item-search-all-category.spec.ts › AC-1: All tab is selected by default [AC-1] › [TC-HFE-001] All tab is selected and shows all items on first render (desktop)","hfe-food-item-search-all-category.spec.ts › AC-1: All tab is selected by default [AC-1] › [TC-HFE-002] All tab shows loading state when categories have not yet resolved","hfe-food-item-search-all-category.spec.ts › AC-1: All tab is selected by default [AC-1] › [TC-HFE-003] All tab default when kitchen has exactly one category","hfe-food-item-search-all-category.spec.ts › AC-2: Search on All tab returns cross-category results [AC-2] › [TC-HFE-004] Search on All tab returns flat results across every category","hfe-food-item-search-all-category.spec.ts › AC-2: Search on All tab returns cross-category results [AC-2] › [TC-HFE-005] Search on All tab with itemCode (weight-1 field) returns match","hfe-food-item-search-all-category.spec.ts › AC-2: Search on All tab returns cross-category results [AC-2] › [TC-HFE-006] Clearing search restores grouped-by-category layout on All tab","hfe-food-item-search-all-category.spec.ts › AC-3: Scope toggle chip behaviour [AC-3] › [TC-HFE-007] Search on specific category shows cross-category results by default","hfe-food-item-search-all-category.spec.ts › AC-3: Scope toggle chip behaviour [AC-3] › [TC-HFE-008] Clicking toggle chip scopes search to current category only","hfe-food-item-search-all-category.spec.ts › AC-3: Scope toggle chip behaviour [AC-3] › [TC-HFE-009] Toggle chip is NOT visible when search field is empty on a specific category tab","hfe-food-item-search-all-category.spec.ts › AC-3: Scope toggle chip behaviour [AC-3] › [TC-HFE-010] Switching category tab resets search scope to cross-category","hfe-food-item-search-all-category.spec.ts › AC-4: allItemsDeduped — no duplicates in All tab [AC-4] › [TC-HFE-011] Item assigned to multiple categories appears exactly once on All tab (no search)","hfe-food-item-search-all-category.spec.ts › AC-4: allItemsDeduped — no duplicates in All tab [AC-4] › [TC-HFE-012] Item assigned to multiple categories appears exactly once in All-tab search results","hfe-food-item-search-all-category.spec.ts › AC-5: FoodItemEmptyState on no results [AC-5] › [TC-HFE-014] FoodItemEmptyState renders when All-tab search returns no results","hfe-food-item-search-all-category.spec.ts › AC-5: FoodItemEmptyState on no results [AC-5] › [TC-HFE-015] FoodItemEmptyState renders when specific-category search returns no results","hfe-food-item-search-all-category.spec.ts › AC-5: FoodItemEmptyState on no results [AC-5] › [TC-HFE-016] Empty state uses size='lg' (320px image) not 'sm' in full-grid context","hfe-food-item-search-all-category.spec.ts › AC-6: Empty categories show inline empty state [AC-6] › [TC-HFE-017] Empty category shows inline empty state in All-tab grouped view","hfe-food-item-search-all-category.spec.ts › AC-6: Empty categories show inline empty state [AC-6] › [TC-HFE-018] Clicking empty category tab in sidebar shows FoodItemEmptyState","hfe-food-item-search-all-category.spec.ts › AC-6: Empty categories show inline empty state [AC-6] › [TC-HFE-019] Empty category still renders its heading — old isEmpty guard removed","hfe-food-item-search-all-category.spec.ts › AC-7: All tab is first and unique in sidebar [AC-7] › [TC-HFE-020] All tab is first (topmost) item in sidebar on kitchen with many categories","hfe-food-item-search-all-category.spec.ts › AC-7: All tab is first and unique in sidebar [AC-7] › [TC-HFE-021] All tab is never rendered more than once even with multiple categories","hfe-food-item-search-all-category.spec.ts › Regression: existing behaviours unaffected by feature merge › [TC-HFE-029] Existing category-tab item display unaffected after feature merge","hfe-food-item-search-all-category.spec.ts › Regression: existing behaviours unaffected by feature merge › [TC-HFE-030] SelectOptionModal still opens when item with options is clicked","hfe-food-item-search-all-category.spec.ts › Regression: existing behaviours unaffected by feature merge › [TC-HFE-031] Mobile OrderSummary search returns flat cross-category results (no duplication)","hfe-food-item-search-all-category.spec.ts › Regression: existing behaviours unaffected by feature merge › [TC-HFE-032] Mobile empty state renders on no search results in OrderSummary","hfe-food-item-search-all-category.spec.ts › Regression: existing behaviours unaffected by feature merge › [TC-HFE-034] FoodItemCard 'Unavailable' badge still renders for unavailable items in All tab","hfe-food-item-search-all-category.spec.ts › Regression: existing behaviours unaffected by feature merge › [TC-HFE-035] Category 'Off' badge still renders for inactive/closed categories in sidebar","hfe-food-item-search-all-category.spec.ts › Performance: All-tab initial render › [TC-HFE-036] All-tab initial render with 200-item catalog completes within 2 seconds","prd-2026-005-active-template.spec.ts › PRD-2026-005 — Active custom template wins › TC-PRD-090 assigning a custom template makes regenerated PDF use it","prd-2026-005-deep-verification.spec.ts › PRD-2026-005 — deep verification › TC-PRD-070 IGST selection survives save → backend GET returns taxMode=IGST","prd-2026-005-deep-verification.spec.ts › PRD-2026-005 — deep verification › TC-PRD-071/CLASSIC CLASSIC invoice PDF prints primary bank account block","prd-2026-005-deep-verification.spec.ts › PRD-2026-005 — deep verification › TC-PRD-071/MODERN MODERN invoice PDF prints primary bank account block","prd-2026-005-deep-verification.spec.ts › PRD-2026-005 — deep verification › TC-PRD-071/MODERN_BW MODERN_BW invoice PDF prints primary bank account block","prd-2026-005-deep-verification.spec.ts › PRD-2026-005 — deep verification › TC-PRD-073 Invoice PDF column header reflects persisted taxMode (IGST)","prd-2026-005-deep-verification.spec.ts › PRD-2026-005 — deep verification › TC-PRD-074 HSN/SAC card change propagates to regenerated invoice PDF","prd-2026-005-deep-verification.spec.ts › PRD-2026-005 — deep verification › TC-PRD-072 Credit Note PDF carries the issued CN number in text","prd-2026-005-invoice-editor.spec.ts › PRD-2026-005 — Invoice editor › TC-PRD-040/041 Tax Mode card visible with default CGST+SGST and matching header","prd-2026-005-invoice-editor.spec.ts › PRD-2026-005 — Invoice editor › TC-PRD-042 toggling to IGST switches per-line header","prd-2026-005-invoice-editor.spec.ts › PRD-2026-005 — Invoice editor › TC-PRD-043 Reset to default returns to backend choice","prd-2026-005-invoice-editor.spec.ts › PRD-2026-005 — Invoice editor › TC-PRD-046 Place of Supply input accepts state name","prd-2026-005-supplementary-docs.spec.ts › PRD-2026-005 — Supplementary documents › TC-PRD-050 Generate dropdown lists all three doc types","prd-2026-012-pricing-rules-readiness.spec.ts › PRD-2026-012 pricing rules production readiness › renders pricing controls and the non-mutating remove-cap path","prd-2026-005-mobile.spec.ts › PRD-2026-005 — mobile › TC-PRD-047 Tax Mode card visible on mobile invoice editor","prd-2026-005-mobile.spec.ts › PRD-2026-005 — mobile › TC-PRD-048 IGST toggle changes selection on mobile","prd-2026-005-mobile.spec.ts › PRD-2026-005 — mobile › TC-PRD-049 IGST save round-trip on mobile persists to DB","prd-2026-007-create-reservation.spec.ts › PRD-2026-007 — reservation creation (API semantics) › TC-ARM-205 checkOut ≤ checkIn → rejected [validation]","prd-2026-007-create-reservation.spec.ts › PRD-2026-007 — created reservations in the UI › TC-ARM-211 created booking appears in the reservations list with an Upcoming pill [§6.7]","prd-2026-007-create-reservation.spec.ts › PRD-2026-007 — created reservations in the UI › TC-ARM-212 multi-room created booking opens with N room cards [§6.7/Must 7]","prd-2026-007-create-reservation.spec.ts › PRD-2026-007 — created reservations in the UI › TC-ARM-213 details page total reflects rooms × nightly price [finance surface]","prd-2026-007-finance.spec.ts › PRD-2026-007 — reservation-level rollup (G6/Must 8/NG4) › TC-ARM-264 cancellation charge lands at reservation level [NG4/S-23]","prd-2026-007-finance.spec.ts › PRD-2026-007 — charges, discounts, payments, add-ons › TC-ARM-270 apply a flat discount → total drops accordingly [discounts]","prd-2026-007-finance.spec.ts › PRD-2026-007 — guest accounts (party) under room ops › TC-ARM-275 room checkout locks its guest account (isLocked=true) [party lock]","prd-2026-007-finance.spec.ts › PRD-2026-007 — finance surfaces in the UI › TC-ARM-280 guest-account screen lists the booking's accounts [party UI]","prd-2026-007-finance.spec.ts › PRD-2026-007 — finance surfaces in the UI › TC-ARM-281 details payment summary reflects an added charge after reload [Must 8 UI]","prd-2026-007-lock-move-swap.spec.ts › PRD-2026-007 — Move/Swap lock › TC-ARM-143 UI: lock one room through the modal; reopening pre-selects it [lock/§6 modal]","prd-2026-007-lock-move-swap.spec.ts › PRD-2026-007 — Move/Swap lock › TC-ARM-144 UI: Continue stays disabled with no delta from initial state [LMS modal]","prd-2026-007-lock-move-swap.spec.ts › PRD-2026-007 — Move/Swap lock › TC-ARM-145 UI: CANCELLED/NO_SHOW rooms are not offered for locking [LMS eligibility]","prd-2026-007-lock-move-swap.spec.ts › PRD-2026-007 — Move/Swap lock › TC-ARM-146 UI: terminal-only booking hides the Lock/Unlock entry entirely [LMS-003]","prd-2026-007-lock-move-swap.spec.ts › PRD-2026-007 — Move/Swap lock › TC-ARM-147 UI: mixed batch (lock A, unlock B) applies both directions in one Continue [LMS modal]","prd-2026-007-lock-move-swap.spec.ts › PRD-2026-007 — Move/Swap lock › TC-ARM-148 API: lock with a foreign roomInstanceId is rejected [tenancy]","prd-2026-007-lock-move-swap.spec.ts › PRD-2026-007 — Move/Swap/Bulk-assign Phase-2c contract (PRD-GAP) › TC-ARM-149 move/preview → 422 Phase-2c stub [Must 17 GAP]","prd-2026-007-lock-move-swap.spec.ts › PRD-2026-007 — Move/Swap/Bulk-assign Phase-2c contract (PRD-GAP) › TC-ARM-150 move commit → 422 Phase-2c stub [Must 6 GAP]","prd-2026-007-lock-move-swap.spec.ts › PRD-2026-007 — Move/Swap/Bulk-assign Phase-2c contract (PRD-GAP) › TC-ARM-151 swap/preview → 422 Phase-2c stub [Must 16 GAP]","prd-2026-007-lock-move-swap.spec.ts › PRD-2026-007 — Move/Swap/Bulk-assign Phase-2c contract (PRD-GAP) › TC-ARM-152 swap commit → 422 Phase-2c stub [Must 16/S-30 GAP]","prd-2026-007-lock-move-swap.spec.ts › PRD-2026-007 — Move/Swap/Bulk-assign Phase-2c contract (PRD-GAP) › TC-ARM-153 bulk-assign → 422 Phase-2c stub [Must 10/S-27 GAP]","prd-2026-007-lock-move-swap.spec.ts › PRD-2026-007 — Move/Swap/Bulk-assign Phase-2c contract (PRD-GAP) › TC-ARM-155 UI: no dead-end Move/Swap affordance is exposed while the backend is stubbed [UX]","prd-2026-007-noshow-cancel.spec.ts › PRD-2026-007 — no-show per room › TC-ARM-100 UI: single-room no-show leaves siblings untouched [Must 4/S-11/§6.3]","prd-2026-007-noshow-cancel.spec.ts › PRD-2026-007 — no-show per room › TC-ARM-101 UI: reason is required — CTA disabled while empty [Must 4]","prd-2026-007-noshow-cancel.spec.ts › PRD-2026-007 — no-show per room › TC-ARM-102 UI: all-rooms no-show lands parent NO_SHOW [CR-2]","prd-2026-007-noshow-cancel.spec.ts › PRD-2026-007 — no-show per room › TC-ARM-103 API: noShowReason and noShowMarkedAt persist on the room [Should-1 audit]","prd-2026-007-noshow-cancel.spec.ts › 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]","prd-2026-007-noshow-cancel.spec.ts › 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]","prd-2026-007-noshow-cancel.spec.ts › PRD-2026-007 — no-show per room › TC-ARM-106 API: no-show requires a reason (validation) [Must 4]","prd-2026-007-noshow-cancel.spec.ts › PRD-2026-007 — no-show per room › TC-ARM-107 UI: no-show entry absent for a CHECKED_IN-only booking [state gating]","prd-2026-007-noshow-cancel.spec.ts › PRD-2026-007 — cancellation per room › TC-ARM-108 UI: cancel one of five rooms; the other four stay live [Must 5/S-23/§6.4]","prd-2026-007-noshow-cancel.spec.ts › PRD-2026-007 — cancellation per room › TC-ARM-109 UI: reason AND charge are both required for cancel [Must 5]","prd-2026-007-partial-checkin.spec.ts › PRD-2026-007 — partial check-in › TC-ARM-071 modal lists only UPCOMING rooms — checked-in and cancelled rooms are absent [Must 3]","prd-2026-007-partial-checkin.spec.ts › PRD-2026-007 — partial check-in › TC-ARM-073 Continue stays disabled with zero rooms selected [UX]","prd-2026-007-partial-checkin.spec.ts › PRD-2026-007 — partial check-in › TC-ARM-075 API: checking in a subset flips only those rooms [Must 3/S-08]","prd-2026-007-partial-checkin.spec.ts › PRD-2026-007 — partial check-in › TC-ARM-077 API: arrival timestamp ≈ now on checked rooms [audit-true arrival]","prd-2026-007-partial-checkin.spec.ts › 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]","prd-2026-007-partial-checkin.spec.ts › PRD-2026-007 — partial check-in › TC-ARM-081 retried check-in call is rejected and does not double-apply [S-16/S-17]","prd-2026-007-partial-checkin.spec.ts › PRD-2026-007 — partial check-in › TC-ARM-083 check-in proceeds while a sibling room is NO_SHOW (terminal+progression mix) [CR-2]","prd-2026-007-partial-checkin.spec.ts › PRD-2026-007 — partial check-in › TC-ARM-084 UI reflects partial state immediately after API check-in + reload [G5]","prd-2026-007-partial-checkin.spec.ts › PRD-2026-007 — partial check-in › TC-ARM-085 reservations list pill shows the partial state [Must 12/G5]","prd-2026-007-partial-checkin.spec.ts › PRD-2026-007 — partial check-in › TC-ARM-086 modal on a single-room booking lists exactly that room [S-01 equivalence]","prd-2026-007-partial-checkin.spec.ts › PRD-2026-007 — partial check-in › TC-ARM-087 selected chip toggles off on second click (deselect) [UX]","prd-2026-007-partial-checkin.spec.ts › PRD-2026-007 — partial check-in › TC-ARM-088 navigating away from the wizard without confirming leaves rooms UPCOMING [S-18]","prd-2026-007-partial-checkin.spec.ts › PRD-2026-007 — partial check-in › TC-ARM-089 fully-terminal booking offers no partial check-in entry [state gating]","prd-2026-007-partial-checkin.spec.ts › PRD-2026-007 — partial check-in › TC-ARM-090 parent transitions live in a second context (fresh read, no cross-session staleness) [S-19-lite]","prd-2026-007-rbac-ux.spec.ts › PRD-2026-007 — full-permission UI affordances (positive RBAC) › TC-ARM-303 owner-role kebab exposes all ARM actions on an UPCOMING booking [§10]","prd-2026-007-rbac-ux.spec.ts › PRD-2026-007 — UX guarantees (§3, G5) › TC-ARM-306 no-show flow is ≤3 interactions from booking details [§3 ≤3-click rule]","prd-2026-007-rbac-ux.spec.ts › PRD-2026-007 — UX guarantees (§3, G5) › TC-ARM-307 state-machine violations surface as visible errors, not silent failures [S-19 family]","prd-2026-007-room-cards.spec.ts › 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]","prd-2026-007-room-cards.spec.ts › PRD-2026-007 — room cards on Booking Details › TC-ARM-041 UPCOMING card is blue; CHECKED_IN card is red [Must 2/G5]","prd-2026-007-room-cards.spec.ts › PRD-2026-007 — room cards on Booking Details › TC-ARM-042 CHECKED_IN room past its checkout time shows checkout-due orange [Must 2]","prd-2026-007-room-cards.spec.ts › PRD-2026-007 — room cards on Booking Details › TC-ARM-043 CANCELLED room card is grey and stays listed [Must 2]","prd-2026-007-room-cards.spec.ts › PRD-2026-007 — room cards on Booking Details › TC-ARM-044 NO_SHOW room card is grey and stays listed [Must 2]","prd-2026-007-room-cards.spec.ts › PRD-2026-007 — room cards on Booking Details › TC-ARM-045 CHECKED_OUT room card is grey and stays listed [Must 2]","prd-2026-007-room-cards.spec.ts › PRD-2026-007 — room cards on Booking Details › TC-ARM-046 status legend lists Upcoming / Checked-In / Check-Out Due / Checked-Out [Should-2]","prd-2026-007-room-cards.spec.ts › 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]","prd-2026-007-room-cards.spec.ts › PRD-2026-007 — room cards on Booking Details › TC-ARM-048 per-room date range on the card matches the reservation window [Must 7]","prd-2026-007-room-cards.spec.ts › PRD-2026-007 — room cards on Booking Details › TC-ARM-049 checked-in card shows actual in-time; checked-out shows in+out times [Must 7]","prd-2026-007-room-cards.spec.ts › 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]","prd-2026-007-room-cards.spec.ts › PRD-2026-007 — room cards on Booking Details › TC-ARM-052 card shows the per-night price [Must 7]","prd-2026-007-room-cards.spec.ts › PRD-2026-007 — room cards on Booking Details › TC-ARM-053 card shows a meal-plan label [Must 7]","prd-2026-007-room-cards.spec.ts › 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]","prd-2026-007-room-cards.spec.ts › PRD-2026-007 — room cards on Booking Details › TC-ARM-055 card count equals live RoomInstance count after a cancel [consistency]","prd-2026-007-room-cards.spec.ts › PRD-2026-007 — room cards on Booking Details › TC-ARM-056 booking reachable from reservations list by guest name; detail shows the cards [G5]","prd-2026-007-slots-multicycle.spec.ts › 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]","prd-2026-007-slots-multicycle.spec.ts › PRD-2026-007 — default slot guarantee (CR-1) › TC-ARM-171 single-room booking also carries its default slot [S-01/CR-1]","prd-2026-007-slots-multicycle.spec.ts › 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]","prd-2026-007-slots-multicycle.spec.ts › 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]","prd-2026-007-slots-multicycle.spec.ts › PRD-2026-007 — default slot guarantee (CR-1) › TC-ARM-174 default slot window equals the reservation window [CR-1]","prd-2026-007-slots-multicycle.spec.ts › 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]","prd-2026-007-slots-multicycle.spec.ts › 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]","prd-2026-007-slots-multicycle.spec.ts › 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]","prd-2026-007-slots-multicycle.spec.ts › 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]","prd-2026-007-slots-multicycle.spec.ts › 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]","prd-2026-007-slots-multicycle.spec.ts › 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]","prd-2026-007-slots-multicycle.spec.ts › 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]","prd-2026-007-slots-multicycle.spec.ts › 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]","prd-2026-007-slots-multicycle.spec.ts › 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]","prd-2026-007-slots-multicycle.spec.ts › 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]","prd-2026-007-slots-multicycle.spec.ts › 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]","prd-2026-007-slots-multicycle.spec.ts › 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]","prd-2026-007-slots-multicycle.spec.ts › 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]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-001 all UPCOMING → UPCOMING [CR-2/S-02]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-002 all CHECKED_IN → CHECKED_IN [CR-2/S-04]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-003 all CHECKED_OUT → CHECKED_OUT (terminal close) [CR-2/CR-3]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-004 all CANCELLED → CANCELLED [CR-2/S-05]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-005 all NO_SHOW → NO_SHOW [CR-2]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-006 1 CHECKED_IN + 2 UPCOMING → PARTIAL_CHECKED_IN [CR-2/S-03]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-007 4 CHECKED_IN + 1 UPCOMING → PARTIAL_CHECKED_IN [CR-2]","prd-2026-007-status-aggregation.spec.ts › 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]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-009 UPCOMING + CHECKED_OUT (no CHECKED_IN) → VARIED_STATUS [CR-2 else-branch]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-010 UPCOMING + CHECKED_IN + CHECKED_OUT → VARIED_STATUS [CR-2 else-branch]","prd-2026-007-status-aggregation.spec.ts › 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]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-012 NO_SHOW + UPCOMING → UPCOMING (collapse) [CR-2 collapse/S-11]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-013 CANCELLED + CHECKED_IN → CHECKED_IN (collapse) [CR-2 collapse]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-014 NO_SHOW + CHECKED_IN → CHECKED_IN (collapse) [CR-2 collapse]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-015 CANCELLED + CHECKED_OUT → CHECKED_OUT (collapse) [CR-2 collapse]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-016 CANCELLED + NO_SHOW (mixed terminals only) → VARIED_STATUS [CR-2 else/S-07]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-017 CANCELLED + NO_SHOW + CHECKED_OUT → VARIED_STATUS [CR-2/S-07]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-018 CANCELLED + UPCOMING + CHECKED_IN → PARTIAL_CHECKED_IN (terminal ignored) [CR-2]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-019 NO_SHOW + CHECKED_IN + CHECKED_OUT → PARTIALLY_CHECKED_OUT (terminal ignored) [CR-2]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-020 single room: created → UPCOMING (zero-regression) [S-01/Must 9]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-021 single room: check-in → CHECKED_IN [S-01/Must 9]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-022 single room: checkout → CHECKED_OUT (closed) [S-01/CR-3]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-023 single room: cancel → CANCELLED [S-23]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-024 single room: no-show → NO_SHOW [S-22]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-025 5-room staggered full journey lands CHECKED_OUT [G2/G3]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-026 cannot CANCEL a CHECKED_IN room (NG1) [S-10/NG1]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-027 cannot NO_SHOW a CHECKED_IN room [state machine]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-028 cannot CHECK_OUT an UPCOMING room [state machine]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-029 cannot CHECK_IN a CANCELLED room [state machine]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-030 cannot CHECK_IN a NO_SHOW room (late guest ⇒ new reservation) [S-22]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-031 cannot CHECK_IN an already CHECKED_OUT room [CR-3 terminal]","prd-2026-007-status-aggregation.spec.ts › 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]","prd-2026-007-status-aggregation.spec.ts › 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]","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-034 check-in with empty roomInstanceIds → validation error, no mutation","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-035 check-in with a foreign roomInstanceId → 4xx, foreign booking untouched","prd-2026-007-status-aggregation.spec.ts › PRD-2026-007 — CR-2 status aggregation (API) › TC-ARM-036 parent status persists correctly after EVERY step of a staggered journey [CR-2]","prd-2026-007-stay-view.spec.ts › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-230 created booking appears as a block with the guest name [stay view]","prd-2026-007-stay-view.spec.ts › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-231 multi-room booking renders one block per room row [stay view/slots]","prd-2026-007-stay-view.spec.ts › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-232 UPCOMING reservation block is purple family [stay view colors]","prd-2026-007-stay-view.spec.ts › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-233 CHECKED_IN room block is red family [stay view colors]","prd-2026-007-stay-view.spec.ts › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-234 CHECKED_OUT room block is grey family [stay view colors]","prd-2026-007-stay-view.spec.ts › 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]","prd-2026-007-stay-view.spec.ts › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-236 cancelled room frees its row — block no longer rendered [inventory release]","prd-2026-007-stay-view.spec.ts › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-237 no-show room frees its row likewise [inventory release]","prd-2026-007-stay-view.spec.ts › 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]","prd-2026-007-stay-view.spec.ts › 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]","prd-2026-007-stay-view.spec.ts › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-240 block context menu offers status-appropriate actions [stay view menu]","prd-2026-007-stay-view.spec.ts › 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]","prd-2026-007-stay-view.spec.ts › PRD-2026-007 — stay view blocks per room/slot › TC-ARM-242 stay view reflects a mutation after reload (no stale grid) [freshness]","prd-2026-007-stay-view.spec.ts › 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]"],"warnings":[],"fixedKnownBugs":[],"durationMs":388310.665,"exitCode":1}},"durationMs":406107,"finishedAt":"2026-10-16T05:10:51.360Z"}