---
title: Open Threads — RateRight
created: 2026-05-01
updated: 2026-05-02
type: action-list
status: live
related:
  - "[[Active]]"
---

# Open Threads — RateRight

Surfaced from the 2026-05-01 vault deep-dive ([[Vault-Migration-Audit-2026-05-01]]). These are dormant action items + decisions that need Rocky's call. Not auto-actioned because they're judgment-call items about Rocky's relationships, his money, or his time.

**Updated 2026-05-02** after [[Truth-Audit-2026-05-02]] — three items moved to Resolved, one upgraded to emergency, one reframed.
**Updated 2026-05-03** after Item 0 resolution — site back up; Stripe live key + Supabase service-role both validated; "Unverifiable until Rocky drops a key" thread contradicted.

---

## 🔴 The Stripe blocker (REFRAMED 2026-05-02)

**Updated framing per [[Truth-Audit-2026-05-02]].** Stripe is **configured for LIVE mode** in `the-50-dollar-app/.env.local`:
- `STRIPE_SECRET_KEY=sk_live_51Rx...`
- `STRIPE_PUBLISHABLE_KEY=pk_live_51Rx...`
- `STRIPE_WEBHOOK_SECRET=whsec_GKtr...`
- `STRIPE_TEST_MODE=False`

Recent commits (last 30 days) show production-grade Stripe code: payment verification, refund API, receipt emails, webhook replay protection, Stripe Checkout integration. **This is not test-mode-only code.**

**But:** the live key in `.env.local` returned "Invalid API Key" when I tried it — either rotated or scrubbed. Doppler is installed but the token I have access to (`dp.st.dev.fDcTI9...`) doesn't grant `STRIPE_SECRET_KEY`. **Cannot confirm Stripe is processing real charges right now because (a) the app is down, (b) the key I can see doesn't authenticate.**

**Decision needed:**
- Rocky verifies live key via Stripe dashboard
- Restores working key to wherever app reads from
- Once app is back up, confirm Checkout → webhook → receipt → match-state pipeline end-to-end

**Original Builder notes location** (still preserved): `vault/09-Agent-Archive/Builder/` — specifically `builder-updates.md`, `PRODUCT-SPEC.md`, `CLAUDE.md`.

---

## 🟡 Pawel Wolonciej — AWX Labour Hire

**Last contact:** ~2026-02 (per `Revenue-Pipeline.md`).
**Score:** 70 (hot lead at the time).
**Days overdue for callback:** ~80.

**Two options:**
1. **Apologetic re-engage**: short honest email/SMS — "Sorry I dropped this. Things got chaotic. Still here, still $50 flat. Want to grab 15 min?" Probably acceptable; tradies are forgiving when you're straight with them.
2. **Write off**: file under "tried, missed window."

**My read:** option 1 if you remember anything specific from the prior contact (his pain point, his timing). Option 2 if it was generic.

This is your relationship; your call.

---

## 🟡 Susan's dormant pipeline — 17 leads + 10 SMS drafts

**State:** scored 65-85, drafts staged, **awaiting your approval since 2026-02-17 (~75 days)**.

**Where it lives:** `vault/09-Agent-Archive/Susan/MEMORY.md` (284 lines, including refined value prop v4, full competitor intel circa Feb 2026, sales playbook, Sydney market intel).

**Why I didn't migrate it as a live action queue:**
- 75 days is too cold for the original drafts to hit "as-is"
- hipages numbers (35K subscriber drop) need re-confirming
- Airtasker numbers ($16.5M H1 loss) are H1 FY26; new data may have shifted
- Hostel campaign has pivoted to Hunt — message angles may have moved

**Recommended action:**
- Read Susan's MEMORY.md (best 30 minutes you'll spend on RateRight; it's a polished playbook)
- Triage the 17 leads: **kill the obviously cold (e.g. anyone who said "not now" months ago), keep the warm**
- Refresh ONE SMS draft with current numbers, send to 3-5 of the warmest, see what happens
- Either revive Susan to run this or extract her playbook into `10_RateRight/Business/Sales-Playbook.md` and run it yourself

---

## 🟡 Pending action items from 2026-03-30 — all RESOLVED per audit

The three "still pending" items were all wrong per [[Truth-Audit-2026-05-02]]. Moved to Resolved section below. Summary:

