Skip to content

Releases: daniel-om-weber/stenograf

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 30 Jul 22:20

Stenograf is a desktop application now. Bare steno in a terminal opens the
Qt window, as do the app icon on macOS, the Start-menu entry on Windows and the
application-menu entry on Linux. The terminal UI is gone: one real UI, and one
thin line-oriented CLI for scripts and SSH.

Upgrade with uv tool install --upgrade stenograf, or re-run the install
one-liner. steno setup retires the old terminal launcher on its own.

Breaking changes

  • The Textual terminal UI is removed. Every screen it had exists in the
    desktop app. steno start, steno transcribe and the other subcommands
    still work exactly as before and now always stream plain lines, which is what
    headless and SSH use should use. --plain is accepted and does nothing.
  • PySide6 is a base dependency, which raises the install floor on Linux:
    glibc 2.34 on x86_64, glibc 2.39 on arm64, and no musl (Alpine) — Qt ships no
    wheels for those. If you are on one of them, stay on 0.4.0. macOS and Windows
    are unaffected. The download is about 110 MB larger.
  • Notes are generated as markdown against a template instead of as JSON.
    The template is now the schema, so a protocol layout can vary per meeting and
    per language. Consequences:
    • transcript.notes.json is no longer written, and a stale one from an
      earlier version is removed when notes are regenerated.
    • Action items are no longer grouped by owner in the vault note; they
      appear as the model wrote them.
    • The vault note gains the Highlights section and inline [h:mm:ss]
      timestamps, both of which it used to drop.
    • A meeting with no decisions now gets an empty ## Decisions heading rather
      than no heading at all, because the template asks the model for every
      section. Empty sections are reported as warnings.

New

  • Meeting presets. A recurring kind of meeting becomes one named section in
    settings.toml[meetings.controlling] — carrying its title, language,
    vocabulary, notes backend, template and instructions, and selected per run
    with --preset controlling on start, transcribe and notes. steno presets lists what is defined. A preset's vocabulary reaches decode-time
    biasing, so it changes the transcript, not only the notes.
  • Per-run notes setup without editing settings.toml: --notes-backend,
    --notes-model and --instructions FILE on steno start and steno transcribe, plus --instructions on steno notes.
  • A menu-bar / tray mode. Closing the window keeps a running meeting alive
    and leaves the icon in the menu bar; steno --gui --tray starts with no
    window at all. Quitting mid-meeting waits for the transcript to finalize and
    says so.
  • The notes command backend gets its position, not its payload: it runs in
    the meeting folder with STENOGRAF_MEETING_DIR and STENOGRAF_OUTPUT_HOME
    set, so an agentic CLI can fetch whatever context its instructions point at.

Fixed

  • Clipped word onsets. A word belonged to the window containing its
    midpoint, so the leading word of an utterance the VAD noticed late was
    dropped even though it had already been decoded — "Eine Frage habe ich noch"
    arrived as "Habe ich noch". Measured across six meetings: +147 words per
    61 000, 133 added regions, one removed. Purely additive.
  • Echo cancellation on Windows was effectively dead. WASAPI's loopback tap
    is the slower transport and both channels were stamped on arrival, so the
    canceller was handed a reference labelled after its own echo, and its delay
    estimator only searches backwards. 2.6 dB → 13.7 dB ERLE, and two lines of
    far-end speech attributed to the local speaker → none.
  • The notes input budget ignored the system prompt, so a large
    instructions file silently overran the declared ceiling on every call. It is
    now charged against the budget, and too little remaining room is a loud error
    naming the instructions file rather than a silent overrun.
  • Windows launcher identity. The Start-menu and Desktop entries are real
    shortcuts now, and the app sets its AppUserModelID, so a finish notification
    arrives as a toast titled Stenograf rather than pythonw.exe.
  • Closing the desktop window no longer waits out a notes run that can take
    half an hour; the transcript is already saved and steno notes --last
    regenerates.
  • steno settings show was missing two rows it claimed to print:
    [asr] boost and [output] record_audio — the latter being the setting that
    decides whether raw audio is kept on disk.

Known gaps

  • The markdown notes path has been exercised on macOS (mlx) and on the command
    backend, but not yet against Ollama, which is the notes default on Linux
    and Windows. A notes failure is non-fatal and self-labelling — the transcript
    is written first and steno notes retries — but if you generate notes
    through Ollama, this release is where that path is new.
  • Linux echo cancellation may have the same arrival-timestamp misalignment that
    was just fixed on Windows. It is unmeasured; the AEC numbers in the docs are
    all macOS.

Full changelog: v0.4.0...v0.5.0

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 26 Jul 09:44

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 09:00

Full Changelog: v0.2.2...v0.3.0

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 12 Jul 23:01

Full Changelog: v0.2.1...v0.2.2

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 12 Jul 19:47

Full Changelog: v0.2.0...v0.2.1

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 12 Jul 19:02

Full Changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 10 Jul 09:19