Skip to content

Latest commit

 

History

History
88 lines (71 loc) · 5.24 KB

CHANGELOG.md

File metadata and controls

88 lines (71 loc) · 5.24 KB

Changelog

0.4.4 - Unreleased

0.4.3 - 2026-09-14

Highlights

  • macOS downloads are signed and notarized.
  • Homebrew installs verified native archives on Apple Silicon, Intel, and both Linux architectures.

Fixed

  • Release binaries for macOS are now Developer ID signed and notarized, so direct downloads pass Gatekeeper.
  • Homebrew release updates now use verified binary archives and checksums for both macOS and Linux architectures, including Linux ARM.

Changed

  • Release archives retain their architecture-specific names; the universal macOS archive now uses sag_<version>_universal_darwin_all.tar.gz, and SHA256SUMS replaces the versioned checksum manifest and per-archive checksum files.

0.4.2 - 2026-09-13

Fixed

  • macOS release builds now explicitly retain the existing macOS 15 minimum when the build runner or SDK changes.
  • Source-install documentation now requires Go 1.25+, matching go.mod.

Changed

  • Updated Oto to 3.4.1 and purego to 0.11.0 for upstream platform and FFI fixes; refreshed Go/Node setup and lint tooling while retaining Go 1.25+ support. CI now also verifies the docs build.

0.4.1 - 2026-07-01

Fixed

  • Explicit --format values now override output-extension inference, preserving the requested ElevenLabs audio format. (#21/#22, thanks @100yenadmin)

0.4.0 - 2026-06-11

Added

  • Added live-tested 60db provider support via /default-voices, /myvoices, and /tts-synthesize, including bounded NDJSON decoding, incomplete-response rejection, and PCM-to-WAV playback. (#20, thanks @manishEMS47)

Changed

  • Release archives now include target-specific macOS and Linux assets for Homebrew and aqua installers.

0.3.0 - 2026-05-06

Added

  • Voice discovery: semantic --query over name/description/labels, repeatable --label filters, preview playback via --try, metadata caching, and server-side name search when supported.
  • Bare sag now reads piped stdin like macOS say, so echo "hello" | sag speaks the text without requiring the speak subcommand. (#14, thanks @atdrendel)

Fixed

  • --format and .ogg/.opus output paths now request native ElevenLabs Opus output instead of always receiving MP3. (#16, thanks @derspotter)
  • Long TTS generation no longer hits hidden 60s/90s internal timeouts; use --timeout or SAG_TIMEOUT when you want sag to enforce a limit. (#17/#18, thanks @sumurtk2)
  • --no-play and --no-stream are now accepted aliases for --play=false and --stream=false.
  • macOS playback now defaults to afplay for better AirPlay routing, with --player oto / SAG_PLAYER=oto available as a fallback. (#15, thanks @s0up4200)

0.2.2 - 2026-01-24

Fixed

  • Voice ID resolution respects --voice-id and avoids misclassifying long names; --rate now overrides --speed validation. (#7, thanks @joelbdavies)
  • Voice name matching now uses exact/substring checks without falling back to unrelated voices; voice search is handled client-side. (#8, thanks @joelbdavies)
  • sag help and sag completion no longer default to speak. (#4, thanks @GiGurra)

Added

  • --api-key-file and ELEVENLABS_API_KEY_FILE/SAG_API_KEY_FILE support for loading API keys from a file. (#6, thanks @GiGurra)

0.2.1 - 2026-01-01

Fixed

  • -o/--output now disables speaker playback by default unless --play is explicitly set. Previously -o saved to file AND played through speakers, which was confusing.

0.2.0 - 2025-12-19

Added

  • Voice control flags: --stability, --similarity/--similarity-boost, --style, --speaker-boost/--no-speaker-boost.
  • Request controls: --seed, --normalize (auto|on|off), --lang (ISO 639-1).
  • --metrics to print basic request stats (chars/bytes/duration) to stderr.
  • sag prompting command and README section with prompting tips.

Changed

  • Default model is now eleven_v3 (override with --model-id eleven_multilingual_v2 for a stable baseline).

0.1.1 - 2025-12-19

Changed

  • Release metadata only (patch bump).

0.1.0 - 2025-12-08

Added

  • Initial release of sag ElevenLabs TTS CLI with macOS say-style flags.
  • Streaming default playback to speakers with optional file output; cross-platform audio via go-mp3 + oto.
  • Voice listing (sag voices) and voice resolution by name/ID, including ? to list.
  • macOS say compatibility: -v/--voice, -r/--rate, -f/--input-file, -o/--output, plus accepted no-op flags.
  • Auto-routing bare sag ... text/flags to speak subcommand, including npm/pnpm -- pass-through support.
  • Speed control (--speed or --rate), latency tier selection, model/format overrides with extension inference.
  • Default voice fallback to first available when none provided; env support ELEVENLABS_VOICE_ID or SAG_VOICE_ID.
  • Config via ELEVENLABS_API_KEY/SAG_API_KEY; --api-key and --base-url overrides.
  • Tests for format inference, text sourcing, voice resolution helpers, and default speak routing behavior.
  • Help/README improvements: feature overview, examples for subcommand-less usage, and voice discovery guidance.
  • Homebrew tap formula (brew install steipete/tap/sag) and release playbook.
  • CI workflow (lint + tests) and golangci-lint config.
  • Documentation: README, docs/spec.md, and usage examples.
  • Version flag (--version / -V) reporting 0.1.0; help available without API key.