# OpenClerk v0.2.1

This patch release carries the post-v0.2.0 source URL update-mode documentation and release-verification guardrails for the installed OpenClerk runner and skill.

## Changed

- Documented `ingest_source_url` update mode: missing `source.mode` defaults to `create`, duplicate creates reject, `source.mode: "update"` re-ingests an existing `source.url`, and mismatched `path_hint` or `asset_path_hint` values conflict without writing extra docs or assets.
- Verified source URL update freshness behavior: same-SHA updates are no-ops without `source_updated` provenance or projection invalidation churn, while changed-PDF updates preserve source and asset paths, refresh searchable extracted text and citations, emit previous/new SHA provenance, and expose stale dependent synthesis through `projection_states`.
- Updated release verification guidance so v0.2.x install smoke tests, skill examples, artifact expectations, production gate pointers, and committed evidence rules stay aligned with the shipped runner behavior.

## Verification

- Local release-doc validation passed for `v0.2.1`.
- Local Agent Skill validation passed for `skills/openclerk/SKILL.md`.
- Local formatting, linting, and unit-test gates passed with the repository-pinned toolchain.
- The current production OpenClerk AgentOps gate remains `docs/evals/results/ockp-agentops-production.md`, with 18/18 production scenarios passing and recommendation `use_agentops_runner_for_routine_openclerk_operations`.
- Targeted source URL update evidence is committed at `docs/evals/results/ockp-source-url-update-mode.md`, covering duplicate create rejection, same-SHA no-op behavior, changed-PDF stale synthesis visibility, and path-hint conflict no-write behavior for the shipped runner and skill.
