fix(bin): calm the phone glance with focused work groups - #91
Merged
Conversation
Show at most five live asks, hide parked duplicate and retire holds from that list, and replace the waiting wall with per-project count chips. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent
Calm the captain's phone glance page (bin/fm-bridge-view.py, shipped in PR #90) after voice feedback that the page lists too many items and feels overwhelming. The default view must fit one iPhone screen and show only what genuinely needs the captain now.
Needs you: cap at the 5 most relevant items. Exclude anything whose underlying backlog hold is parked, a recorded duplicate, or a retire candidate, filtering on backlog hold kinds and parked reasons rather than guessing from titles. Below the five, one quiet line "N more waiting on you - show all" that expands on tap. Stuck live work (blocked, failed, or parked at a gate) leads that list because it needs the captain now; deferred holds are moved into Waiting so they stay reachable instead of disappearing.
Under way stays as is.
Waiting: replace the long item list with per-project count chips (Artevo, Journey, Finances, Fleet, Glasses), each expanding to that project's complete items on tap. No global wall of items by default. The full list remains reachable once expanded (the no-arbitrary-truncation rule from #90 still holds). Chips are visible under a Waiting heading, not hidden behind a collapsed fold, so one tap reaches a project's items.
Tone: quiet and plain. No jargon in the default view.
Constraints: do not change Talk, photo upload, or answer-polling from #90; this is layout and selection only. Keep it dependency-free and tailnet-only; no external CDNs. iPhone Safari is the only client that matters; keep the #86/#87 Origin handling untouched. Do not restart or repoint any launchd service from the worktree.
The glance filters and groups from structured snapshot fields (hold_kind, hold_reason, repo) passed through fm-bearings-snapshot.sh, not from titles. Tests cover parked/duplicate/retire exclusion, the cap of 5, waiting counts, chip rendering, and live observation through the existing tests/fm-bridge-view.test.sh suite. #90 features (multi-photo, hold-to-speak, answer display) must stay unchanged and passing.
What Changed
Risk Assessment
✅ Low: Captain, the follow-up correctly passes structured repository data through the snapshot and covers paused live work in the end-to-end observation path; the overall change is bounded and matches the stated intent.
Testing
The full bridge suite passed, including structured filtering/grouping and unchanged photo, speech, answer, and Origin behavior; an authenticated 390×844 phone rendering showed the calm capped glance view, and expanded visual evidence confirmed hidden Needs You and complete project Waiting items remain reachable.
/var/folders/1g/hctp3vpn27b1zrlsn4nsfg680000gn/T/no-mistakes-evidence/01M0FVNJWPPQ0Z4T5ZG5QGEV4N/bridge-glance-default-iphone.png)/var/folders/1g/hctp3vpn27b1zrlsn4nsfg680000gn/T/no-mistakes-evidence/01M0FVNJWPPQ0Z4T5ZG5QGEV4N/bridge-glance-expanded.png)Evidence: Interactive default glance evidence
Evidence: Expanded glance evidence
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
🔧 **Review** - 1 issue found → auto-fixed ✅
bin/fm-bridge-view.py:974- Required intent says Waiting must use per-project chips and that grouping must come from structuredrepofields. This new branch readsrow.get("repo")for paused live work, butfm-bearings-snapshot.shstill omitsrepoandownerfrom everyin_flightrow. Consequently, paused work is grouped under “Other” instead of Artevo/Journey/Finances/Fleet/Glasses. Include the structured repository fields in the in-flight projection and cover the live snapshot path with a paused task.🔧 Fix: Preserve paused-work repository grouping
✅ Re-checked - no issues remain.
✅ **Test** - passed
✅ No issues found.
Inspectedgit diff e66a149f5847016e11c5b638a62b5029e858ef48..43aed0ee20f87c2d83604f754cea0d9ed6b92faebash tests/fm-bridge-view.test.shStarted an isolated structured-snapshot fixture withbin/fm-bridge-view.sh serve --host localhost --port 18766Authenticated in Chrome at a 390×844 iPhone viewport and verified the default five-item Needs You list, stuck-work priority, remainder disclosure, unchanged Under Way section, and visible Waiting count chipsExpanded2 more waiting on you - show alland theArtevo 2chip, verifying all hidden items remained reachableCaptured production-rendered HTML and screenshots using the authenticated page DOM and headless ChromeConfirmedgit status --shortremained empty after testing✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.