diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..3f47b36 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,74 @@ +# Changelog + +All notable changes to `move` are documented here. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [1.2.0] - 2026-06-17 + +### Added +- `-e, --edit` flag opens the resolved config file in `$EDITOR`. + +### Changed +- `keeper.ts` (and `@nut-tree-fork/nut-js`) is lazy-imported, so `--help` + and `--version` skip the nut.js load and start ~10x faster. + +## [1.1.1] - 2026-06-17 + +### Changed +- Tests moved from `src/` to a top-level `tests/` directory. +- `tsconfig.json` sets `"types": ["bun"]` so VS Code resolves `bun:test`. + +### Fixed +- `package.json` version now matches the published tag. + +## [1.1.0] - 2026-06-17 + +### Added +- JSON config file support at `${XDG_CONFIG_HOME:-~/.config}/move/config.json`. + Precedence: CLI flags > config file > defaults. Strict validation. +- `-C, --config ` to override the default config path. +- Installer seeds `config.json` with project defaults on fresh install only. +- Bun test suite for `resolveConfig` and `loadConfigFile`. + +### Changed +- Installer scripts now live in `scripts/`. +- `verbose` is now a first-class `Config` field; `resolveVerbose` removed. +- `CliError` extracted into `src/errors.ts`. +- `defaultConfigPath()` throws when both `$XDG_CONFIG_HOME` and `$HOME` are unset. +- `mouse.config.autoDelayMs = 0` moved into `runKeeper` (no module-load side effect). +- Runtime errors go through a `failRuntime` helper that mirrors `failUser`. +- `keeper.ts` declares a named `Logger` interface. +- `dev-setup.sh` is now POSIX `sh`. +- `tsconfig.json`: enabled `noUncheckedIndexedAccess` and `resolveJsonModule`. + +## [1.0.1] - 2026-06-17 + +### Added +- End-user `install.sh` runnable via `curl ... | sh`. XDG-respecting, idempotent. +- `uninstall.sh` removes the wrapper and install tree; leaves Bun and user + config alone. +- `dev-setup.sh` for contributors. + +### Removed +- `DISTRIBUTION-PLAN.md` (design notes, superseded by the implementation). + +## [1.0.0] - 2026-06-15 + +Initial release. + +### Added +- `move` CLI for keeping presence-tracking apps marked Available by nudging + the cursor after a configurable idle period. +- Flags: `-h/--help`, `-v/--version`, `-m/--move-interval`, + `-c/--check-interval`, `-d/--step-delay`, `-n/--step-count`, `-V/--verbose`. +- Quiet-by-default logging. +- Source split into `src/{move,cli,config,keeper}.ts`. +- `bin` entry + shebang so `bun link` registers `move` globally. + +[1.2.0]: https://gitea.cahlen.com/nokeo08/Move/compare/v1.1.1...v1.2.0 +[1.1.1]: https://gitea.cahlen.com/nokeo08/Move/compare/v1.1.0...v1.1.1 +[1.1.0]: https://gitea.cahlen.com/nokeo08/Move/compare/v1.0.1...v1.1.0 +[1.0.1]: https://gitea.cahlen.com/nokeo08/Move/compare/v1.0.0...v1.0.1 +[1.0.0]: https://gitea.cahlen.com/nokeo08/Move/releases/tag/v1.0.0