> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reducto.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# On-premise changelog

> Release notes for on-premise deployments of Reducto

export const PasswordProtect = ({children}) => {
  const [password, setPassword] = useState("");
  const [isAuthenticated, setIsAuthenticated] = useState(false);
  const [error, setError] = useState("");
  const correctPasswordHash = "9daff39ca2584edc54444193f62e5e54dce0bcd5e5d604b1748c79bfb3d7d1fd";
  const hashPassword = async inputPassword => {
    const encoder = new TextEncoder();
    const data = encoder.encode(inputPassword);
    const hashBuffer = await crypto.subtle.digest('SHA-256', data);
    const hashArray = Array.from(new Uint8Array(hashBuffer));
    return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
  };
  useEffect(() => {
    const storedPassword = localStorage.getItem("reducto-onprem-password");
    if (storedPassword) {
      checkStoredPassword(storedPassword);
    }
  }, []);
  const checkStoredPassword = async storedPassword => {
    const hashedStored = await hashPassword(storedPassword);
    if (hashedStored === correctPasswordHash) {
      setIsAuthenticated(true);
      setError("");
    }
  };
  const handleSubmit = async e => {
    e.preventDefault();
    const hashedInput = await hashPassword(password);
    if (hashedInput === correctPasswordHash) {
      setIsAuthenticated(true);
      setError("");
      localStorage.setItem("reducto-onprem-password", password);
    } else {
      setError("Incorrect password. Please try again.");
      setPassword("");
    }
  };
  if (isAuthenticated) {
    return <>{children}</>;
  }
  return <div style={{
    padding: "2rem",
    border: "2px solid #e2e8f0",
    borderRadius: "8px",
    textAlign: "center",
    margin: "2rem 0"
  }}>
      <div style={{
    fontSize: "2rem",
    marginBottom: "1rem"
  }}>🔒</div>
      <h2>Protected Content</h2>
      <p>This content requires a password to access.</p>
      <form onSubmit={handleSubmit} style={{
    marginTop: "1rem"
  }}>
        <input type="password" value={password} onChange={e => setPassword(e.target.value)} placeholder="Enter password" style={{
    padding: "0.5rem",
    border: "1px solid #cbd5e0",
    borderRadius: "4px",
    marginRight: "0.5rem",
    fontSize: "1rem"
  }} />
        <button type="submit" style={{
    padding: "0.5rem 1rem",
    backgroundColor: "#5c0c5c",
    color: "white",
    border: "none",
    borderRadius: "4px",
    cursor: "pointer",
    fontSize: "1rem"
  }}>
          Unlock
        </button>
      </form>
      {error && <p style={{
    color: "red",
    marginTop: "1rem"
  }}>{error}</p>}
    </div>;
};

