Merge S10 (a1): public ledger profiles v1
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> # Conflicts: # BUILD-STATE.md # CLAUDE.md
This commit is contained in:
@@ -20,6 +20,27 @@ Spec: `specs/a1-s9-slip-reader.md`. +34 tests (24 unit + 10 integration).
|
||||
→ real tesseract.js OCR → parser → 3/3 complete legs. Untested on a real
|
||||
phone screenshot yet — grab one post-deploy.
|
||||
- Vision-model upgrade logged post-revenue in specs/vyndr-roadmap.md.
|
||||
## Session S10 (a1 board, 2026-07-11) — Public Ledger Profiles v1 ✅
|
||||
Stage-3 seed (Strava for betting), zero out-of-pocket. Branch off
|
||||
day1/a1-board (aaafc3e). 2574 → **2612 tests** (220 suites), web build
|
||||
exit 0. Spec: `specs/a1-s10-public-profiles.md`.
|
||||
- **Migration `022_public_profiles.sql`** — COMMITTED, NOT APPLIED (founder
|
||||
applies migrations). `public_profiles` (user_id PK → auth.users, handle
|
||||
UNIQUE + regex CHECK, `published` DEFAULT FALSE). RLS: published rows
|
||||
readable by anyone, own row by owner, writes service-role only.
|
||||
- **API** — `/api/profiles`: `GET/POST /me` (requireAuth; handle regex 400,
|
||||
taken handle 409, published only flips on explicit boolean true) and
|
||||
public `GET /:handle` (published → user-scoped 30d aggregate + settled
|
||||
rows newest 50, same columns as /api/ledger; unknown AND unpublished →
|
||||
byte-identical 404 — no existence leak). `getModelAggregate` gained a
|
||||
`userId` option (public `.is('user_id', null)` default untouched).
|
||||
- **Frontend** — `/u/[handle]` (PUBLIC, in OPEN_ROUTES): server shell with
|
||||
"CLV-verified record — @handle · VYNDR" metadata + client record (hit% +
|
||||
beat-close% at n≥20 else RECORD BUILDING; outcome + CLV chips) + OG card
|
||||
(Node runtime, never edge). Settings PUBLIC PROFILE section: claim handle
|
||||
+ one explicit publish toggle with the private-by-default copy.
|
||||
- **Next**: profile OG card could embed the live record once n≥20 profiles
|
||||
exist; user-scan settlement coverage beyond MLB is the limiting factor.
|
||||
|
||||
## Session S3 (a1 board, 2026-07-11) — Affiliate + Partnership Plumbing ✅
|
||||
Zero out-of-pocket; everything config-flip-ready but DISABLED/organic.
|
||||
|
||||
Reference in New Issue
Block a user