github amicalhq/amical v1.12.0
Amical Desktop v1.12.0

3 hours ago

Amical Desktop v1.12.0

Features

  • desktop: support silent startup and login launches (07aba9b)
  • i18n: add Korean locale and refine translations (484b7b7)
  • auth: add persistent session recovery dialog (20c3cf7)
  • auth: sync pending changes and restart on logout (39696a2)
  • notes: automatically adopt local notes on sign-in (1d6d645)
  • desktop: schedule account stats refreshes in main (50320b3)
  • desktop: unify local and account dictation stats cache (0067771)
  • updates: block unsupported desktop versions (ba40163)
  • notes: sync Markdown notes through the settings protocol (3fe36b4)
  • sync: clear settings state and migrate IDs to CUID2 (dd03154)
  • notes: migrate local note IDs to prefixed CUID2 (6094a1a)
  • notes: persist desktop note bodies as Markdown (dee29f7)
  • desktop: report dictation activity (5779f9a)
  • desktop: add organization-scoped language assets (3989c33)
  • telemetry: improve desktop error reporting (179b5c0)
  • desktop: support multiple shortcut bindings (ce1e20e)
  • desktop: rate-limit telemetry events and exceptions client-side (dc01ca9)
  • desktop: emit dictation trace as transcription_completed_v2 (d76b832)
  • desktop: validate remote config per surface and report contract breaks (cc946ae)
  • desktop: trace dictation sessions into one telemetry event per session (9a06112)
  • desktop: run lifecycle platform work in Effect session scopes (9e981d9)
  • desktop: retire the transcription stream on starting seals (04f6d14)
  • desktop: cut recording over to the lifecycle shell (482083d)
  • desktop: add lifecycle backstops and startup recovery (2e4da16)
  • desktop: add lifecycle runtime and grammar wiring (499622d)
  • desktop: add lifecycle host delivery adapter (297ad5d)
  • desktop: add lifecycle transcription resolve adapter (98069bc)
  • desktop: add lifecycle recorder custody adapter (dfefa8c)
  • desktop: add lifecycle storage custody and disposition stamp (0120b79)
  • desktop: add recording lifecycle shell and ports (8712bef)
  • desktop: add recording lifecycle contract reference core (7bfb228)
  • desktop: use collection-scoped sync cursors (4ca92e7)
  • desktop: sync vocabulary and snippets (5ed7e03)
  • desktop: migrate service container to an Effect layer graph (AMIC-42) (8f217fc)

