Skip to main content

KeyNova Phase 1 Launch Readiness

Target launch: April 14, 2026 Goal: Onboard 5 properties (Mumbai, Bangalore, Delhi, Jaipur, Goa) onto KeyNova production Status: READY WITH BLOCKERS — code, UI, tests, and onboarding playbook are complete; 4 P0 night-audit fixes, 1 design decision (D7 contrast), and external credentials remain Generated: 2026-04-07 (consolidated from Workstreams C, D, E, F)

If you read only one document before April 14, read this one. It links to every Phase 1 artifact, names every blocker, and tells you who needs to sign what off.

Status Overview​

WorkstreamOwnerTasksDoneBlockedP0 bugs foundStatus
C — Critical code fixesPlatform7700COMPLETE
D — UI / UX polishFrontend7700 (1 design decision)COMPLETE
E — TestingQA4403 (night audit)COMPLETE — bugs flagged
F — Onboarding playbookCustomer Success3300COMPLETE
External — Credentials & assetsOps / Design——5 items—BLOCKED
External — P0 fixes (from E3)Backend40——OPEN

Bottom line: All in-house Phase 1 hardening shipped. Launch is gated on (a) fixing 4 night-audit P0 bugs, (b) a design decision on D7 contrast, and (c) external credentials / assets / domain.


What's Ready​

Workstream C — Critical Code Fixes​

All 7 tasks merged on feature branches across the affected backend services. See registry/dashboard.md for the per-task table.

#TaskWhat it ships
C1WebSocket gateway JWT authHousekeeping + Kitchen sockets now require valid JWT. +22 gateway tests.
C2Materialized view consumersOccupancyMv, RevenueMv, and ChannelPerformanceMv consumers registered in analytics-service. +6 consumer tests.
C3Multi-property isolation E2E5 cross-property leak-prevention Playwright tests added; receiver-side assertPropertyTenant enforced in 3 services.
C4xPrisma → ServiceClient4 sites migrated in property/reservation/frontdesk services. +12 unit tests.
C4aInternal service-account JWTRS256 signed service tokens, iss=hmp-internal, 5-min TTL, 3-repo rollout. +18 auth tests.
C4bBooking-engine xPrisma migration19 cross-service Prisma calls migrated to ServiceClient. +24 controller tests.
C5Event subscriptions + dispatcherreservation.created, folio.posted, night.audit.completed flowing into prod compose. +6 dispatcher tests.

New architecture docs:

Workstream D — UI / UX Polish​

#TaskWhat it ships
D1Dashboard UI consistency78 of 86 audit findings fixed; KpiCard standardized for dark zones; 22/22 UI tests pass.
D2Booking engine mobile responsiveMobile 23/23, desktop 18/18, tablet 18/18 — 100% pass on all 3 viewports.
D3Booking engine empty / loading / error states17 new states across search, results, room selection, payment.
D4Dashboard skeleton loadersShared KpiCardSkeleton, page-level <Skeleton> rows on 11 pages.
D5Mobile app KeyNova branding14 screens rebranded across HK / Manager / F&B / Guest apps.
D6Branded receipt templatesESC/POS + PDF receipts with KeyNova logo, GST footer; +47 tests.
D7WCAG 2.1 AA accessibility audit25 fixes across 26 files; 7 opacity-text contrast violations remain (see Critical Bugs).

Workstream E — Testing​

All 4 testing tasks complete. See per-task linked docs.

#TaskWhat it shipsResult
E1Seed 5 test propertiesseed-5-test-properties.sql — Mumbai, Bangalore, Delhi, Jaipur, Goa, 350 rooms totalDONE
E2Full E2E test pass reportDashboard 583, booking 66, backend 947/959 (98.7%)0 production bugs
E3Night audit scenarios + manual plan14 scenarios, manual test plan3 P0 bugs flagged (do not auto-fix)
E4Mobile device test planDevice matrix + acceptance checklistPlan ready for QA — Apr 7-13