- ~~Push local QR funnel code to VPS~~ → **DONE** since 2026-03-13 (commit `d8f5288`). Code at `the-50-dollar-app/src/app/go/page.tsx`. Currently unreachable because site is down.
- ~~Drop finalized hostel poster PDF into vault~~ → **DONE** since 2026-03-12/13. PDFs in 4 vault locations.
- ~~Hook up Google Workspace CLI on VPS~~ → **DONE** (gws 0.22.5 installed at /usr/bin/gws, configured at /root/.config/gws/).

What's actually blocking now: **Item 0 (site down)** + **physical hostel mailout** (printing, postage, distribution — that step never happened, the PDF being available was always a red herring).

---

## 🟢 Things to NOT do (from the vault audit)

- **Don't pursue MVP Ventures grant** — officially cancelled 2026-03-30 (Airwallex isn't ADI). Deadline 2026-04-05 has passed. Grant is dead. Harper looped on this for 30 days because the cancellation never propagated; don't repeat.
- **Don't re-enable SMS** without explicit Rocky approval. (Per `_System/CLAUDE.md` hard rules — already in protocol.)
- **Don't propose deletions of `vault/09-Agent-Archive/`.** Rocky said "we might bring them back as we grow." Stays.

---

## ❓ ~~Unverifiable until Rocky drops a key~~ — CONTRADICTED 2026-05-03

**Updated 2026-05-03 06:25 by claude-code-coo.** The premise was wrong. The VPS `.env.local` at `/home/ccuser/the-50-dollar-app/.env.local` (mtime 2026-02-23, unchanged for 70 days) actually contains real keys, not placeholders:
- `NEXT_PUBLIC_SUPABASE_URL=https://eciepjpcyfurbkfzekok.supabase.co` ✓
- `SUPABASE_SERVICE_ROLE_KEY` = 219-char real JWT (prefix `eyJhbGciOiJI`)
- Validated against `/rest/v1/` (HTTP 200) and `/auth/v1/admin/users` (HTTP 200 + real user record)
- **Live user already exists in marketplace**: `flodeliffre@gmail.com`, email confirmed 2026-04-17 (during the site-down window — provenance worth investigating).

Yesterday's audit was looking at the wrong env file (likely the local Windows sibling repo). Live numbers are queryable now via the VPS service-role key.

Growth-engine project (`memscjotxrzqnhrvnnkc`) numbers from yesterday remain valid: `leads=359, contact_registry=327, scraped_leads=4, aggregated_jobs=3` (CRM-side, not platform-user-side).

---

## ✅ Recently resolved (verified 2026-05-02 / 2026-05-03)

| Item | Resolved | Evidence |
|---|---|---|
| QR funnel push to VPS | **2026-03-13** | Commit `d8f5288 feat: add /go and /hire QR campaign landing pages`. Files at `the-50-dollar-app/src/app/{go,hire}/page.tsx`. |
| Hostel poster PDF in vault | **2026-03-12/13** | 4 PDFs found: 2× in `vault/09-Agent-Output/2026-03-13_herald_sydney-hostel-poster-money-led-{,v2}.pdf`, 1× `vault/09-Agent-Archive/Herald/posters/poster-backpacker-hostel-a4.pdf`, 1× `assets/hostel-poster.pdf`. |
| gws CLI on VPS | **on or before 2026-04-29** | `which gws` → `/usr/bin/gws`. `gws 0.22.5`. Config at `/root/.config/gws/` last modified 2026-05-01 09:06. |
| Item 0 — site down (rateright.com.au) | **2026-05-03 06:14** | Hermes WhatsApp bridge moved to `:3500` via `platforms.whatsapp.extra.bridge_port: 3500` in `/root/.hermes/config.yaml`. App rebound `:3000` automatically. External 200, Playwright render clean, all paths (`/`, `/go`, `/hire`, `/api/health`) return 200. Detail in [[Truth-Audit-2026-05-02]] §"2026-05-03 06:30 — Item 0 Resolution". |
| Stripe live-key validity | **2026-05-03 06:25** | `sk_live_51Rx...` (107 chars) validated against `https://api.stripe.com/v1/balance` → HTTP 200, `livemode: true`, AUD 0.00 balance. Audit's "Invalid API Key" was probably a transient blip or wrong key sample. End-to-end Checkout from a browser session is the remaining gate. |
| Marketplace Supabase service-role | **2026-05-03 06:25** | 219-char JWT in `/home/ccuser/the-50-dollar-app/.env.local`. Validated against `/rest/v1/` (HTTP 200 + swagger) and `/auth/v1/admin/users?per_page=1` (HTTP 200 + real user `flodeliffre@gmail.com` confirmed 2026-04-17). Audit's "placeholder" claim was wrong file. |

