Analysis of tickets in Push to Staging and Review - Staging ZenHub pipelines, ranked by impact-to-risk ratio. Goal: identify what to merge to master first for maximum value with minimum risk.
| PR | Issue | Title | +/- | Files | Why deploy |
|---|---|---|---|---|---|
| #3235 | #3232 | PII leak: name + coordinates exposed | 535/52 | 9 | P1-CRITICAL — user data visible in page source. Security fix. |
| #3261 | — | Prevent duplicate prebook charges | 14/6 | 1 | Customers getting charged 3x with no subscription. Revenue + trust. |
| #3291 | — | Fix undefined replyToEmail crash | 107/1 | 2 | Conversation emails crashing in production. Users not getting notified. |
| #3290 | — | Cast prebook_pause_duration to int | 74/2 | 3 | Users can't accept prebook offers — revenue-impacting. |
| #3346 | — | Remove dead jQuery imports (90KB) | 0/2 | 2 | 90KB off every page load. Zero additions, just 2 deleted lines. Near-zero risk. |
- #3235 (PII leak) — security, deploy immediately
- #3261 (duplicate charges) — revenue protection, 1 file change
- #3291 (email crash) — user communication broken
- #3290 (prebook crash) — revenue-impacting
- #3346 (jQuery dead imports) — free perf win, near-zero risk
| PR | Issue | Title | +/- | Files | Why deploy |
|---|---|---|---|---|---|
| #3292 | — | Validate room ID in SearchController | 99/1 | 2 | Stops 500 errors from bot probes (Rollbar noise). Tiny fix. |
| #3288 | — | Cast float in broadcasts insert | 119/0 | 3 | Broadcast form crashes with decimal distance values. |
| #3299 | — | Include failure reason in email errors | 10/9 | 2 | Better Rollbar diagnostics. Nearly zero functional change. |
| #3300 | — | Retry logic for OpenAI verification | 131/5 | 2 | Users stuck in verification limbo when OpenAI times out. |
| #3302 | — | Hub-and-spoke internal linking (SEO) | 111/7 | 4 | 77.8% of pages have zero inlinks. Adds footer + cross-links. |
| PR | Issue | Title | +/- | Files | Risk notes |
|---|---|---|---|---|---|
| #3326 | — | SVG to static files (5.7MB JS eliminated) | 18/22525 | 27 | Massive perf win. 27 files but no logic changes — just SVG conversion. Verify no visual regressions. |
| #3368 | — | Double-encoded location fix | 570/28 | 19 | All /housing/ routes crashing. Migration involved — needs careful QA. |
| #3276 | — | Restore /travel-nurse-housing page | 1758/0 | 6 | #1 SEO target (13K monthly traffic). Larger change, previously removed due to Vite failure. |
| #3436 | #3355 | Restore synonym search | 187/19 | 4 | Synonym search broken since PG migration. Still in Push to Staging — not yet on staging. |
These are in the pipelines but are either large features, low priority, or need more work:
| PR/Issue | Title | Reason to defer |
|---|---|---|
| #3499 | Pro Plan combined (infra, search, analytics, labels) | 3502+/593-, 35 files — large feature, needs full QA cycle |
| #3454 | Fraud reduction (4 phases) | 5404+/77-, 49 files — massive scope |
| #3380 | Edu fraud prevention | 2182+/29-, 20 files — needs staging QA |
| #2522 | Message Dashboard Analytics | P4-low, tier:later |
| #2418 | Conversation Count by Week | P4-low, tier:later |
| #2131 | Font Weights sanity check | P4-low, tier:later |
| #1462 | Google Map API async | P4-low, tier:later |
5 PRs in Tier 1 address production bugs (security, revenue, email delivery, performance) with minimal code changes (combined: ~730 additions across 17 files). These should be merged to master in sequence, verifying each deploy before proceeding.
5 PRs in Tier 2 are low-risk improvements that can follow immediately after Tier 1.
Tier 3 has high-impact items that need targeted QA before merge — schedule these for the next deploy window.