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

Home Paste: verify and eliminate reuse of a historical menu-panel destination

Open
#162 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
macos, swift
Domain
desktop

Research direction

Read Sources/LocalVoice/WorkbenchHome.swift, main.swift and TextDelivery.swift, tracing how Home paste chooses a destination and how delivery validates it. Reproduce the two-destination sequence with harmless scratch fields and synthetic text, recording the activated app and changed field. Done means either native evidence shows the risk is blocked and the investigation is documented, or the issue's acceptance checks pass without weakening guarded delivery.

Written by the indexing model from the issue text.

Description

bug

Outcome and evidence

P1 investigation, source-supported delivery risk; no native wrong-target paste reproduced. Home's Paste path can reuse the destination captured by an earlier opening of Quick controls. A historic destination is not a fresh choice for a later Home action.

Workbench Preview 2.3.0, build 20260928054038, source 00be555139f87d4557f48fcffc132b8621c251a2, unmodified source, macOS 26.5.1 (25F80), Apple M5, built-in display. Identity verified in the running app using Copy build details on 28 September 2026.

This audit did not paste into live message composers. The request's first step is a controlled two-destination reproduction, not a claim that user text was already misdelivered.

Source chain

Source links below pin the earlier audited commit 9578d8cf; the relevant paths were checked against installed 00be5551 and the described behaviour is unchanged. Source findings and native observations are distinguished below.

  • WorkbenchHome.swift invokes onPasteTranscript, wired to paste in main.swift.
  • main.swift captures menuTarget when the panel opens. It is not cleared on panel closure.
  • main.swift lines 477–483 resume that stored app/field; lines 518–529 use this route for paste.
  • TextDelivery.swift revalidates the reactivated field, but that does not establish that the current Home invocation selected this historical destination.

A historical field may still be valid. This is the specific risk to establish, not a request to bypass guarded delivery.

Controlled reproduction and bounded fix

  1. Use two harmless scratch fields in separate apps, A and B.
  2. Focus A; open and close Quick controls.
  3. Work in B, then open Home through the normal window route.
  4. Paste a synthetic recent transcript. Record activated app, changed field and receipt.
  5. Repeat without a prior panel visit and with a changed field in A.

If the old destination is reused, give the current invocation a fresh explicit destination lifetime and expire panel-only snapshots. If the runtime contract already blocks it, document that evidence and close this investigation rather than adding redundant state.

Acceptance

  • Home cannot resurrect an unrelated historical field; ambiguous delivery safely copies or asks for a current destination through the existing flow.
  • Panel paste and fresh toolbar dictation still reach their intended fields.
  • Test same app/different field, unavailable app, secure field, drawing active, focus changes and clipboard changes during confirmation.
  • Never submit automatically; preserve originals and guarded target validation.
  • Record native evidence with synthetic text before claiming the risk fixed.

Related: #134 and #7. This investigation is prioritised by potential consequence, not by confirmed occurrence.

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.