Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

One name per action and counts that agree: Export current text, Finish dictation, '1 word'

Aperta
#357 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
45/100
Tipo di issue
Refactoring
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
python, swift

Direzione di ricerca

Start with the export call sites in CaptureHistoryView.swift (around line 163) and TranscriptReview.swift (around line 132), plus the save-panel text and default filename in AppModel.swift and Core.swift. For the dictation labels, check WorkbenchHome.swift (around lines 713, 840 and 844), ToolbarNextAction.swift, and the pinned check in WorkbenchControlChecks.swift. Done means the --check-core checks pass for the new filename helper and wordCountLabel, scripts/check-surfaces.py and its test pass, and the renamed labels appear in the greps listed in the issue.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug

Outcome: the same action uses the same words wherever it appears, an export suggests a filename that says which transcript it holds, and a one-word dictation reads '1 word'.

Evidence (train head 14d06bc)

Export

  • History's More menu and context menu say 'Export cleaned text…' (CaptureHistoryView.swift:163). Review transcript says 'Export current text…' (TranscriptReview.swift:132). Both call AppModel.exportCapture.
  • The save panel says 'Save the cleaned transcript…' (AppModel.swift:1057-1059). That is untrue for a two-track meeting, whose text is the You/Others conversation (docs/design.md:176), and for a dictation with cleanup off. The contract's own word is 'current text' (docs/workbench.md:156).
  • Every export suggests 'Workbench Transcript.txt' (Core.swift:81, AppModel.swift:1055), so a second export into the same folder offers to replace the first. Snap's Save already suggests a name from kind and date (SnapModel.swift:457, :590).

Dictation button

  • Home's Current work shows Button("Stop") (WorkbenchHome.swift:713). The toolbar, panel and chooser say 'Finish dictation' for the same action (ToolbarNextAction.swift:222, pinned at WorkbenchControlChecks.swift:57). The other Current work rows name their action in full: 'Stop narration', 'End presentation', 'Stop task'.
  • Home's guide button shows 'Start dictating', but its accessible name is 'Start recording' (WorkbenchHome.swift:840, :844), so Voice Control's 'click Start dictating' finds nothing.
  • Dictate's microphone is also named 'Start recording' (Views.swift:214), the same name as Meetings' button.

Word count

  • These sites show '(n) words' with no singular: Views.swift:161, CaptureHistoryView.swift:103 and its VoiceOver label at :106, and TranscriptReview.swift:98.
  • Home's shelf pluralises by hand (WorkbenchHome.swift:511), as every other count in the app does.
Change
  1. Export
    • CaptureHistoryView.swift:163 becomes 'Export current text…'.
    • The panel message becomes 'Save the current text as a UTF-8 text file.'
    • The rawValue of TranscriptExportVersion.cleaned becomes 'Current text'; keep the case name.
    • Replace defaultFilename with a pure TranscriptExport.filename(purpose:date:timeZone:) that returns, for example, 'Meeting 2026-10-15 at 10.00.txt'. Build it with a gregorian calendar and the en_US_POSIX locale so it never contains '/' or ':', and never include captured words, a person or a company.
    • Dictate's 'Save text…' is a different action and stays unchanged.
  2. Dictation button
    • Current work's Stop becomes 'Finish dictation'.
    • The guide button reads Cancel, Finish dictation or Start dictating, with .accessibilityLabel(model.phase == .requesting ? "Cancel microphone request" : title) so the spoken name follows the visible one.
    • Dictate's idle accessible name becomes 'Start dictating'.
    • In docs/surfaces.json, run check-surfaces --update, then re-enter kind, belongsTo and note by hand for the renamed entries.
  3. Word count
    • Add TextRules.wordCountLabel(_ count: Int) -> String beside wordCount, and use it at the four sites and at Home's shelf. Do not add a generic pluraliser.
  4. Left for the maintainer, not changed here: the Names example (docs/workbench.md:90, 'Stop dictation') and the panel row text (:205, 'Dictate / Stop') disagree with the code's 'Finish dictation'.
Acceptance
  • --check-core:
    • filename returns 'Meeting 2026-10-15 at 10.00.txt' for a fixed date and time zone.
    • Two meetings and a prompt at different minutes get distinct names, and no name contains '/', ':' or captured words.
    • The current export version reads 'Current text'.
    • wordCountLabel returns '0 words', '1 word' and '2 words' for 0, 1 and 2.
  • Greps confirm:
    • no ) words" literal is left outside checks;
    • no export label or panel message says 'cleaned';
    • Button("Stop") and 'Start recording' are gone from WorkbenchHome.swift and Views.swift.
  • python3 scripts/check-surfaces.py and scripts/test-check-surfaces.py pass.
  • Home's current-work and first-dictation renders show 'Finish dictation' without clipping at the minimum window width.
Value before scope
  1. Outcome: one name per action (the Names rule, docs/workbench.md:90), and correct grammar on the most common short dictations.
  2. Simpler route: adopt the names the code and checks already use.
  3. Owner: the existing labels, plus one pure helper each for the filename and the count.
  4. Complexity: strings, two pure functions and a registry reclassification.
  5. Verified by: --check-core, check-surfaces and renders.

Grammar: Quality.

Refs #134


Build-ready record from the 15 Oct round-three pass (delight and code-base value), verified against the release train head 14d06bc by an independent skeptic per item. Closes only after native acceptance.

Lingua principale
Swift
Stelle
0
Fork
1
Merge medio
13h 40m
PR unite (30g)
221

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Ship-Work/workbench

Tutte le issue di Ship-Work/workbench

Issue simili

Altre issue su Swift

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.