From eff1ae313fe65ddf4f70112cd10c175fdac18e02 Mon Sep 17 00:00:00 2001 From: Torres Date: Thu, 12 Nov 2026 14:31:29 -0400 Subject: [PATCH] =?UTF-8?q?docs:=20BACKLOG=20=E2=80=94=20v1.1=20QOL=20wish?= =?UTF-8?q?list=20(shortcuts,=20tap=20flow,=20photo=20fit,=20rubric)=20+?= =?UTF-8?q?=20analytics=20phase=20notes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/BACKLOG.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/docs/BACKLOG.md b/docs/BACKLOG.md index ccc33ab..1e47002 100644 --- a/docs/BACKLOG.md +++ b/docs/BACKLOG.md @@ -2,6 +2,29 @@ Glenn's "later versions" idea queue. He drops ideas in conversation; they land here (near-verbatim + a scope sketch + open questions), and get built in a future version — never mid-phase. Newest first. +## v1.1 — QOL wishlist (drafted 2026-11-12; feasibility triaged same day; build awaits Glenn's go-ahead) + +Glenn's words: *"Going to go through a laundry list of fixes before we do lets say 1.1?"* — nothing here is started. + +### Shortcuts +- Arrow keys: Left = Nope, Right = Like, Up = Maybe, **Down = back one** *(read as: undo the last swipe — confirm at spec time)*. **Esc** = exit fullscreen views. +- Feasibility: trivial — keyboard invokes the exact actions gestures/buttons already call (undo exists). Care: ignore keys while a text input has focus; prevent arrow-key page scroll. Desktop/Bluetooth-keyboard benefit only; the app is reachable from any tailnet device (MacBook included). + +### UI changes +1. **Tap flow — info first, then photos.** Center tap opens the fullscreen **bike data view** (today it opens the photo); tapping the photo there opens the fullscreen **image viewer**. Side taps keep flipping photos on the card. Esc/back pops viewer → data → deck. Resolves "can't get info unless I hit the ⓘ button." Revisit `UI-SPEC.md` §11 tap map before build (v1.1 spec bump). +2. **Photo fit: fill → contain.** Show photos uncropped — no "zoomed" crops. One CSS property; visual tradeoff = dark letterbox bars. *Open question:* viewer only, or the card stack too? (Cards = the approved full-bleed look; recommendation: contain in the viewer, cards stay full-bleed.) +3. **Rubric display goes minimal.** Show ONLY the gas-tank gauge + percent full (e.g. "76%"); drop the rest of the rubric-fit display in bike views. *(Read as "less cluttered"; confirm wording at spec time.)* + +## Analytics phase (post-1.1; notes per Glenn 2026-11-12) + +Glenn's words: *"take in just about all interactions… how long I have looked at each picture, how many pictures I flipped through, how quickly I swiped… kept on an individual bike perspective and fed to the model for further accuracy"* + *"start the database from scratch, giving myself a new start."* + +- **Capture (local-only, per bike):** dwell time per photo, flips (count/order), decision latency (card visible → swipe), maybe/undo/list-edit events, session id; card-dwell vs fullscreen-dwell as separate signals. +- **Store:** new append-only `interaction_events` table (same pattern as `swipe_events`); batched client flush (`sendBeacon`/pagehide); iOS PWA: pause dwell clocks on `visibilitychange` so background time can't pollute. +- **Feed the model:** nightly agent pass consumes per-bike aggregates as extra taste features. HARD LAW unchanged: no LLM in the swipe path — capture is write-only until the nightly read. +- **Reset:** its own phase (separate from v1.1), paired with a from-scratch DB reset so telemetry starts clean on the new ledger. Scope to confirm: wipe swipes + events + profile only (listings/catalog stay — re-import is idempotent); legacy data stays in `data/backup/` archives. +- **Open questions:** reset scope; raw events forever vs aggregate-and-prune; include list-browsing events; surface any of it in the UI (probably not). + ## Dry-pool UX + agent feedback (noted 2026-11-12) Glenn hit a fully-reviewed catalog: 563/563 actives decided → fresh pool = 0 → forges returned 2-card returns-only sections ("stuck on a couple bikes"), and "Run agent now" looked inert (a pass ran, but the deck can't change without fresh listings). Possible polish: (a) report/forge state says "catalog fully reviewed — fresh listings arrive with the next import" instead of silently dripping 2 cards; (b) agent button shows a richer confirmation (profile version + lean delta); (c) re-open "second look" eligibility or widen the wildcard pool when the catalog is dry; (d) a "review your Maybes" shortcut at exhaustion. Related: the nightly import + nightly agent read make the pool self-refreshing (Phase 4).