Skip to content

Parley 0.7.1

Choose a tag to compare

@fmasi fmasi released this 10 Jul 09:24
· 97 commits to main since this release
427e159

Parley 0.7.1

Fixed: speaker misattribution at speaker-change boundaries (#120)

The core diarization/transcription fix in this release. Previously, a single ASR transcript
segment spanning a genuine speaker change — most commonly one speaker's short question
immediately followed by the other's longer answer, with no gap between them — was assigned
whole (text and audio-playback range) to whichever speaker had the greater time-overlap.
The other speaker's words were silently absorbed into the wrong person's block.

Fixed by retaining the word-level timing both transcription engines already compute internally
(previously discarded after initial segmentation) and re-splitting any segment whose words cross
a diarized speaker-change boundary at the true word boundary, before speaker labels are assigned.
Segments within one speaker, or lacking word-level timing, are unaffected — no behavior change
for the common case.

Device-validated against a real recorded interview (confirming the exact previously-misattributed
segment now splits correctly) and again live on a real call.

Fixed: rare double-launch on startup (#109)

Replaced an NSRunningApplication-based single-instance check (which could race during launch)
with a kernel-level file lock — eliminates a rare path where two copies of Parley could start
at once.

Fixed: TCC permissions dropped on update

Update installs now use a stable code-signing identity instead of re-signing ad-hoc on every
build, so Microphone and Screen Recording permission grants survive future auto-updates instead
of silently being revoked.

Fixed: raw speaker IDs leaking into transcripts (#113)

The cross-chunk speaker reconciler now always mints a friendly Speaker N label instead of
occasionally leaking the diarizer's internal spk_N identifier into transcript output.

Fixed: system-only recordings archiving as raw WAV (#105)

Recordings using only the system-audio stream now correctly archive to compressed .m4a like
all other recordings, instead of leaking an uncompressed .wav to disk.

Internal / reliability

  • Core Audio system-audio tap hardening: no leading-frame drop at capture start, no pitch/rate
    artifact on output-device switch mid-recording, and a fixed teardown race around device
    rebuilds.
  • CFBundleVersion now derives from the HEAD commit timestamp, monotonically increasing across
    branches — fixes a case where a maintenance release could ship a lower build number than an
    earlier one and break update detection.
  • Added an offline end-to-end Sparkle update dry-run tool (scripts/sparkle-dryrun.sh) and a
    release-time guard that refuses to ship a build signed with the wrong key or without the
    stable signing identity.