Test deltas vs pre-Phase-1 baseline:

SuitePre-Phase 1Phase 1Delta
Dashboard E2E~28583 across 38 spec files+555
Booking engine E2E5966+7
Backend (5 priority services)82959+877
C-workstream test additions—+88 (gateway/consumer/auth/controller/dispatcher)+88
D-workstream test additions—+47 (receipts) + 8 (KpiCard) + 17 (booking states)+72
Mobile component tests08 (cannot run yet — workspace install pending)+8

Total Phase 1 test count contribution: ~1,560 tests across dashboard, booking engine, and backend services. No production bugs identified by E2.

Workstream F — Onboarding Playbook​

#TaskWhat it ships
F1Property Data Collection Form491-line questionnaire — property identity, rooms, rate plans, taxes, hardware, payment, channels, GSTIN, FSSAI
F2Day-by-Day Checklist (T-6 → T-0)7-day execution plan with roles, escalation path, daily tasks, GM sign-off gates
F3Training Materials ReviewAudit of existing quick-start guides + per-role training plan (FD, HK, F&B, Manager)

These together form the complete operating playbook for onboarding any of the 5 Phase 1 properties.


What's Blocked​

External inputs needed (from non-engineering)​

#ItemOwnerNeeded byBlocking
1Production domain (api.keynova.in) DNS + certOpsT-5API gateway, mobile apps API target
2Razorpay live credentials (key + secret + webhook)FinanceT-4Payment processing on launch day
3SendGrid live API key + verified senderMarketingT-4Booking confirmations, password reset, OTP
4ResAvenue live merchant credentialsFinanceT-3Channel manager bidirectional sync
5Hotel-specific seed data (5 properties)Hotel opsT-6 → T-2Per-property go-live

These are the only external dependencies. All software is shipped.

Asset gaps (from D-workstream)​

#AssetOwnerWorkaround until landed
6Final KeyNova logo SVG (dashboard + mobile)Design teamPlaceholder K-leaf in use; works for soft launch
7Satoshi font in mobile apps via expo-fontDesign team + mobile devSystem fonts in use; cosmetic-only

Critical Bugs to Fix​

P0 — Must fix before April 14 launch​

The following 4 bugs were discovered during Workstream E3 (night audit testing) and must be fixed before any of the 5 properties go live. They were intentionally not auto-fixed during the testing pass — they require backend engineer review and a separate PR per fix.

#BugFileWhy it blocks launch
1prisma.pOSOrder.aggregate references model that doesn't exist in frontdesk-servicefrontdesk-service/src/night-audit/night-audit.service.ts:445Cross-service Prisma drift — night audit FAILS TO COMPILE; 45 of 51 night-audit specs fail. Without this fix, no night audit can run, period.
2advanceBusinessDate overwrites entire Property.settings JSONnight-audit.service.ts:662-675Wipes per-property timezone, currency, FSSAI license, GSTIN, hardware config on every audit. Will destroy all 5 production properties' settings on first run.
3POS reconciliation aggregate missing propertyId filternight-audit.service.ts:434-453In a 5-property tenant, Mumbai's audit aggregates every property's POS revenue. Reconciliation safeguard becomes meaningless.
4pOSOrder aggregate has same flaw — no propertyId filternight-audit.service.ts:445-451Same as #3, on the order side. Double-counts across the chain.

Fix sequence:

  1. Fix #1 first (compile-restoring) — unblocks the test suite to verify #2, #3, #4
  2. Add a property-scoped wrapper around step 1 of processNightAudit
  3. Re-run the E3 manual test plan on the 5-property seed
  4. Re-run scenarios 1-14 from phase1-night-audit-scenarios.md

P1 — Should fix before April 14​

