Skip to content

A fresh install gets no vocabulary biasing at all #24

Description

@drycode

config.example.toml ships prompt = "", with a real prompt only as a commented-out example and the instruction "Use your own terms, not these."

That is correct for privacy — the maintainer's vocabulary list is personal and stays out of the repo. But it means every new user's first experience is unbiased decoding: "merge tree", "a lambic", "cuber netties". The knob that fixes it is documented in a config file comment, which is not where a new user is looking when transcription disappoints them on day one.

The gap is real enough that it was invisible to the maintainer for the entire life of the Swift server — the flag was missing from the rendered plist (fixed in 6a55ca8) and the only symptom was "transcription feels slightly worse."

Options

  1. Ship a generic developer vocabulary as the default. Immediate win for the common case. Costs accuracy for users who never say those words: an initial prompt biases the decoder toward its contents, so listing "Kubernetes" for someone who dictates prose is a small tax on their actual words.
  2. Prompt for it during install. install-server.sh could ask once and write the answer to config.toml. Interactive installers are hostile to automation, so it would need a --no-input path.
  3. Say something at the end of the install. Cheapest: print a line naming the config key and what it buys. No accuracy cost, no interactivity, but easy to scroll past — which is exactly how the ad-hoc signing problem (Installers silently ad-hoc sign when TACET_SIGN_IDENTITY is unset #21) went unnoticed.
  4. Leave it and document it in the README. The README is long; whether this lands depends on placement.

Option 1 is the only one that helps a user who never reads anything, and is also the only one with a downside for users it does not help. That trade is the decision.

Separate but adjacent

~/.config/tacet/config.toml is outside the repo by design, which also means it is in no backup. Worth a line in the README telling users their vocabulary list is theirs to preserve.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions