airvzxf / airvzxf/telora

decision: adopt voxora-local + voxora-vad in telora; retire telora-models?

Open
#149 0 comments 0 reactions 0 assignees View on GitHub
pending-human phase:mid-term
Dominant language
Rust
Stars
0
Forks
0
Avg merge
50m
Merged PRs (30d)
48

Description

Operator-decision issue — does not block the 0.5.0 release. Tracked separately so the operator can think about scope without rushing.

## Context

`voxora 0.5.0` (airvzxf/voxora#117) shipped two new publishable crates that telora does not yet consume:

- **`voxora-local`** — local-directory `ModelSource` (closes voxora#49). Implements the hardened `LocalSource` (path-traversal guard, symlink-following refusal, `O_NOFOLLOW` open, honours `ResolveOptions::max_bytes` + `max_id_length`, opaque `Debug`). The new `Registry::with_builtin_descriptors_and_chained_source(LocalSource)` helper (voxora-registry 0.5.3) is the canonical "local-first, HF-on-miss" recipe.
- **`voxora-vad`** — voice-activity detection (sliding-window RMS, debounce). Closes voxora's long-standing "auto-stop on silence" gap.

Separately, `telora-models` is already marked for retirement in `TODO.md` (it is a thin wrapper that delegates every operation to `voxora-hf`; the `voxora` CLI is the recommended interface going forward).

## Decisions needed

| Decision | What it changes | Recommendation |
|---|---|---|
| **Adopt `voxora-local`** in telora-daemon so an operator can pre-vendor weights under `[paths] voxora_local_dir = "..."` and have the daemon prefer those over an HF download. Closes a long-running operator request for air-gapped / hermetic deployments. | New config key + new resolve path. | Open as a follow-up EPIC once #142 lands. Use `with_builtin_descriptors_and_chained_source(LocalSource)` per voxora-registry 0.5.3. |
| **Adopt `voxora-vad`** in telora-daemon so recording auto-stops on silence (or so the daemon trims silence before transcribe). | UX change + integration with the audio capture loop. | Open as a follow-up EPIC. Requires a UX decision: auto-stop on silence vs. trim-silence-before-transcribe vs. both. |
| **Retire `telora-models`** entirely now that `voxora list` / `voxora download` are the canonical entry points. | Drops one of the four release binaries; updates README, packaging recipes, and the PKGBUILD optional-deps list. | Currently held back because every existing operator script references `telora-models`. Recommend shipping v0.5.0 with `telora-models` intact and opening a 0.6.0 retirement EPIC once voxora-cli parity is verified on every distro in `COMPATIBILITY.md`. |

## Why this is `pending-human`

All three decisions are UX / packaging scope decisions, not technical blockers. The orchestrator can implement any of them, but the operator owns the UX surface and is best placed to decide what ships in which release. Each item has a clear technical path; what is missing is the go/no-go.

## Labels

- `pending-human` — operator decision required.
- `phase:mid-term` — these are mid-term scope decisions, not part of the 0.5.0 release.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.