# KDock repository rules

## Versioning

- Never hand-edit the application version in `package.json`, `Cargo.toml`, `package-lock.json`, or `src-tauri/tauri.conf.json`.
- `npm run tauri build` must be the packaging entry point. Its `beforeBuildCommand` runs Semifold and increments the version automatically.
- CI runs `smif version` during packaging and commits the generated version/changelog changes back to `main` after a successful build.
- Use `scripts/semfold-version.ps1 -DryRun` to preview a release without changing files.
- Do not bypass the Semifold flow with `cargo build --release` when producing a distributable package.

## Update manifest

- `release/kdock-update.json` is generated by `scripts/release-manifest.mjs` in CI and uploaded with the rolling `test-latest` release.
- The startup updater accepts installer URLs only from the KDock GitHub Release and never installs automatically.