Bug Fixes

  • desktop: hide organization vocabulary behind UI guard (968513b)
  • shortcuts: accept bare Return as a macOS shortcut key (#183) (4c3ed33)
  • ci: validate main pushes and repair desktop build checks (e6963af)
  • i18n: complete translations and enforce locale coverage (787bd7a)
  • notes: preserve title drafts across navigation (3153423)
  • auth: prompt for account selection during sign-in (b82abde)
  • recording: retain custody results and guard repeated finalization (0e9acc8)
  • recording: preserve active capture and use monotonic duration (50ee99e)
  • recording: handle early WAV stream failures (2e03247)
  • recording: preserve recovery rows on file I/O failures (f3f3232)
  • recording: report unexpected microphone capture loss (1b4afd8)
  • recording: report readiness after capture graph setup (f8191cc)
  • build: install PostHog CLI before parallel builds (cf13711)
  • desktop: increase default native RPC timeout to seven seconds (4f13d7a)
  • desktop: increase resolving timeout to two minutes (ae64d49)
  • desktop: retain rejected activity batches (8b2d2b4)
  • desktop: limit auth refresh retries to 401 (b9bc88a)
  • desktop: coalesce concurrent sync restarts (d6ee4c3)
  • desktop: apply snippet precedence before search (cecc88c)
  • desktop: fence settings sync lifecycle restarts (33cb606)
  • native: serialize recording ambiance playback (a5476ac)
  • desktop: update bundled Node.js to 22.23.2 (#176) (573dd1f)
  • windows: make helper timestamps culture invariant (5156d65)
  • desktop: degrade VAD chunk errors to assumed speech (7127c6b)
  • desktop: suppress saved-recording sub-line when nothing recorded (5a00c40)
  • desktop: fast-fail degraded transcription sessions at open (aaaf4b9)
  • desktop: keep custody outcomes truthful and available (f2e0866)
  • desktop: order the disposition stamp behind custody settlement (2f252ed)
  • desktop: gate the empty notice by duration and re-check retry after the admission await (269ea2b)
  • desktop: anchor latch freshness to the session start (dad5ad1)
  • desktop: route every start through the grammar and restore latch protections (d0371c2)
  • desktop: clear draft-capture entries on idle (e6758c5)
  • desktop: derive duration for recovered rows (c506e74)
  • desktop: repair recovered WAV headers (dc10c34)
  • desktop: start the draft copy-capture once per session (ac75bab)
  • desktop: await enrichment before the terminal fact (17b0fcd)
  • desktop: retire self-terminating transcription streams (fbfb39a)
  • desktop: accept an initial contract artifact at its declared version (27b345b)
  • desktop: close the residual custody gaps the re-audit found (18617ab)
  • desktop: serialize every input and bound the admission gates (4009a60)
  • desktop: hide provisional custody rows from user surfaces (b7f7612)
  • desktop: surface every failure seal and cross stopKind to the widget (785c71f)
  • desktop: conform ports to their reporting obligations (540a04c)
  • desktop: accept drain frames and harden ambiance edges (adf7640)
  • desktop: fence recording work by session (4a2a180)
  • desktop: correct recording contract coverage (ba03a58)
  • desktop: handle microphone capture start failures (271ce58)
  • desktop: harden recording session boundaries (fbb37da)
  • desktop: align terminal failure transition (a348d68)
  • desktop: handle terminal transcription failures (308a7c1)
  • desktop: fall back promptly when cloud gRPC fails (dd610a7)
  • desktop: log native helper validation issues (09cdc0a)
  • desktop: omit telemetry properties from flag requests (18f585b)
  • desktop: refresh cloud auth after unauthorized responses (f60db6c)
  • desktop: surface fatal startup failures (8574c30)
  • ci: validate x64 dotnet runtime on Windows ARM (6a1660c)
  • desktop: refresh settings after partial sync pull (8e9cf33)
  • settings-sync: honor advertised operation limits (AMIC-49) (3fab168)
  • desktop: enforce sync bounds and simplify replacements (4028be6)
  • desktop: stop sync wake on window focus (186d3ff)
  • desktop: keep widget visible for active content (4f33752)

Other Changes

  • Capture the active microphone channel on multichannel interfaces (#184) (d0b5716)
  • probe startup gate without installer dependency (6eabafc)
  • assert empty widget after note deletion (2a51b6e)
  • ignore dirty whisper submodule files (e4999ab)
  • update bundled Node.js to 24.21.0 (5550dc9)
  • upgrade workspace to TypeScript 7.0.2 (1bdbd66)
  • migrate to Effect 4 rc.115 (4787ce5)
  • ignore local worktrees directory (97abc90)
  • upgrade Electron and packaging dependencies (45d4e1c)
  • replace materialization cursor with pending flags (867b28d)
  • track legacy recovery cleanup (12af614)
  • clarify bounded custody settlement (b764e82)
  • derive source-map release from package version (c68fcf8)
  • upgrade checkout action to v7 (b26a12d)
  • centralize authentication retry (b8f6c51)
  • migrate auth service to effect (f393309)
  • split and type settings sync (26c2208)
  • remove promise sync test adapter (1bc26ba)
  • run settings sync client with Effect (e7d1a5a)
  • run settings sync with Effect (8bad241)
  • normalize RPC dispatch handling (0cbb1c0)
  • update bundled Node.js to 24.19.0 (b6116ab)
  • Allow shortcuts to be unassigned (#172) (6baaec8)
  • remove dead code left by the lifecycle and transcription refactors (8413f05)
  • clean lifecycle review artifacts (fc88f4c)
  • replace ad-hoc error classes with tagged error unions (3e279ff)
  • bump posthog-node to 5.49.1 and posthog-js to 1.418.1 (aceafdb)
  • run transcription streaming work as session fibers (52f3843)
  • key recovery on captured audio, not audibility (c224242)
  • remove orphaned dismissal control-flow code (14ca8a0)
  • drop orphaned lifecycle references (bb73124)
  • add ring 2 FSM conformance coverage (b10e140)
  • cover missing final chunk recovery (13701b0)
  • move recording state helpers (46e01af)
  • remove unreachable start recovery (3b90644)
  • enforce recording contract version bumps (58fc87c)
  • add recording machine contract vectors (be987ec)
  • simplify cloud transcription internals (5ed5979)
  • clarify transcription engine contracts (c682eb0)
  • extract transcription workflows (d4cba07)
  • own live transcription lifecycle (22cc591)
  • pin transcription provider sessions (c0655f2)
  • split cloud transcription transports (87600ea)
  • isolate cloud transcription sessions (d43d1eb)
  • introduce isolated transcription sessions (a29cb71)
  • add desktop development setup (42c8916)
  • lazily mount history row actions (8f91bb6)
  • bump PostHog SDKs (6befdb9)
  • distinguish arm64 preview version (1823620)
  • publish architecture-specific Windows feeds (a1a65d8)
  • add Windows ARM64 release pipeline (19f1d32)
  • replace libsql with better-sqlite3 (AMIC-52) (4a4a3de)
  • simplify settings sync state lifecycle (1328a47)
  • order sync outbox with durable sequence (8736e32)
  • share sync schemas with zod 4 (90c18bc)
  • index single settings sync mutations (d0b1188)
  • remove stale settings mutex (3fbb6d7)
  • honest window-closing name, scoped bridge listeners, event-bridge tests (88ff6d6)
  • locator-free graph — services bundle + WM window events (d931691)
  • tRPC context reads a frozen bundle, not lazy getters (9f8cce8)
  • delete the ServiceManager singleton (37378a6)
  • break the db/index <-> db/skills module cycle (e0d74bd)
  • ServiceManager reduces to the boot handle (ef23285)
  • honest nullability for transcription and native bridge (6ff2a24)
  • cloud provider takes auth as a real dependency (73c5cc2)
  • invert auth identity reach-backs into subscriptions (f799da7)
  • RecordingManager takes real dependencies (37143fe)
  • tRPC handler and WindowManager join the graph (e2d7f49)
  • tRPC routers depend on services, not the locator (78f2b00)
  • layers.ts is now composition + four central wrappers (67784c9)
  • Settings + Telemetry own their Live layers (d8b0192)
  • ShortcutManager owns its Live layer (0d10872)
  • AutoUpdaterService owns its Live layer (b451ab4)
  • TranscriptionService owns its Live layer (589271d)
  • ModelService owns its Live layer (cbae2fc)
  • RemoteConfigService owns its Live layer (ff07219)
  • FeatureFlagService owns its Live layer (d21d9e7)
  • PostHogClient owns its Live layer (2e9d7df)
  • VADService owns its Live layer (ffdd599)
  • HistoryCleanupService owns its Live layer (bb5b3d5)
  • extract shared layer helpers from layers.ts (330bb5c)

New Contributors

Full Changelog: v1.11.3...v1.12.0

Downloads

macOS

  • Apple Silicon (M1/M2/M3): Download the DMG or ZIP file for arm64
  • Intel: Download the DMG or ZIP file for x64

Windows

  • Windows (x64): Download the .exe installer for 64-bit Windows
  • Windows (ARM64): Download the ARM64 .exe installer for Windows on Arm

Installation

macOS:

  • DMG: Download and open the DMG file, then drag Amical to your Applications folder
  • ZIP: Download and extract the ZIP file, then drag Amical to your Applications folder

Windows:

  • Download and run the .exe installer
  • Follow the installation wizard
  • The app will be installed to your user AppData folder and a shortcut will be created

The ZIP files are primarily for automatic updates. We recommend using the DMG files for initial installation on macOS.

Don't miss a new amical release

NewReleases is sending notifications on new releases.