#BugFileSeverity
5Audit log stuck in RUNNING if a post-transaction side effect throwsnight-audit.service.ts:182-211P1 — needs PagerDuty alert as backstop until fixed
6rollbackNightAudit does not decrement folio totalsnight-audit.service.ts:536-576P1 — hide rollback button in dashboard until fixed
7D7 — 7 dashboard pages have opacity-utility-based color contrast violationsdashboard *-bg-card/30, text-foreground/20, etc.P1 — design decision needed: replace /20-/30 opacity classes with explicit brighter colors, OR formally scope these out of WCAG 2 AA audit

P2 — Phase 2 candidates (do not block launch)​

  • Multi-currency reservations not converted to property currency in night audit (no Phase 1 property is multi-currency)
  • findMany take: 1000 cap silently truncates large hotels (none of 5 Phase 1 properties exceed 120 rooms)
  • 67 pre-existing TS errors in hmp-web-dashboard test files
  • 20 pre-existing TS errors in hmp-property-service
  • Mobile-apps workspace install + Jest setup
  • 52 remaining xPrisma sites across 10 services

Onboarding Plan​

The full per-property onboarding playbook is in docs/onboarding/:

  1. Property Data Collection Form — sent to hotel ops at T-6 (491 lines)
  2. Day-by-Day Checklist — T-6 to T-0 execution plan (475 lines)
  3. Training Materials Review — staff training audit + plan (520 lines)

Per-property timeline (5 properties)​

PropertyCodeRoomsOnboarding windowGo-live
Mumbai (Bandra)KN-T-MUM40Apr 8 - Apr 14Apr 14
Bangalore (Whitefield)KN-T-BLR60Apr 8 - Apr 14Apr 14
Delhi (Aerocity)KN-T-DEL120Apr 8 - Apr 14Apr 14
Jaipur (City Palace)KN-T-JAI80Apr 8 - Apr 14Apr 14
Goa (Calangute)KN-T-GOA50Apr 8 - Apr 14Apr 14
Total350

KN-Eng will run the day-by-day checklist for each property in parallel; KN-Ops coordinates kickoff calls and GM sign-offs.


Test Coverage​

SuitePass rateDoc
Backend (5 priority services)98.7% (947/959)phase1-e2e-report.md §3
Booking engine E2E (after fixes)98.5% (65/66)phase1-e2e-report.md §2
Dashboard E2E (after auth fix)58% (337/583) — see triagephase1-e2e-report.md §1
Multi-property isolation E2E (C3)100% (5/5)registry/EP-018/hardening-notes.md
Receipt rendering (D6)100% (47/47)registry/EP-007/hardening-notes.md
Night audit suite0% (45/51 fail to compile)phase1-night-audit-scenarios.md — fix P0 #1 first
Mobile (Jest)N/A — workspace install pendingphase1-mobile-device-test-plan.md
Mobile (real-device)Plan ready, execution Apr 7-13phase1-mobile-device-test-plan.md

The dashboard's lower-than-backend pass rate is not a regression — it is dominated by:

  1. ~100 cascading false positives from a pre-existing auth.setup.ts bug (fixed in E2 PR)
  2. ~30 D1-stale selectors that need a 2-4 hour refresh sweep
  3. The 7 D7 contrast violations
  4. Visual regression baseline drift from the Ink & Brass redesign (cosmetic)

See phase1-e2e-report.md §1 for the full triage.


Architecture Changes​

Phase 1 introduced 5 new architecture documents, all under docs/architecture/:

DocWhy it exists
Cross-service communicationDefines when to use HTTP ServiceClient vs. event bus vs. shared Redis cache. Replaces ad-hoc xPrisma calls.
Internal service-account JWTRS256 service-account tokens for inter-service calls (iss=hmp-internal). Replaces shared HMAC secret.
WebSocket gateway authenticationHousekeeping + Kitchen sockets now JWT-authenticated. Documents handshake, token refresh, room-join authorization.
Analytics event flowMaterialized view consumers + event dispatcher topology.
Multi-property isolationReceiver-side assertPropertyTenant, JWT property scoping, Playwright leak-prevention E2E suite.

