Persona: distinguish the selected saved card from the shown overlay and offer direct replacement
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Read the selected preview and live controls in Sources/StageKit/PersonaLibraryView.swift, then trace the shown-card state and group-change behavior in Sources/StageKit/Persona.swift. Map the existing selection, overlay, and prepared-arrangement flows before changing them; the issue names no test command, so identify the relevant tests or native retest path. Done means the selected and shown targets are explicit, replacement and update are deliberate, and browsing, hide/show, and prepared copies preserve the stated behavior.
Written by the indexing model from the issue text.
Description
Outcome and priority
P2 usability defect. Browsing a saved card and adjusting the live overlay need clearly identified targets, with an explicit way to replace or refresh the shown card.
Evidence and reproduction
Preview 2.3.0, build 20260928054038, clean source 00be555139f87d4557f48fcffc132b8621c251a2; macOS 26.5.1 (25F80), built-in display. Verified through Copy build details in the running app and bundle metadata.
- In Persona, show saved card A.
- Return to the workspace and select saved card B.
- B's image/name now occupy the preview. Size, Lock and Position remain directly below B, while the primary action is only Hide floating persona.
- Increment Size: the shared floating size changes from about 12% to 15%. There is no target label distinguishing A from B and no direct replacement action.
- Cancel editing B, restore Size and reselect A.
Native evidence establishes the misleading arrangement and missing direct action. Source establishes that those controls affect the frozen shown A. Browsing preserving A is intentional; the fix should retain that safety. Cancelling an edit of an existing card worked and is not the new-creation Cancel defect.
Starting points: selected preview and live controls, only Show/Hide action, frozen shown image, group change hides single overlay.
Additional source-confirmed states, not separately reproduced: saving a new library style leaves the shown snapshot unchanged without an Update shown action; changing preparation group hides the single overlay; Hide currently destroys the single-card snapshot.
Chosen behaviour
- Use existing library selection and live state to label Selected: B and Shown: A. Live size/lock/position controls belong beside the shown identity. Do not add another competing selection owner.
- Offer Replace shown with B when identities differ and Update shown card when that card has a newer saved appearance. Preserve live placement and lock; target only the identified copy.
- Browsing saved items or preparation groups does not replace or hide a shown card.
- With no live session, offer Show selected. Once shown, Hide retains that session's chosen card; Show again restores it even if preparation selection changed. Explicit Replace changes it. Label a retained hidden card as Hidden: A; replacing it with B while hidden keeps it hidden until Show again. Hidden cards do not keep microphone measurement running. Quit still releases live state.
- Frozen prepared copies and Present scenes stay independent. An intentional library save does not silently update their pixels.
- Accessible control names identify the target. Private preparation names must not leak into audience-facing overlay labels.
Acceptance
- Show A, browse B, and adjust shown Size/Lock/Position; the UI accurately identifies A throughout.
- Replace with B in one explicit action, preserving width/position/lock. Cancelled preparation leaves A unchanged.
- Edit saved A; the current copy remains frozen until Update shown, which updates only that copy.
- Browse another preparation group; the shown card remains. Hide/Show again retains it. While hidden, Replace with B stays hidden and Show again displays B; microphone measurement stays stopped until a voice-enabled copy is visible. Quit removes it.
- Cover existing reconciliation as well as prepareGroup: neither may silently hide because preparation changed.
- Repeat for selected copies in a prepared arrangement, preserving independent images and explicit layout saves.
- Native retest both workspace and shared Options, with keyboard targeting.
Coordination
New focused request under #164/#134. The existing #134 Home Hide/Resume label comment and #157 direct movement remain their own scopes. Coordinate this request with shape appearance and one-card loading; do not expand it into library synchronisation.
- Dominant language
- Swift
- Stars
- 0
- Forks
- 1
- Avg merge
- 8h 5m
- Merged PRs (30d)
- 215
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Ship-Work/workbench
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
documentation good first issue help wanted
Difficulty 2/5 Half a day Newbie friendliness 74/100
Ship-Work/workbench#29 · 1 comment ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 55/100
Maintainers usually reply within 1 day
All issues in Ship-Work/workbench
Similar issues
-
Review backlog (style): Test helper still reads stdout after waitUntilExitPossibly taken @hivecommons-hive claimed this today. Openagent/reviewer help wanted hive/claimed-by-scanner stage/030-pr-in-progress
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
hivecommons/hotshot#243 · 1 comment ·
Maintainers usually reply within 1 day
-
good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 1 day
-
bug tests
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
jonathanong/no-mistakes#2261 ·
Maintainers usually reply within 1 day
-
addition
Difficulty 1/5 Under an hour Newbie friendliness 82/100
jaywcjlove/awesome-mac#3621 ·
Maintainers usually reply within 1 day