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

Meetings: verified build-ready defects after the 15 October map

Open
#377 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
12/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
macos, swift

Research direction

Start with section 6 of docs/research/2026-10-15-meetings-category.md, which holds the reproduction and fix sketch for each row. Good entry points are MeetingModels.swift:58 (the Safari catalogue entry) and MeetingAudio.swift:1009 (the route watchdog). The issue is a tracker of about 40 defects across many subsystems, so pick one row and confirm it on the Mac build. Done means each row is fixed and passes native acceptance on the installed Preview.

Written by the indexing model from the issue text.

Description

Verified, build-ready defects in the meeting capability, from the 15 October map in docs/research/2026-10-15-meetings-category.md (section 6). Each was claimed by a subsystem reader and kept only when two independent skeptics (correctness and reachability) both found it real at the train head 88c5e67. #374 built the ones not listed here; this issue holds the rest for the next build-ready pass. Every row names its owner and line; the record holds the reproduction and the fix sketch for each. Grammar for all of them: Quality, unless marked.

Severity Area Defect Where Cost
P2 detection-admission Safari calls are never offered: the catalogue's Safari entry cannot match the WebKit audio process MeetingModels.swift:58 M
P2 handoff-followup Copy instructions route can never return a result: Home says "no result yet" forever and loses Prepare follow-up… HandoffJobs.swift:843 M
P2 recognition-live Live-completed two-source meetings never drop microphone echoes; on laptop speakers the other side's words are saved as You LiveVoiceSession.swift:68 M
P2 recognition-live Snapshots publish at ≥10 Hz and every publish rebuilds and remeasures the whole transcript on the main thread LiveVoiceService.swift:232 M
P3 audio-capture Hitting the two-hour ceiling (or an overlap stop) also reports 'could not be written and are missing' for the rejected packet MeetingAudio.swift:273 S
P3 audio-capture FaceTime, Phone and Safari picker entries tap a bundle whose call/media audio plays in a service the tap excludes MeetingModels.swift:55 S
P3 detection-admission Snooze, Not now and Change source suppress offers invisibly; switching detection off and on does not clear a snooze MeetingDetection.swift:152 S
P3 detection-admission A running app reads as 'no longer available' when its representative process changes MeetingDetection.swift:121 M
P3 detection-admission Source caption asserts headphone voices are recorded; the written unverified-app caution is dead code MeetingWorkspaceView.swift:275 S
P3 detection-admission 'Finish when call audio ends' caption says only microphone-only recordings finish manually; any unrecognised app never auto-finishes MeetingDetection.swift:105 S
P3 detection-admission A stale metadata error is re-raised every 3 s as the page's problem, replacing other problems, until a successful refresh MeetingModel.swift:720 S
P3 handoff-followup Prepare follow-up… → Start task loops on an error when the meeting's earlier follow-up failed, was stopped or was interrupted HandoffJobs.swift:792 S
P3 handoff-followup A long meeting hits the 100,000-character connected limit with a message that cannot be followed for one transcript HandoffRunReadiness.swift:47 M
P3 lifecycle-recovery-storage "Free about 500 MB" promises a safe meeting; two PCM tracks exhaust that budget in roughly half an hour MeetingModels.swift:306 S
P3 lifecycle-recovery-storage After History commits but the final .committed journal write fails, Meetings says saving could not finish and offers Transcribe again MeetingRecovery.swift:267 S
P3 lifecycle-recovery-storage Automatic finish saves the meeting with no note that Workbench ended it MeetingModel.swift:668 S
P3 lifecycle-recovery-storage The two-hour cut arrives with no warning and counts paused and reconnecting time MeetingModel.swift:651 M
P3 recognition-live A continuous speaker is split into a new 'You:' paragraph at every pause over 0.8 s, in the live view and the saved transcript LiveVoiceSession.swift:71 S
P3 recognition-live Batch echo drop uses symmetric Jaccard, so a short microphone fragment inside a long remote utterance is never dropped MeetingConversation.swift:121 S
P3 recognition-live Format-2 'original wording' zips both speakers' words together by start time LiveVoiceSession.swift:56 S
P3 ui-surfaces Keep recording is not offered on the menu-bar panel or Home during the auto-finish countdown MeetingWorkspaceView.swift:9 S
P3 ui-surfaces Panel and Home row read 'Meetings · finishing' with 'Stop processing' while a meeting is starting MeetingWorkspaceView.swift:11 S
P3 ui-surfaces Live transcript labels every turn 'You' (or 'Others') for single-source recordings; the saved text has no labels MeetingWorkspaceView.swift:143 S
P3 ui-surfaces History row and Review transcript claim 'Original recording' from the transcript's purpose alone; Review recording then fails CaptureHistoryView.swift:93 S
P3 ui-surfaces The proactive offer panel is pointer-only: not announced, no keyboard focus, no Escape MeetingWorkspaceView.swift:426 M
P3 ui-surfaces No warning before the two-hour limit on any surface; the meeting ends itself MeetingModel.swift:651 S
P4 docs-site-registry Registry omits the meeting page's Sound Settings… opener while registering Dictate's surfaces.json:294 S
P4 docs-site-registry README never mentions Meetings README.md:10 S
P4 lifecycle-recovery-storage Derived segment WAVs are never removed after a meeting commits MeetingRecovery.swift:266 S
P4 lifecycle-recovery-storage Every recovery refresh fully inspects every session, including reading and decoding each committed meeting's live journal twice MeetingRecovery.swift:31 S
P4 recognition-live Details receipt says 'Apple Intelligence' even when both Apple Intelligence calls failed or timed out LocalDetailSuggestions.swift:44 S
P4 ui-surfaces Menu-bar panel shows two 'Finish meeting' controls: the Dictate row relabels itself and the Meetings row repeats it WorkbenchControlTool.swift:201 S
P4 ui-surfaces Outside the window a meeting has no elapsed time: the pill hint, chooser row and panel row omit it FloatingToolbar.swift:211 S
P4 ui-surfaces New recording… leaves the previous meeting's full transcript on the page under Start recording MeetingWorkspaceView.swift:141 S
P4 ui-surfaces Home's Current work meeting row lacks the red record symbol, elapsed time and row style the other recordings use WorkbenchHome.swift:726 S
P4 ui-surfaces Recording review says 'Finish the current capture or reading' although Read is retired MeetingRecordingReview.swift:232 S

