Skip to content

The app has no logging, so a silent failure is invisible #129

Description

@tornikegomareli

There is not one Logger or os_log call in Talkify/. When dictation broke on Bluetooth in #127, log show --predicate 'process == "Talkify"' returned nothing at all, so there was no way to see that AVAudioEngine had stopped itself. Finding it took four throwaway probe binaries reproducing the audio stack outside the app. A single line at the point the engine stopped would have made it a log read.

The failures worth naming are the ones that are silent by construction:

  • the audio engine stopping under a route change, and whether the rebuild that follows succeeded
  • a session beginning and ending, with the slot and the outcome (inserted, clipboard fallback, cancelled, failed)
  • how long recognition, shaping and translation each took, which is also the latency number the README claims
  • the speech model being prepared or downloaded
  • insertion refusing, and which guard refused it
  • shaping and translation falling back to passthrough, and why

The constraint that shapes this: nothing that carries what the user said may be logged. No transcripts, no drafts, no clipboard contents, no prompt text, no file names from Drop Transcription. CONTEXT.md promises no history beyond the local usage metrics, and a log that records dictated text breaks that promise whatever the log level. Values that are safe are durations, states, locale identifiers, error descriptions and counts. os.Logger redacts interpolations by default, so the rule is that nothing derived from user content is ever marked .public.

os.Logger under one subsystem with a category per area is enough. Signposts around the finish path would also give the insertion latency benchmark something to measure against, which CONTEXT.md gates other work on.

Activity

  1. added a commit that references this issue on Sep 8, 2026
    795e412
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingready-for-agentFully specified, ready for an AFK agent

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions