# src/core/version — version/channel identity

## Scope

REAPER-free version/channel identity consumed by both artifacts (the REAPER
extension and the VST3 instrument) to derive binary names, ext-state namespaces,
command-id prefixes, action-name prefixes, dock idents, and version display
strings.

## Modules

- `app_version` — REAPER-free version/channel identity: CMake-sourced semver constant, ext-state stamp value, and the full set of channel-derived identity accessors. All channel strings derive from one `REASAMPLER_CHANNEL_IS_BETA` bit; no scattered `#ifdef`s in the shells.

## Gotchas

- All channel strings derive from one `REASAMPLER_CHANNEL_IS_BETA` bit — route new
  channel-specific behavior through this module's accessors rather than adding a
  scattered `#ifdef` in a shell. See root `CLAUDE.md` "Beta channel build" for the
  full fan-out (binary name, ext-state namespace, command-id prefix, action-name
  prefix, dock ident, version display).
