# OpenClerk v0.2.2

This patch release carries the post-v0.2.1 AgentOps hardening work for repo-docs dogfooding, supplied-transcript video source ingestion, promoted-domain evidence, memory/router and graph-semantics revisit decisions, and the narrow source-linked contradiction audit runner.

## Changed

- Added the repo-docs dogfood eval lane so committed public OpenClerk markdown can be imported into an isolated eval vault and exercised through the installed `openclerk document` and `openclerk retrieval` JSON runner surfaces.
- Added supplied-transcript `ingest_video_url` coverage for video and YouTube source notes while keeping native video download, platform caption retrieval, local STT, transcript APIs, and Gemini extraction documented as design-only future acquisition paths.
- Added the narrow retrieval `audit_contradictions` workflow for source-linked synthesis audit planning and repair, with provenance inspection and unresolved conflict grouping constrained to existing document and retrieval surfaces.
- Refreshed promoted-record domain, document lifecycle, graph-semantics revisit, memory-router revisit, synthesis-compile revisit, broad contradiction audit, path/title autonomy, and artifact-ingestion evidence without promoting a new memory API, autonomous router, semantic graph truth layer, or broad contradiction engine.
- 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`.

## Verification

- Local release-doc validation passed for `v0.2.2`.
- Local Agent Skill validation passed for `skills/openclerk/SKILL.md`.
- Local committed-artifact validation passed with repo-relative artifact paths and neutral `<run-root>/...` raw-log placeholders.
- 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 30/30 production scenarios passing and recommendation `use_agentops_runner_for_routine_openclerk_operations`.
- Repo-docs dogfood e2e evidence is committed at `docs/evals/results/ockp-repo-docs-dogfood.md`, covering installed-runner retrieval, synthesis maintenance, and decision-record explainability over this repository's committed public markdown docs.
- 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.
- Targeted supplied-transcript video/YouTube source evidence is committed at `docs/evals/results/ockp-video-youtube-canonical-source-note.md`, covering create/update behavior, transcript provenance, citation-bearing search, no-op behavior, stale synthesis visibility, and external-tool bypass rejection.
