Skip to main content

Meeting production release evidence (WP-13)

Recorded 2026-09-14. Related issue: #3719.

2026-09-25: Founder authorized production booking (#3982). isBookingEnabled no longer disables production; deploy production to take effect. Historical NO-GO evidence below stays for audit.

Recorded decision (needs human signature)​

FieldValue
Agent recommendationNO-GO for production enable
Human go/no-gounsigned (release owner)
Release ownerTyler Dane
Intended provider set if later enabledGoogle only (Google Meet conference)
Explicitly excludedMicrosoft, Apple
Production bookingenabled in code (founder decision #3982). Requires production deploy
Notification destinationFounder's PostHog account. Meeting alerts are not armed
Rollback / disableRevert the production enable change to isBookingEnabled and redeploy production so Meeting routes 404 again
First-week reviewDaily for seven days after a future production enable, then weekly. Sample-size caveat: do not promote a rate with fewer than 20 accepted operations in the window. Post-launch: #3720

The owner records this NO-GO by merging #3737 through the merge queue. That merge does not enable production booking.

WP-13 acceptance (this run)​

CriterionResultEvidence
WP-01 through WP-12 merged with required checkspassIssues #3707–#3718 closed. Last launch merge: #3736 on main
Google Meet live invitation / conference / edit / cancel / rescheduleblockedNo Google OAuth in this VM. Nightly adapter smoke skipped Google (run 34743488032). Do not infer consent from issue text
Microsoft in launch setexcluded#3676 open. isMicrosoftOffered is false in production
Apple in launch setexcluded#3253 and #3276 open. No conference capability
Two guests / overlapping reschedule / in-flight createharness pass, not livepublic-booking.service.db.test.ts: 5 overlapping tests pass
Keyboard, 375px, guest timezone, DST boundariesharness pass, not live calendarPlaywright 107 passed. Core DST 10/10. Service DST 2/2
Token / privacy interceptionharness passbooking-telemetry.test.ts and posthog-booking-filter.util.test.ts 14/14
Cross-replica public rate limitsharness pass, not staging multi-replicabooking.rate-limit.db.test.ts 15/15, including 429
PostHog dashboard, pending/recovery, unarmed alertspass (no-data honest)Dashboard 2093461. Heartbeat still missing_telemetry
Explicit human go/no-gounsignedAgent recommendation is NO-GO. Owner has not signed

Launch work packages​

WPIssueState on 2026-09-14
01 confirmed provider outcomes#3707merged
02 persist booking intent#3708merged
03 overlapping reschedules#3709merged
04 retry-safe edit identity#3710merged
05 DST slot boundaries#3711merged
06 destination readiness#3712merged
07 lossless notices#3713merged
08 telemetry privacy#3714merged
09 abuse budget#3715merged
10 host/guest funnels#3716merged
11 lifecycle/recovery signals#3717merged as #3735
12 Meeting dashboards#3718merged as #3736

WP-14 (#3720) is post-launch and outside this milestone.

Provider matrix​

ProviderLaunch scopeConferenceLive invitation / calendar proofWhy
GoogleintendedGoogle Meetnot verified hereNo authorized Google OAuth in this VM. Nightly adapter smoke skipped Google (secrets absent in provider-smoke, run 34743488032)
MicrosoftexcludedTeams when the mailbox allows itnot verified#3676 is open (agent-loop-needs-human). isMicrosoftOffered is false in production
Appleexcludednonenot verified#3253 and #3276 are open

Stubbed Playwright covers Microsoft Teams copy and Apple no-video copy on the public page. That is capability copy, not a live provider.

isBookingEnabled is on in every runtime environment, including production (packages/core/src/util/env.util.ts).

Live HTTP (unauthenticated)​

TargetResult
GET https://staging.compasscalendar.com/api/health200 {"status":"ok"}
GET https://compasscalendar.com/api/health200 {"status":"ok"}
Staging SPA /, /book/, /meet/, /meet/tylerdeaneHTTP 200 (Caddy HTML shell, not 5xx)
Staging GET /api/booking/pages/{tylerdeane,tyler-dane,compasscaltest3,tyler}404 JSON PAGE_NOT_FOUND (routes are mounted; these documented slugs are off or missing). Rechecked 2026-09-14T03:46Z
Staging guest /meet/tylerdeaneUI: "Meeting page not found" / host has turned this page off
Production GET /api/booking/pages/tylerdeane404 HTML Cannot GET /api/booking/pages/tylerdeane (routes not registered). Rechecked 2026-09-14T03:46Z
Production /meet/tylerdeaneApp 404: "This isn't part of the app, matey"

No login. The smoke script's HTTP 200 on /meet/tylerdeane is the SPA. The booking API is the source of truth for whether a page exists. Unauthenticated probes used only repo-documented slugs. They did not enumerate other usernames.

Harness evidence (2026-09-14)​

Playwright, stubbed APIs, Chromium desktop:

bunx playwright test e2e/booking e2e/accessibility/booking-a11y.spec.ts
107 passed (1.9m)

Those specs cover host keyboard setup, guest timezone override, 375px stacking, cancel/reschedule keyboard paths, in-flight confirm dedupe, tokenized confirmation permalinks, and axe on booking settings. They do not talk to Google, Microsoft, or Apple calendars.

Focused unit / Mongo reruns on this branch:

SuiteResult
compute-booking-slots.test.ts (DST gap / fall-back)10 pass
public-booking.service.db.test.ts name spring-forward2 pass
public-booking.service.db.test.ts name overlapping5 pass
booking.rate-limit.db.test.ts15 pass
booking-telemetry.test.ts + posthog-booking-filter.util.test.ts14 pass

Live provider smoke (GitHub Actions)​

Nightly adapter contract, not Meeting invitation or conference proof. Contract: Live provider smoke. Run 34743488032 on main at 2026-09-13T06:44Z: passed=microsoft skipped=google apple failed=none.

ProviderResultNotes
GoogleskippedSMOKE_GOOGLE_REFRESH_TOKEN or Google client id/secret absent in the provider-smoke environment
Microsoftadapter pass on calendar compass-smokeCreate/read/update/exceptions/delete only. Not a booking invite or Teams conference. Launch set still excludes Microsoft (#3676)
AppleskippedSMOKE_APPLE_EMAIL or app password absent

This Cloud VM also has no SMOKE_GOOGLE_* or GOOGLE_CLIENT_* values. compass.yaml is the example file with placeholder OAuth blocks.

PostHog (project 165441)​

Dashboard: https://us.posthog.com/project/165441/dashboard/2093461 Runbook: Meeting monitoring. Governed catalog consulted: no match (metric-list returned 0 rows). Counts below are noncanonical HogQL plus a blocking dashboard refresh.

TileReadback 2026-09-14T03:45Z
Staging guest funnel5 sessions viewed, 2 confirmed (40%, median 54s), test accounts included
Staging host funnel1 host completed settings → enabled → link copied
Staging 14-day event countspage viewed 15, settings opened 14, link copied 6, page enabled 2, reservation created 2. Production: none
Production funnelsno-data, not a success rate
Completion rate 30maccepted=0, completed_success=0, completion_rate=(null)
Infra failure rate 30minfra_failure_rate=(null), sample_gate=manual_review
Heartbeat freshnessheartbeat_samples=0, gauges (null), telemetry_status=missing_telemetry

booking_operation and booking_operation_heartbeat are absent from the event catalog. Guest path events booking_slots_loaded, booking_slot_selected, booking_details_reached, and booking_submit_attempted are also absent.

Heartbeat starts at backend boot via publicBookingService.startRecoveryRetries() in packages/backend/src/app.ts (every five minutes when POSTHOG_KEY is set). Empty server tiles therefore mean WP-11 is not capturing in the live project yet, not an idle queue and not 0% failure. #3735 merged as code; staging/production still need that deploy plus PostHog capture.

Launch alert rules (exhausted recovery, oldest pending on two heartbeats, infra failure >5% with ≥20 accepted / 30 minutes, heartbeat absent) are evaluated in packages/scripts/src/testing/meeting-dashboard.test.ts. They are not armed.

Gaps that keep this a NO-GO​

  • No real Google Meet create / invite / conference / edit / cancel / reschedule against a provider calendar in this run.
  • Nightly Google adapter smoke cannot run: Google secrets are absent in the provider-smoke environment (run 34743488032).
  • Two-guest contention, notes after host move, reconnect, and cross-replica rate limits were not re-run on staging with authorized accounts.
  • WP-11 heartbeat and operation events are not in live PostHog yet.
  • Microsoft and Apple remain unverified and out of launch scope.
  • Documented staging slugs tylerdeane, tyler-dane, compasscaltest3, and tyler are not live bookable pages (PAGE_NOT_FOUND).

What the owner still has to do​

  1. Merging #3737 records this NO-GO and closes WP-13. It does not enable production booking.
  2. If go instead: close that PR without merging, complete a Google Meet staging sweep with authorized accounts, a known live staging slug, WP-11 telemetry visible in PostHog, and a written enable of production booking in a separate change. This file is not that change.
  3. If no-go stands: leave production disabled. Use this matrix as the recorded exclusion list.