github murtaza-nasir/speakr v0.9.4-alpha
v0.9.4-alpha - Transcription templates, timestamp toggles, and sharing privacy

6 hours ago

Release Notes - v0.9.4-alpha

A feature release centered on transcription control, sharing privacy, and upload reliability, with new tooling for self-hosted text backends. It is backwards compatible with the v0.9.x line, and all database changes run automatically on startup.

New Features

  • Transcription templates (#309). Hotwords and the initial prompt are now managed together as reusable transcription templates. Save a template once, then apply it from the upload modal, a tag, a folder, or your account default. The upload modal groups the saved-template picker with the initial prompt and hotwords fields so it is clear that selecting a template fills both. A new Transcription Templates subtab in account settings provides full create, edit, set-default, and delete management, including a one-click set of starter templates.

  • Hints visibility and reprocessing (#309). The recording detail view shows which hotwords and initial prompt a recording was actually transcribed with, through a chip and popover. Reprocessing a recording pre-fills those values so a re-run starts from what was used before. Administrators can set a global default initial prompt and hotwords from a dedicated editor in the admin Default Prompts tab; these apply only when a user has not set their own.

  • Per-feature timestamp availability (#304). Summarization and chat each have an independent toggle that makes per-line timestamps available to the model, so the AI can reference specific moments in a recording (for example, a decision made around a particular time). Each toggle has a format selector that uses either a compact default layout or one of your saved transcript templates. Both are off by default to keep prompts short.

  • Prompt-cache token tracking. The admin System Statistics page now reports prompt-cache reads and writes for the current month and today, alongside the existing token usage. On a backend that reports cached tokens, this makes the saving from prefix caching directly visible.

Improvements

  • Shared-recording privacy (#314). When a recording is shared with you through a group tag or group folder, you now see only the tag or folder that granted access, marked with a share indicator and placed first, never the owner's other tags or folder. Manual shares expose no tags or folder at all. Recipients can also no longer be locked into a folder filter they do not own.

  • Reliable failed-upload retry (#313). Uploads that fail because of a network drop or a backend outage are now stored and retried automatically when the page loads or the connection returns, across all browsers. This replaces a Chromium-only background-sync path and fixes a case where the queued upload could not be stored at all.

  • Deep links to recordings (#301). Every recording is reachable at a direct /recordings/<id> URL that pre-selects it, and opening a recording keeps the URL in sync so links are shareable and bookmarkable.

  • Opt-in prefix-cache-friendly prompts (#316). A new PREFIX_CACHE_OPTIMIZED_PROMPTS option reshapes the title and summary calls so they share a byte-identical system message and transcript-first prefix. On a self-hosted backend with automatic prefix caching (such as vLLM, llama.cpp, SGLang, or TGI), the transcript is prefilled once and reused on the second call. It is off by default and has no effect on hosted APIs. It may become the default in a future release. See the model configuration guide for the server flags needed to enable and observe caching.

  • Upload modal consolidation (#309). Hotwords, the initial prompt, and the transcription model now live together in a single Transcription Options group in the upload modal, rather than being split across Advanced ASR Options.

  • Localized admin token statistics. The admin Token Usage section, including the new cache figures, is now translated across all seven supported languages.

Bug Fixes

  • Invalid date in admin settings. System setting timestamps now serialize as ISO strings, so the System Settings list shows real "Last updated" dates instead of "Invalid Date".
  • Template subtab underline. The active underline in the account Templates subtabs now follows the selected tab instead of staying on the first one.
  • Self-XSS hardening. User-supplied template names and descriptions are escaped when rendered in the template list.

Quality and Testing

  • Backend test coverage was raised substantially with a CI floor to prevent regressions, hardened through mutation testing, and frontend utility and persistence modules gained unit tests. The new prompt-cache columns were verified to migrate cleanly on both SQLite and PostgreSQL.

Compatibility

Backwards compatible with v0.9.x. Database migrations run automatically on startup, including two new prompt-cache columns on the token usage table and the new transcription-template and timestamp-preference fields. No configuration changes are required. The PREFIX_CACHE_OPTIMIZED_PROMPTS option is opt-in and defaults to off; existing prompt wording is unchanged unless you enable it.

Don't miss a new speakr release

NewReleases is sending notifications on new releases.