release: 0.2.8

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

## Changelog

### Fixed

- Stable `job_run_id` across sync cursor invocations in DataProduct mode — cursor nodes now use a stable key (view_space/view_external_id/instance_space) and store the run ID as a property, so all invocations within a session share the same run ID and the Records API run picker no longer shows a new entry on every trigger.
- `cognite_data_quality/_function_code/requirements.txt` was still pinned to `cognite-sdk<8`, causing deployed Cognite Functions to fail at runtime with v8-only types (`NodeResultSetExpressionSync`). Updated to `>=8.0.0,<9.0.0` to match `pyproject.toml`.

### Changed

- Upgraded `cognite-sdk` dependency from `>=7.0.0,<8.0.0` to `>=8.0.0,<9.0.0`. All `instances.sync()` calls updated to use `NodeResultSetExpressionSync`.