Plus a new public API surface for the booking engine:


Pre-Launch Checklist (T-7 → T-0)​

Today (Apr 7) is T-7. Launch (Apr 14) is T-0.

T-7 (Apr 7) — TODAY​

  • Backend Begin work on P0 night-audit fix #1 (pOSOrder cross-service drift)
  • Frontend Schedule 1-day sprint for D7 opacity-text contrast decision + fix
  • Ops Confirm api.keynova.in DNS owner + ETA
  • Customer Success Send Property Data Collection Form to all 5 hotels (Mumbai/BLR/DEL/JAI/GOA)
  • QA Begin running mobile device test plan on lab Android devices
  • Finance Request Razorpay + ResAvenue live credentials

T-6 (Apr 8)​

  • Backend P0 #1 lands; rerun E3 night-audit scenarios on suite
  • Backend Begin work on P0 #2 (advanceBusinessDate settings overwrite)
  • KN-Eng Day 1 of day-by-day checklist for all 5 properties (kickoff calls)
  • QA Mobile testing: HK + Manager apps on Android 13

T-5 (Apr 9)​

  • Backend P0 #2 lands; per-property settings preserved
  • Backend Begin work on P0 #3 + #4 (POS reconciliation propertyId filter)
  • Ops api.keynova.in DNS + cert in place; mobile apps EAS-rebuilt with new endpoint
  • KN-Eng Day 2: per-property data import + Prisma seed for all 5 hotels

T-4 (Apr 10)​

  • Backend P0 #3 + #4 land; full E3 manual test pass on 5-property seed → all scenarios pass
  • Frontend D7 opacity-text contrast fix lands OR formal scope-out documented
  • Finance Razorpay + SendGrid credentials wired into prod env
  • KN-Eng Day 3: rate plans + tax config + GSTIN per property
  • QA Mobile testing: F&B + Guest apps on Android 11/14

T-3 (Apr 11)​

  • Backend Re-run E2 full E2E pass on prod env
  • Backend ResAvenue live merchant credentials wired
  • KN-Eng Day 4: hardware integration (locks, terminals, key encoders) per property
  • QA Mobile sign-off per device per app — fill in acceptance checklist

T-2 (Apr 12)​

  • KN-Eng Day 5: full dry-run check-in/check-out cycle on each property
  • KN-Eng Day 5: night audit dry-run on each property at staging time
  • KN-Ops Staff training delivered per training-materials-review.md
  • Backend PagerDuty alert wired for nightAuditLog.status='RUNNING' for >30min
  • Ops Run chaos-monkey smoke on prod env

T-1 (Apr 13)​

  • KN-Eng Day 6: final pre-go-live night audit per property — verify clean state
  • KN-Ops GM sign-off per property (signed acknowledgement form)
  • Backend Final smoke test of all 13 microservices' /health endpoints
  • Backend Verify night.audit.completed event bus consumer running
  • All Pre-launch all-hands at 5 PM IST

T-0 (Apr 14) — LAUNCH​

  • 00:00 IST All 5 properties go live for new bookings
  • 00:00 IST Booking engine + dashboard cut over to prod domain
  • 02:00 IST First production night audit runs per property (cron nightAuditHour=2)
  • 08:00 IST First check-ins of the day
  • 18:00 IST End-of-day status check across all 5 properties — sign-off by KN-Ops + each H-GM

T+1 to T+7 (Apr 15-21)​

  • 24/7 KN-Dev on-call rotation
  • Daily KN-Eng + KN-Ops daily standup with each H-GM
  • T+7 Phase 1 retrospective + start Phase 2 planning

Risk Register​

Top 10 risks ranked by impact × probability.

