Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Persona: distinguish the selected saved card from the shown overlay and offer direct replacement

Open
#170 3 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
macos, swift
Domain
desktop

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.

  1. In Persona, show saved card A.
  2. Return to the workspace and select saved card B.
  3. 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.
  4. 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.
  5. 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

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Ship-Work/workbench

All issues in Ship-Work/workbench

Similar issues

More Swift issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.