# Versioning & self-update `VERSION` at the repo root is the release source of truth. ## Releases On pushes to `main`, the release workflow runs formatting, static analysis, race tests, and build. If all gates pass, it creates tag `vVERSION` when that tag does not already exist. Binaries receive their version at build time through linker flags. Builds without that flag report `0.0.0-dev` and skip passive update hints. ## Update checks Release builds check the public Gitea tags API in two places: `sherlock version` and just before agent handoff. The check is bounded, best-effort, uncached, and disabled by `SHERLOCK_NO_UPDATE_CHECK`. ## Updating `sherlock update` installs the latest release through the shared installer. `--force` reinstalls even when already current. Updates rebuild binaries and completions but leave config untouched. Overrides: `SHERLOCK_UPDATE_TAGS_URL` for tag lookup and `SHERLOCK_UPDATE_REPO_URL` for clone/update source.