בס״ד

Portal Punch-List — Sam's full review 2026-06-25 (~1 AM, from desktop)

docs/PORTAL_PUNCHLIST.md · last changed (pre-VM history) · rendered from GitHub master

Portal Punch-List — Sam's full review 2026-06-25 (~1 AM, from desktop)

Captured verbatim from Sam's walkthrough. Living tracker — strike items as fixed. Money items = P0.

🔴 P0 — MONEY ACCURACY (cash tile in outputs/home.html — NOT apps.html, that's the App Library)

Money Truth pass 2026-06-25 (commits 277cb7c → bd77bac, verified vs LIVE /plaid/balances). Most of this is DONE; the one open item is owned by the ops-api session.
- [x] ~~Manual-account labels wrong~~ — FIXED. 9312 relabeled Shellpoint→Selene Finance; the "$217K Fifth Third HELOC" row was conflating two real accounts → removed (see below).
- [x] ~~Kill phantom/zero accounts~~ — DONE. Live render now hides every $0 account (9 of them, incl. the real "USALLIANCE MyLifeSavings 2250" $0). To actually unlink them from Plaid is Sam's call in link.html.
- [x] ~~Restructure: Bank · Cards · Trading + stop top/bottom dupes~~ — DONE. Live accounts now group Bank / Cards / Trading / Loans·live. The "same account top & bottom" dupe is gone: Fifth Third (MORTGAGE LOAN #1858, $380,468 bal) and USALLIANCE HELOC (#2650, $217,000 bal) are LIVE in Plaid → they show ONCE in Loans·live, no longer hand-duplicated. Manual list now holds ONLY the genuinely-not-in-Plaid items: Shellpoint 9332 mortgage /mo, Selene 9312 mortgage /mo, Affirm.
- [~] Affirm installments — kept but date-stamped "as of Apr 28 — verify" (no fresher source pulled). Refresh from the Affirm app screenshot when convenient.
- [ ] 🔧 Chase 5609 pending — OWNED BY ops-api SESSION (server change, do not deploy blind — frozen). Confirmed root cause: /plaid/balances reads only a.balances.current and drops a.balances.available. 5609 current=$1,588.97 (matches page); Plaid's available≈$1,050 reflects the -$30.64/-$475.85/-$14.49/-$17.16 pendings. Exact fix (two spots in ops-api/src/index.ts): in runPlaidBalanceRefresh (~L358-368) AND the GET /plaid/balances handler (~L853-863), add available: a.balances.available ?? a.balances.current to the per-account payload, and compute total from available for depository. Frontend (home.html) then shows available as the number + "$X pending" hint — a known ~5-line edit to apply together with the deploy (NOT pre-wired now, to avoid field-name drift across sessions). Plaid sends no available today → nothing to show until the server ships it.

🟠 GROCERIES / "Our regulars"

🟠 MILDRED'S PORTAL (?as=mildred) — "kind of crazy"

🟠 WIFE'S PORTAL (chanie-home.html, ?as=chanie)

🟡 SAM'S HOME PAGE — surfaces

🟡 LIBRARY

🟡 BRIEFINGS — notification gap

🟢 CAMERA (from tonight — context)

🔧 HOSPITABLE

🗓️ 2026-06-25 — Sam phone walkthrough (NEW batch · push-gated, ship together when build-config freeze lifts)

Captured by 🐝 from Sam's live walkthrough ~11:55 AM. Build in ONE pass once pushes are safe again.
🔴 Today / data-accuracy:
- [ ] Mildred 9312 Payne shows "in-house now" — WRONG. Check-in is 4 PM today (Jun 25); booking logic flags start<=today as in-house. Fix: same-day check-ins show "arriving today · check-in 4 PM" until arrival, not "in-house." (Operational: Mildred confirms cleaning + QR/door code + inspection before 4 PM — not a code fix.)
- [ ] Nov-23 booking missing guest name on Mildred's bookings tile (one of the later reservations).
Groceries:
- [ ] Auto-categorize the grocery tile/regulars into Sam's groups: Things-we-add · Dairy&eggs · Produce · Meat · Fresh bakery · Pantry · Household. (List itself is clean — "London Royal" was a misread of "london broil," a real item. Issue = flat/uncategorized, not garbage.) Chanie should be able to use it; family kiosk reflects it.
Mildred portal redesign:
- [ ] Comms component wider + blue + nicer (match Sam's comms page polish).
- [ ] "Good afternoon" greeting + "what it does" → move to TOP; rethink how tasks surface.
- [ ] Recent done / not-done / checklist side panel (checkouts + turnover status at a glance).
- [ ] Property bills link goes nowhere ("document that text" on click) — wire it or label what it is.
- [ ] Her briefing still shows beginning-of-week — needs the current one.
- [ ] Use full browser width; rethink homepage layout.
Family kiosk:
- [ ] Kids' names connected + a way to enter what each child needs to do.
- [ ] Compact top (time/weather/etc. visible without scrolling) — like Chanie's page.
- [ ] Messaging component more recognizable as communication.
Sam home:
- [ ] "Lighter-dark" hive theme — an in-between of hive-light and hive-dark.
- [ ] Money-prompt cadence — periodic nudges to refresh: Affirm plans · camp payments · installments · mortgages (statement) · utilities (last payment + screenshot). Cash-on-hand should prompt at the right intervals.
Cameras (separate broken item): all home cams still down/not connected (go2rtc PC-tie from 6/25 handoff — untether needed; not ops-api).
Chanie: comms polish to match Sam's; she + Sam both want her actively using obligations.

Source trail · docs/PORTAL_PUNCHLIST.md @ master · rendered 2026-07-02 7:23 PM EDT by scripts/build-docs.py · the .md in the repo is the truth; this page is the phone-readable view