release/0.2.25

## Bump
- [ ] Major
- [ ] Minor
- [x] Patch
- [ ] Skip

## Changelog

### Added
- SHACL-native aggregate uniqueness validation: declare `dqs:uniquenessConstraint` or `dqs:unique` in TTL/RuleSet, run via dedicated scheduled `dq-{view}-uniqueness` workflow with aggregate-first duplicate detection
- `validation_type: shacl` entrypoint discovers uniqueness constraints at runtime and compiles to the aggregate executor
- HistoricJobQueue for sequential historic validation in DataProduct mode
- AGENTS.md with Cursor Cloud development instructions

### Fixed
- Sync-cursor and instance validation no longer auto-run uniqueness after each sync completion; uniqueness is scheduled-only unless explicit `extensions` are passed
- Uniqueness workflow deploy gated on SHACL constraint presence; RuleSet content fetched at deploy for DataProduct mode
- `data_product_sync` diagnostics and defensive null guards; malformed ruleset references logged instead of silently skipped
- Separated runtime credentials with fallback for workflow trigger deployment
- Skip forward auto-loading when no `sh:node` constraints are declared
- SDK 8.4+ alignment for `instances.aggregate` / `instances.list`; trigger API uses `triggers.create` in SDK v8

### Improved
- Instance-space scoping propagated into uniqueness aggregate and detail filters
- Duplicate-value processing capped at 100 per run with explicit warnings; peer payload and URN encoding hardening
