Skip to content

fix(voice): install Parakeet from archives with ./-prefixed entries - #461

Merged
johnmatthewtennant merged 1 commit into
mainfrom
jtennant/henry/parakeet-dot-prefix
Nov 4, 2026
Merged

johnmatthewtennant merged 1 commit into
mainfrom
jtennant/henry/parakeet-dot-prefix

Conversation

@johnmatthewtennant

@johnmatthewtennant johnmatthewtennant commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

A fresh Parakeet install fails with "local voice asset archive omitted a pinned file", so a new user can't turn on Voice with local speech recognition. The sherpa-onnx release archive names its entries ./sherpa-onnx-nemo-parakeet_tdt_ctc_110m-en-36000-int8/model.int8.onnx, and Path::strip_prefix keeps the leading . component, so no entry matched the pinned directory (local_assets.rs). Existing installs are unaffected because they skip extraction.

Extraction now strips a leading current-directory component before matching. The size and checksum checks on each pinned file are unchanged.

Reviewer-reproducible example

On macOS, with the published archive (sha256 17f945007b52ccd8b7200ffc7c5652e9e8e961dfdf479cefcabd06cf5703630b):

cd src-tauri
cargo build -p berd-call --bin berd-call
./target/debug/berd-call models parakeet install --store-root "$(mktemp -d)/store"

Before this change the last line is berd-call models.parakeet.install failed: local voice asset archive omitted a pinned file. After it, the result is "outcome":"installed","ready":true with model.int8.onnx, tokens.txt and MODEL_LICENSE.txt under native-voice-v2/stt. I ran both on a Blox macOS workstation.

Validation

cargo test -p berd-call --lib local_assets::tests::archive_extraction_accepts_entries_under_a_leading_current_directory
  before the fix: FAILED (local voice asset archive omitted a pinned file)
  after the fix:  ok
cargo test -p berd-call --lib local_assets     13 passed
cargo fmt -p berd-call -- --check              pass

The full berd-call suite has two failures on Blox (outbound::tests::acknowledged_suspension_does_not_exhaust_the_drain_deadline, siri::tests::exact_uninstalled_voice_is_rejected_without_synthesis) that fail identically without this change.

🤖 Generated with Claude Code

The sherpa-onnx release archive names its entries
`./sherpa-onnx-.../model.int8.onnx`. `Path::strip_prefix` keeps the
leading `.` component, so no entry matched the pinned directory and a
fresh Parakeet install failed with "local voice asset archive omitted a
pinned file". Strip a leading current-directory component first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: John Matthew Tennant <jtennant@block.xyz>
Co-authored-by: Henry <a0d9f90f86da5f023099d22b8e3599af162d9423a422d8f385a12815de879cf2@buzz.block.builderlab.xyz>
@johnmatthewtennant
johnmatthewtennant marked this pull request as ready for review October 30, 2026 17:05
@johnmatthewtennant
johnmatthewtennant requested a review from a team October 30, 2026 17:05
@kleinbem kleinbem mentioned this pull request Oct 30, 2026
8 of 13 tasks

@morgmart morgmart left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Automated code review

APPROVE. Fresh static Engineering review of the exact prepared three-dot comparison found no publishable changed-line defects. The extraction change removes only one leading current-directory component before applying the existing pinned archive-directory and exact-file checks, and the discriminating regression test covers the changed behavior. Supplied GitHub evidence is structurally valid and reports successful check runs at the reviewed head SHA; required checks still govern merge readiness.

Deterministic publication result: 0 blocking and 0 non-blocking inline finding(s) publishable; 0 duplicate(s) suppressed; 0 blocking screenshot-evidence requirement(s) in this review body.

Pending checks: 1 check(s) are not complete.

This approval reflects the completed code review only; merge readiness remains governed by the repository's required checks.

@johnmatthewtennant
johnmatthewtennant merged commit c4f98fc into main Nov 4, 2026
11 checks passed
@johnmatthewtennant
johnmatthewtennant deleted the jtennant/henry/parakeet-dot-prefix branch November 4, 2026 15:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants