Skip to content

Releases: srcfl/sourceful-arc-transcriber

v0.1.1 — Merge pull request #3 from srcfl/mira/start-system-permission-request

07 May 16:09
9d3de2e

Choose a tag to compare

patch: start-system requests Screen Recording permission instead of bailing

v0.1.0 — Merge pull request #2 from srcfl/mira/start-system-route

07 May 15:25
bf5f3ab

Choose a tag to compare

minor: URL route transcriber://start-system for system-audio-only recording

v0.0.9 — trigger release build for URL scheme (PR #1 merge)

07 May 14:58
0eb9e24

Choose a tag to compare

The minor: URL-scheme commit (d716c2c) landed via PR #1 but the
auto-generated merge commit subject didn't carry a release
prefix, so the CI workflow short-circuited. Empty commit with a
patch: prefix to trip the release pipeline so the URL scheme
ships in a tagged build that the auto-updater can pick up.

v0.0.8 — DMG background at 640×400 (Finder doesn't rescale to fit)

23 Apr 15:40

Choose a tag to compare

Previous build rendered the background at 1280×800 intending retina
sharpness, but Finder places DMG backgrounds 1 pixel-to-1 point in
the window — so a 1280×800 image in a 640×400 window only showed
its top-left quarter and the "Drag Arc Transcriber to Applications"
headline spilled off the right edge.

Regen at 640×400 so the image fills the window at 1x. Slightly softer
on retina, but correct.

qlmanage -t -s 1280 -o /tmp Resources/dmg-background.svg
sips -z 400 640 /tmp/dmg-background.svg.png --out Resources/dmg-background.png

If the softness bothers us later, swap to a multi-resolution TIFF or
bundle background@2x.png alongside.

v0.0.7 — hdiutil — stage volume contents before `hdiutil create -format UDRW`

23 Apr 15:27

Choose a tag to compare

hdiutil create -format UDRW requires -srcfolder or -srcdevice
(it can't mint an empty writable image from -size alone). Last
build failed instantly with:

hdiutil: create: -format requires -srcfolder or -srcdevice

Fix: stage the .app + /Applications symlink + .background/ into
build/dmg-staging/ first, then hdiutil create -srcfolder "$STAGE" ... -format UDRW. Same mount → osascript → convert-to-UDZO pipeline
after that.

v0.0.6 — add com.apple.security.device.audio-input entitlement

23 Apr 15:09

Choose a tag to compare

We have NSMicrophoneUsageDescription, a valid Developer ID signature,
a stapled notarization, and — after switching to the .dmg installer —
a quarantine-clean first launch. On a fresh macOS 15 test,
AVCaptureDevice.requestAccess still answered with .denied without
ever prompting, and Arc Transcriber never appeared in System
Settings → Microphone.

The remaining variable: no explicit com.apple.security.device.audio-input
entitlement. For non-sandboxed hardened-runtime apps this flag wasn't
historically required, but it's what we haven't tried — and on
recent macOS I've seen reports of TCC silently refusing mic
registration without it.

Also logs the authorizationStatus + requestAccess granted value
via NSLog so if this still doesn't work, log show --predicate 'process == "Arc Transcriber"' will tell us exactly where the flow
breaks instead of us guessing.

v0.0.5 — ship signed .dmg installer (fixes fresh-install quarantine)

23 Apr 15:01

Choose a tag to compare

Browser-downloaded .zip drops com.apple.quarantine onto the
extracted .app, and on recent macOS that attribute can block TCC
from ever prompting for microphone access — observed on a fresh Mac
where the app just answered authorizationStatus = denied without
ever appearing in System Settings → Microphone, and xattr -d
returned "Operation not permitted".

The fix is Apple's canonical install path: ship a signed, notarized,
stapled .dmg with a drag-to-Applications layout. macOS handles
Gatekeeper + quarantine cleanly through that flow, and TCC then
prompts as expected.

  • Package .dmg workflow step: stages the .app + an /Applications
    symlink, hdiutil creates a UDZO DMG, signs it with the same
    Developer ID, notarizes + staples. spctl --assess --type install
    verifies.
  • Release now attaches both the .zip (unchanged — the in-app
    auto-updater keeps using it; downloads via URLSession don't pick
    up quarantine) and the .dmg (first-time installs).
  • Renamed the bundle on disk to Arc Transcriber.app so Finder shows
    the right label. CFBundleExecutable stays Transcriber (SPM
    target name). Both the CI workflow and local build.sh match.

v0.0.4 — mic prompt — branch on authorization status, deep-link to Settings

23 Apr 14:40

Choose a tag to compare

AVCaptureDevice.requestAccess is a no-op once TCC has recorded a
denial for the bundle id — it returns granted=false without a
system prompt, and if the app ever had a stuck "invisible denial"
(LSUIElement race on first launch, Gatekeeper first-run quirk, etc)
the previous alert just told the user to go to Settings → Microphone
and enable us… while the app was not listed in that pane at all.

Now we branch on authorizationStatus up front:

  • .authorized → start recording
  • .notDetermined → activate + requestAccess (unchanged)
  • .denied / restricted → skip requestAccess entirely, show a
    richer alert with an "Open Privacy & Security" button that
    deep-links to the exact pane via
    x-apple.systempreferences:com.apple.preference.security?Privacy_Microphone,
    plus the tccutil reset command for the escape hatch when the
    app isn't listed there either.

v0.0.3 — rename to Arc Transcriber + unmissable mic prompt

23 Apr 14:20

Choose a tag to compare

Two fixes bundled since both affect what the user sees on first run.

Rename

The app's display name is now "Arc Transcriber" everywhere it's
user-visible (bundle name, window titles, menu items, SF Symbol
accessibility label, alert titles, usage description string). Bundle
id stays io.srcful.transcriber and CFBundleExecutable stays
Transcriber on purpose — keeps existing v0.0.1 installs' TCC and
Keychain grants valid, and lets the auto-updater keep finding them.

Mic prompt disappears on fresh installs

LSUIElement apps have no dock icon, so the system permission dialog
can appear behind other windows on a fresh Mac. If the user doesn't
see it, TCC records a denial without listing the app in System
Settings → Microphone — exactly the symptom I saw reported on a
clean install today. Fix: NSApp.activate(ignoringOtherApps: true)
immediately before AVCaptureDevice.requestAccess, forcing the prompt
to the front.

Info.plist also gains NSHighResolutionCapable=true and a clearer
usage description string ("Arc Transcriber records microphone audio
locally to transcribe meetings and voice notes.").

v0.0.2 — app icon — Sourceful signal orange squircle + cream bolt

23 Apr 14:15

Choose a tag to compare

Uses the canonical Sourceful bolt-in-squircle mark (straight from
srcful-design-system/public/assets/sourceful-icon.svg) recoloured to
the design system's signal-orange ground with the bolt in cream.
One-ground / one-accent / no-gradient — follows the editorial
identity rules; no HUD / scanline / glow.

  • Resources/icon-source.svg: the source-of-truth SVG
  • Resources/iconfile.icns: rasterised + packaged iconset (156 KB)
  • tools/make-icon.sh: regenerates iconfile.icns from the SVG using
    only macOS built-ins (qlmanage + sips + iconutil), no brew deps
  • Info.plist gains CFBundleIconFile=iconfile
  • build.sh + CI workflow copy iconfile.icns into the bundle if present