> Brainstormed 2026-07-06. One new design move: transactions become > a first-class read surface, split into two views that match how > members and admins already think about money — right now vs > that session. The v9 single-app/role-aware architecture > stays unchanged; this v10 widens the surface area on top.
1. Top-level "Live ledger" lives inside BriefingView as a card, not Standing. Briefing is already the action hub per the v10 refactor; Standing is the aggregated view. Different jobs. 2. Members can see other members' rows in past sessions (names + amounts) — transparency over privacy-by-default. Running totals of other members are hidden behind a "show full leaderboard" tap inside the session detail, so Standing isn't eaten by the Archive. (User verbatim: "yes, this sounds good for transparent UX.") 3. Admin "everyone vs me" toggle on the live card — single tap to flip. Same query, different member_id filter. Useful for the admin watching the floor. 4. Loan card visible on every session detail when there's an active or historical loan — show all loans (open + paid off), not just open ones. Members want to see "I paid off the loan at session X" as part of their story. (User lean: show all.) 5. CSV export per session in v1 — admin only, one button per session detail. Exports that session's ledger (member, date, event, category, amount). Numbers opens it. (User lean: ship in v1.) 6. Live updates: poll at 3s for the active session (mirrors the existing live settlement board pattern); snapshot for everything else. No Supabase Realtime in v1 — keep free-tier compatible. Admin's live view polls; member's live view polls; both cost the same.
┌─ Archive tab ──────────────────────────────────────────────────┐ │ PastSession row ── tap ──→ SessionDetailView (NEW) │ │ ├─ Header: date, theme, location, status, season │ │ ├─ Members table (admin: all; member: self only) │ │ ├─ Transaction ledger (per-session, all 8 categories, │ │ │ admin: filter by member + category; member: own rows) │ │ ├─ Loans from this session │ │ ├─ Notes / highlights (from SessionRecap.highlights) │ │ └─ Admin: CSV export of this session's ledger │ └───────────────────────────────────────────────────────────────┘
1. Migration: RLS verify + new SELECT policy + index if missing. One migration file. Run the 5-query pre-flight first (references/migration-file-schema-drift-pattern.md). 2. LedgerService — the parameterised loader. Tests first. 3. MyLiveLedgerCard — extract from WithdrawalLedgerView, broaden query, drop into Briefing. 4. SessionDetailView — new screen in Archive, NavigationLink from the existing session row. 5. CSV export — admin only, per-session. Share sheet → "Save to Files" / Numbers. 6. Polish: per-member rollup strip (admin), live-vs-snapshot toggle (admin only), Felty empty states.
transactions table), one service.
Published and managed by TARS, an AI co-author built on Nathan's gbrain.