#RiskImpactProbabilityMitigationOwner
1P0 night audit bugs not fixed in timeCRITICAL — no property can roll over to next business dayHIGH (4 P0 bugs, 7 days to fix)Dedicated backend engineer T-7 to T-3; daily standup; rollback to manual audit on day 1 if not landedBackend lead
2Razorpay / SendGrid / ResAvenue credentials delayedHIGH — no payments, no notifications, no OTA syncMEDIUMEscalation to CFO at T-5 if not received; mock-mode fallback for soft-launch with public disclaimerFinance + Ops
3Hotel data not delivered by T-2HIGH — that property cannot launch with rest of cohortMEDIUM (5 hotels = 5 chances to slip)Daily H-Ops check-in; KN-Ops ladder to GM; pre-fill defaults from spec; defer property launch up to T+3 (do not block other 4)KN-Ops
4Multi-property isolation defect missed in E3 testingHIGH — cross-property data leak in productionLOW (extensive E3 + C3 coverage)E3 manual plan + C3 isolation E2E + receiver-side assertPropertyTenant triple-defenseQA + Backend
5Mobile app crash on launch dayMEDIUM — staff fall back to webMEDIUM (no Detox CI yet)Mobile device test plan T-7 to T-3; web fallback always availableQA + Mobile lead
6D7 contrast remains unfixed → public a11y complaintLOW — 7 pages, dashboard-only (not booking engine)MEDIUMDesigner + product to decide T-7; if scoped out, document on accessibility statement pageDesign lead
7Night audit cron skips a property due to timezone bugMEDIUM — manual restart neededLOW (all 5 share Asia/Kolkata)E3 scenario 8 covers Goa timezone overrideBackend
8Logo asset never lands → KeyNova brand looks placeholder on day 1LOW — soft brand onlyLOWPlaceholder works; design team commitment T-2Design
9Visual regression baselines fail post-launch on first dashboard PRLOW — non-blockingHIGH (baselines drifted)Re-snapshot on T-3 after final D-stream merges; flag as Phase 2 cleanupFrontend
10Backend tests start failing after P0 night-audit fixes due to spec driftLOWMEDIUMBackend engineer reruns full E2 suite after each P0 fix landsBackend

Sign-off​

The following sign-offs are required before the April 14 cutover. Each is recorded in the Azure DevOps phase1-launch ticket.

WhatWhoWhen
All 4 P0 night-audit fixes verified on 5-property seedBackend leadT-3 (Apr 11)
D7 contrast fix landed OR formally scoped outDesign lead + ProductT-4 (Apr 10)
Razorpay + SendGrid + ResAvenue credentials liveFinance + OpsT-3 (Apr 11)
Production domain DNS + certOpsT-5 (Apr 9)
Mobile device test plan signed off per app per deviceQA leadT-2 (Apr 12)
Per-property data import completeKN-Eng (× 5 properties)T-2 (Apr 12)
Per-property GM sign-off form returnedH-GM (× 5 properties)T-1 (Apr 13)
Customer Success readinessKN-Ops (CS lead)T-1 (Apr 13)
GO / NO-GO callEngineering Manager + CTO + CS leadT-1 (Apr 13) 17:00 IST

If any of the P0 sign-offs is missing at the GO / NO-GO call, the launch slips to April 21 (T+7). The day-by-day playbook is designed to absorb a 7-day slip without re-work — only credentials and external inputs would need to be re-validated.


Phase 1 Branch Inventory​

For the merge sequence after launch, see phase1-branch-list.md.


Where to file feedback​

  • Bugs found in the report itself: hmp-docs repo issue tracker
  • Phase 1 launch ticket: Azure DevOps phase1-launch (KeyNova project)
  • Engineering escalation: KN Eng Manager → CTO (P0 night audit only)
  • Customer Success escalation: KN-Ops → CS lead → CRO

This document is the consolidated executive summary for Phase 1 launch. It supersedes individual workstream status reports for the purpose of go/no-go decisioning. For deep detail on any item, follow the linked artifacts above.