### ✅ Item 0 — DETAIL (preserved from original block, no content lost)

**Original surface (2026-05-02 truth audit):**
- External: HTTP 400 on `/`, `/go`, `/hire`. HTTP 502 on `/health`. Site offline.
- `rateright-app.service` crash-looping since **2026-03-13** (first failure logged). **47,140 → 54,079 restarts** by time of fix.
- Current root cause: `EADDRINUSE :::3000` — Hermes' WhatsApp bridge held port 3000 since 2026-05-01 14:54.
- Original (March) cause: hidden under EADDRINUSE for 50 days.

**Fix path chosen** (Option B from audit, per Rocky/HQ direction):
- Move Hermes WhatsApp bridge off port 3000 → 3500. WhatsApp kept alive; needed for site ops.
- Backed up `/root/.hermes/config.yaml` before edit.
- Restarted `hermes-gateway.service`. Bridge re-authenticated without QR re-pair (session creds at `/root/.hermes/whatsapp/session/` are port-independent).
- rateright-app auto-recovered. Restart counter froze.

**Outstanding minor items** (not blocking):
- nginx `proxy_buffer_size` bump (preventative for the one transient 502 at 06:17:18).
- nginx dual mapping: `rateright.com.au` AND `rivet.rateright.com.au` both point at `:3000`. The rivet subdomain probably shouldn't be on the marketplace app.
- Stripe end-to-end Checkout drive from a browser session (validates webhook + receipt path beyond just the API key).
- Investigate `flodeliffre@gmail.com` provenance — signed up during 50-day downtime.

---

## 🔴 Hunt pipeline dead — scrapers zero contacts since 2026-04-28

**2026-05-26 — hermes update**

Confirmed via dry-run on `scripts/hunt/scrapers/*`:
- Gumtree selectors broken after HTML structure change
- 0 contacts extracted since 2026-04-28
- ScrapingBee fallback wired but `SCRAPINGBEE_API_KEY` not provisioned
- Running scrape today produces nothing actionable

**Fix path:** Needs selector re-mapping + ScrapingBee key procurement before any hunt scrape runs.

---

## 🔴 Hunt → Marketplace zero edge (Graphify proof)

**2026-05-26 — hermes update**

Graphify code-graph analysis confirmed:
- Hunt code writes to `growth-engine` Supabase (`memscjotxrzqnhrvnnkc`)
- Marketplace (`rateright-v2`) reads from `marketplace` Supabase (`eciepjpcyfurbkfzekok`)
- Zero shared module, zero API call, zero DB reference between them
- Hunt is a parallel sales pipeline producing nothing for marketplace supply
- Even if scrapers were fixed, leads would NEVER reach marketplace signup

**Implication:** Hunt infrastructure needs architectural rethink — not just a bug fix.

---

## 🔴 Marketplace Supabase paused (2026-05-26)

**2026-05-26 — hermes update**

`marketplace` Supabase project (`eciepjpcyfurbkfzekok`) auto-paused ~2026-05-26 after 7 days idle on free tier. Data preserved, restoration in progress.

---

## Cross-references

- [[Michael-Action-Queue]] — original list (2026-03-30)
- [[2026-03-30]] — grill session that surfaced the disconnects
- [[2026-03-25]] — earlier grill session (accountability check)
- [[Vault-Migration-Audit-2026-05-01]] — full audit context
- [[Team-Gap-Analysis]] — the team / wiring side of the same picture
- [[Hunt-Approval-Bottleneck]] — current acquisition channel state
- [[ROADMAP]] — strategic priorities (now stale; refresh in The Window)

---

## How to clear an item

When Rocky actions one of these threads:

1. Tick it off here (or move to a "Done 2026-05-XX" section at the bottom)
2. If it produced an artifact (sent email, deployed code, created file), backlink it
3. Append a one-liner to [[10_RateRight/_Brain/_Log\|10_RateRight/_Brain/_Log]] with the same date/time
4. The auto-sync handles the rest