<PasswordProtect>
  <Update
    description="2026-07-20"
    label="v1.12.2"
    tags={["feature", "reliability", "developer"]}
    rss={{
title: "v1.12.2 - DOCX comments, customer-managed encryption, and extract reliability",
description: "Adds native DOCX comment extraction and customer-managed encryption for v3 parse, with fixes for extract, ordering, form filling, and rotated PDFs."
}}
  >
    * feat: Native DOCX comment extraction now returns comments anchored to the relevant document blocks.
    * feat: `/edit` can synthesize form fields for questionnaires that do not include them.
    * feat: v3 parse supports customer-managed encryption with a KMS key (alpha).
    * fix: Improve citation handling and page-range support for `/extract` requests.
    * fix: Resolve failures in document ordering and checkbox detection.
    * fix: Improve handling of rotated PDFs in embed and parse results.
  </Update>

  <Update
    description="2026-07-08"
    label="v1.12.1"
    tags={["feature", "reliability", "performance", "developer"]}
    rss={{
title: "v1.12.1 - Faster spreadsheet processing, async deletion, and document fixes",
description: "Improves large-spreadsheet processing and adds asynchronous job deletion, with reliability fixes across edit, embed, extract, OCR, and document conversion."
}}
  >
    * feat: Improve reliability and performance for large spreadsheet processing.
    * feat: Add asynchronous job deletion endpoints.
    * feat: Improve extraction quality and reliability for large documents.
    * fix: `/edit`: preserve AcroForm through overflow-page assembly, render filled text at the correct size, and write radio button values by name.
    * fix: Correct embedded text-layer placement on rotated (90/270) PDF pages.
    * fix: Honor `/extract` page-range settings and improve citation accuracy.
    * fix: Improve reliability when embedding or converting large PDFs.
    * fix: Handle corrupt TIFF palettes in image load paths.
    * perf: Reduce memory usage when processing dense and scanned documents.
  </Update>

  <Update
    description="2026-06-26"
    label="v1.12.0"
    tags={["feature", "reliability", "performance", "developer"]}
    rss={{
title: "v1.12.0 - Self-hosted Office conversion and reliability improvements",
description: "Adds self-hosted Office conversion, with improvements to document processing, security, form filling, and memory use."
}}
  >
    * feat: Self-hosted Office conversion for DOCX and PPTX files (alpha).
    * feat: `REDUCTO_AGENTIC_URL` to point the agentic model at an on-prem endpoint.
    * fix: Improve text extraction in FIPS-compatible environments and from documents with complex fonts.
    * fix: Improve isolation of stored job results across organizations.
    * fix: Improve stability during layout inference and document processing.
    * fix: Respect EXIF orientation on image inputs and drive scanned-page render DPI off the embedded scan resolution.
    * fix: Reconcile AcroForm fields with filled widgets in `/edit` so forms render correctly in Preview/PDFKit.
    * fix: Improve resilience to temporary LLM provider failures.
    * perf: Reduce peak memory use across document, spreadsheet, and OCR processing.
  </Update>

  <Update
    description="2026-06-11"
    label="v1.11.81"
    tags={["performance", "reliability", "feature", "developer"]}
    rss={{
title: "v1.11.81 - Lower memory use, document-processing fixes, and logging controls",
description: "Reduces memory use for large documents, improves table and rendering behavior, and adds on-prem logging controls and richer OCR language data."
}}
  >
    * perf: Reduce peak memory use when processing large documents.
    * perf: Improve PDF rendering and OCR performance.
    * fix: Preserve inline markup when merging table rows across page breaks.
    * fix: Improve reliability for text-heavy PDFs and Office document conversion.
    * fix: Improve the completeness and clarity of public OpenAPI schemas.
    * feat: Console logging is on by default, with a `NO_LOG` override.
    * feat: Return detected languages in OCR data when available.
  </Update>

  <Update
    description="2026-06-08"
    label="v1.11.80"
    tags={["reliability", "performance", "operator"]}
    rss={{
title: "v1.11.80 - Enrichment memory bounding and BYO config fix",
description: "Bounds agentic enrichment memory to prevent worker OOMs and fixes spurious DOCX corruption errors on some parse requests."
}}
  >
    * perf: Bound concurrent agentic image memory, preventing worker OOMs on heavy documents.
    * fix: Resolve spurious `DocumentCorruptError` failures on DOCX files that reference external templates.
  </Update>

  <Update
    description="2026-06-05"
    label="v1.11.79"
    tags={["feature", "reliability", "operator", "developer", "documentation"]}
    rss={{
title: "v1.11.79 - Full on-prem OpenAPI schema and changelog RSS",
description: "Adds the full on-prem OpenAPI schema endpoint, RSS-ready changelog updates, and reliability improvements for on-prem deployments."
}}
  >
    * feat: Added `/openapi-onprem-full.json` for on-prem deployments. This schema includes the full HTTP pod API surface, including routes hidden from the hosted public API reference.
    * feat: Added on-prem deployment controls and worker/runtime reliability improvements for supported customer environments.
    * fix: Improved job finalization, result streaming, document rendering, and customer-facing error handling for better stability under load.
    * docs: Added RSS-ready metadata for on-prem changelog entries. The generated feed is available at [onprem-changelog-rss.reducto.ai/rss.xml](https://onprem-changelog-rss.reducto.ai/rss.xml).
  </Update>

  <Update
    description="2026-05-29"
    label="v1.11.78"
    tags={["feature", "reliability", "developer"]}
    rss={{
title: "v1.11.78 - Parse/extract quality, API additions, and error-handling fixes",
description: "Reading-order, table, spreadsheet, and extraction quality improvements plus API additions and clearer error codes for on-prem deployments."
}}
  >
    * feat: Add `num_pages` field to the `/classify` API response.
    * feat: Add `max` mode for agentic tables for higher-fidelity table extraction.
    * fix: Fail jobs on OCR transient errors instead of silently returning an empty response.
    * fix: More accurate HTTP error status codes so client-side validation failures return 4xx instead of 5xx.
    * fix: Multipart S3 upload for result payloads over 100MB, with a new `OversizedResultError` for limit cases.
  </Update>

  <Update
    description="2026-05-22"
    label="v1.11.77"
    tags={["security", "action-required", "replicated", "chainguard"]}
    rss={{
title: "v1.11.77 - On-prem security and documentation update",
description: "Action: upgrade on-prem deployments and review the updated on-prem security model, securing Reducto, and observability guidance."
}}
  >
    * chore: Removed legacy sandbox setup that is no longer used by supported on-prem workflows.
    * fix: Improved `/jobs` source redaction and added release validation for `/version` interpolation.
    * fix: Strengthened authentication header handling for webhook-related endpoints.
    * docs: Added clearer guidance for the on-prem shared security model, securing Reducto deployments, and observability access controls. See [On-prem security model](/onprem/security_model), [Securing Reducto](/onprem/securing_reducto), and [Observability & Monitoring](/onprem/observability).
  </Update>

  <Update
    description="2026-05-14"
    label="v1.11.76"
    rss={{
title: "v1.11.76 - SIGUSR2 stack dumps for DB-queue workers",
description: "Extend the SIGUSR2 stack-trace dumper to the DB-queue worker pods (`reducto-worker`, `reducto-priority-worker`, `reducto-gpu-worker`). Previously the handler was only installed on HTTP and streaq worker pods; this completes coverage so `kill -s USR2 <pid>` produces a stderr stack dump on every Reducto pod type. See [Observability](/onprem/observability#pod-stack-trace-dumps-sigusr2)."
}}
  >
    * feat: Extend the SIGUSR2 stack-trace dumper to the DB-queue worker pods (`reducto-worker`, `reducto-priority-worker`, `reducto-gpu-worker`). Previously the handler was only installed on HTTP and streaq worker pods; this completes coverage so `kill -s USR2 <pid>` produces a stderr stack dump on every Reducto pod type. See [Observability](/onprem/observability#pod-stack-trace-dumps-sigusr2).
  </Update>

  <Update
    description="2026-05-13"
    label="v1.11.75"
    rss={{
title: "v1.11.75 - Higher embed pool concurrency for improved throughput",
description: "Increases embed pool concurrency, pre-resolves OCR before vision-model citations, and preserves 5xx semantics for PDF text extraction crashes."
}}
  >
    * perf: Higher embed pool concurrency for improved throughput
    * fix: Pre-resolve OCR before vision-model citations with stricter containment threshold for improved accuracy
    * fix: Preserve 5xx semantics for PDF text extraction subprocess crashes
  </Update>

  <Update
    description="2026-05-12"
    label="v1.11.70"
    rss={{
title: "v1.11.70 - Faster spreadsheet processing + fix images on text-empty sheets",
description: "Covers Faster spreadsheet processing + fix images on text-empty sheets; Higher PDF render pool concurrency with eager background respawn."
}}
  >
    * perf: Faster spreadsheet processing + fix images on text-empty sheets
    * perf: Higher PDF render pool concurrency with eager background respawn
    * fix: Replace non-ASCII chars that break obfuscation build
  </Update>

  <Update
    description="2026-05-12"
    label="v1.11.69"
    rss={{
title: "v1.11.69 - Azure Vision timeouts, worker diagnostics, and liveness watchdog",
description: "Adds hard wall-clock Azure Vision OCR cancellation, SIGUSR2 stack dumps, Kubernetes worker liveness probes, and timeout handling for PDF processing."
}}
  >
    * feat: Azure Vision OCR client migrated to the async aio SDK with hard wall-clock cancellation via `asyncio.wait_for`. The new `AZURE_VISION_TOTAL_CALL_TIMEOUT` (default 45s) closes the underlying aiohttp socket when it fires, so workers no longer wedge on slow Azure responses. Per-call connect/read timeouts and SDK retries remain configurable via `AZURE_VISION_CONNECTION_TIMEOUT`, `AZURE_VISION_READ_TIMEOUT`, and `AZURE_VISION_MAX_RETRIES`. See [LLM options → Azure Vision](/onprem/llm_options#azure-vision-ocr) for the full env var reference.
    * feat: SIGUSR2 stack-trace dumper installed in HTTP gunicorn workers and streaq worker processes. `kubectl exec` into a pod and run `kill -s USR2 <pid>` to print every thread's stack to stderr (visible via `kubectl logs`) for diagnosing hung tasks, wedged event loops, or contended thread pools. See [Observability](/onprem/observability#pod-stack-trace-dumps-sigusr2).
    * feat: Kubernetes liveness watchdog + exec probe for `reducto-worker`, `reducto-priority-worker`, and `reducto-gpu-worker` pods. A pod is only restarted when the in-process watchdog reports an in-flight task running longer than `WORKER_STUCK_TASK_THRESHOLD_SEC` (default 1800s) or the watchdog itself stops heartbeating (event loop wedged). Idle workers are never restarted. Configurable via `worker.livenessProbe.*` Helm values. See [Operations](/onprem/operations#worker-liveness-probe).
    * feat: Hard-killable subprocess pool with per-renderer timeouts for PDF renders
    * feat: Hard-killable subprocess pool for PDF flatten + embed timeouts
    * fix: Skip zero-dimension crops in fine-grained citations
    * fix: Killable timeout for stuck PDF text extraction
    * fix: HTTP worker graceful shutdown timeout set to 120s
    * fix: Strip control characters from extracted strings
    * fix: Preserve overlay text selectability when embedding into existing PDFs
    * fix: Protect figures from signature detection
    * fix: Return 4xx for images with extreme aspect ratios
    * refactor: More reliable PDF widget ingestion in `/edit`
  </Update>

  <Update
    description="2026-05-04"
    label="v1.11.68"
    rss={{
title: "v1.11.68 - Azure Vision OCR SDK retry behavior on-prem",
description: "Covers Azure Vision OCR SDK retry behavior on-prem; Spreadsheet memory optimizations."
}}
  >
    * fix: Azure Vision OCR SDK retry behavior on-prem
    * perf: Spreadsheet memory optimizations
    * perf: Faster OCR cropping for table prediction
    * perf: Faster PDF render path
    * perf: Faster Google Cloud Vision response and rotation hint processing
    * feat: Make all fields in auto-generated extraction schemas optional
    * fix: Memory leak in PDF processing
    * fix: Avoid PDF library hang on dense-tiling-pattern PDFs via fallback reader
    * fix: Corrupt zip-based documents now return 400 instead of 500
    * fix: Preserve citations on scalar-only schema adherence corrections
    * fix: Cap spreadsheet agent instructions to avoid input token limits
    * fix: Correct ordering of table enrichment relative to markup application
    * fix: Clean up spurious 5xx on cancels and HTML to PDF hangs
  </Update>

  <Update
    description="2026-04-30"
    label="v1.11.67"
    rss={{
title: "v1.11.67 - Azure Vision OCR strategy for on-prem deployments",
description: "Adds Azure Vision OCR strategy for on-prem deployments; Datadog dashboard for on-prem k8s deployments."
}}
  >
    * feat: New Azure Vision OCR strategy for on-prem deployments
    * feat: Datadog dashboard for on-prem k8s deployments
    * feat: Expose `keep_line_breaks` in V3 `settings.alpha`
    * feat: Optimized inference backend for table router with safety wrapper
    * fix: Faster usage logging via append-only buffer to reduce DB contention
    * fix: Tolerate quoted-printable colspan in HTML parsing
    * fix: Stabilize table router builds with pinned model export version
    * chore: Bound embed feature with per-call wall-clock budget
  </Update>

  <Update
    description="2026-04-27"
    label="v1.11.66"
    rss={{
title: "v1.11.66 - Dynamic rendering for small-font metadata extraction",
description: "Covers Dynamic rendering for small-font metadata extraction; Remove Adobe-added watermark layers from documents that have them."
}}
  >
    * feat: Dynamic rendering for small-font metadata extraction
    * feat: Remove Adobe-added watermark layers from documents that have them
    * feat: Default `fast_embed_pdf_metadata` to True
    * fix: Preserve PDF optional content properties through page extraction for watermark layer stripping
    * fix: Extract always returns V3 shape when citations are missing
    * fix: Extract citations no longer dropped when `page_range` skips page 1
    * fix: Clean up downloaded PDF temp files on batch failure
    * refactor: LLM client dependency bump for CVE remediation
    * refactor: Azure Vision array OCR failover with retryable errors only
    * chore: Patch critical and high CVEs in Docker images
    * chore: Return S3 links instead of raw JSON to avoid response size limits
  </Update>

  <Update
    description="2026-04-21"
    label="v1.11.65"
    rss={{
title: "v1.11.65 - Error attribution added",
description: "Covers Error attribution added to `GET /job` endpoint; Pass prompts as files instead of args to avoid bytes overflow."
}}
  >
    * fix: Error attribution added to `GET /job` endpoint
    * chore: Pass prompts as files instead of args to avoid bytes overflow
  </Update>

  <Update
    description="2026-04-20"
    label="v1.11.64"
    rss={{
title: "v1.11.64 - Skip parse-ID overlay in `/edit` when `form_schema` is provided",
description: "Skips parse-ID overlay in `/edit` when `form_schema` is provided; Filter out uninitialized providers in model config resolution."
}}
  >
    * fix: Skip parse-ID overlay in `/edit` when `form_schema` is provided
    * fix: Filter out uninitialized providers in model config resolution
    * fix: Page range validation parity in parse pipeline
    * refactor: Classify enhancements
  </Update>

  <Update
    description="2026-04-17"
    label="v1.11.63"
    rss={{
title: "v1.11.63 - Azure Vision multi-endpoint failover",
description: "Covers Azure Vision multi-endpoint failover with load balancing; Enhanced image-to-PDF conversion."
}}
  >
    * feat: Azure Vision multi-endpoint failover with load balancing
    * feat: Enhanced image-to-PDF conversion
    * feat: Per-chunk embed PDF in pipeline
    * feat: Run LLM enrichments in parallelized DAG for lower latency
    * fix: Correct argument handling in offline entrypoint for org/job\_id
    * fix: Hybrid OCR prefers metadata over garbled OCR when text is reordered
    * refactor: Remove unused models from on-prem image builds for slim images
  </Update>

  <Update
    description="2026-04-08"
    label="v1.11.62"
    rss={{
title: "v1.11.62 - `max_completion_tokens` / `check_schema` escape hatch for reasoning...",
description: "Covers `max_completion_tokens` / `check_schema` escape hatch for reasoning models; Office document conversion with CJK fonts."
}}
  >
    * fix: `max_completion_tokens` / `check_schema` escape hatch for reasoning models
    * fix: Office document conversion with CJK fonts
    * fix: Deliver webhook after `persist_results` to avoid S3 race condition
    * chore: Upgrade LLM client dependencies
  </Update>

  <Update
    description="2026-04-07"
    label="v1.11.61"
    rss={{
title: "v1.11.61 - `force_simple_page` config option",
description: "Adds `force_simple_page` config option; Enable `fast_flatten` for legacy early flatten in pipeline orchestration."
}}
  >
    * feat: New `force_simple_page` config option
    * feat: Enable `fast_flatten` for legacy early flatten in pipeline orchestration
    * fix: `max_completion_tokens` schema validation for reasoning vs. non-reasoning models
  </Update>

  <Update
    description="2026-04-06"
    label="v1.11.60"
    rss={{
title: "v1.11.60 - `max_tokens` and other arg handling for Azure LLM inference",
description: "`max_tokens` and other arg handling for Azure LLM inference."
}}
  >
    * fix:  `max_tokens` and other arg handling for Azure LLM inference
  </Update>

  <Update
    description="2026-04-04"
    label="v1.11.59"
    rss={{
title: "v1.11.59 - Increased sheet processing timeout from 600s",
description: "Increases sheet processing timeout from 600s to 900s; Fast PDF flatten, selective rasterization replaces full-document rasterization."
}}
  >
    * feat: Increased sheet processing timeout from 600s to 900s

    * feat: Fast PDF flatten, selective rasterization replaces full-document rasterization

    * fix: Validation for custom experimental options on on-prem

    * fix: Reduce DB lock contention on batch completion

    * fix: Equation enrichment correctly preserves line/word offsets
  </Update>

  <Update
    description="2026-04-01"
    label="v1.11.58"
    rss={{
title: "v1.11.58 - fast embed via env settings",
description: "Adds fast embed via env settings; Configurable timeouts for OCR and embed text metadata steps."
}}
  >
    * feat: New fast embed via env settings
    * feat: Configurable timeouts for OCR and embed text metadata steps
    * feat: Per-page billing feature breakdown in parse response
    * feat: Auto formatting per page
    * perf: 10x faster PDF text overlay rendering
    * perf: Parallelize figure classification with higher LLM concurrency
    * perf: Optimized batch result aggregation
    * fix: CSV parsing column count uses max row width; no longer drops columns when first row is narrower
    * fix: OCR PDF no longer drops pages on multi-chunk documents
    * fix: Allow None in override schema for bool fields
    * fix: Correct `num_pages` reporting on jobs
    * fix: Image conversion error handling
    * fix: Strip markup noise before language detection to avoid false unknowns
    * fix: Avoid page overlaps in `/split` endpoint output
    * fix: Guard against errors in layout postprocess
    * fix: Reclassify corrupt PDF annotation failures as proper 4xx status codes
    * chore: Raise default overflow chunk limit to 500
  </Update>

  <Update
    description="2026-03-26"
    label="v1.11.57"
    rss={{
title: "v1.11.57 - Parallelize KV fallback",
description: "Parallelize KV fallback to prevent task deadline breaches."
}}
  >
    * perf: Parallelize KV fallback to prevent task deadline breaches
  </Update>

  <Update
    description="2026-03-26"
    label="v1.11.56"
    rss={{
title: "v1.11.56 - Native DOCX XML parsing pipeline (alpha)",
description: "Covers Native DOCX XML parsing pipeline (alpha) with `.pages` support; HEIC image support and section-based chunking for Numbers files."
}}
  >
    * feat: Native DOCX XML parsing pipeline (alpha) with `.pages` support
    * feat: HEIC image support and section-based chunking for Numbers files
    * feat: Formatting and images support for Numbers files
    * feat: Extract model and internal prompt overrides for v2/v3 configurations
    * feat: YAML extract and citations models added to Helm chart for GPU deployments
    * feat: KV repetition detection with Gemini fallback replacing repetition\_penalty
    * feat: OTEL pipeline routing and K8s metrics collection
    * fix: Auth for chained jobs
    * fix: Required fields on extraction schema
    * fix: Equation detection TypeError from tuple/list concatenation
    * fix: Move sync blocking calls off the event loop in HTTP handlers
    * fix: Use encrypted DB URL and disable k8s metrics in on-prem environments
    * fix: Fail fast on hung PDF renders
    * fix: Parallelize S3 batch result loading for faster retrieval
    * perf: Optimized layout postprocessing
    * perf: Optimized hybrid OCR processing
    * refactor: Graceful fallbacks for XML conversion issues
    * chore: Cron retries increased from 1 to 2 for improved reliability
    * chore: Send total credits for on-prem customers
  </Update>

  <Update
    description="2026-03-05"
    label="v1.11.51"
    rss={{
title: "v1.11.51 - OCR-based table citations for deep extract",
description: "Covers OCR-based table citations for deep extract; Add API key prefix filter parameter for /jobs endpoint."
}}
  >
    * feat: OCR-based table citations for deep extract
    * feat: Add API key prefix filter parameter for /jobs endpoint
    * fix: On-prem presigned URL upload path mismatch
    * fix: new layout postprocessing
    * fix: Empty OCR fallback handling
    * fix: Python version in sandbox runtime
    * chore: Upgraded enhanced figure summary models
  </Update>

  <Update
    description="2026-03-01"
    label="v1.11.49"
    rss={{
title: "v1.11.49 - on-prem deployments start without Redis configured",
description: "on-prem deployments start without Redis configured."
}}
  >
    * fix: on-prem deployments start without Redis configured
  </Update>

  <Update
    description="2026-03-01"
    label="v1.11.48"
    rss={{
title: "v1.11.48 - On-prem usage logging for customer tracking",
description: "On-prem usage logging for customer tracking."
}}
  >
    * feat: On-prem usage logging for customer tracking
  </Update>

  <Update
    description="2026-03-01"
    label="v1.11.47"
    rss={{
title: "v1.11.47 - Schemaless deep extract",
description: "Covers Schemaless deep extract; Granular citations in deep extract."
}}
  >
    * feat: Schemaless deep extract
    * feat: Granular citations in deep extract
    * feat: Deep extract available for on-prem deployments
    * feat: Spreadsheet sheet-name page\_range support
    * feat: Suppress citation content feature flag for extract
    * fix: Garbled DOCX for change tracking
    * fix: Recursive render to handle nested tables for edit
    * fix: Rotation in embed metadata
    * fix: GCP API key requirement for on-prem
    * fix: Remove libpq options from DB connect\_args for RDS Proxy compatibility
    * fix: Lock timeout batches and non-locking last-batch check
    * fix: Background threads no longer block main processing
    * fix: Transient classify inference issues
    * perf: Merge tables speedup from O(N^2) to O(N)
    * perf: Retry improvements to avoid double work
    * refactor: Decompose batch pipeline into composable phases
    * chore: Upgrade Gemini models
  </Update>

  <Update
    description="2026-02-25"
    label="v1.11.46"
    rss={{
title: "v1.11.46 - Middleware context propagation and ordering for proper trace handling",
description: "Covers Middleware context propagation and ordering for proper trace handling; Cron job retry logic and syntax improvements."
}}
  >
    * fix: Middleware context propagation and ordering for proper trace handling
    * fix: Cron job retry logic and syntax improvements
    * fix: HTTP startup patched for hashlib.md5 in FIPS environments (GCS support)
    * perf: Decaying timeout for retries with improved retry\_on\_timeout behavior
    * perf: Updated timeout and max batch configurations
  </Update>

  <Update
    description="2026-02-24"
    label="v1.11.45"
    rss={{
title: "v1.11.45 - Chunk overlap configuration for including text context from...",
description: "Covers Chunk overlap configuration for including text context from previous/next chunks; summarize_all_figures option in v3 alpha config."
}}
  >
    * feat: Chunk overlap configuration for including text context from previous/next chunks
    * feat: summarize\_all\_figures option in v3 alpha config
    * feat: Deep extraction optimizations for improved structured data quality
    * fix: Lazy loading for HTTP/worker modules to avoid unnecessary dependency imports
    * fix: Guard against empty document\_url list in pipeline and split endpoints
    * fix: Cron job improvements
    * fix: More reliable page orientation detection
    * fix: Exception handling on deep extraction completion
    * refactor: Deep extract sandbox image
    * chore: Upgraded Anthropic models
    * chore: New table detection model with improved accuracy
  </Update>

  <Update
    description="2026-02-17"
    label="v1.11.44"
    rss={{
title: "v1.11.44 - bounds check for page index in PDF text embedding",
description: "Adds bounds check for page index in PDF text embedding to prevent IndexError crashes; Skip cover pages for PDF portfolios during attachment concatenation."
}}
  >
    * fix: Add bounds check for page index in PDF text embedding to prevent IndexError crashes
    * fix: Skip cover pages for PDF portfolios during attachment concatenation
    * fix: Fallback to original pages when portfolio has no PDF attachments
    * fix: Fast-fail URL download on non-success HTTP status codes
    * fix: Random checkbox YOLO crash when Conv has no batch normalization
    * fix: HuggingFace model downloads for builds
    * fix: Lazily import probing modules to avoid Modal dependency in on-prem
    * feat: Custom agentic layout postprocessing
    * feat: Routing for parse batches
    * feat: Classify concurrency improvements
    * refactor: Set reducto environment to `onprem` by default
    * chore: Upgrade pytorch and torchvision dependencies
  </Update>

  <Update
    description="2026-02-13"
    label="v1.11.42"
    rss={{
title: "v1.11.42 - Detect visual redlines (colored strikethrough/underline) in DOCX...",
description: "Covers Detect visual redlines (colored strikethrough/underline) in DOCX change tracking; Use min instead of max for checkbox detection."
}}
  >
    * fix: Detect visual redlines (colored strikethrough/underline) in DOCX change tracking
    * fix: Use min instead of max for checkbox detection
    * fix: CSV parsing truncation and scientific notation for large integers
    * fix: Recover in-progress batches alongside pending ones
    * feat: Fallback to Gemini Flash for improved reliability
    * feat: Intelligent ordering fallbacks
    * feat: Schema adherence model updates
    * feat: Add ONNX model integrity verification with forced fresh model download
    * refactor: Database lock timeout for sync DB engine
  </Update>

  <Update
    description="2026-02-09"
    label="v1.11.41"
    rss={{
title: "v1.11.41 - OCR recognition model for Apple deployments",
description: "Adds OCR recognition model for Apple deployments; Recover in-progress batches alongside pending ones."
}}
  >
    * feat: New OCR recognition model for Apple deployments
    * fix: Recover in-progress batches alongside pending ones
    * fix: Add ONNX model integrity verification and force fresh model download
  </Update>

  <Update
    description="2026-02-06"
    label="v1.11.40"
    rss={{
title: "v1.11.40 - Classify endpoint",
description: "Covers Classify endpoint with parallelized Gemini Flash Lite probes for document classification; Add bucket_name as alpha option in v3 parse config."
}}
  >
    * feat: Classify endpoint with parallelized Gemini Flash Lite probes for document classification
    * feat: Add bucket\_name as alpha option in v3 parse config
    * feat: Enable bucket & KMS ARN override for hybrid VPC deployments
    * feat: Auto region routing for Gemini models
    * feat: Native office conversion alpha flag in v3 config
    * feat: Inference helm charts and kv-base routing
    * feat: Enable flatten for edit endpoint
    * feat: Improved models for standard figure summary
    * feat: Add dimension limit handling for AWS environments
    * fix: Memory leaks and file descriptor leaks in PIL Image handling across OCR and processing pipelines
    * fix: N-squared completion pattern in batch processing for significantly improved performance at scale
    * fix: Race condition in parse completion job processing
    * fix: Argument order bug in pdftext multiprocessing extraction
    * fix: V3 config fixes for on-prem deployments
    * fix: Initialize empty sheets to prevent errors on blank spreadsheets
    * fix: Force resize to fit AWS dimension limits for large documents
    * fix: Image conversion failures now return proper 415 error instead of 500
    * fix: PyPDFForm version update to resolve form filling bug
    * fix: Classify endpoint fixes for improved reliability
    * fix: Offset\_in\_chunk calculation for empty blocks
    * fix: Exclude veryHidden sheets when exclude\_hidden\_sheets is enabled
    * fix: Checkbox detection bug
    * fix: Prioritize S3/BUCKET over GCS when both GCP\_PROJECT\_ID and BUCKET are set
    * fix: cron.py Kubernetes usage
    * fix: Distributed traces with LOGFIRE\_DISTRIBUTED\_TRACING
    * fix: Temperature 0.1 for promptable layout for more deterministic results
    * fix: local-full Dockerfile fix by adding gcc and python3-dev to apt install
    * perf: Hydrate SharedBatchWorker.process\_org\_batch before ThreadPoolExecutor for improved concurrency
    * refactor: Remove enhanced enrich tables, default to same model for simpler table processing
    * chore: Upgrade table models
  </Update>

  <Update
    description="2026-01-30"
    label="v1.11.38"
    rss={{
title: "v1.11.38 - V3 config overrides for v2-only and on-prem-only settings",
description: "Covers V3 config overrides for v2-only and on-prem-only settings; List item support and chunk offsets in blocks for improved extraction."
}}
  >
    * feat: V3 config overrides for v2-only and on-prem-only settings
    * feat: List item support and chunk offsets in blocks for improved extraction
    * fix: handle\_required\_fields not adding missing fields to array items in extraction
    * fix: Page marker blocks now include correct page and original\_page values
    * fix: Multi-batch recovery when job processing is interrupted
    * fix: Division by zero error for images with corrupted EXIF data
  </Update>

  <Update
    description="2026-01-29"
    label="v1.11.37"
    rss={{
title: "v1.11.37 - Restore V2 OCR defaults (highres OCR system) in V3 on-prem config...",
description: "Restore V2 OCR defaults (highres OCR system) in V3 on-prem config for consistent behavior."
}}
  >
    * fix: Restore V2 OCR defaults (highres OCR system) in V3 on-prem config for consistent behavior
  </Update>

  <Update
    description="2026-01-29"
    label="v1.11.36"
    rss={{
title: "v1.11.36 - Bookworm image build configuration for CD pipeline",
description: "Bookworm image build configuration for CD pipeline."
}}
  >
    * chore: Bookworm image build configuration for CD pipeline
  </Update>

  <Update
    description="2026-01-29"
    label="v1.11.35"
    rss={{
title: "v1.11.35 - Bookworm Dockerfile variant for improved on-prem DOCX→PDF conversion...",
description: "Bookworm Dockerfile variant for improved on-prem DOCX→PDF conversion reliability."
}}
  >
    * feat: Bookworm Dockerfile variant for improved on-prem DOCX→PDF conversion reliability
  </Update>

  <Update
    description="2026-01-28"
    label="v1.11.34"
    rss={{
title: "v1.11.34 - DOCX→PDF conversion using LibreOffice from Trixie backports for...",
description: "Covers DOCX→PDF conversion using LibreOffice from Trixie backports for improved reliability; Super-agent integration into /extract pipeline for improved structured data extraction."
}}
  >
    * fix: DOCX→PDF conversion using LibreOffice from Trixie backports for improved reliability
    * feat: Super-agent integration into /extract pipeline for improved structured data extraction
    * fix: Traceparent propagation for API requests
    * perf: Per-image table predictions for better performance
  </Update>

  <Update
    description="2026-01-27"
    label="v1.11.33"
    rss={{
title: "v1.11.33 - Hybrid VPC routing based on header",
description: "Covers Hybrid VPC routing based on header with default AU/EU/US regions; Add docx fallbacks for malformed XML and OOXML-format .doc files."
}}
  >
    * feat: Hybrid VPC routing based on header with default AU/EU/US regions
    * feat: Add docx fallbacks for malformed XML and OOXML-format .doc files
    * feat: Change default presigned URL expiration from 1 hour to 12 hours
    * fix: Table edit pattern improvements and preferred edit model changes
  </Update>

  <Update
    description="2026-01-24"
    label="v1.11.32"
    rss={{
title: "v1.11.32 - Schema adherence for required keys in extraction",
description: "Covers Schema adherence for required keys in extraction; Improved table edit granularity."
}}
  >
    * feat: Schema adherence for required keys in extraction
    * feat: Improved table edit granularity
    * fix: Properly propagate password errors for password-protected PDFs
  </Update>

  <Update
    description="2026-01-20"
    label="v1.11.31"
    rss={{
title: "v1.11.31 - Anthropic Bedrock on-prem edit calls",
description: "Covers Anthropic Bedrock on-prem edit calls; Add raw XML repair fallback for malformed docx files."
}}
  >
    * fix: Anthropic Bedrock on-prem edit calls
    * feat: Add raw XML repair fallback for malformed docx files
    * fix: Local parse hanging for multi-batch documents
    * feat: Schema Optimization Agent for improved extraction accuracy
  </Update>

  <Update
    description="2026-01-16"
    label="v1.11.29"
    rss={{
title: "v1.11.29 - Hyperlinks being dropped when OCR extraction mode is enabled",
description: "Covers Hyperlinks being dropped when OCR extraction mode is enabled; Add line level offsets when config is enabled."
}}
  >
    * fix: Hyperlinks being dropped when OCR extraction mode is enabled
    * feat: Add line level offsets when config is enabled
    * feat: Intelligent Ordering Model API integration
  </Update>

  <Update
    description="2025-12-15"
    label="v1.11.25"
    rss={{
title: "v1.11.25 - document_password support",
description: "Adds document_password support to pipeline API for password-protected documents; Implement character-level DOCX change tracking."
}}
  >
    * feat: Add document\_password support to pipeline API for password-protected documents
    * feat: Implement character-level DOCX change tracking
    * fix: Hidden rows and columns handling for spreadsheets
    * feat: Cloudflare R2 Storage Class support
  </Update>

  <Update
    description="2025-12-02"
    label="v1.11.21"
    rss={{
title: "v1.11.21 - Settings Overrides for streamlined API config/env var customization",
description: "Settings Overrides for streamlined API config/env var customization."
}}
  >
    * fix: Settings Overrides for streamlined API config/env var customization
  </Update>

  <Update
    description="2025-12-02"
    label="v1.11.20"
    rss={{
title: "v1.11.20 - inference parallelization",
description: "Covers inference parallelization; OCR word and line rotation data propagation."
}}
  >
    * chore: inference parallelization
    * feat: OCR word and line rotation data propagation
    * fix: layout prediction improvements
    * feat: extract schema adherence
    * fix: empty table model output
  </Update>

  <Update
    description="2025-12-01"
    label="v1.11.19"
    rss={{
title: "v1.11.19 - Document fetching logic",
description: "Covers Document fetching logic; Updated ordering model."
}}
  >
    * refactor: Document fetching logic
    * feat: Updated ordering model
    * feat(settings): more streamlined customization for models and prompts via API configuration / env variables
  </Update>

  <Update
    description="2025-11-25"
    label="v1.11.18"
    rss={{
title: "v1.11.18 - Customizable models for AWS Bedrock using environment variables",
description: "Covers Customizable models for AWS Bedrock using environment variables; Default models updated for AWS Bedrock to `us.anthropic.claude-sonnet-4-5-20250929-v1:0`."
}}
  >
    * feat: Customizable models for AWS Bedrock using environment variables
    * refactor: Default models updated for AWS Bedrock to `us.anthropic.claude-sonnet-4-5-20250929-v1:0`
  </Update>

  <Update
    description="2025-11-24"
    label="v1.11.17"
    rss={{
title: "v1.11.17 - support more edge case custom file mimetypes",
description: "support more edge case custom file mimetypes."
}}
  >
    * feat: support more edge case custom file mimetypes
  </Update>

  <Update
    description="2025-11-21"
    label="v1.11.16"
    rss={{
title: "v1.11.16 - table chunking",
description: "Covers table chunking; make enrich tables more robust."
}}
  >
    * fix: table chunking
    * fix: make enrich tables more robust
  </Update>

  <Update
    description="2025-11-21"
    label="v1.11.15"
    rss={{
title: "v1.11.15 - optimize some DB transactions",
description: "Covers optimize some DB transactions to not be left open too long; Add signatures as a formatting option in v3 config."
}}
  >
    * refactor: optimize some DB transactions to not be left open too long
    * feat: Add signatures as a formatting option in v3 config
    * feat: extract schema adherence
    * refactor: optimize enrich tables latency
    * feat: new hybrid OCR implementation
    * feat: add force file mimetype to extension config option
  </Update>

  <Update
    description="2025-11-17"
    label="v1.11.14"
    rss={{
title: "v1.11.14 - env var based customization for local KV prompt/model",
description: "Covers env var based customization for local KV prompt/model; Add priority-based worker routing to skip shared/dedicated workers when priority is not set."
}}
  >
    * feat: env var based customization for local KV prompt/model
    * feat: Add priority-based worker routing to skip shared/dedicated workers when priority is not set
    * chore: adding latency sensitive for fast mode in Spreadsheet Agent
    * feat: add OpenAI Responses LLM Provider
    * feat: Allow direct DataDog Tracing with Beta Headers and Logfire Service name handling
  </Update>

  <Update
    description="2025-11-12"
    label="v1.11.13"
    rss={{
title: "v1.11.13 - table block chunking",
description: "table block chunking."
}}
  >
    * fix: table block chunking
  </Update>

  <Update
    description="2025-11-11"
    label="v1.11.12"
    rss={{
title: "v1.11.12 - Chainguard image dependencies",
description: "Chainguard image dependencies."
}}
  >
    * fix: Chainguard image dependencies
  </Update>

  <Update
    description="2025-11-10"
    label="v1.11.11"
    rss={{
title: "v1.11.11 - md5 for FIPS environments",
description: "Covers md5 for FIPS environments; numbers file parsing."
}}
  >
    * fix: md5 for FIPS environments
    * fix: numbers file parsing
  </Update>

  <Update
    description="2025-11-07"
    label="v1.11.10"
    rss={{
title: "v1.11.10 - invalid surrogates when encoding",
description: "Covers allow invalid surrogates when encoding; Add logfire gauge metrics for K8s queue lengths."
}}
  >
    * fix: allow invalid surrogates when encoding
    * feat: Add logfire gauge metrics for K8s queue lengths
  </Update>

  <Update
    description="2025-11-07"
    label="v1.11.9"
    rss={{
title: "v1.11.9 - Azure Blob Storage authentication support for private endpoints",
description: "Adds Azure Blob Storage authentication support for private endpoints; race condition with in progress batch -> job completion enqueue."
}}
  >
    * feat: Add Azure Blob Storage authentication support for private endpoints
    * fix: race condition with in progress batch -> job completion enqueue
    * fix: logfire logging if logfire token is set
  </Update>

  <Update
    description="2025-11-06"
    label="v1.11.8"
    rss={{
title: "v1.11.8 - embed pdf metadata",
description: "Covers embed pdf metadata; persist results before webhook."
}}
  >
    * fix: embed pdf metadata
    * fix: persist results before webhook
    * fix: update cancel\_all and wipe endpoints for on-prem and secure them correctly
    * refactor: cron cleanup function + running frequency
    * fix: Chainguard image dependency issues
  </Update>

  <Update
    description="2025-11-04"
    label="v1.11.7"
    rss={{
title: "v1.11.7 - PgDog Helm Chart application version configuration for on-premise...",
description: "PgDog Helm Chart application version configuration for on-premise deployments."
}}
  >
    * fix: PgDog Helm Chart application version configuration for on-premise deployments
  </Update>

  <Update
    description="2025-11-04"
    label="v1.11.6"
    rss={{
title: "v1.11.6 - V3 API config",
description: "Covers V3 API config with improved spreadsheet response format and citations support; Enhanced table block chunking for better extraction of large tables."
}}
  >
    * feat: V3 API config with improved spreadsheet response format and citations support
    * feat: Enhanced table block chunking for better extraction of large tables
    * feat: Agent-in-the-loop (AITL) extraction with generalizable configuration for multiple fields
    * feat: Spreadsheet figure summary support for better data visualization
    * feat: LLM provider preference configuration for v3 API (specify OpenAI, Anthropic, Google, etc.)
    * feat: Helm chart PgDog dependency for PostgreSQL monitoring
    * feat: Affinity and topologySpreadConstraints support in Helm charts for advanced pod scheduling
    * fix: OCR system handling in v3 config
    * fix: Race condition for single batch jobs
    * fix: Webhook delivery on Kubernetes environments
    * fix: Parse job update batching for improved database performance
    * fix: DOCX timeout increased for large document processing
    * fix: Table merging with XML parsing improvements
    * fix: Underline/strikethrough character threshold adjustments
    * chore: Datadog integration for enhanced monitoring
  </Update>

  <Update
    description="2025-10-30"
    label="v1.11.5"
    rss={{
title: "v1.11.5 - Reduce PDF output size",
description: "Covers Reduce PDF output size by avoiding text layer rasterization; Custom chunking response format support."
}}
  >
    * feat: Reduce PDF output size by avoiding text layer rasterization
    * feat: Custom chunking response format support
    * fix: AITL configuration handling for proper field validation
  </Update>

  <Update
    description="2025-10-28"
    label="v1.11.4"
    rss={{
title: "v1.11.4 - Agent-in-the-loop (AITL) documentation exposed and configuration updated",
description: "Covers Agent-in-the-loop (AITL) documentation exposed and configuration updated to handle multiple fields; Hyperlink extraction support in PDF parsing - preserves document links in output."
}}
  >
    * feat: Agent-in-the-loop (AITL) documentation exposed and configuration updated to handle multiple fields
    * feat: Hyperlink extraction support in PDF parsing - preserves document links in output
    * feat: PostgreSQL Helm dependency migrated to OCI registry for better reliability
    * feat: Spreadsheet figure summary generation for visual data extraction
    * fix: OCR system switching for v3 config
    * fix: Change tracking for accurate document diff detection
  </Update>

  <Update
    description="2025-10-25"
    label="v1.11.3"
    rss={{
title: "v1.11.3 - Helm charts now support affinity and topologySpreadConstraints for...",
description: "Covers Helm charts now support affinity and topologySpreadConstraints for advanced Kubernetes pod placement control; Table merging heuristics improved."
}}
  >
    * feat: Helm charts now support affinity and topologySpreadConstraints for advanced Kubernetes pod placement control
    * feat: Table merging heuristics improved
    * fix: Webhook delivery on Kubernetes fixed for reliable notification
    * fix: Underline and strikethrough detection threshold adjusted for better accuracy
    * fix: Safe fill implementation used everywhere in PDF form filling
    * chore: Datadog monitoring integration
  </Update>

  <Update
    description="2025-10-22"
    label="v1.11.2"
    rss={{
title: "v1.11.2 - V3 API config support - new configuration format for improved...",
description: "Covers V3 API config support - new configuration format for improved extraction control; Naive table merging for bulk processing with better cross-page detection."
}}
  >
    * feat: V3 API config support - new configuration format for improved extraction control
    * feat: Naive table merging for bulk processing with better cross-page detection
    * feat: Figure summary enhancements and configuration via API
    * feat: LLM provider preference support in v3 config
    * feat: Tool use support for Anthropic provider
    * feat: /openapi.json and /openapi-legacy.json endpoints for API schema access
    * feat: Split implementation improvements
    * fix: Database transaction handling in Kubernetes - don't keep transactions open
    * fix: Experimental table citations now default to true in v3
    * fix: Extract confidence concurrency handling
    * chore: Figure summarization adjusted for more thorough output
  </Update>

  <Update
    description="2025-10-12"
    label="v1.11.1"
    rss={{
title: "v1.11.1 - Helm chart labels for retry stale jobs cronjob",
description: "Helm chart labels for retry stale jobs cronjob."
}}
  >
    * fix: Helm chart labels for retry stale jobs cronjob
  </Update>

  <Update
    description="2025-10-12"
    label="v1.11.0"
    rss={{
title: "v1.11.0 - Build configuration cleanup",
description: "Build configuration cleanup."
}}
  >
    * fix: Build configuration cleanup
  </Update>

  <Update
    description="2025-10-12"
    label="v1.10.38"
    rss={{
title: "v1.10.38 - custom extract models via LLM service",
description: "Covers Support for custom extract models via LLM service, enabling on-premise model configurations; PDF form dropdown filling improvements with proper context and option handling."
}}
  >
    * feat: Support for custom extract models via LLM service, enabling on-premise model configurations
    * fix: PDF form dropdown filling improvements with proper context and option handling
    * fix: Excel column to string conversion using openpyxl
  </Update>

  <Update
    description="2025-10-10"
    label="v1.10.37"
    rss={{
title: "v1.10.37 - /jobs endpoint",
description: "Adds /jobs endpoint with cursor-based pagination for efficient job listing and filtering; New PDF edit flow using parse pipeline for improved form filling accuracy and performance."
}}
  >
    * feat: New /jobs endpoint with cursor-based pagination for efficient job listing and filtering
    * feat: New PDF edit flow using parse pipeline for improved form filling accuracy and performance
    * feat: Schema-less extraction generation - automatically infer extraction schemas when not provided
    * feat: Enhanced table merging across pages in HTML documents with improved row/column detection
    * feat: Improved spreadsheet agent with citations support and performance optimizations
    * feat: Parallelized batch results loading from storage for faster retrieval
    * fix: Multi-page TIFF and JPEG handling for proper page extraction
    * fix: Password-protected landscape PDF processing
    * fix: Text overlay visibility issues during edit flow
    * fix: Spreadsheet agent formatting values in preview mode
    * chore: Docker base image upgraded to Debian Trixie for better security and compatibility
    * chore: Enhanced mode set as default for better quality
  </Update>

  <Update
    description="2025-10-08"
    label="v1.10.36"
    rss={{
title: "v1.10.36 - Priority handling for time-sensitive extraction requests",
description: "Covers Priority handling for time-sensitive extraction requests with improved page mapping reasoning; Improved Vertex AI Gemini region configuration."
}}
  >
    * feat: Priority handling for time-sensitive extraction requests with improved page mapping reasoning
    * feat: Improved Vertex AI Gemini region configuration
    * fix: Array extract error handling - prevents crashes from malformed LLM output
    * fix: Better concurrency management for key-value extraction
    * fix: Split configuration handling improvements
    * chore: OpenAI API retry logic for handling slow responses
    * chore: Exponential backoff for split operations
  </Update>

  <Update
    description="2025-10-07"
    label="v1.10.35"
    rss={{
title: "v1.10.35 - layout inference",
description: "Improved layout inference with reduced latency."
}}
  >
    * feat: Improved layout inference with reduced latency
  </Update>

  <Update
    description="2025-10-04"
    label="v1.10.34"
    rss={{
title: "v1.10.34 - PDF edit overlay improvements using OCR-B font for better text rendering",
description: "Covers PDF edit overlay improvements using OCR-B font for better text rendering; Timeout configuration improvements for long-running operations."
}}
  >
    * feat: PDF edit overlay improvements using OCR-B font for better text rendering
    * fix: Timeout configuration improvements for long-running operations
  </Update>

  <Update
    description="2025-10-01"
    label="v1.10.33"
    rss={{
title: "v1.10.33 - Worker stability improvements and bug fixes",
description: "Worker stability improvements and bug fixes."
}}
  >
    * fix: Worker stability improvements and bug fixes
  </Update>

  <Update
    description="2025-09-29"
    label="v1.10.32"
    rss={{
title: "v1.10.32 - Spreadsheet extraction agent enhancements for better cell and table...",
description: "Covers Spreadsheet extraction agent enhancements for better cell and table detection; Citation formatting improvements across extraction outputs."
}}
  >
    * feat: Spreadsheet extraction agent enhancements for better cell and table detection
    * fix: Citation formatting improvements across extraction outputs
  </Update>

  <Update
    description="2025-09-24"
    label="v1.10.31"
    rss={{
title: "v1.10.31 - Cross-page table merging improvements",
description: "Covers Cross-page table merging improvements with naive row merging implementation; Performance optimizations for large document processing."
}}
  >
    * feat: Cross-page table merging improvements with naive row merging implementation
    * fix: Performance optimizations for large document processing
  </Update>

  <Update
    description="2025-09-24"
    label="v1.10.30"
    rss={{
title: "v1.10.30 - Enhanced extraction pipeline",
description: "Covers Enhanced extraction pipeline with improved data handling; Error handling improvements throughout the system."
}}
  >
    * feat: Enhanced extraction pipeline with improved data handling
    * fix: Error handling improvements throughout the system
  </Update>

  <Update
    description="2025-09-18"
    label="v1.10.29"
    rss={{
title: "v1.10.29 - GCP Workload Identity support for Google Cloud deployments",
description: "Covers GCP Workload Identity support for Google Cloud deployments; AWS region override configuration for flexible cloud deployments."
}}
  >
    * feat: GCP Workload Identity support for Google Cloud deployments
    * feat: AWS region override configuration for flexible cloud deployments
    * fix: Worker stability enhancements
  </Update>

  <Update
    description="2025-09-17"
    label="v1.10.28"
    rss={{
title: "v1.10.28 - Prometheus alerting integration for monitoring",
description: "Covers Prometheus alerting integration for monitoring; Reliability enhancements for long-running jobs."
}}
  >
    * feat: Prometheus alerting integration for monitoring
    * fix: Reliability enhancements for long-running jobs
  </Update>

  <Update
    description="2025-09-17"
    label="v1.10.27"
    rss={{
title: "v1.10.27 - opt-in or opt-out",
description: "Covers opt-in or opt-out to send billing usage to license server; block OpenAI invocation with BLOCK_OPENAI env var."
}}
  >
    * feat: opt-in or opt-out to send billing usage to license server
    * feat: block OpenAI invocation with BLOCK\_OPENAI env var
    * feat: signature detection
    * fix: helm chart template rendering
    * fix: update figure summarization to correctly override default prompt when user wants to override
    * refactor: update equations detection to use on premise-provided LLMs
  </Update>

  <Update
    description="2025-01-16"
    label="v1.10.24"
    rss={{
title: "v1.10.24 - configurable S3 endpoint url",
description: "configurable S3 endpoint url."
}}
  >
    * feat: configurable S3 endpoint url
  </Update>

  <Update
    description="2025-09-08"
    label="v1.10.21"
    rss={{
title: "v1.10.21 - character-level support for azure in hybrid mode",
description: "Covers character-level support for azure in hybrid mode; support for docx comments."
}}
  >
    * feat: character-level support for azure in hybrid mode
    * feat: support for docx comments
  </Update>

  <Update
    description="2025-09-03"
    label="v1.10.16"
    rss={{
title: "v1.10.16 - split support",
description: "split support with gemini on vertex ai."
}}
  >
    * feat: split support with gemini on vertex ai
  </Update>

  <Update
    description="2025-09-01"
    label="v1.10.13"
    rss={{
title: "v1.10.13 - LLM service",
description: "Covers updated LLM service with vision/text; ensure formatted text (i.e. underline, strikethroughs) is not subsumed by key value detection."
}}
  >
    * refactor: updated LLM service with vision/text
    * fix: ensure formatted text (i.e. underline, strikethroughs) is not subsumed by key value detection
  </Update>

  <Update
    description="2025-08-28"
    label="v1.10.12"
    rss={{
title: "v1.10.12 - secret management in helm chart",
description: "Covers secret management in helm chart; add .msg file support."
}}
  >
    * feat: secret management in helm chart
    * feat: add .msg file support
  </Update>

  <Update
    description="2025-08-26"
    label="v1.10.11"
    rss={{
title: "v1.10.11 - HEIC file format support for image processing",
description: "Covers HEIC file format support for image processing; character-level OCR detection for strikethrough and underline formatting."
}}
  >
    * feat: HEIC file format support for image processing
    * feat: character-level OCR detection for strikethrough and underline formatting
    * feat: parallelize and optimize PDF metadata embedding for improved performance
    * fix: add locks to prevent race conditions
    * fix: timeout handling for DOCX to PDF conversion with proper 400 status codes
  </Update>

  <Update
    description="2025-08-20"
    label="v1.10.8"
    rss={{
title: "v1.10.8 - configurable S3 SSL options for boto",
description: "Covers configurable S3 SSL options for boto; /billing-usage API for exporting usage in air-gapped deployments."
}}
  >
    * feat: configurable S3 SSL options for boto
    * feat: /billing-usage API for exporting usage in air-gapped deployments
  </Update>

  <Update
    description="2025-08-15"
    label="v1.10.7"
    rss={{
title: "v1.10.7 - Google Cloud Storage gs:// document url",
description: "Covers Support for Google Cloud Storage gs:// document url; timeout and fail jobs and batches when queued for GLOBAL_QUEUE_TIMEOUT_SEC."
}}
  >
    * feat: Support for Google Cloud Storage gs\:// document url
    * feat: timeout and fail jobs and batches when queued for GLOBAL\_QUEUE\_TIMEOUT\_SEC
    * feat: BackendConfig support in Helm Chart for GCP
  </Update>

  <Update
    description="2025-08-01"
    label="v1.10.4"
    rss={{
title: "v1.10.4 - generate extract schema if no schema was provided",
description: "Covers generate extract schema if no schema was provided; adding form schema for edit documentation."
}}
  >
    * feat: generate extract schema if no schema was provided
    * feat: adding form schema for edit documentation
  </Update>

  <Update
    description="2025-08-01"
    label="v1.10.3"
    rss={{
title: "v1.10.3 - cold starts",
description: "Covers improve cold starts; fine-grained citation fixes."
}}
  >
    * feat: improve cold starts
    * fix: fine-grained citation fixes
  </Update>

  <Update
    description="2025-07-31"
    label="v1.10.2"
    rss={{
title: "v1.10.2 - DOCX improvements",
description: "Covers DOCX improvements; added schema token limits."
}}
  >
    * feat: DOCX improvements
    * feat: added schema token limits
    * feat: add customizations to auth via environment variables
    * feat: faster model inference optimizations
  </Update>

  <Update
    description="2025-07-30"
    label="v1.10.1"
    rss={{
title: "v1.10.1 - OCR image resizing improvements",
description: "OCR image resizing improvements."
}}
  >
    * fix: OCR image resizing improvements
  </Update>

  <Update
    description="2025-07-29"
    label="v1.10.0"
    rss={{
title: "v1.10.0 - fault-tolerant webhook delivery",
description: "Covers implement fault-tolerant webhook delivery; fix table headers for html parsing."
}}
  >
    * feat: implement fault-tolerant webhook delivery
    * feat: fix table headers for html parsing
    * feat: add secret metadata parameter to /job/{job_id} endpoint
    * feat: include config when include\_metadata is enabled for job endpoint
    * feat: adding sheet color to output
    * feat: clean up refs in extract output
    * feat: excel table color mapping implementation
    * feat: enhance merge tables
    * feat: table feedback loop using the enrich table flag
    * feat: add litellm proxy model for 'best'
  </Update>

  <Update
    description="2025-07-19"
    label="v1.9.94"
    rss={{
title: "v1.9.94 - long-polling",
description: "long-polling with timeout (seconds) query param for `/job/{job_id}`."
}}
  >
    * feat: long-polling with timeout (seconds) query param for `/job/{job_id}`
  </Update>

  <Update
    description="2025-07-16"
    label="v1.9.93"
    rss={{
title: "v1.9.93 - job type and add duration field in `/jobs` endpoint",
description: "Covers job type and add duration field in `/jobs` endpoint; Preserve all decimals in md tables."
}}
  >
    * fix: job type and add duration field in `/jobs` endpoint
    * fix: Preserve all decimals in md tables
    * feat: support for GCP
  </Update>

  <Update
    description="2025-07-14"
    label="v1.9.92"
    rss={{
title: "v1.9.92 - presentation detection and kv-disabling",
description: "presentation detection and kv-disabling."
}}
  >
    * feat: presentation detection and kv-disabling
  </Update>

  <Update
    description="2025-07-11"
    label="v1.9.91"
    rss={{
title: "v1.9.91 - Strike underline tuning",
description: "Strike underline tuning."
}}
  >
    * fix: Strike underline tuning
  </Update>

  <Update
    description="2025-07-11"
    label="v1.9.90"
    rss={{
title: "v1.9.90 - rtf",
description: "Covers implement rtf; Fix offsets for tables extracted from excel sheets."
}}
  >
    * feat: implement rtf
    * fix: Fix offsets for tables extracted from excel sheets
    * feat: add optional confidence fields to OCRWord and OCRLine
    * feat: add source in `/jobs`
    * feat: initial change detection implementation
  </Update>

  <Update
    description="2025-07-10"
    label="v1.9.89"
    rss={{
title: "v1.9.89 - clarify Excel citation coordinate system differences",
description: "Covers clarify Excel citation coordinate system differences; Integrate spreadsheet agent for extract."
}}
  >
    * docs: clarify Excel citation coordinate system differences
    * feat: Integrate spreadsheet agent for extract
    * feat: Convert images to pdf for pdf\_url
    * Fix: Allow Gemini to output `<empty>` and `<signature>` fields for key-value
    * chore: update textract quota
    * feat: option for multiplatform builds for onprem
    * docs: Add Model Governance Policy to security section
    * fix: Split regex fix for subcategory
    * fix: Add retries to spreadsheet agent
    * fix: Merging splits in the new format
    * fix: Merge array\_extract citations based on extract results
    * Add chart extraction documentation page
    * feat: ship both small/large models in built images
    * feat: allow changing default use\_gpu\_ocr config value based on env var
  </Update>

  <Update
    description="2025-07-03"
    label="v1.9.88"
    rss={{
title: "v1.9.88 - handle multipart/form-data content type errors on /split endpoint",
description: "Covers handle multipart/form-data content type errors on /split endpoint; Latency fix: Agentic unicode changes."
}}
  >
    * feat: handle multipart/form-data content type errors on /split endpoint
    * Latency fix: Agentic unicode changes
    * fix: sanitize html file upload path to s3
    * Add strict typing for SplitResult.splits
    * feat: Helm chart and values for GPU-based OCR deployment
  </Update>

  <Update
    description="2025-06-23"
    label="v1.9.86"
    rss={{
title: "v1.9.86 - enhanced DOCX change tracking",
description: "Covers enhanced DOCX change tracking with improved underline detection and formatting accuracy; optimized model server initialization to reduce startup time and improve processing performance."
}}
  >
    * feat: enhanced DOCX change tracking with improved underline detection and formatting accuracy
    * fix: optimized model server initialization to reduce startup time and improve processing performance
  </Update>

  <Update
    description="2025-06-23"
    label="v1.9.85"
    rss={{
title: "v1.9.85 - resolved document conversion hangs caused",
description: "resolved document conversion hangs caused by separate executor processes for improved reliability."
}}
  >
    * fix: resolved document conversion hangs caused by separate executor processes for improved reliability
  </Update>

  <Update
    description="2025-06-20"
    label="v1.9.84"
    rss={{
title: "v1.9.84 - cancel_all endpoint for on-prem deployments",
description: "Covers added cancel_all endpoint for on-prem deployments to cancel all running jobs at once; enhanced extraction with schema key normalization and improved page range references in citations."
}}
  >
    * feat: added cancel\_all endpoint for on-prem deployments to cancel all running jobs at once
    * feat: enhanced extraction with schema key normalization and improved page range references in citations
    * feat: added global timeout overrides for better performance control and reliability
    * fix: resolved document conversion hangs with global timeout implementation
    * fix: improved change tracking validation with proper error handling
  </Update>

  <Update
    description="2025-06-18"
    label="v1.9.83"
    rss={{
title: "v1.9.83 - enhanced DOCX metadata extraction for improved change tracking...",
description: "Covers enhanced DOCX metadata extraction for improved change tracking capabilities; improved Excel citation handling when OCR data is not available."
}}
  >
    * feat: enhanced DOCX metadata extraction for improved change tracking capabilities
    * fix: improved Excel citation handling when OCR data is not available
  </Update>

  <Update
    description="2025-06-18"
    label="v1.9.82"
    rss={{
title: "v1.9.82 - on-prem licensing alerts when connection",
description: "Covers added on-prem licensing alerts when connection to license.reducto.ai fails; implemented timeout functionality for improved processing performance and reliability."
}}
  >
    * feat: added on-prem licensing alerts when connection to license.reducto.ai fails
    * feat: implemented timeout functionality for improved processing performance and reliability
    * fix: improved authentication on /upload and /cancel endpoints for better security
  </Update>

  <Update
    description="2025-06-13"
    label="v1.9.81"
    rss={{
title: "v1.9.81 - enhanced multilingual OCR text embedding",
description: "Covers enhanced multilingual OCR text embedding with support for Latin, CJK, Cyrillic, and Devanagari scripts using custom Unifont font; file-based authentication system for on-prem deployments with Kubernetes secret mounting support."
}}
  >
    * feat: enhanced multilingual OCR text embedding with support for Latin, CJK, Cyrillic, and Devanagari scripts using custom Unifont font
    * feat: file-based authentication system for on-prem deployments with Kubernetes secret mounting support
    * feat: automatic file cleanup system with configurable retention windows (default 60 minutes) to manage storage usage
    * fix: improved authentication reliability with retry logic for API validation calls
    * fix: enhanced extraction pipeline to handle None extract\_outputs and improve data merging
    * fix: native office conversion now skips files over 150MB and falls back to LibreOffice for better reliability
    * fix: improved citation confidence handling when confidence values are null
    * fix: batch processing improvements to keep batches alive for large documents
  </Update>

  <Update
    description="2025-06-11"
    label="v1.9.80"
    rss={{
title: "v1.9.80 - enhanced array extraction",
description: "Covers enhanced array extraction to work with non-array fields for improved data extraction flexibility; improved LLM error handling and timeout support for more reliable model calls."
}}
  >
    * feat: enhanced array extraction to work with non-array fields for improved data extraction flexibility
    * feat: improved LLM error handling and timeout support for more reliable model calls
    * feat: added support for OpenDocument Text (.odt) file uploads through existing LibreOffice conversion pipeline
    * fix: improved block merging logic to properly update table content during document enrichment
    * fix: added retry logic for database errors on job status requests to improve reliability
    * fix: preserve empty blocks (such as figures with no content) in final document layout
  </Update>

  <Update
    description="2025-06-09"
    label="v1.9.79"
    rss={{
title: "v1.9.79 - default",
description: "Covers default to big extract model; automatic file cleanup."
}}
  >
    * feat: default to big extract model
    * feat: automatic file cleanup
    * fix: support for azure openai
    * feat: add hidden sheet/row/column filtering for Excel processing
    * feat: Fix jsonbbox and citations for excel
    * fix: pdf processing timeout
    * fix: Fix DOCX to PDF conversion error status code from 500 to 400
  </Update>

  <Update
    description="2025-06-05"
    label="v1.9.78"
    rss={{
title: "v1.9.78 - change tracking capability",
description: "Covers enable change tracking capability; remove the large figure filter in dfine layout model postprocessing."
}}
  >
    * feat: enable change tracking capability
    * fix: remove the large figure filter in dfine layout model postprocessing
  </Update>

  <Update
    description="2025-06-04"
    label="v1.9.77"
    rss={{
title: "v1.9.77 - Split blocks for array_extract on excel",
description: "Split blocks for array_extract on excel to separate pages."
}}
  >
    * feat: Split blocks for array\_extract on excel to separate pages
  </Update>

  <Update
    description="2025-06-04"
    label="v1.9.76"
    rss={{
title: "v1.9.76 - Persist the full result for url results",
description: "Covers Persist the full result for url results to persist bucket; Query jobs by user-id and fair queueing docs."
}}
  >
    * feat: Persist the full result for url results to persist bucket
    * feat: Query jobs by user-id and fair queueing docs
    * fix: Edit conditionals so full tables aren't returned in citations
    * fix: Fix job type error when cancelling a job
    * fix: on-prem changelog auth on light and dark mode
    * fix: Rename file to include guessed extension if one isn't already included
    * fix: handle empty bbox arrays in layout postprocess calculations
  </Update>

  <Update
    description="2025-06-02"
    label="v1.9.75"
    rss={{
title: "v1.9.75 - replicated helm chart",
description: "Covers update replicated helm chart; surface all table citations in v2."
}}
  >
    * feat: update replicated helm chart
    * feat: surface all table citations in v2
  </Update>

  <Update
    description="2025-05-30"
    label="v1.9.74"
    rss={{
title: "v1.9.74 - internal webhook via IPC on job completion",
description: "Covers internal webhook via IPC on job completion; expose table citations in extraction results."
}}
  >
    * feat: internal webhook via IPC on job completion
    * feat: expose table citations in extraction results
    * feat: add persist config option that persists parsebatches and results
    * fix: keep batch alive for large HTML documents
    * fix: check for empty document\_url list in extract
    * refactor: PDF editing with PyPDFForm for improved form handling
  </Update>

  <Update
    description="2025-05-29"
    label="v1.9.73"
    rss={{
title: "v1.9.73 - extraction pipeline",
description: "Covers update extraction pipeline with improved array handling; f-string usage in logfire calls across the codebase."
}}
  >
    * feat: update extraction pipeline with improved array handling
    * fix: f-string usage in logfire calls across the codebase
  </Update>

  <Update
    description="2025-05-28"
    label="v1.9.72"
    rss={{
title: "v1.9.72 - OpenAI vision LLM calls in LLM router",
description: "OpenAI vision LLM calls in LLM router."
}}
  >
    * fix: OpenAI vision LLM calls in LLM router
  </Update>

  <Update
    description="2025-05-28"
    label="v1.9.71"
    rss={{
title: "v1.9.71 - root level acroform rendering (preserve form values)",
description: "Covers root level acroform rendering (preserve form values); add onprem config option to enable figure summaries for all figures."
}}
  >
    * fix: root level acroform rendering (preserve form values)
    * feat: add onprem config option to enable figure summaries for all figures
    * feat: add exclude\_configs query param to /jobs endpoint to reduce response size
    * fix: onprem CD now corrects the `/version` url to the latest version number
  </Update>

  <Update
    description="2025-05-23"
    label="v1.9.70"
    rss={{
title: "v1.9.70 - OCR text embedding metadata for PDFs",
description: "Adds an `embed_text_metadata_pdf` flag for OCR text embedding in PDFs."
}}
  >
    Enhanced support for OCR text embedding in PDFs with `embed_text_metadata_pdf` flag.
  </Update>

  <Update
    description="2025-05-23"
    label="v1.9.69"
    rss={{
title: "v1.9.69 - On-prem v2 routing and editing configuration fixes",
description: "Adds on-prem routing to the v2 extraction pipeline, improves Stripe usage logging exception handling, and fixes Pydantic AI Agent tool configuration for document editing."
}}
  >
    Added support for routing on-premise deployments to v2 extraction pipeline and improved exception handling for subscription errors in Stripe usage logging. Fixed Pydantic AI Agent tools configuration in the document editing functionality.
  </Update>

  <Update
    description="2025-05-23"
    label="v1.9.68"
    rss={{
title: "v1.9.68 - Azure OpenAI support and webhook validation",
description: "Adds Azure OpenAI support, a table-model fallback, webhook validation improvements, and selective customer notifications via target channels."
}}
  >
    Added Azure OpenAI support and improved table model with a new fallback
    mechanism. Enhanced webhook validation and added support for selective
    customer notifications via target channels parameter.
  </Update>

  <Update
    description="2025-05-19"
    label="v1.9.67"
    rss={{
title: "v1.9.67 - `LITELLM_PROXY_URL`: URL of the LiteLLM Proxy",
description: "Covers `LITELLM_PROXY_URL`: URL of the LiteLLM Proxy; `LITELLM_PROXY_FAST_MODEL`: Fast model to route to via the proxy."
}}
  >
    Added support for LiteLLM Proxy configuration via environment variables:

    * `LITELLM_PROXY_URL`: URL of the LiteLLM Proxy
    * `LITELLM_PROXY_FAST_MODEL`: Fast model to route to via the proxy
    * `LITELLM_PROXY_ACCURATE_MODEL`: Accurate model to route to via the proxy

    When using the proxy configuration:

    * Both fast and accurate models must be defined if using the proxy URL
    * Existing LiteLLM routing options are overridden when proxy settings are active

    This enables easier integration with centralized proxy setups for model routing and observability.
  </Update>

  <Update
    description="2025-04-07"
    label="v1.9.48"
    rss={{
title: "v1.9.48 - Backend-only database wipe endpoint",
description: "Adds a backend-only `/wipe` endpoint to remove all parse jobs, batches, and tasks from an on-prem database."
}}
  >
    Add a `/wipe` endpoint to the On-Prem API to wipe the database of all parse jobs, batches, and tasks. This is only available to on prem customers and is a good fail safe.

    Ensure that this is not available or exposed to the users. Should be a backend only failsafe. Please let us know if you'd like this disabled or removed in your deployment.
  </Update>

  <Update
    description="2025-04-07"
    label="v1.9.47"
    rss={{
title: "v1.9.47 - Postgres CPU and skew detection optimizations",
description: "Reduces Postgres CPU usage at high document volumes, updates Google Cloud skew-detection thresholds, and fixes LLM provider preference issues."
}}
  >
    In this release, we make some query optimizations to significantly reduce CPU usage of the Postgres DB at high document volumes (e.g. > 1k pg/min).

    In Google Cloud environments, we improved the skew detection capability by updating our thresholds to more intelligently detect skew in certain cases. Some additional bug fixes were made for folks who specify an LLM provider preference.
  </Update>
</PasswordProtect>
