# Changelog

All notable changes to the `@magmacomputing/tempo-plugin-ticker` project will be documented in this file.

## [2.2.1] - 2026-07-18

### Changed
- **Ticker Plugin Documentation**: Expanded the Ticker documentation to explicitly clarify the difference between snapping (using directional shorthands like `>`) and relative shifting (using numeric values).

## [2.2.0] - 2026-07-06

### Added
- **Shorthand Duration Keys**: `Ticker.Options` now natively supports Tempo shorthand keys (e.g., `yy`, `mm`, `ww`, `dd`, `hh`, `mi`, `ss`, etc.). This enables writing compact and highly ergonomic intervals (e.g., `Tempo.ticker({ mi: 5, ss: 30 })`), achieving total API consistency with the broader v3.6.0 Tempo ecosystem.

## [1.0.4] - 2026-06-11

### Added
- **Label Identification**: Added the `label?: string` property to `Ticker.Options`. Developers can now easily tag and group tickers without needing external memory-tracking structures (like `WeakMap`). This label is natively exposed on `Tempo.tickers` snapshots.

### Fixed
- **NPM Registry Metadata**: Explicitly added `README.md`, `CHANGELOG.md`, and `LICENSE` to the `files` array in `package.json` to ensure the npmjs.com registry correctly renders package documentation.
- **Test Integrity**: Updated internal test fixtures to correctly align with Tempo Core's standard capitalization and the recent rename of the `period` term to `timeOfDay`.

## [1.0.3] - 2026-06-07

### Security
- Migrated licensing enforcement from `jose` to the native WebCrypto Tempo Core primitives.

### Fixed
- Replaced all usage of the global `Date` object with the `instant()` temporal engine in the core validator to ensure timeline consistency.
- Corrected test environment resolution boundaries that caused unhandled asynchronous Promise verification leaks.

## [1.0.2] - 2026-06-06

### Fixed
- Centralized the CI/CD test sandboxing configuration to ensure consistent environment variables and licensing mocks across all workspaces.

## [1.0.1] - 2026-06-04

### Fixed
- Resolved the "Ghost-Trap" architectural conflict that prevented validation when used with Tempo v3.0.0.
- Decoupled `definePremiumPlugin` and cryptographic validation from the plugin bundle. Licensing engine state and references are now directly imported from the Tempo Core (`@magmacomputing/tempo/plugin`).
- Removed the `@magmacomputing/tempo-plugin-core` bundled `devDependency` to prevent duplicate initialization.

## [1.0.0] - 2026-06-01

### Added
- Initial release of the Ticker plugin.
- A highly accurate and CPU-efficient periodic timer designed as an alternative to native `setInterval`.
- Features pause, resume, reset, and configurable jitter compensation.
- Supports both `EventEmitter` and callback-based listener patterns.
- Implements the `v3.0.0` Tempo Core Licensing API via cryptographic JSON Web Signatures (JWS).
