Foundation H: retire Read while preserving text and shared audio foundations
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
- 25/100
Direzione di ricerca
Read the canonical brief at docs/mac-foundation.md and the decision in PR #278 first. Then trace the named entry points, especially AppModel, Core.swift, VoicePreferences/main.swift, and scripts/release/preview.py; follow actual callers rather than filename matches. Run the affected tests and packaged-bundle checks. Done means Read is removed, dormant state and exact legacy text are preserved, and the listed shared audio, Dictate, and prompt-insertion behaviors still work.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Retire Read, Workbench's owned text-to-speech capability, from the focused Mac product. This is the decided result of the adversarial review in PR #278, not another Read refinement or an assertion that all its existing code is broken. The ordinary listening job has a capable native Mac route; a distinct recurring Workbench listening/export job has not been established. Package H remains under #7.
Removal boundary
- Read is route
speak, toolbar.read, shortcut id 6. Remove its page/sidebar, panel/toolbar/current-work entries, Window menu, shortcut catalogue and registration of previously enabled keys. Safely translate old toolbar modes/routes. Do not renumber other shortcuts. - Remove contextual Read aloud from History, Library and assistant results. Keep visual answer inspection, labeled Review result, Copy, export and original records.
- Remove selected-text Services registration/admission in both edition bundles. Update
scripts/release/preview.pyand its tests, which currently require that service. Keep general Services, signing and identity checks. - Remove TTS provider/voice/model-download setup and public promises. Stop startup/activation voice enumeration, TTS Keychain status probing, catalogue requests, neural discovery/load/download, preview, render/export and production developer-command admission. Stale callbacks/Services/preferences cannot restart it.
- No Advanced Read switch, contextual-only TTS, replacement Listen tool, permanent legacy page or automatic invocation of macOS speech. Brief help may point to Apple's native Read & Speak and explain its differing selection behavior.
Preserve narrowly
Core.SavedStatestores reading text/voice/rate alongside Dictate draft/original text, History, corrections and unresolved delivery. Keep compatible decoding and round-trip dormant fields.- For a nonempty old
speechText, preserve the exact Unicode text in one ordinary Library-linked UTF-8 file, with idempotent identity, atomic writes and file/reference readback. Keep the original field. Do not truncate, normalize, overwrite Dictate, fabricate a transcript or duplicate the item on relaunch. A failed migration preserves source with a contextual Library retry; empty/fresh profiles get no legacy UI. - Read permits one million characters; Library prompts only 50,000. Use a file resource, not a prompt or new reading archive.
- Keep explicitly exported audio files untouched. Generated audio is transient in inspected source; do not scan arbitrary folders or preserve every temp file. Use existing update/shutdown admission for owned generation/export and reject late completions.
- Inert TTS preferences/keys/caches may stay without a management panel. Do not read/send/delete credentials as incidental cleanup. Cache deletion is optional and only the verified inactive Pocket TTS subtree, never the shared FluidAudio parent or system voices.
Shared foundations that stay
ReadbackModel/ReadbackView, route readback and shortcut id 5 are Snap & Talk, not Read. Keep them, Dictate/Meetings recognition, Parakeet/FluidAudio, original meeting/narration playback, VoiceOver, clipboard/text delivery and prompt insertion. The existing update-busy projection groups prompt insertion with reading; preserve the surviving guard. No broad audio/plugin-framework rewrite.
Starting points: AppModel, Core.swift, ReadSelectionService, WorkbenchHome/Views, WorkbenchControlTool/toolbar projections, HistorySelectionControls, DemoLibraryView, VoicePreferences/main.swift, ReadingProviderView/NeuralVoiceViews, scripts/Info.plist, scripts/release/preview.py. Trace actual callers, not filename matches.
Acceptance X3
Fresh and upgraded signed bundles have no Read action, provider work, model download or Service admission. Upgrade a fixture with enabled id 6, old toolbar mode, selected online/neural provider and a large Unicode draft; the exact text is in one normal Library file through two relaunches. Inject file/Library save failure and verify no false completion or source loss. Unrelated original text/history/recovery and exported audio remain intact. Dictate, Meetings original playback, Snap & Talk id 5, VoiceOver and prompt-insertion update deferral still work. Check actual packaged Service metadata, negative dispatch and late callbacks as well as registry/gallery. Replace obsolete feature-success tests with removal/preservation tests in the same bounded change.
Hold Read-only #267 from the refinement batch; preserve its history and independently useful shared fixes. Reconcile #17/#161/#173 as superseded Read acceptance or preservation work, never as fixed by documentation. Coordinate AppModel, Library, main and toolbar edits with #279/#280/#281; one writer per shared file. This can release independently once its affected acceptance passes and does not wait for Present hardware.
Decision and evidence: spec PR #278, canonical brief, adversarial research.
- Lingua principale
- Swift
- Stelle
- 0
- Fork
- 1
- Merge medio
- 14h 21m
- PR unite (30g)
- 208
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
-
A second copy held at "Another Workbench is already running" still runs the pack update checkAperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Ship-Work/workbench
Issue simili
-
🎉 Add PandaPalAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 62/100
jaywcjlove/awesome-mac#4192 ·
I maintainer di solito rispondono entro 1 giorno
-
@-mention suggestions don't match a display name typed without its spaces (Element Web does)Forse già presa @dwong716 l’ha presa oggi. ApertaT-Defect
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
element-hq/element-x-ios#6457 ·
I maintainer di solito rispondono entro 1 giorno
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
manaflow-ai/cmux#32617 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
skiptools/skip-fuse-ui#166 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
runjuu/InputSourcePro#153 · 1 commento ·