Home Paste: verify and eliminate reuse of a historical menu-panel destination
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 45/100
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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
- Use two harmless scratch fields in separate apps, A and B.
- Focus A; open and close Quick controls.
- Work in B, then open Home through the normal window route.
- Paste a synthetic recent transcript. Record activated app, changed field and receipt.
- 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.
- Lingua principale
- Swift
- Stelle
- 0
- Fork
- 1
- Merge medio
- 8h 16m
- PR unite (30g)
- 210
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Ship-Work/workbench
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue help wanted
Difficoltà 2/5 Mezza giornata Idoneità per principianti 74/100
Ship-Work/workbench#29 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 12/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Ship-Work/workbench
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
[BUG] File transcription skips audio chunks shorter than one secondForse già presa @sabbah13 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
altic-dev/FluidVoice#1161 ·
I maintainer di solito rispondono entro 1 giorno
-
swift.md: `Date(myString, strategy: .iso8601)` example omits `try` — the initializer is throwingAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
githubnext/desktop-tools#25 ·
I maintainer di solito rispondono entro 1 giorno
-
core: RAC_LLM_OPTIONS_DEFAULT.min_p disagrees with the IDL's annotated defaultForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug core p3
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
RunanywhereAI/runanywhere-sdks#1083 ·
I maintainer di solito rispondono entro 5 giorni