# OpenClerk v0.2.4

This patch release carries the next OpenClerk building-block slice: optional semantic retrieval and OCR modules, proposal-first artifact intake planning, runner-owned workflow guidance reports, install/module hardening, and scale/runtime cleanup while preserving the v0.2 local-first runner contract.

## Changed

- Added `openclerk capabilities` as a machine-readable inventory of document, retrieval, and module domains, including primitive actions, promoted workflow actions, optional modules, and validation boundaries.
- Added optional semantic retrieval modules for local Ollama embeddings and explicit opt-in Gemini embeddings, plus a reusable semantic retrieval adapter that keeps citation-bearing search, path/tag/metadata filters, fallback behavior, and provider policy outside the core lexical retrieval path.
- Added the optional Tesseract OCR module for local OCR review of image and scan-only or force-OCR PDF artifacts, with module manifest verification and host opt-in registration instead of implicit core OCR acquisition.
- Added module install guidance, module manifest validation, module runtime configuration storage, live install/upgrade/module smoke evidence, and agent-facing install instructions that keep runner, skill, and module registration aligned.
- Added the read-only `artifact_candidate_plan` workflow action for proposal-first artifact intake, returning candidate path, title, body preview, tags, fields, duplicate evidence, confidence, and create/ingest handoff without writing before approval.
- Added runner-owned reports for hybrid retrieval, structured stores, git lifecycle, web search planning, and workflow guidance so recurring knowledge-plane questions can use compact JSON actions instead of expanded skill recipes.
- Added maturity validation harness reports, scale-ladder evidence, and FTS write tuning for larger imports while keeping committed reports repo-relative and excluding raw local paths.
- Hardened vault path normalization, SQLite pagination, runner limits, URL validation, path-hint helpers, sync diagnostics, module manifest verification, and semantic adapter JSON transport.
- Updated OpenClerk docs and skill policy toward an agent-first building-block surface: simple runner actions for common needs, proposal-first durable writes, local-first module opt-ins, and explicit boundaries for unsupported browser, HTTP/MCP bypass, direct SQLite, hidden storage, native media acquisition, or provider-side behavior.
- Preserved `ingest_source_url` update mode behavior from the v0.2 line: 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.
- Preserved same-SHA source URL update behavior: same-SHA updates are no-ops without `source_updated` provenance or projection invalidation churn.
- Preserved changed-PDF source URL update behavior: 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.4`.
- Local Agent Skill validation passed for `skills/openclerk/SKILL.md`.
- Local committed-artifact validation passed with repo-relative artifact paths and neutral raw-log placeholders.
- Local formatting, linting, and unit-test gates passed with the repository-pinned toolchain.
- The current production OpenClerk AgentOps gate is committed at `docs/evals/results/ockp-agentops-production.md`.
- Expanded repo-docs dogfood evidence is committed at `docs/evals/results/ockp-repo-docs-dogfood.md`, covering installed-runner retrieval, synthesis maintenance, decision-record explainability, release-readiness answers, read-side tag filtering, memory-router recall reports, and release synthesis freshness over this repository's committed public markdown docs.
- Targeted workflow-action evidence is committed at `docs/evals/results/ockp-compile-synthesis-workflow-action.md`, `docs/evals/results/ockp-source-audit-workflow-action.md`, and `docs/evals/results/ockp-evidence-bundle-workflow-action.md`, covering the promoted narrow workflow-action surfaces with acceptable natural-row UX.
- Targeted source URL update evidence remains 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 remains 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.
- Live install, upgrade, and module-command smoke evidence is committed at `docs/evals/results/ockp-live-install-upgrade-module-smoke.md`.
