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

Foundation A: retained correctness and review follow-ups from #164

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

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
swift
Domain
desktop

Research direction

Start with the named follow-ups and review notes in #164, then inspect Persona.swift near setLiveShape (~876) and the menu guard (~1272), plus MoreButton and AccessoryButton. Check the #218, #224 and #222 test and gallery changes described in the issue. Done means each surviving product and test-quality item is fixed or explicitly superseded with evidence; the refusal-caption and voice-outline refinements are deferred or superseded.

Written by the indexing model from the issue text.

Description

Review follow-ups from the #164 delivery, retained with their original evidence. Under the decided foundation #278 and coverage addendum #288, the two surviving product correctness items below are inherited by A/#279 and must be fixed or explicitly superseded with evidence before the whole reset is called complete. They need not block an unrelated independently accepted slice. The older blanket non-blocking classification no longer governs these two defects. Test-quality notes need individual disposition; optional visual polish stays deferred.

Product code

  • Persona Appearance on a restarted set. setLiveShape (Persona.swift ~876) doesn't check overlayGeneration. Overlay copy ids are saved with their set, so if a set is ended and started again while an Appearance menu is open, the choice could apply to the new run's copy with the same id. Persona's own menu already guards with overlayGeneration (~1272). (#169 note, #216 review.)
  • Key autorepeat reopens a toolbar menu. MoreButton and AccessoryButton reopen when a key is held. Skip event.isARepeat in both. (#216 delta review.)

Tests and checks

  • #218's options-landing check. CGRect.isEmpty is false for a negative size, so a visible rect shorter than its insets counts as laid out. Require width > 0 && height > 0 for the visible rect. (#218 delta review.)
  • #224's opt-in key-window test (TOOLBAR_KEY_WINDOW_TESTS=1, not run in CI):
    • assert that setActivationPolicy restores the policy, or say "run alone, with --filter" in its skip message;
    • take one drain deadline before the loop. (#224 review.)
  • #222's receipt cases. Note in the gallery index when a case retried because the clipboard changed mid-run, so a noisy local clipboard is visible. (#222 delta review.)

Superseded or deferred refinements

The Read-specific refusal-caption refinement is superseded by Read retirement #284; retain its history. Voice-outline polish is deferred. Neither is a reset-completion requirement.

  • #221's refusal caption. It could clear once the clipboard's change count moves, checked when Home appears. (#221 review.)
  • #209's voice outline. A faint gap fill over busy content. (#209 review.)

Indexed by #164. Each item is small enough for a single follow-up PR, and none needs a product decision.

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.