Found between the subsystems by the completeness critic

  • P2 The route watchdog ends a recording whose chosen app stops delivering buffers, pre-empting the guarded Finish and tearing the microphone down every 2 s meanwhile (MeetingAudio.swift:1009). checkRoutes begins recovery when any recorder has had no buffer for 12 s (recorders.contains(where: { ($0.secondsSinceLastBuffer ?? .infinity) > 12 }), MeetingAudio.swift:1009-1012; secondsSinceLastBuffer is nil until a first buffer, 444-447). beginRecovery bumps the generation, marks a discontinuity on BOTH tracks and calls restoreRoutes (956-963), which runs disconnectRoutes (stops the AVAud
  • P3 A long two-track meeting on the batch path silently loses its You/Others labels past 2,000 utterances on one track (MeetingConversation.swift:53). writeUtterances throws once a track yields 2,000 utterances (guard files.count < maximumUtterances else { throw … }, MeetingConversation.swift:31, 53-55); utterances split on 0.6 s of silence (29), so a talkative speaker reaches the cap in roughly two hours. separatedConversation catches every error and returns nil (MeetingRecovery.swift:314-335), and run() then saves `text: conversation ?? text

Order of value, from the record: a real call app leaving a call while Workbench records settles the route-watchdog-versus-guarded-Finish question before any of its fixes; then the handoff P2 (Copy instructions never returns a result to Home), the live echo drop, the 10 Hz snapshot rebuild, the Safari offer, and the two-hour cut with no warning. Everything here stays open until native acceptance on the installed Preview.

Refs #280

Dominant language
Swift
Stars
0
Forks
1
Avg merge
8h 16m
Merged PRs (30d)
210

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.