Skip to content

Tags: mtib/al

Tags

app-20260521-183947-bbb63fb

Toggle app-20260521-183947-bbb63fb's commit message

Verified

This commit was signed with the committer’s verified signature.
mtib Markus Becker
feat: add Parakeet 0.6B back as opt-in, sort picker by strength

Re-add Parakeet TDT 0.6B v3 (transducer, ~465 MB, not realtime on M1 Air)
to the model picker for users with headroom. Picker now lists models
strongest → weakest: 0.6B, 110M, FastConformer multilingual, Moonshine
Tiny. The default for new installs stays parakeet110m — the strongest
model that's still realtime on Air.

app-20260521-175703-1f41a02

Toggle app-20260521-175703-1f41a02's commit message

Verified

This commit was signed with the committer’s verified signature.
mtib Markus Becker
feat: lighter ASR lineup, multilingual support, polished quit

Replace Parakeet TDT 0.6B v3 (3 GB peak, not realtime on M1 Air) with three
CTC-headed offline models behind the existing picker:

- Parakeet TDT-CTC 110M (EN, ~99 MB) — default, best English quality
- FastConformer CTC multilingual (EN/DE/ES/FR, ~98 MB) — adds German
- Moonshine Tiny (EN, ~45 MB) — kept as lightest fallback

Both new models settle at ~630 MB RSS with mic + system active; ~4 s load
time under CoreML. Settings migrates the stored "parakeet" value.

Pipeline: when system audio is voiced, the mic stream is now fully gated —
no resample, no VAD, no decode. Mic VAD is flushed on gate entry so any
open segment closes cleanly. The single shared recognizer (NSLock) is
unchanged. Also tightened VAD buffer compaction (after every drain).

Quit UX: applicationShouldTerminate now returns .terminateLater and drains
on a detached task, replying once flush completes. MenuBarController gets
beginQuitTransition() to dim the status item and freeze the label.
Measured quit on a running pipeline: 0.74 s (was up to 5 s of frozen UI).

Cleanup: delete the orphaned RNNoise wrapper, DenoisingAudioSource, and
vendored CRNNoise target — Pipeline never wired them in.

CLAUDE.md: refreshed architecture diagram and model table, documented
NSString lifetime across C calls (bite #3) and why the 0.6B was dropped
(bite #2).

app-20260521-120921-fed4df8

Toggle app-20260521-120921-fed4df8's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: ASR model picker, remove RNNoise, bounded buffers, VAD 1s

app-20260520-212159-62c1bf0

Toggle app-20260520-212159-62c1bf0's commit message

Verified

This commit was signed with the committer’s verified signature.
mtib Markus Becker
feat(browser): refresh active document on re-click + 5s ticker

- Re-clicking the already-selected row in the document list now refreshes
  it in place without flashing the empty pane (skip the loadingDetail
  reset path when ids match).
- Add a `.task` ticker that calls `refreshSelectedDocument` every 5 s
  while the Browse window is visible. The task auto-cancels when the
  window closes/hides, so we don't poll in the background.
- Silent failures on the periodic path so a transient outage doesn't
  swap the pane for an error banner.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

app-20260520-211931-71a9073

Toggle app-20260520-211931-71a9073's commit message

Verified

This commit was signed with the committer’s verified signature.
mtib Markus Becker
fix(shipper): always compact outbox when an ack advances

Previously `compactOutbox` bailed early unless the file was already
≥64 KB, so a steady stream of small utterances looked like the outbox
never cleared. Compact unconditionally after every successful ack;
short-circuit cheaply when nothing was dropped. Remove the file
entirely if all entries are acked so it doesn't linger as a 0-byte
placeholder.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

app-20260520-210025-1d93af0

Toggle app-20260520-210025-1d93af0's commit message

Verified

This commit was signed with the committer’s verified signature.
mtib Markus Becker
feat(browser): refetch on every window open

`.onAppear` only fires once per window lifetime, so closing and re-opening
Browse from the menu bar left it showing stale results. Post an
`.browserShouldRefresh` notification from `BrowserWindowController.show()`
and have the view reload on every receipt — selection in the detail pane
is preserved because `reload()` doesn't touch `selectedDocument`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

app-20260520-205550-34528fc

Toggle app-20260520-205550-34528fc's commit message

Verified

This commit was signed with the committer’s verified signature.
mtib Markus Becker
ci: run app-release on macos-15 for Swift 6 toolchain

macos-14 defaults to Xcode 15 / Swift 5.10 and rejects the package's
swift-tools-version 6.0. macos-15 ships Xcode 16 (Swift 6) by default;
also pick the newest installed Xcode explicitly as defence against
future image regressions.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>