Skip to content

Releases: cyanxxy/open-ocr-cli

v2.7.0

Choose a tag to compare

@github-actions github-actions released this 29 Jul 14:26
82423af

2.7.0 - 2026-07-29

Added

  • MCP now serves both the 2025-11-25 and 2026-07-28 protocol revisions from
    one stdio entry, including modern discovery and cache hints.
  • OCR tools advertise the v2 result schema and expose written artifacts as
    native resource_link content blocks.
  • OPEN_OCR_MCP_CONFIRM=1 requires an elicited confirmation before provider
    work while leaving local dry runs ungated.

Fixed

  • MCP confirmations are signed, bound to the exact request, expire, and can be
    used only once, preventing forged, changed, or replayed approvals.
  • Clients that support URL elicitation but not forms now receive the typed
    configuration error instead of a protocol-level capability failure.
  • MCP shutdown preserves the documented 130 and 143 exit statuses for
    SIGINT and SIGTERM.

Changed

  • Updated the split MCP client and server packages from the v2 beta to the
    stable 2.0.0 release.

Full comparison

v2.6.0

Choose a tag to compare

@github-actions github-actions released this 26 Jul 22:07
4083c65

2.6.0 - 2026-07-26

Breaking

  • extract --jsonl now emits one record family. Fatal failures end the stream
    with {"type":"error","version":1,...} instead of a protocol-shaped
    run.failed, so every line carries "version": 1 and no protocolVersion.
    Previously a strict validator rejected every line when a run succeeded and
    accepted every line when it failed. run --response-format jsonl is
    unchanged and remains the protocol dialect.

Fixed

  • Template mode produced 400 INVALID_ARGUMENT for every preset in every
    earlier release. Structured output compiles an array bound into that many
    copies of the item grammar, so the row cap in the wire schema exceeded a
    limit the API enforces. The cap is applied after parsing instead, where it
    already was, and a static check now fails the build rather than the request.
  • --resume aborted an entire batch when a single input changed, leaving even
    unchanged documents unprocessed. A run now replaces only the artifacts its
    own manifest recorded for that input, and an unrelated file at an artifact
    path still conflicts.
  • Single-document runs into an output directory kept no manifest, so re-running
    one failed against its own output. An output path naming a single file is
    still left alone, and can no longer be turned into a directory by the lock.
  • Document failures reported an unredacted message alongside a redacted one, so
    credentials could survive into JSONL records, the resume manifest, and
    batch-summary.json. Both now derive from one redacted source.
  • Provider rejections reported the raw response body. The readable sentence is
    extracted where the error is created, and the untouched payload is retained
    as the cause.
  • A rejection naming no field is no longer blamed on the request schema unless
    the schema exceeds a measured limit; unfamiliar keywords are advisory. Schema
    identifiers published by capabilities now resolve in schema.
  • MCP reported a successful tool call when a run was partial, cancelled, or
    cost-limited. isError now derives from the run envelope.
  • CSV asked of a preset that extracts one record per document is refused before
    the credential gate rather than after a billed request. Inline delivery
    combined with an output directory names both fields and the conflict.
  • Typed errors carry a next action on every code, and errors identified by the
    code path are no longer re-classified from their message text.

Changed

  • Directory scans skip node_modules, dist, build, vendor, and target
    by default, and report what they passed over. Use --no-default-excludes to
    include them.
  • Directory scans no longer ignore uppercase file extensions, so a folder of
    .PNG or .PDF scans is discovered and extracted.
  • A single-document run into a directory now takes the batch lock it needs to
    keep a manifest, so simultaneous runs into one directory conflict rather than
    racing. Sequential runs and single-invocation batches are unaffected.

Full comparison

v2.4.1

Choose a tag to compare

@github-actions github-actions released this 26 Jul 14:35
c2cb818

2.4.1 - 2026-07-26

Repository metadata

  • Updated the npm package repository, homepage, issue, container, and release
    references to the canonical cyanxxy/open-ocr-cli repository.
  • Kept the private cyanxxy/gemini-ocr web application repository separate
    from the public CLI package. There are no runtime behavior changes.

Full comparison

v2.4.0

Choose a tag to compare

@github-actions github-actions released this 25 Jul 20:31
2ed4376

2.4.0 - 2026-07-25

CLI packaging and development boundaries

  • Moved the CLI source, build configuration, and Node-only TypeScript project
    into packages/cli so the publishable package owns its complete build path
    while continuing to share the provider-neutral OCR engine.
  • Added dependency-sync coverage that verifies every external CLI runtime
    import is declared in the published package, and tightened Node-only
    typechecking so browser APIs cannot enter the command-line dependency graph.
  • Made the packaged Open OCR skill a generated copy of its canonical
    integration source, pinned the npm toolchain used by releases, and made
    TypeScript checks incremental for faster local and CI validation.

Release and dependency security

  • Split releases into verification and publication stages with main-branch and
    tag-order checks, serialized publishing, exact-tarball smoke tests, artifact
    checksums, and idempotent npm publication checks.
  • Added npm provenance, container SBOM and provenance attestations, immutable
    container publication before latest promotion, guarded Marketplace major
    tag updates, least-privilege workflow permissions, and commit-pinned GitHub
    Actions.
  • Upgraded React Router to 8.3.0 to resolve its RSC-mode CSRF advisory, added
    Dependabot coverage, and narrowed the audit exception to the remaining
    transitive development-tool advisory.

Full comparison

v2.3.0

Choose a tag to compare

@github-actions github-actions released this 22 Jul 13:52

2.3.0 - 2026-07-22

Model Context Protocol support

  • Added open-ocr-cli mcp, a stdio MCP server with dedicated tools for simple
    and template extraction, agentic OCR, and public-URL extraction.
  • Added an MCP capabilities resource, structured tool results, cancellation,
    progress notifications, dry runs, and reference-first artifact delivery on
    top of the same validated job service used by the CLI.
  • Bundled the MCP server runtime and updated the packaged Open OCR agent skill
    and setup documentation for Codex and other MCP clients.

Machine and Web OCR reliability

  • Added URL inputs and Web analysis options to protocol v2, including schema
    validation, mixed-input rejection, a 20-URL request limit, and explicit
    capability advertisement.
  • Routed machine and MCP URL work through the shared Web OCR service so dry
    runs, retries, usage accounting, delivery, progress, and typed failures stay
    consistent across terminal and agent integrations.
  • Centralized provider runtime and retry policy handling, extended retries to
    Web OCR, added doctor --check-credentials, and made no-argument CLI calls
    print deterministic help instead of opening an interactive prompt.
  • Refreshed the root and npm documentation around installation, providers,
    automation, MCP setup, credential hygiene, and the explicit interactive
    command.

Full comparison

Full Changelog: https://github.com/cyanxxy/gemini-ocr/compare/v2...v2.3.0

v2.2.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 22:27

v2.1.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 21:19

v2.0.1

Choose a tag to compare

@github-actions github-actions released this 15 Jul 17:54

Open OCR CLI 2.0.0

Choose a tag to compare

@cyanxxy cyanxxy released this 15 Jul 15:07

v1.6.0

Choose a tag to compare

@github-actions github-actions released this 15 Jul 11:00