Release notes for on-premise deployments of Reducto
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Reducto","colors":{"primary":"#5c0c5c","light":"#c77dba","dark":"#5c0c5c"},"logo":{"light":"https://cdn.reducto.ai/logo.svg","dark":"https://cdn.reducto.ai/logo-dark.svg"},"favicon":"https://mintcdn.com/reducto/7owl8-bq0hdh9XB8/favicon.ico?fit=max\u0026auto=format\u0026n=7owl8-bq0hdh9XB8\u0026q=85\u0026s=90372b27ca6d42c4f6192cbba673afb5","api":{"examples":{"languages":["python","javascript","go"]}},"appearance":{"default":"light"},"navbar":{"links":[{"href":"https://reducto.ai/?utm_source=docs\u0026utm_medium=referral\u0026utm_campaign=docs_product_bridge\u0026utm_content=navbar_product","label":"Product"},{"href":"https://reducto.ai/blog","label":"Blog"}],"primary":{"type":"button","label":"Log In","href":"https://studio.reducto.ai/"}},"footer":{"socials":{"x":"https://x.com/reductoai","linkedin":"https://www.linkedin.com/company/reducto-ai"},"links":[{"header":"Product","items":[{"label":"Homepage","href":"https://reducto.ai/"},{"label":"Pricing","href":"https://reducto.ai/pricing"},{"label":"Playground","href":"https://studio.reducto.ai/"}]},{"header":"Company","items":[{"label":"Careers","href":"https://reducto.ai/careers"},{"label":"Blog","href":"https://reducto.ai/blog"},{"label":"Support","href":"mailto:support@Reducto.ai"}]},{"header":"Legal","items":[{"label":"Privacy Policy","href":"https://reducto.ai/privacy"},{"label":"Terms of Service","href":"https://reducto.ai/terms"}]}]},"fonts":{"heading":{"family":"Reducto Sans Bold","source":"https://cdn.reducto.ai/fonts/ReductoSansBold.woff2","format":"woff2"},"body":{"family":"Reducto Sans","source":"https://cdn.reducto.ai/fonts/ReductoSans.woff2","format":"woff2"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Status","icon":"signal","href":"https://status.reducto.ai"},{"anchor":"Studio","icon":"browser","href":"https://studio.reducto.ai"},{"anchor":"Support","icon":"envelope","href":"mailto:support@reducto.ai"},{"anchor":"Model Versions","icon":"bell","href":"/reference/model-versions"},{"anchor":"Changelog","icon":"clock-rotate-left","href":"/reference/changelog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"reducto","hasAudioNarration":false,"actualSubdomain":"reducto","customDomains":["docs.reducto.ai"],"gitSource":{"type":"github","owner":"reductoai","repo":"api","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae59938f146f7c5c1de1636","collectionId":"731526aa-4f41-4f42-9450-03d7fcdf0414","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae59938f146f7c5c1de1636"},"feedback":{"issues":false,"edits":false,"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae59938f146f7c5c1de1636","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Documentation","count":82},{"language":"default","tag":"API Reference","count":36},{"language":"default","tag":"SDKs","count":30},{"language":"default","tag":"Document Processing","count":24},{"language":"default","tag":"Configurations","count":18},{"language":"default","tag":"Core Methods","count":18},{"language":"default","tag":"On-premise Resources","count":17},{"language":"default","tag":"Core Functions","count":15},{"language":"default","tag":"Reference","count":11},{"language":"default","tag":"Utilities","count":10}]},"assistantConfig":{"deflection":{"enabled":true,"email":"support@reducto.ai","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"onprem/changelog","slug":"/onprem/changelog","pageMetadata":{"title":"On-premise changelog","description":"Release notes for on-premise deployments of Reducto","rss":true,"href":"/onprem/changelog"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Release notes for on-premise deployments of Reducto\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];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 _jsx(_Fragment,{children})}return _jsxs(`div`,{style:{padding:`2rem`,border:`2px solid #e2e8f0`,borderRadius:`8px`,textAlign:`center`,margin:`2rem 0`},children:[_jsx(`div`,{style:{fontSize:`2rem`,marginBottom:`1rem`},children:`🔒`}),_jsx(`h2`,{children:`Protected Content`}),_jsx(`p`,{children:`This content requires a password to access.`}),_jsxs(`form`,{onSubmit:handleSubmit,style:{marginTop:`1rem`},children:[_jsx(`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`}}),_jsx(`button`,{type:`submit`,style:{padding:`0.5rem 1rem`,backgroundColor:`#5c0c5c`,color:`white`,border:`none`,borderRadius:`4px`,cursor:`pointer`,fontSize:`1rem`},children:`Unlock`})]}),error\u0026\u0026_jsx(`p`,{style:{color:`red`,marginTop:`1rem`},children:error})]})};function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Update,_MdxComponentBoundary}=_components;if(!Update)_missingMdxReference(`Update`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsx(_MdxComponentBoundary,{name:`PasswordProtect`,children:_jsxs(PasswordProtect,{children:[_jsx(Update,{description:`2026-10-08`,label:`unreleased`,tags:[`action-required`,`operator`],rss:{title:`LibreOffice runs as its own ServiceAccount`,description:`LibreOffice pods now run as \u003crelease>-reducto-libreoffice with no annotations and no API token; grant SA-keyed policies to it before upgrading.`},id:`unreleased`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`action required: With `,_jsx(_components.code,{children:`libreoffice.enabled`}),` and `,_jsx(_components.code,{children:`serviceAccount.create`}),` (the default), the chart creates a ServiceAccount named `,_jsx(_components.code,{children:`\u003crelease>-reducto-libreoffice`}),` and runs the LibreOffice pods as it, with no annotations and no Kubernetes API token; `,_jsx(_components.code,{children:`serviceAccount.annotations`}),` (IRSA, workload identity) stay on `,_jsx(_components.code,{children:`\u003crelease>-reducto`}),`. `,_jsx(_components.code,{children:`libreoffice.serviceAccount.create`}),` overrides this either way. With `,_jsx(_components.code,{children:`serviceAccount.create: false`}),` nothing changes unless you set it to `,_jsx(_components.code,{children:`true`}),`. If your cluster keys anything to the `,_jsx(_components.code,{children:`\u003crelease>-reducto`}),` name, such as OpenShift SCC grants, Gatekeeper or Kyverno service account allowlists, or `,_jsx(_components.code,{children:`imagePullSecrets`}),` attached to that ServiceAccount instead of `,_jsx(_components.code,{children:`image.pullSecretName`}),`, extend it to the new ServiceAccount before upgrading, or LibreOffice pods fail admission or image pull.`]}),`\n`,_jsx(_components.li,{children:`LibreOffice parses untrusted documents. On nodes that allow pods to reach the instance metadata service (IMDSv1, or an IMDSv2 hop limit of 2), it can still reach the node’s instance role; set the hop limit to 1 or block 169.254.169.254 from the namespace.`}),`\n`]})}),_jsx(Update,{description:`2026-10-10`,label:`v1.12.20`,tags:[`reliability`,`security`,`operator`,`action-required`],rss:{title:`v1.12.20 - Spreadsheet and worker fixes with CVE patches`,description:`Fixes spreadsheet, extract citation, glyph, and worker file handling, and patches CVEs flagged in the runtime images. Action: upgrade to pick up the patches.`},id:`v1-12-20`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: Extract citations handle custom schema field names more robustly.`}),`\n`,_jsx(_components.li,{children:`fix: Spreadsheet parsing fixes for empty cells and cell text in large workbooks.`}),`\n`,_jsx(_components.li,{children:`fix: Lower memory use when rendering spreadsheets and when correcting glyphs on very large pages.`}),`\n`,_jsx(_components.li,{children:`fix: Multi-document extract reports every source document when a spreadsheet is included.`}),`\n`,_jsx(_components.li,{children:`fix: Worker file handoff fixes for converted documents.`}),`\n`,_jsx(_components.li,{children:`fix: Azure deployments: Blob Storage inputs from another storage account are handled correctly.`}),`\n`,_jsx(_components.li,{children:`security: Patch CVEs flagged in the runtime images.`}),`\n`]})}),_jsx(Update,{description:`2026-10-05`,label:`v1.12.19`,tags:[`feature`,`reliability`,`operator`],rss:{title:`v1.12.19 - OCR provider chain and spreadsheet improvements`,description:`Adds an ordered cloud OCR provider chain with per-page retries, improves spreadsheet output, and hardens OCR and glyph handling against partial failures.`},id:`v1-12-19`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Cloud OCR runs as an ordered provider chain with per-page retries.`}),`\n`,_jsx(_components.li,{children:`fix: OCR falls back per page across the configured providers.`}),`\n`,_jsx(_components.li,{children:`fix: Glyph correction tolerates a single bad font or glyph.`}),`\n`,_jsx(_components.li,{children:`feat: Spreadsheets return hyperlinks as Markdown links and handle sparse sheets more efficiently.`}),`\n`,_jsx(_components.li,{children:`fix: Multi-document extract reads every source document when a spreadsheet is included.`}),`\n`,_jsxs(_components.li,{children:[`fix: GCP deployments: the `,_jsx(_components.code,{children:`GCP_REGION`}),` warning fires only when a call would fail. See `,_jsx(_components.a,{href:`/onprem/llm_options`,children:`LLM options`}),`.`]}),`\n`]})}),_jsx(Update,{description:`2026-09-28`,label:`v1.12.18`,tags:[`feature`,`reliability`,`security`,`performance`,`operator`,`action-required`],rss:{title:`v1.12.18 - Fair queuing, RAW images, GPT-6 defaults, and CVE patches`,description:`Adds fair queuing and page throttling, camera RAW support, and OCR CPU tuning, and moves default OpenAI models to GPT-6. Action: allow the new OpenAI models where model access is restricted, and upgrade to pick up the AnyIO CVE patch.`},id:`v1-12-18`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`action required: Default OpenAI models move to GPT-6 Luna and GPT-6 Sol. Allow them if you restrict model access. See `,_jsx(_components.a,{href:`/onprem/llm_options`,children:`LLM options`}),`.`]}),`\n`,_jsx(_components.li,{children:`security: Patch the AnyIO CVE (CVE-2026-63374). Upgrade to pick up the fix.`}),`\n`,_jsx(_components.li,{children:`security: Optional hardened container security context in the chart (nonroot, read-only root filesystem, dropped capabilities).`}),`\n`,_jsxs(_components.li,{children:[`feat: Fair queuing across users and a per-user pages-per-second throttle. See `,_jsx(_components.a,{href:`/onprem/fair_queueing`,children:`fair queueing`}),`.`]}),`\n`,_jsx(_components.li,{children:`feat: Parse accepts camera RAW images (ARW, CR2, CR3, NEF, DNG, RAF, ORF, RW2, PEF).`}),`\n`,_jsxs(_components.li,{children:[`feat: Opt-in CPU tuning for OCR. See `,_jsx(_components.a,{href:`/onprem/ocr_options`,children:`OCR options`}),`.`]}),`\n`,_jsx(_components.li,{children:`fix: Table formatting fixes at page continuation boundaries and for cells containing equals signs.`}),`\n`,_jsx(_components.li,{children:`fix: More resilient PDF rendering for malformed documents.`}),`\n`,_jsx(_components.li,{children:`fix: Extract citations recover when parse blocks clip OCR words.`}),`\n`,_jsx(_components.li,{children:`fix: Cancelled and timed-out jobs stay failed instead of completing.`}),`\n`,_jsx(_components.li,{children:`fix: The post-deploy hook retries package installs across mirror outages.`}),`\n`,_jsx(_components.li,{children:`fix: CronJob disruption protection is independently configurable.`}),`\n`,_jsx(_components.li,{children:`perf: Faster spreadsheet processing and lower worker memory between tasks.`}),`\n`]})}),_jsx(Update,{description:`2026-09-18`,label:`v1.12.17`,tags:[`security`,`reliability`,`action-required`],rss:{title:`v1.12.17 - HEIF image CVE patches and table and edit fixes`,description:`Patches the HEIF image-parsing CVEs (HEIF Heist) and fixes table merging and DOCX edits. Action: upgrade to pick up the security patches.`},id:`v1-12-17`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`security: Patch the HEIF image-parsing CVEs (HEIF Heist). Upgrade to pick up the fix.`}),`\n`,_jsx(_components.li,{children:`fix: Table merging across pages is more accurate on the fallback path.`}),`\n`,_jsx(_components.li,{children:`fix: DOCX edits no longer drop or shift answers in long documents.`}),`\n`]})}),_jsx(Update,{description:`2026-09-16`,label:`v1.12.16`,tags:[`maintenance`,`operator`],rss:{title:`v1.12.16 - Gemini default model update`,description:`Moves default Gemini models to Gemini 3.5 Flash Lite, 3.7 Flash, and 3.8 Flash following Google's deprecation of the 2.5 series. Deployments that restrict Gemini model access should allow the new models.`},id:`v1-12-16`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`chore: Move default Gemini models to Gemini 3.5 Flash Lite, 3.7 Flash, and 3.8 Flash following Google’s deprecation of the 2.5 series. Deployments that restrict Gemini model access should allow the new models.`}),`\n`]})}),_jsx(Update,{description:`2026-09-16`,label:`v1.12.15`,tags:[`feature`,`reliability`,`operator`],rss:{title:`v1.12.15 - Gateway memory leak, Extract usage, and OCR fixes`,description:`Adds more inference service profiles, fixes an inference gateway memory leak, stops counting empty pages toward Extract usage, and fixes OCR and text-layer embedding failures.`},id:`v1-12-15`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Additional configurable profiles for the inference service.`}),`\n`,_jsx(_components.li,{children:`fix: The inference gateway no longer retains decoded page images after each layout prediction, which removes a memory leak that could reach several gigabytes per pod.`}),`\n`,_jsx(_components.li,{children:`fix: Extract no longer counts pages whose only block is empty toward usage.`}),`\n`,_jsx(_components.li,{children:`fix: Embedding the PDF text layer no longer fails on documents with empty OCR lines.`}),`\n`,_jsx(_components.li,{children:`fix: OCR skips text candidates whose polygon collapses instead of failing the page.`}),`\n`]})}),_jsx(Update,{description:`2026-09-15`,label:`v1.12.14`,tags:[`security`,`maintenance`,`chainguard`,`action-required`],rss:{title:`v1.12.14 - Vulnerability patches and security updates`,description:`Refreshes the Chainguard FIPS base image and bumps dependencies flagged by vulnerability scanning. Upgrade on-prem deployments to pick up the patches.`},id:`v1-12-14`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`chore: Bump the Chainguard `,_jsx(_components.code,{children:`python-fips`}),` base image to 3.11.16-dev (glibc 2.44).`]}),`\n`,_jsx(_components.li,{children:`chore: Bump dependencies flagged by the Trivy vulnerability scan.`}),`\n`]})}),_jsx(Update,{description:`2026-09-15`,label:`v1.12.13`,tags:[`feature`,`reliability`,`operator`],rss:{title:`v1.12.13 - LLM gateway routing, worker resilience, and extraction fixes`,description:`Adds LLM gateway routing and per-request LLM tags for on-prem, hardens workers against Redis outages and PDF render crashes, and fixes extraction citation pages and output-limit errors.`},id:`v1-12-13`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`feat: Route OpenAI traffic through an OpenAI-compatible gateway or proxy, with optional custom request headers. Azure OpenAI and LiteLLM proxy routing are unchanged. See `,_jsx(_components.a,{href:`/onprem/llm_options`,children:`LLM options`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`feat: Attach per-request tags to a job for cost attribution in LiteLLM. See `,_jsx(_components.a,{href:`/onprem/llm_options`,children:`LLM options`}),`.`]}),`\n`,_jsx(_components.li,{children:`feat: Parse-only deployments on the new worker architecture can run without the IO worker.`}),`\n`,_jsxs(_components.li,{children:[`feat: The legacy worker can run alongside the new workers during the streaq migration without sharing inference capacity, and rollouts wait for in-flight legacy jobs to finish. See `,_jsx(_components.a,{href:`/onprem/operations`,children:`operations`}),`.`]}),`\n`,_jsx(_components.li,{children:`feat: Optional lockstep scaling keeps in-cluster inference capacity proportional to the number of CPU worker pods.`}),`\n`,_jsx(_components.li,{children:`feat: Configurable profiles for the inference service.`}),`\n`,_jsx(_components.li,{children:`feat: Extract and Deep Extract responses include the job duration.`}),`\n`,_jsx(_components.li,{children:`feat: Extraction that exceeds the model’s output limit returns a 413 with remediation guidance instead of a 500.`}),`\n`,_jsx(_components.li,{children:`fix: Workers recover from lost Redis connections without leaking connection slots, and stop accepting new work until the connection is back.`}),`\n`,_jsx(_components.li,{children:`fix: A crashed CPU worker job moves to a larger worker instead of retrying in place.`}),`\n`,_jsx(_components.li,{children:`fix: Serialize PDF rendering calls to prevent worker crashes when multiple regions render concurrently.`}),`\n`,_jsx(_components.li,{children:`fix: Fine-grained extract citations report the correct original page when the upstream parse used a page range.`}),`\n`,_jsx(_components.li,{children:`fix: Align the embedded-text OCR overlay with the visible text on pages whose page box origin is offset.`}),`\n`,_jsx(_components.li,{children:`fix: Quieter stdout logs. Removed noise, stray prints, and secret values.`}),`\n`]})}),_jsx(Update,{description:`2026-09-03`,label:`v1.12.12`,tags:[`feature`,`reliability`,`operator`],rss:{title:`v1.12.12 - Optional inference service, load shedding, and worker reliability`,description:`Adds an optional CPU-based inference service and per-queue admission caps for on-prem, makes agentic table timeouts configurable, and hardens worker Redis reconnects and pod draining.`},id:`v1-12-12`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Add an optional CPU-based inference service that isolates inference workloads from the API and worker pods.`}),`\n`,_jsxs(_components.li,{children:[`feat: Add optional per-queue admission caps for the new worker architecture. Off by default. See `,_jsx(_components.a,{href:`/onprem/operations#load-shedding`,children:`load shedding`}),`.`]}),`\n`,_jsx(_components.li,{children:`feat: Add an optional setting to keep a warm spare compute subprocess in each CPU worker.`}),`\n`,_jsxs(_components.li,{children:[`feat: Make agentic table concurrency and timeouts configurable with `,_jsx(_components.code,{children:`AGENTIC_TABLE_CONCURRENCY`}),`, `,_jsx(_components.code,{children:`AGENTIC_TABLE_PHASE_DEADLINE_S`}),`, and `,_jsx(_components.code,{children:`AGENTIC_TABLE_MODEL_TIMEOUT_S`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`feat: Return a top-level `,_jsx(_components.code,{children:`duration`}),` on `,_jsx(_components.code,{children:`/split`}),` responses.`]}),`\n`,_jsx(_components.li,{children:`fix: Workers reconnect after a lost Redis connection instead of crashing the pod, and draining pods finish in-flight tasks instead of re-running them.`}),`\n`,_jsxs(_components.li,{children:[`fix: `,_jsx(_components.code,{children:`/edit`}),` supports DOCX files with embedded documents (altChunk) and preserves BOM-prefixed XML parts.`]}),`\n`]})}),_jsx(Update,{description:`2026-08-28`,label:`v1.12.11`,tags:[`feature`,`reliability`,`developer`],rss:{title:`v1.12.11 - Job IDs on split and edit, pipeline reliability`,description:`Adds job IDs on /split and /edit, accepts ignore_watermarks on v2 and v3, and improves CSV segmentation and PDF form fill.`},id:`v1-12-11`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`feat: `,_jsx(_components.code,{children:`/split`}),` and `,_jsx(_components.code,{children:`/edit`}),` now return a `,_jsx(_components.code,{children:`job_id`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`feat: Accept `,_jsx(_components.code,{children:`ignore_watermarks`}),` on both v2 and v3 request shapes.`]}),`\n`,_jsx(_components.li,{children:`fix: Segment large CSV clusters with semantic seams and ground embedding summaries.`}),`\n`,_jsxs(_components.li,{children:[`fix: `,_jsx(_components.code,{children:`/edit`}),` treats `,_jsx(_components.code,{children:`font_size`}),` as a ceiling and auto-sizes text for PDF form fill.`]}),`\n`]})}),_jsx(Update,{description:`2026-08-26`,label:`v1.12.10`,tags:[`reliability`,`maintenance`],rss:{title:`v1.12.10 - Fused worker task rollout`,description:`Extract and split now run entirely on the fused CPU job task, and a spurious reasoning_effort warning is gone.`},id:`v1-12-10`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`refactor: `,_jsx(_components.code,{children:`/extract`}),` and `,_jsx(_components.code,{children:`/split`}),` now run entirely on the fused CPU `,_jsx(_components.code,{children:`job_task`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`fix: Stop a spurious warning when a non-reasoning model alias inherits `,_jsx(_components.code,{children:`reasoning_effort`}),`.`]}),`\n`]})}),_jsx(Update,{description:`2026-08-26`,label:`v1.12.9`,tags:[`reliability`,`performance`,`feature`],rss:{title:`v1.12.9 - Word-family edit support and worker memory fix`,description:`Adds Word-family file conversion for /edit and stops memory (RSS) from accumulating across batches in long-lived workers.`},id:`v1-12-9`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`feat: Convert Word-family files (`,_jsx(_components.code,{children:`.doc`}),`, `,_jsx(_components.code,{children:`.rtf`}),`, and similar) to DOCX for `,_jsx(_components.code,{children:`/edit`}),`.`]}),`\n`,_jsx(_components.li,{children:`perf: Stop RSS accumulating across batches in long-lived workers, reducing memory growth and OOM risk.`}),`\n`]})}),_jsx(Update,{description:`2026-08-25`,label:`v1.12.8`,tags:[`security`,`action-required`,`reliability`,`operator`],rss:{title:`v1.12.8 - Critical ffmpeg CVE fix and worker reliability`,description:`Action: upgrade on-prem deployments to pick up a critical bundled-ffmpeg CVE fix (CVE-2026-40962), plus worker and Helm reliability improvements.`},id:`v1-12-8`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`security: Upgrade `,_jsx(_components.code,{children:`av`}),` to 18.1.0 to remediate a critical CVE in the bundled ffmpeg (CVE-2026-40962). Upgrade on-prem deployments to pick up this fix, see `,_jsx(_components.a,{href:`/onprem/operations`,children:`operations`}),` and `,_jsx(_components.a,{href:`/onprem/securing_reducto`,children:`securing Reducto`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`feat: Add `,_jsx(_components.code,{children:`settings.alpha.return_image_max_dimension`}),` to downscale returned images.`]}),`\n`,_jsx(_components.li,{children:`feat: Dynamic document-conversion timeout and an updated DOCX conversion library.`}),`\n`,_jsxs(_components.li,{children:[`fix: Reject `,_jsx(_components.code,{children:`PreferSameZone`}),` traffic distribution on Kubernetes 1.31 to 1.33, and retry the post-deploy hook once on a transient failure.`]}),`\n`]})}),_jsx(Update,{description:`2026-08-21`,label:`v1.12.7`,tags:[`security`,`action-required`,`reliability`,`feature`,`developer`],rss:{title:`v1.12.7 - SSRF guard, dependency CVE fixes, and .eml support`,description:`Action: upgrade to pick up an SSRF guard for customer-supplied URL inputs and transitive dependency CVE fixes. Also adds .eml support and improves PDF, OCR, and Office conversion handling.`},id:`v1-12-7`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`security: Add an SSRF guard for customer-controlled URL fetching, see `,_jsx(_components.a,{href:`/onprem/securing_reducto`,children:`securing Reducto`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`security: Bump vulnerable transitive dependencies (starlette, gitpython, lxml) to remediate on-prem image CVEs. Upgrade on-prem deployments to pick up these fixes, see `,_jsx(_components.a,{href:`/onprem/operations`,children:`operations`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`feat: Support `,_jsx(_components.code,{children:`.eml`}),` email documents by converting them to HTML, and route csv/msg/eml conversion onto the CPU path.`]}),`\n`,_jsxs(_components.li,{children:[`fix: Unbind Word `,_jsx(_components.code,{children:`@page`}),` rules that clip wide email tables during HTML-to-PDF conversion.`]}),`\n`,_jsx(_components.li,{children:`fix: Read PDF metadata without mutating the document and tolerate page-mapping mismatches.`}),`\n`,_jsx(_components.li,{children:`fix: Preserve rotation polygons in Azure Vision OCR output.`}),`\n`,_jsxs(_components.li,{children:[`fix: Stop labelling subprocess-pool starvation as `,_jsx(_components.code,{children:`DOCUMENT_CORRUPT`}),`.`]}),`\n`]})}),_jsx(Update,{description:`2026-08-18`,label:`v1.12.6`,tags:[`reliability`,`operator`],rss:{title:`v1.12.6 - Upgrade safety and parse reliability`,description:`Adds upgrade guards for the new Reducto architecture and improves small-text parse quality.`},id:`v1-12-6`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Guard upgrades to the new Reducto architecture. Helm requires Redis plus healthy io/cpu workers on v1.12.6 or later before it permits the upgrade.`}),`\n`,_jsx(_components.li,{children:`fix: Adapt region-crop DPI to page font size for better small-text quality.`}),`\n`]})}),_jsx(Update,{description:`2026-08-15`,label:`v1.12.5`,tags:[`reliability`,`feature`,`operator`],rss:{title:`v1.12.5 - Office conversion robustness and Helm hardening`,description:`Improves DOCX and XLSX conversion reliability and error handling, and adds Helm scheduling and service-account hardening for on-prem clusters.`},id:`v1-12-5`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Add a DOCX to PDF fallback path for more reliable conversion.`}),`\n`,_jsx(_components.li,{children:`fix: Improve Office file conversion reliability and return clearer errors for files that cannot convert.`}),`\n`,_jsx(_components.li,{children:`fix: Kill the whole LibreOffice process group on conversion timeout to prevent stuck conversions.`}),`\n`,_jsx(_components.li,{children:`fix: Fall back to raw OCR text when text enrichment fails or returns malformed output.`}),`\n`,_jsxs(_components.li,{children:[`feat: Add PodDisruptionBudget coverage, topology spread, service-account token hardening, and `,_jsx(_components.code,{children:`priorityClassName`}),` knobs to the Helm chart.`]}),`\n`,_jsx(_components.li,{children:`fix: Load the GPU OCR model before serving and gate traffic on readiness.`}),`\n`]})}),_jsx(Update,{description:`2026-08-10`,label:`v1.12.4`,tags:[`feature`,`reliability`,`operator`,`developer`],rss:{title:`v1.12.4 - Spreadsheet accuracy, HTML hyperlinks, and on-prem storage hardening`,description:`Adds HTML hyperlink extraction, with reliability fixes for spreadsheets, edit, extract, worker shutdown, and managed Redis/Azure storage on-prem.`},id:`v1-12-4`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`feat: `,_jsx(_components.code,{children:`/parse`}),` supports `,_jsx(_components.code,{children:`formatting.include=[\"hyperlinks\"]`}),` for HTML inputs.`]}),`\n`,_jsxs(_components.li,{children:[`feat: Expose embedded document properties behind `,_jsx(_components.code,{children:`extract_document_properties`}),`.`]}),`\n`,_jsx(_components.li,{children:`fix: Harden managed Redis and Azure storage compatibility for on-prem deployments.`}),`\n`,_jsx(_components.li,{children:`fix: Safely requeue in-flight worker tasks during shutdown to avoid dropped jobs.`}),`\n`,_jsx(_components.li,{children:`fix: Make spreadsheet agent citations 1-based and sheet-aware.`}),`\n`,_jsx(_components.li,{children:`fix: Stop hidden row/column exclusion from dropping visible content or splitting tables.`}),`\n`,_jsxs(_components.li,{children:[`fix: `,_jsx(_components.code,{children:`/edit`}),` toggles printed checkboxes in place instead of duplicating the option.`]}),`\n`,_jsxs(_components.li,{children:[`fix: Return a clearer error instead of blaming `,_jsx(_components.code,{children:`page_range`}),` when a document has zero pages.`]}),`\n`,_jsx(_components.li,{children:`chore: Bump python-calamine-reducto for a spreadsheet boolean-cell fix.`}),`\n`]})}),_jsx(Update,{description:`2026-08-04`,label:`v1.12.3`,tags:[`feature`,`reliability`,`performance`,`operator`,`developer`],rss:{title:`v1.12.3 - On-prem GPU and Redis hardening`,description:`Adds private Redis CA support and hardens on-prem GPU inference alongside parse, extract, and edit accuracy fixes.`},id:`v1-12-3`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Support private Redis CA certificates for on-prem deployments.`}),`\n`,_jsx(_components.li,{children:`fix: Fix GPU image builds by including the required NVIDIA dependencies.`}),`\n`,_jsxs(_components.li,{children:[`fix: Surface structured error code and name on failed async jobs, and preserve `,_jsx(_components.code,{children:`SERVICE_UNAVAILABLE`}),` on legacy 503 responses.`]}),`\n`,_jsx(_components.li,{children:`fix: Preserve checkbox, empty, and signature tags from agentic table output.`}),`\n`,_jsx(_components.li,{children:`fix: Improve OCR page numbering and spreadsheet figure bounding boxes and merged-range handling.`}),`\n`]})}),_jsx(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.`},id:`v1-12-2`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Native DOCX comment extraction now returns comments anchored to the relevant document blocks.`}),`\n`,_jsxs(_components.li,{children:[`feat: `,_jsx(_components.code,{children:`/edit`}),` can synthesize form fields for questionnaires that do not include them.`]}),`\n`,_jsx(_components.li,{children:`feat: v3 parse supports customer-managed encryption with a KMS key (alpha).`}),`\n`,_jsxs(_components.li,{children:[`fix: Improve citation handling and page-range support for `,_jsx(_components.code,{children:`/extract`}),` requests.`]}),`\n`,_jsx(_components.li,{children:`fix: Resolve failures in document ordering and checkbox detection.`}),`\n`,_jsx(_components.li,{children:`fix: Improve handling of rotated PDFs in embed and parse results.`}),`\n`]})}),_jsx(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.`},id:`v1-12-1`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Improve reliability and performance for large spreadsheet processing.`}),`\n`,_jsx(_components.li,{children:`feat: Add asynchronous job deletion endpoints.`}),`\n`,_jsx(_components.li,{children:`feat: Improve extraction quality and reliability for large documents.`}),`\n`,_jsxs(_components.li,{children:[`fix: `,_jsx(_components.code,{children:`/edit`}),`: preserve AcroForm through overflow-page assembly, render filled text at the correct size, and write radio button values by name.`]}),`\n`,_jsx(_components.li,{children:`fix: Correct embedded text-layer placement on rotated (90/270) PDF pages.`}),`\n`,_jsxs(_components.li,{children:[`fix: Honor `,_jsx(_components.code,{children:`/extract`}),` page-range settings and improve citation accuracy.`]}),`\n`,_jsx(_components.li,{children:`fix: Improve reliability when embedding or converting large PDFs.`}),`\n`,_jsx(_components.li,{children:`fix: Handle corrupt TIFF palettes in image load paths.`}),`\n`,_jsx(_components.li,{children:`perf: Reduce memory usage when processing dense and scanned documents.`}),`\n`]})}),_jsx(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.`},id:`v1-12-0`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Self-hosted Office conversion for DOCX and PPTX files (alpha).`}),`\n`,_jsxs(_components.li,{children:[`feat: `,_jsx(_components.code,{children:`REDUCTO_AGENTIC_URL`}),` to point the agentic model at an on-prem endpoint.`]}),`\n`,_jsx(_components.li,{children:`fix: Improve text extraction in FIPS-compatible environments and from documents with complex fonts.`}),`\n`,_jsx(_components.li,{children:`fix: Improve isolation of stored job results across organizations.`}),`\n`,_jsx(_components.li,{children:`fix: Improve stability during layout inference and document processing.`}),`\n`,_jsx(_components.li,{children:`fix: Respect EXIF orientation on image inputs and drive scanned-page render DPI off the embedded scan resolution.`}),`\n`,_jsxs(_components.li,{children:[`fix: Reconcile AcroForm fields with filled widgets in `,_jsx(_components.code,{children:`/edit`}),` so forms render correctly in Preview/PDFKit.`]}),`\n`,_jsx(_components.li,{children:`fix: Improve resilience to temporary LLM provider failures.`}),`\n`,_jsx(_components.li,{children:`perf: Reduce peak memory use across document, spreadsheet, and OCR processing.`}),`\n`]})}),_jsx(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.`},id:`v1-11-81`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`perf: Reduce peak memory use when processing large documents.`}),`\n`,_jsx(_components.li,{children:`perf: Improve PDF rendering and OCR performance.`}),`\n`,_jsx(_components.li,{children:`fix: Preserve inline markup when merging table rows across page breaks.`}),`\n`,_jsx(_components.li,{children:`fix: Improve reliability for text-heavy PDFs and Office document conversion.`}),`\n`,_jsx(_components.li,{children:`fix: Improve the completeness and clarity of public OpenAPI schemas.`}),`\n`,_jsxs(_components.li,{children:[`feat: Console logging is on by default, with a `,_jsx(_components.code,{children:`NO_LOG`}),` override.`]}),`\n`,_jsx(_components.li,{children:`feat: Return detected languages in OCR data when available.`}),`\n`]})}),_jsx(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.`},id:`v1-11-80`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`perf: Bound concurrent agentic image memory, preventing worker OOMs on heavy documents.`}),`\n`,_jsxs(_components.li,{children:[`fix: Resolve spurious `,_jsx(_components.code,{children:`DocumentCorruptError`}),` failures on DOCX files that reference external templates.`]}),`\n`]})}),_jsx(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.`},id:`v1-11-79`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`feat: Added `,_jsx(_components.code,{children:`/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.`]}),`\n`,_jsx(_components.li,{children:`feat: Added on-prem deployment controls and worker/runtime reliability improvements for supported customer environments.`}),`\n`,_jsx(_components.li,{children:`fix: Improved job finalization, result streaming, document rendering, and customer-facing error handling for better stability under load.`}),`\n`,_jsxs(_components.li,{children:[`docs: Added RSS-ready metadata for on-prem changelog entries. The generated feed is available at `,_jsx(_components.a,{href:`https://onprem-changelog-rss.reducto.ai/rss.xml`,children:`onprem-changelog-rss.reducto.ai/rss.xml`}),`.`]}),`\n`]})}),_jsx(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.`},id:`v1-11-78`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`feat: Add `,_jsx(_components.code,{children:`num_pages`}),` field to the `,_jsx(_components.code,{children:`/classify`}),` API response.`]}),`\n`,_jsxs(_components.li,{children:[`feat: Add `,_jsx(_components.code,{children:`max`}),` mode for agentic tables for higher-fidelity table extraction.`]}),`\n`,_jsx(_components.li,{children:`fix: Fail jobs on OCR transient errors instead of silently returning an empty response.`}),`\n`,_jsx(_components.li,{children:`fix: More accurate HTTP error status codes so client-side validation failures return 4xx instead of 5xx.`}),`\n`,_jsxs(_components.li,{children:[`fix: Multipart S3 upload for result payloads over 100MB, with a new `,_jsx(_components.code,{children:`OversizedResultError`}),` for limit cases.`]}),`\n`]})}),_jsx(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.`},id:`v1-11-77`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`chore: Removed legacy sandbox setup that is no longer used by supported on-prem workflows.`}),`\n`,_jsxs(_components.li,{children:[`fix: Improved `,_jsx(_components.code,{children:`/jobs`}),` source redaction and added release validation for `,_jsx(_components.code,{children:`/version`}),` interpolation.`]}),`\n`,_jsx(_components.li,{children:`fix: Strengthened authentication header handling for webhook-related endpoints.`}),`\n`,_jsxs(_components.li,{children:[`docs: Added clearer guidance for the on-prem shared security model, securing Reducto deployments, and observability access controls. See `,_jsx(_components.a,{href:`/onprem/security_model`,children:`On-prem security model`}),`, `,_jsx(_components.a,{href:`/onprem/securing_reducto`,children:`Securing Reducto`}),`, and `,_jsx(_components.a,{href:`/onprem/observability`,children:`Observability \u0026 Monitoring`}),`.`]}),`\n`]})}),_jsx(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 \u003cpid>` produces a stderr stack dump on every Reducto pod type. See [Observability](/onprem/observability#pod-stack-trace-dumps-sigusr2).\"},id:`v1-11-76`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`feat: Extend the SIGUSR2 stack-trace dumper to the DB-queue worker pods (`,_jsx(_components.code,{children:`reducto-worker`}),`, `,_jsx(_components.code,{children:`reducto-priority-worker`}),`, `,_jsx(_components.code,{children:`reducto-gpu-worker`}),`). Previously the handler was only installed on HTTP and streaq worker pods; this completes coverage so `,_jsx(_components.code,{children:`kill -s USR2 \u003cpid>`}),` produces a stderr stack dump on every Reducto pod type. See `,_jsx(_components.a,{href:`/onprem/observability#pod-stack-trace-dumps-sigusr2`,children:`Observability`}),`.`]}),`\n`]})}),_jsx(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.`},id:`v1-11-75`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`perf: Higher embed pool concurrency for improved throughput`}),`\n`,_jsx(_components.li,{children:`fix: Pre-resolve OCR before vision-model citations with stricter containment threshold for improved accuracy`}),`\n`,_jsx(_components.li,{children:`fix: Preserve 5xx semantics for PDF text extraction subprocess crashes`}),`\n`]})}),_jsx(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.`},id:`v1-11-70`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`perf: Faster spreadsheet processing + fix images on text-empty sheets`}),`\n`,_jsx(_components.li,{children:`perf: Higher PDF render pool concurrency with eager background respawn`}),`\n`,_jsx(_components.li,{children:`fix: Replace non-ASCII chars that break obfuscation build`}),`\n`]})}),_jsx(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.`},id:`v1-11-69`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`feat: Azure Vision OCR client migrated to the async aio SDK with hard wall-clock cancellation via `,_jsx(_components.code,{children:`asyncio.wait_for`}),`. The new `,_jsx(_components.code,{children:`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 `,_jsx(_components.code,{children:`AZURE_VISION_CONNECTION_TIMEOUT`}),`, `,_jsx(_components.code,{children:`AZURE_VISION_READ_TIMEOUT`}),`, and `,_jsx(_components.code,{children:`AZURE_VISION_MAX_RETRIES`}),`. See `,_jsx(_components.a,{href:`/onprem/ocr_options#azure-vision-read`,children:`OCR options → Azure Vision Read`}),` for the full env var reference.`]}),`\n`,_jsxs(_components.li,{children:[`feat: SIGUSR2 stack-trace dumper installed in HTTP gunicorn workers and streaq worker processes. `,_jsx(_components.code,{children:`kubectl exec`}),` into a pod and run `,_jsx(_components.code,{children:`kill -s USR2 \u003cpid>`}),` to print every thread’s stack to stderr (visible via `,_jsx(_components.code,{children:`kubectl logs`}),`) for diagnosing hung tasks, wedged event loops, or contended thread pools. See `,_jsx(_components.a,{href:`/onprem/observability#pod-stack-trace-dumps-sigusr2`,children:`Observability`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`feat: Kubernetes liveness watchdog + exec probe for `,_jsx(_components.code,{children:`reducto-worker`}),`, `,_jsx(_components.code,{children:`reducto-priority-worker`}),`, and `,_jsx(_components.code,{children:`reducto-gpu-worker`}),` pods. A pod is only restarted when the in-process watchdog reports an in-flight task running longer than `,_jsx(_components.code,{children:`WORKER_STUCK_TASK_THRESHOLD_SEC`}),` (default 1800s) or the watchdog itself stops heartbeating (event loop wedged). Idle workers are never restarted. Configurable via `,_jsx(_components.code,{children:`worker.livenessProbe.*`}),` Helm values. See `,_jsx(_components.a,{href:`/onprem/operations#worker-liveness-probe`,children:`Operations`}),`.`]}),`\n`,_jsx(_components.li,{children:`feat: Hard-killable subprocess pool with per-renderer timeouts for PDF renders`}),`\n`,_jsx(_components.li,{children:`feat: Hard-killable subprocess pool for PDF flatten + embed timeouts`}),`\n`,_jsx(_components.li,{children:`fix: Skip zero-dimension crops in fine-grained citations`}),`\n`,_jsx(_components.li,{children:`fix: Killable timeout for stuck PDF text extraction`}),`\n`,_jsx(_components.li,{children:`fix: HTTP worker graceful shutdown timeout set to 120s`}),`\n`,_jsx(_components.li,{children:`fix: Strip control characters from extracted strings`}),`\n`,_jsx(_components.li,{children:`fix: Preserve overlay text selectability when embedding into existing PDFs`}),`\n`,_jsx(_components.li,{children:`fix: Protect figures from signature detection`}),`\n`,_jsx(_components.li,{children:`fix: Return 4xx for images with extreme aspect ratios`}),`\n`,_jsxs(_components.li,{children:[`refactor: More reliable PDF widget ingestion in `,_jsx(_components.code,{children:`/edit`})]}),`\n`]})}),_jsx(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.`},id:`v1-11-68`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: Azure Vision OCR SDK retry behavior on-prem`}),`\n`,_jsx(_components.li,{children:`perf: Spreadsheet memory optimizations`}),`\n`,_jsx(_components.li,{children:`perf: Faster OCR cropping for table prediction`}),`\n`,_jsx(_components.li,{children:`perf: Faster PDF render path`}),`\n`,_jsx(_components.li,{children:`perf: Faster Google Cloud Vision response and rotation hint processing`}),`\n`,_jsx(_components.li,{children:`feat: Make all fields in auto-generated extraction schemas optional`}),`\n`,_jsx(_components.li,{children:`fix: Memory leak in PDF processing`}),`\n`,_jsx(_components.li,{children:`fix: Avoid PDF library hang on dense-tiling-pattern PDFs via fallback reader`}),`\n`,_jsx(_components.li,{children:`fix: Corrupt zip-based documents now return 400 instead of 500`}),`\n`,_jsx(_components.li,{children:`fix: Preserve citations on scalar-only schema adherence corrections`}),`\n`,_jsx(_components.li,{children:`fix: Cap spreadsheet agent instructions to avoid input token limits`}),`\n`,_jsx(_components.li,{children:`fix: Correct ordering of table enrichment relative to markup application`}),`\n`,_jsx(_components.li,{children:`fix: Clean up spurious 5xx on cancels and HTML to PDF hangs`}),`\n`]})}),_jsx(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.`},id:`v1-11-67`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: New Azure Vision OCR strategy for on-prem deployments`}),`\n`,_jsx(_components.li,{children:`feat: Datadog dashboard for on-prem k8s deployments`}),`\n`,_jsxs(_components.li,{children:[`feat: Expose `,_jsx(_components.code,{children:`keep_line_breaks`}),` in V3 `,_jsx(_components.code,{children:`settings.alpha`})]}),`\n`,_jsx(_components.li,{children:`feat: Optimized inference backend for table router with safety wrapper`}),`\n`,_jsx(_components.li,{children:`fix: Faster usage logging via append-only buffer to reduce DB contention`}),`\n`,_jsx(_components.li,{children:`fix: Tolerate quoted-printable colspan in HTML parsing`}),`\n`,_jsx(_components.li,{children:`fix: Stabilize table router builds with pinned model export version`}),`\n`,_jsx(_components.li,{children:`chore: Bound embed feature with per-call wall-clock budget`}),`\n`]})}),_jsx(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.`},id:`v1-11-66`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Dynamic rendering for small-font metadata extraction`}),`\n`,_jsx(_components.li,{children:`feat: Remove Adobe-added watermark layers from documents that have them`}),`\n`,_jsxs(_components.li,{children:[`feat: Default `,_jsx(_components.code,{children:`fast_embed_pdf_metadata`}),` to True`]}),`\n`,_jsx(_components.li,{children:`fix: Preserve PDF optional content properties through page extraction for watermark layer stripping`}),`\n`,_jsx(_components.li,{children:`fix: Extract always returns V3 shape when citations are missing`}),`\n`,_jsxs(_components.li,{children:[`fix: Extract citations no longer dropped when `,_jsx(_components.code,{children:`page_range`}),` skips page 1`]}),`\n`,_jsx(_components.li,{children:`fix: Clean up downloaded PDF temp files on batch failure`}),`\n`,_jsx(_components.li,{children:`refactor: LLM client dependency bump for CVE remediation`}),`\n`,_jsx(_components.li,{children:`refactor: Azure Vision array OCR failover with retryable errors only`}),`\n`,_jsx(_components.li,{children:`chore: Patch critical and high CVEs in Docker images`}),`\n`,_jsx(_components.li,{children:`chore: Return S3 links instead of raw JSON to avoid response size limits`}),`\n`]})}),_jsx(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.\"},id:`v1-11-65`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`fix: Error attribution added to `,_jsx(_components.code,{children:`GET /job`}),` endpoint`]}),`\n`,_jsx(_components.li,{children:`chore: Pass prompts as files instead of args to avoid bytes overflow`}),`\n`]})}),_jsx(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.\"},id:`v1-11-64`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`fix: Skip parse-ID overlay in `,_jsx(_components.code,{children:`/edit`}),` when `,_jsx(_components.code,{children:`form_schema`}),` is provided`]}),`\n`,_jsx(_components.li,{children:`fix: Filter out uninitialized providers in model config resolution`}),`\n`,_jsx(_components.li,{children:`fix: Page range validation parity in parse pipeline`}),`\n`,_jsx(_components.li,{children:`refactor: Classify enhancements`}),`\n`]})}),_jsx(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.`},id:`v1-11-63`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Azure Vision multi-endpoint failover with load balancing`}),`\n`,_jsx(_components.li,{children:`feat: Enhanced image-to-PDF conversion`}),`\n`,_jsx(_components.li,{children:`feat: Per-chunk embed PDF in pipeline`}),`\n`,_jsx(_components.li,{children:`feat: Run LLM enrichments in parallelized DAG for lower latency`}),`\n`,_jsx(_components.li,{children:`fix: Correct argument handling in offline entrypoint for org/job_id`}),`\n`,_jsx(_components.li,{children:`fix: Hybrid OCR prefers metadata over garbled OCR when text is reordered`}),`\n`,_jsx(_components.li,{children:`refactor: Remove unused models from on-prem image builds for slim images`}),`\n`]})}),_jsx(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.\"},id:`v1-11-62`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`fix: `,_jsx(_components.code,{children:`max_completion_tokens`}),` / `,_jsx(_components.code,{children:`check_schema`}),` escape hatch for reasoning models`]}),`\n`,_jsx(_components.li,{children:`fix: Office document conversion with CJK fonts`}),`\n`,_jsxs(_components.li,{children:[`fix: Deliver webhook after `,_jsx(_components.code,{children:`persist_results`}),` to avoid S3 race condition`]}),`\n`,_jsx(_components.li,{children:`chore: Upgrade LLM client dependencies`}),`\n`]})}),_jsx(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.\"},id:`v1-11-61`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`feat: New `,_jsx(_components.code,{children:`force_simple_page`}),` config option`]}),`\n`,_jsxs(_components.li,{children:[`feat: Enable `,_jsx(_components.code,{children:`fast_flatten`}),` for legacy early flatten in pipeline orchestration`]}),`\n`,_jsxs(_components.li,{children:[`fix: `,_jsx(_components.code,{children:`max_completion_tokens`}),` schema validation for reasoning vs. non-reasoning models`]}),`\n`]})}),_jsx(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.\"},id:`v1-11-60`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`fix: `,_jsx(_components.code,{children:`max_tokens`}),` and other arg handling for Azure LLM inference`]}),`\n`]})}),_jsx(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.`},id:`v1-11-59`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`feat: Increased sheet processing timeout from 600s to 900s`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`feat: Fast PDF flatten, selective rasterization replaces full-document rasterization`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`fix: Validation for custom experimental options on on-prem`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`fix: Reduce DB lock contention on batch completion`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`fix: Equation enrichment correctly preserves line/word offsets`}),`\n`]}),`\n`]})}),_jsx(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.`},id:`v1-11-58`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: New fast embed via env settings`}),`\n`,_jsx(_components.li,{children:`feat: Configurable timeouts for OCR and embed text metadata steps`}),`\n`,_jsx(_components.li,{children:`feat: Per-page billing feature breakdown in parse response`}),`\n`,_jsx(_components.li,{children:`feat: Auto formatting per page`}),`\n`,_jsx(_components.li,{children:`perf: 10x faster PDF text overlay rendering`}),`\n`,_jsx(_components.li,{children:`perf: Parallelize figure classification with higher LLM concurrency`}),`\n`,_jsx(_components.li,{children:`perf: Optimized batch result aggregation`}),`\n`,_jsx(_components.li,{children:`fix: CSV parsing column count uses max row width; no longer drops columns when first row is narrower`}),`\n`,_jsx(_components.li,{children:`fix: OCR PDF no longer drops pages on multi-chunk documents`}),`\n`,_jsx(_components.li,{children:`fix: Allow None in override schema for bool fields`}),`\n`,_jsxs(_components.li,{children:[`fix: Correct `,_jsx(_components.code,{children:`num_pages`}),` reporting on jobs`]}),`\n`,_jsx(_components.li,{children:`fix: Image conversion error handling`}),`\n`,_jsx(_components.li,{children:`fix: Strip markup noise before language detection to avoid false unknowns`}),`\n`,_jsxs(_components.li,{children:[`fix: Avoid page overlaps in `,_jsx(_components.code,{children:`/split`}),` endpoint output`]}),`\n`,_jsx(_components.li,{children:`fix: Guard against errors in layout postprocess`}),`\n`,_jsx(_components.li,{children:`fix: Reclassify corrupt PDF annotation failures as proper 4xx status codes`}),`\n`,_jsx(_components.li,{children:`chore: Raise default overflow chunk limit to 500`}),`\n`]})}),_jsx(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.`},id:`v1-11-57`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`perf: Parallelize KV fallback to prevent task deadline breaches`}),`\n`]})}),_jsx(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.\"},id:`v1-11-56`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`feat: Native DOCX XML parsing pipeline (alpha) with `,_jsx(_components.code,{children:`.pages`}),` support`]}),`\n`,_jsx(_components.li,{children:`feat: HEIC image support and section-based chunking for Numbers files`}),`\n`,_jsx(_components.li,{children:`feat: Formatting and images support for Numbers files`}),`\n`,_jsx(_components.li,{children:`feat: Extract model and internal prompt overrides for v2/v3 configurations`}),`\n`,_jsx(_components.li,{children:`feat: YAML extract and citations models added to Helm chart for GPU deployments`}),`\n`,_jsx(_components.li,{children:`feat: KV repetition detection with Gemini fallback replacing repetition_penalty`}),`\n`,_jsx(_components.li,{children:`feat: OTEL pipeline routing and K8s metrics collection`}),`\n`,_jsx(_components.li,{children:`fix: Auth for chained jobs`}),`\n`,_jsx(_components.li,{children:`fix: Required fields on extraction schema`}),`\n`,_jsx(_components.li,{children:`fix: Equation detection TypeError from tuple/list concatenation`}),`\n`,_jsx(_components.li,{children:`fix: Move sync blocking calls off the event loop in HTTP handlers`}),`\n`,_jsx(_components.li,{children:`fix: Use encrypted DB URL and disable k8s metrics in on-prem environments`}),`\n`,_jsx(_components.li,{children:`fix: Fail fast on hung PDF renders`}),`\n`,_jsx(_components.li,{children:`fix: Parallelize S3 batch result loading for faster retrieval`}),`\n`,_jsx(_components.li,{children:`perf: Optimized layout postprocessing`}),`\n`,_jsx(_components.li,{children:`perf: Optimized hybrid OCR processing`}),`\n`,_jsx(_components.li,{children:`refactor: Graceful fallbacks for XML conversion issues`}),`\n`,_jsx(_components.li,{children:`chore: Cron retries increased from 1 to 2 for improved reliability`}),`\n`,_jsx(_components.li,{children:`chore: Send total credits for on-prem customers`}),`\n`]})}),_jsx(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.`},id:`v1-11-51`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: OCR-based table citations for deep extract`}),`\n`,_jsx(_components.li,{children:`feat: Add API key prefix filter parameter for /jobs endpoint`}),`\n`,_jsx(_components.li,{children:`fix: On-prem presigned URL upload path mismatch`}),`\n`,_jsx(_components.li,{children:`fix: new layout postprocessing`}),`\n`,_jsx(_components.li,{children:`fix: Empty OCR fallback handling`}),`\n`,_jsx(_components.li,{children:`fix: Python version in sandbox runtime`}),`\n`,_jsx(_components.li,{children:`chore: Upgraded enhanced figure summary models`}),`\n`]})}),_jsx(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.`},id:`v1-11-49`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: on-prem deployments start without Redis configured`}),`\n`]})}),_jsx(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.`},id:`v1-11-48`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: On-prem usage logging for customer tracking`}),`\n`]})}),_jsx(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.`},id:`v1-11-47`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Schemaless deep extract`}),`\n`,_jsx(_components.li,{children:`feat: Granular citations in deep extract`}),`\n`,_jsx(_components.li,{children:`feat: Deep extract available for on-prem deployments`}),`\n`,_jsx(_components.li,{children:`feat: Spreadsheet sheet-name page_range support`}),`\n`,_jsx(_components.li,{children:`feat: Suppress citation content feature flag for extract`}),`\n`,_jsx(_components.li,{children:`fix: Garbled DOCX for change tracking`}),`\n`,_jsx(_components.li,{children:`fix: Recursive render to handle nested tables for edit`}),`\n`,_jsx(_components.li,{children:`fix: Rotation in embed metadata`}),`\n`,_jsx(_components.li,{children:`fix: GCP API key requirement for on-prem`}),`\n`,_jsx(_components.li,{children:`fix: Remove libpq options from DB connect_args for RDS Proxy compatibility`}),`\n`,_jsx(_components.li,{children:`fix: Lock timeout batches and non-locking last-batch check`}),`\n`,_jsx(_components.li,{children:`fix: Background threads no longer block main processing`}),`\n`,_jsx(_components.li,{children:`fix: Transient classify inference issues`}),`\n`,_jsx(_components.li,{children:`perf: Merge tables speedup from O(N^2) to O(N)`}),`\n`,_jsx(_components.li,{children:`perf: Retry improvements to avoid double work`}),`\n`,_jsx(_components.li,{children:`refactor: Decompose batch pipeline into composable phases`}),`\n`,_jsx(_components.li,{children:`chore: Upgrade Gemini models`}),`\n`]})}),_jsx(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.`},id:`v1-11-46`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: Middleware context propagation and ordering for proper trace handling`}),`\n`,_jsx(_components.li,{children:`fix: Cron job retry logic and syntax improvements`}),`\n`,_jsx(_components.li,{children:`fix: HTTP startup patched for hashlib.md5 in FIPS environments (GCS support)`}),`\n`,_jsx(_components.li,{children:`perf: Decaying timeout for retries with improved retry_on_timeout behavior`}),`\n`,_jsx(_components.li,{children:`perf: Updated timeout and max batch configurations`}),`\n`]})}),_jsx(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.`},id:`v1-11-45`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Chunk overlap configuration for including text context from previous/next chunks`}),`\n`,_jsx(_components.li,{children:`feat: summarize_all_figures option in v3 alpha config`}),`\n`,_jsx(_components.li,{children:`feat: Deep extraction optimizations for improved structured data quality`}),`\n`,_jsx(_components.li,{children:`fix: Lazy loading for HTTP/worker modules to avoid unnecessary dependency imports`}),`\n`,_jsx(_components.li,{children:`fix: Guard against empty document_url list in pipeline and split endpoints`}),`\n`,_jsx(_components.li,{children:`fix: Cron job improvements`}),`\n`,_jsx(_components.li,{children:`fix: More reliable page orientation detection`}),`\n`,_jsx(_components.li,{children:`fix: Exception handling on deep extraction completion`}),`\n`,_jsx(_components.li,{children:`refactor: Deep extract sandbox image`}),`\n`,_jsx(_components.li,{children:`chore: Upgraded Anthropic models`}),`\n`,_jsx(_components.li,{children:`chore: New table detection model with improved accuracy`}),`\n`]})}),_jsx(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.`},id:`v1-11-44`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: Add bounds check for page index in PDF text embedding to prevent IndexError crashes`}),`\n`,_jsx(_components.li,{children:`fix: Skip cover pages for PDF portfolios during attachment concatenation`}),`\n`,_jsx(_components.li,{children:`fix: Fallback to original pages when portfolio has no PDF attachments`}),`\n`,_jsx(_components.li,{children:`fix: Fast-fail URL download on non-success HTTP status codes`}),`\n`,_jsx(_components.li,{children:`fix: Random checkbox YOLO crash when Conv has no batch normalization`}),`\n`,_jsx(_components.li,{children:`fix: HuggingFace model downloads for builds`}),`\n`,_jsx(_components.li,{children:`fix: Lazily import probing modules to avoid Modal dependency in on-prem`}),`\n`,_jsx(_components.li,{children:`feat: Custom agentic layout postprocessing`}),`\n`,_jsx(_components.li,{children:`feat: Routing for parse batches`}),`\n`,_jsx(_components.li,{children:`feat: Classify concurrency improvements`}),`\n`,_jsxs(_components.li,{children:[`refactor: Set reducto environment to `,_jsx(_components.code,{children:`onprem`}),` by default`]}),`\n`,_jsx(_components.li,{children:`chore: Upgrade pytorch and torchvision dependencies`}),`\n`]})}),_jsx(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.`},id:`v1-11-42`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: Detect visual redlines (colored strikethrough/underline) in DOCX change tracking`}),`\n`,_jsx(_components.li,{children:`fix: Use min instead of max for checkbox detection`}),`\n`,_jsx(_components.li,{children:`fix: CSV parsing truncation and scientific notation for large integers`}),`\n`,_jsx(_components.li,{children:`fix: Recover in-progress batches alongside pending ones`}),`\n`,_jsx(_components.li,{children:`feat: Fallback to Gemini Flash for improved reliability`}),`\n`,_jsx(_components.li,{children:`feat: Intelligent ordering fallbacks`}),`\n`,_jsx(_components.li,{children:`feat: Schema adherence model updates`}),`\n`,_jsx(_components.li,{children:`feat: Add ONNX model integrity verification with forced fresh model download`}),`\n`,_jsx(_components.li,{children:`refactor: Database lock timeout for sync DB engine`}),`\n`]})}),_jsx(Update,{description:`2026-02-09`,label:`v1.11.41`,rss:{title:`v1.11.41 - New OCR recognition model for select deployments`,description:`Adds a new OCR recognition model for select deployments; Recover in-progress batches alongside pending ones.`},id:`v1-11-41`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: New OCR recognition model for select deployments`}),`\n`,_jsx(_components.li,{children:`fix: Recover in-progress batches alongside pending ones`}),`\n`,_jsx(_components.li,{children:`fix: Add ONNX model integrity verification and force fresh model download`}),`\n`]})}),_jsx(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.`},id:`v1-11-40`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Classify endpoint with parallelized Gemini Flash Lite probes for document classification`}),`\n`,_jsx(_components.li,{children:`feat: Add bucket_name as alpha option in v3 parse config`}),`\n`,_jsx(_components.li,{children:`feat: Enable bucket \u0026 KMS ARN override for hybrid VPC deployments`}),`\n`,_jsx(_components.li,{children:`feat: Auto region routing for Gemini models`}),`\n`,_jsx(_components.li,{children:`feat: Native office conversion alpha flag in v3 config`}),`\n`,_jsx(_components.li,{children:`feat: Inference helm charts and kv-base routing`}),`\n`,_jsx(_components.li,{children:`feat: Enable flatten for edit endpoint`}),`\n`,_jsx(_components.li,{children:`feat: Improved models for standard figure summary`}),`\n`,_jsx(_components.li,{children:`feat: Add dimension limit handling for AWS environments`}),`\n`,_jsx(_components.li,{children:`fix: Memory leaks and file descriptor leaks in PIL Image handling across OCR and processing pipelines`}),`\n`,_jsx(_components.li,{children:`fix: N-squared completion pattern in batch processing for significantly improved performance at scale`}),`\n`,_jsx(_components.li,{children:`fix: Race condition in parse completion job processing`}),`\n`,_jsx(_components.li,{children:`fix: Argument order bug in pdftext multiprocessing extraction`}),`\n`,_jsx(_components.li,{children:`fix: V3 config fixes for on-prem deployments`}),`\n`,_jsx(_components.li,{children:`fix: Initialize empty sheets to prevent errors on blank spreadsheets`}),`\n`,_jsx(_components.li,{children:`fix: Force resize to fit AWS dimension limits for large documents`}),`\n`,_jsx(_components.li,{children:`fix: Image conversion failures now return proper 415 error instead of 500`}),`\n`,_jsx(_components.li,{children:`fix: PyPDFForm version update to resolve form filling bug`}),`\n`,_jsx(_components.li,{children:`fix: Classify endpoint fixes for improved reliability`}),`\n`,_jsx(_components.li,{children:`fix: Offset_in_chunk calculation for empty blocks`}),`\n`,_jsx(_components.li,{children:`fix: Exclude veryHidden sheets when exclude_hidden_sheets is enabled`}),`\n`,_jsx(_components.li,{children:`fix: Checkbox detection bug`}),`\n`,_jsx(_components.li,{children:`fix: Prioritize S3/BUCKET over GCS when both GCP_PROJECT_ID and BUCKET are set`}),`\n`,_jsx(_components.li,{children:`fix: cron.py Kubernetes usage`}),`\n`,_jsx(_components.li,{children:`fix: Distributed traces with LOGFIRE_DISTRIBUTED_TRACING`}),`\n`,_jsx(_components.li,{children:`fix: Temperature 0.1 for promptable layout for more deterministic results`}),`\n`,_jsx(_components.li,{children:`fix: local-full Dockerfile fix by adding gcc and python3-dev to apt install`}),`\n`,_jsx(_components.li,{children:`perf: Hydrate SharedBatchWorker.process_org_batch before ThreadPoolExecutor for improved concurrency`}),`\n`,_jsx(_components.li,{children:`refactor: Remove enhanced enrich tables, default to same model for simpler table processing`}),`\n`,_jsx(_components.li,{children:`chore: Upgrade table models`}),`\n`]})}),_jsx(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.`},id:`v1-11-38`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: V3 config overrides for v2-only and on-prem-only settings`}),`\n`,_jsx(_components.li,{children:`feat: List item support and chunk offsets in blocks for improved extraction`}),`\n`,_jsx(_components.li,{children:`fix: handle_required_fields not adding missing fields to array items in extraction`}),`\n`,_jsx(_components.li,{children:`fix: Page marker blocks now include correct page and original_page values`}),`\n`,_jsx(_components.li,{children:`fix: Multi-batch recovery when job processing is interrupted`}),`\n`,_jsx(_components.li,{children:`fix: Division by zero error for images with corrupted EXIF data`}),`\n`]})}),_jsx(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.`},id:`v1-11-37`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: Restore V2 OCR defaults (highres OCR system) in V3 on-prem config for consistent behavior`}),`\n`]})}),_jsx(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.`},id:`v1-11-36`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`chore: Bookworm image build configuration for CD pipeline`}),`\n`]})}),_jsx(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.`},id:`v1-11-35`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Bookworm Dockerfile variant for improved on-prem DOCX→PDF conversion reliability`}),`\n`]})}),_jsx(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.`},id:`v1-11-34`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: DOCX→PDF conversion using LibreOffice from Trixie backports for improved reliability`}),`\n`,_jsx(_components.li,{children:`feat: Super-agent integration into /extract pipeline for improved structured data extraction`}),`\n`,_jsx(_components.li,{children:`fix: Traceparent propagation for API requests`}),`\n`,_jsx(_components.li,{children:`perf: Per-image table predictions for better performance`}),`\n`]})}),_jsx(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.`},id:`v1-11-33`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Hybrid VPC routing based on header with default AU/EU/US regions`}),`\n`,_jsx(_components.li,{children:`feat: Add docx fallbacks for malformed XML and OOXML-format .doc files`}),`\n`,_jsx(_components.li,{children:`feat: Change default presigned URL expiration from 1 hour to 12 hours`}),`\n`,_jsx(_components.li,{children:`fix: Table edit pattern improvements and preferred edit model changes`}),`\n`]})}),_jsx(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.`},id:`v1-11-32`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Schema adherence for required keys in extraction`}),`\n`,_jsx(_components.li,{children:`feat: Improved table edit granularity`}),`\n`,_jsx(_components.li,{children:`fix: Properly propagate password errors for password-protected PDFs`}),`\n`]})}),_jsx(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.`},id:`v1-11-31`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: Anthropic Bedrock on-prem edit calls`}),`\n`,_jsx(_components.li,{children:`feat: Add raw XML repair fallback for malformed docx files`}),`\n`,_jsx(_components.li,{children:`fix: Local parse hanging for multi-batch documents`}),`\n`,_jsx(_components.li,{children:`feat: Schema Optimization Agent for improved extraction accuracy`}),`\n`]})}),_jsx(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.`},id:`v1-11-29`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: Hyperlinks being dropped when OCR extraction mode is enabled`}),`\n`,_jsx(_components.li,{children:`feat: Add line level offsets when config is enabled`}),`\n`,_jsx(_components.li,{children:`feat: Intelligent Ordering Model API integration`}),`\n`]})}),_jsx(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.`},id:`v1-11-25`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Add document_password support to pipeline API for password-protected documents`}),`\n`,_jsx(_components.li,{children:`feat: Implement character-level DOCX change tracking`}),`\n`,_jsx(_components.li,{children:`fix: Hidden rows and columns handling for spreadsheets`}),`\n`,_jsx(_components.li,{children:`feat: Cloudflare R2 Storage Class support`}),`\n`]})}),_jsx(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.`},id:`v1-11-21`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: Settings Overrides for streamlined API config/env var customization`}),`\n`]})}),_jsx(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.`},id:`v1-11-20`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`chore: inference parallelization`}),`\n`,_jsx(_components.li,{children:`feat: OCR word and line rotation data propagation`}),`\n`,_jsx(_components.li,{children:`fix: layout prediction improvements`}),`\n`,_jsx(_components.li,{children:`feat: extract schema adherence`}),`\n`,_jsx(_components.li,{children:`fix: empty table model output`}),`\n`]})}),_jsx(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.`},id:`v1-11-19`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`refactor: Document fetching logic`}),`\n`,_jsx(_components.li,{children:`feat: Updated ordering model`}),`\n`,_jsx(_components.li,{children:`feat(settings): more streamlined customization for models and prompts via API configuration / env variables`}),`\n`]})}),_jsx(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`.\"},id:`v1-11-18`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Customizable models for AWS Bedrock using environment variables`}),`\n`,_jsxs(_components.li,{children:[`refactor: Default models updated for AWS Bedrock to `,_jsx(_components.code,{children:`us.anthropic.claude-sonnet-4-5-20250929-v1:0`})]}),`\n`]})}),_jsx(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.`},id:`v1-11-17`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: support more edge case custom file mimetypes`}),`\n`]})}),_jsx(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.`},id:`v1-11-16`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: table chunking`}),`\n`,_jsx(_components.li,{children:`fix: make enrich tables more robust`}),`\n`]})}),_jsx(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.`},id:`v1-11-15`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`refactor: optimize some DB transactions to not be left open too long`}),`\n`,_jsx(_components.li,{children:`feat: Add signatures as a formatting option in v3 config`}),`\n`,_jsx(_components.li,{children:`feat: extract schema adherence`}),`\n`,_jsx(_components.li,{children:`refactor: optimize enrich tables latency`}),`\n`,_jsx(_components.li,{children:`feat: new hybrid OCR implementation`}),`\n`,_jsx(_components.li,{children:`feat: add force file mimetype to extension config option`}),`\n`]})}),_jsx(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.`},id:`v1-11-14`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: env var based customization for local KV prompt/model`}),`\n`,_jsx(_components.li,{children:`feat: Add priority-based worker routing to skip shared/dedicated workers when priority is not set`}),`\n`,_jsx(_components.li,{children:`chore: adding latency sensitive for fast mode in Spreadsheet Agent`}),`\n`,_jsx(_components.li,{children:`feat: add OpenAI Responses LLM Provider`}),`\n`,_jsx(_components.li,{children:`feat: Allow direct DataDog Tracing with Beta Headers and Logfire Service name handling`}),`\n`]})}),_jsx(Update,{description:`2025-11-12`,label:`v1.11.13`,rss:{title:`v1.11.13 - table block chunking`,description:`table block chunking.`},id:`v1-11-13`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: table block chunking`}),`\n`]})}),_jsx(Update,{description:`2025-11-11`,label:`v1.11.12`,rss:{title:`v1.11.12 - Chainguard image dependencies`,description:`Chainguard image dependencies.`},id:`v1-11-12`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: Chainguard image dependencies`}),`\n`]})}),_jsx(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.`},id:`v1-11-11`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: md5 for FIPS environments`}),`\n`,_jsx(_components.li,{children:`fix: numbers file parsing`}),`\n`]})}),_jsx(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.`},id:`v1-11-10`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: allow invalid surrogates when encoding`}),`\n`,_jsx(_components.li,{children:`feat: Add logfire gauge metrics for K8s queue lengths`}),`\n`]})}),_jsx(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.`},id:`v1-11-9`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Add Azure Blob Storage authentication support for private endpoints`}),`\n`,_jsx(_components.li,{children:`fix: race condition with in progress batch -> job completion enqueue`}),`\n`,_jsx(_components.li,{children:`fix: logfire logging if logfire token is set`}),`\n`]})}),_jsx(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.`},id:`v1-11-8`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: embed pdf metadata`}),`\n`,_jsx(_components.li,{children:`fix: persist results before webhook`}),`\n`,_jsx(_components.li,{children:`fix: update cancel_all and wipe endpoints for on-prem and secure them correctly`}),`\n`,_jsx(_components.li,{children:`refactor: cron cleanup function + running frequency`}),`\n`,_jsx(_components.li,{children:`fix: Chainguard image dependency issues`}),`\n`]})}),_jsx(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.`},id:`v1-11-7`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: PgDog Helm Chart application version configuration for on-premise deployments`}),`\n`]})}),_jsx(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.`},id:`v1-11-6`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: V3 API config with improved spreadsheet response format and citations support`}),`\n`,_jsx(_components.li,{children:`feat: Enhanced table block chunking for better extraction of large tables`}),`\n`,_jsx(_components.li,{children:`feat: Agent-in-the-loop (AITL) extraction with generalizable configuration for multiple fields`}),`\n`,_jsx(_components.li,{children:`feat: Spreadsheet figure summary support for better data visualization`}),`\n`,_jsx(_components.li,{children:`feat: LLM provider preference configuration for v3 API (specify OpenAI, Anthropic, Google, etc.)`}),`\n`,_jsx(_components.li,{children:`feat: Helm chart PgDog dependency for PostgreSQL monitoring`}),`\n`,_jsx(_components.li,{children:`feat: Affinity and topologySpreadConstraints support in Helm charts for advanced pod scheduling`}),`\n`,_jsx(_components.li,{children:`fix: OCR system handling in v3 config`}),`\n`,_jsx(_components.li,{children:`fix: Race condition for single batch jobs`}),`\n`,_jsx(_components.li,{children:`fix: Webhook delivery on Kubernetes environments`}),`\n`,_jsx(_components.li,{children:`fix: Parse job update batching for improved database performance`}),`\n`,_jsx(_components.li,{children:`fix: DOCX timeout increased for large document processing`}),`\n`,_jsx(_components.li,{children:`fix: Table merging with XML parsing improvements`}),`\n`,_jsx(_components.li,{children:`fix: Underline/strikethrough character threshold adjustments`}),`\n`,_jsx(_components.li,{children:`chore: Datadog integration for enhanced monitoring`}),`\n`]})}),_jsx(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.`},id:`v1-11-5`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Reduce PDF output size by avoiding text layer rasterization`}),`\n`,_jsx(_components.li,{children:`feat: Custom chunking response format support`}),`\n`,_jsx(_components.li,{children:`fix: AITL configuration handling for proper field validation`}),`\n`]})}),_jsx(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.`},id:`v1-11-4`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Agent-in-the-loop (AITL) documentation exposed and configuration updated to handle multiple fields`}),`\n`,_jsx(_components.li,{children:`feat: Hyperlink extraction support in PDF parsing - preserves document links in output`}),`\n`,_jsx(_components.li,{children:`feat: PostgreSQL Helm dependency migrated to OCI registry for better reliability`}),`\n`,_jsx(_components.li,{children:`feat: Spreadsheet figure summary generation for visual data extraction`}),`\n`,_jsx(_components.li,{children:`fix: OCR system switching for v3 config`}),`\n`,_jsx(_components.li,{children:`fix: Change tracking for accurate document diff detection`}),`\n`]})}),_jsx(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.`},id:`v1-11-3`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Helm charts now support affinity and topologySpreadConstraints for advanced Kubernetes pod placement control`}),`\n`,_jsx(_components.li,{children:`feat: Table merging heuristics improved`}),`\n`,_jsx(_components.li,{children:`fix: Webhook delivery on Kubernetes fixed for reliable notification`}),`\n`,_jsx(_components.li,{children:`fix: Underline and strikethrough detection threshold adjusted for better accuracy`}),`\n`,_jsx(_components.li,{children:`fix: Safe fill implementation used everywhere in PDF form filling`}),`\n`,_jsx(_components.li,{children:`chore: Datadog monitoring integration`}),`\n`]})}),_jsx(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.`},id:`v1-11-2`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: V3 API config support - new configuration format for improved extraction control`}),`\n`,_jsx(_components.li,{children:`feat: Naive table merging for bulk processing with better cross-page detection`}),`\n`,_jsx(_components.li,{children:`feat: Figure summary enhancements and configuration via API`}),`\n`,_jsx(_components.li,{children:`feat: LLM provider preference support in v3 config`}),`\n`,_jsx(_components.li,{children:`feat: Tool use support for Anthropic provider`}),`\n`,_jsx(_components.li,{children:`feat: /openapi.json and /openapi-legacy.json endpoints for API schema access`}),`\n`,_jsx(_components.li,{children:`feat: Split implementation improvements`}),`\n`,_jsx(_components.li,{children:`fix: Database transaction handling in Kubernetes - don’t keep transactions open`}),`\n`,_jsx(_components.li,{children:`fix: Experimental table citations now default to true in v3`}),`\n`,_jsx(_components.li,{children:`fix: Extract confidence concurrency handling`}),`\n`,_jsx(_components.li,{children:`chore: Figure summarization adjusted for more thorough output`}),`\n`]})}),_jsx(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.`},id:`v1-11-1`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: Helm chart labels for retry stale jobs cronjob`}),`\n`]})}),_jsx(Update,{description:`2025-10-12`,label:`v1.11.0`,rss:{title:`v1.11.0 - Build configuration cleanup`,description:`Build configuration cleanup.`},id:`v1-11-0`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: Build configuration cleanup`}),`\n`]})}),_jsx(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.`},id:`v1-10-38`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Support for custom extract models via LLM service, enabling on-premise model configurations`}),`\n`,_jsx(_components.li,{children:`fix: PDF form dropdown filling improvements with proper context and option handling`}),`\n`,_jsx(_components.li,{children:`fix: Excel column to string conversion using openpyxl`}),`\n`]})}),_jsx(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.`},id:`v1-10-37`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: New /jobs endpoint with cursor-based pagination for efficient job listing and filtering`}),`\n`,_jsx(_components.li,{children:`feat: New PDF edit flow using parse pipeline for improved form filling accuracy and performance`}),`\n`,_jsx(_components.li,{children:`feat: Schema-less extraction generation - automatically infer extraction schemas when not provided`}),`\n`,_jsx(_components.li,{children:`feat: Enhanced table merging across pages in HTML documents with improved row/column detection`}),`\n`,_jsx(_components.li,{children:`feat: Improved spreadsheet agent with citations support and performance optimizations`}),`\n`,_jsx(_components.li,{children:`feat: Parallelized batch results loading from storage for faster retrieval`}),`\n`,_jsx(_components.li,{children:`fix: Multi-page TIFF and JPEG handling for proper page extraction`}),`\n`,_jsx(_components.li,{children:`fix: Password-protected landscape PDF processing`}),`\n`,_jsx(_components.li,{children:`fix: Text overlay visibility issues during edit flow`}),`\n`,_jsx(_components.li,{children:`fix: Spreadsheet agent formatting values in preview mode`}),`\n`,_jsx(_components.li,{children:`chore: Docker base image upgraded to Debian Trixie for better security and compatibility`}),`\n`,_jsx(_components.li,{children:`chore: Enhanced mode set as default for better quality`}),`\n`]})}),_jsx(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.`},id:`v1-10-36`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Priority handling for time-sensitive extraction requests with improved page mapping reasoning`}),`\n`,_jsx(_components.li,{children:`feat: Improved Vertex AI Gemini region configuration`}),`\n`,_jsx(_components.li,{children:`fix: Array extract error handling - prevents crashes from malformed LLM output`}),`\n`,_jsx(_components.li,{children:`fix: Better concurrency management for key-value extraction`}),`\n`,_jsx(_components.li,{children:`fix: Split configuration handling improvements`}),`\n`,_jsx(_components.li,{children:`chore: OpenAI API retry logic for handling slow responses`}),`\n`,_jsx(_components.li,{children:`chore: Exponential backoff for split operations`}),`\n`]})}),_jsx(Update,{description:`2025-10-07`,label:`v1.10.35`,rss:{title:`v1.10.35 - layout inference`,description:`Improved layout inference with reduced latency.`},id:`v1-10-35`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Improved layout inference with reduced latency`}),`\n`]})}),_jsx(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.`},id:`v1-10-34`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: PDF edit overlay improvements using OCR-B font for better text rendering`}),`\n`,_jsx(_components.li,{children:`fix: Timeout configuration improvements for long-running operations`}),`\n`]})}),_jsx(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.`},id:`v1-10-33`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: Worker stability improvements and bug fixes`}),`\n`]})}),_jsx(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.`},id:`v1-10-32`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Spreadsheet extraction agent enhancements for better cell and table detection`}),`\n`,_jsx(_components.li,{children:`fix: Citation formatting improvements across extraction outputs`}),`\n`]})}),_jsx(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.`},id:`v1-10-31`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Cross-page table merging improvements with naive row merging implementation`}),`\n`,_jsx(_components.li,{children:`fix: Performance optimizations for large document processing`}),`\n`]})}),_jsx(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.`},id:`v1-10-30`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Enhanced extraction pipeline with improved data handling`}),`\n`,_jsx(_components.li,{children:`fix: Error handling improvements throughout the system`}),`\n`]})}),_jsx(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.`},id:`v1-10-29`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: GCP Workload Identity support for Google Cloud deployments`}),`\n`,_jsx(_components.li,{children:`feat: AWS region override configuration for flexible cloud deployments`}),`\n`,_jsx(_components.li,{children:`fix: Worker stability enhancements`}),`\n`]})}),_jsx(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.`},id:`v1-10-28`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Prometheus alerting integration for monitoring`}),`\n`,_jsx(_components.li,{children:`fix: Reliability enhancements for long-running jobs`}),`\n`]})}),_jsx(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.`},id:`v1-10-27`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: opt-in or opt-out to send billing usage to license server`}),`\n`,_jsx(_components.li,{children:`feat: block OpenAI invocation with BLOCK_OPENAI env var`}),`\n`,_jsx(_components.li,{children:`feat: signature detection`}),`\n`,_jsx(_components.li,{children:`fix: helm chart template rendering`}),`\n`,_jsx(_components.li,{children:`fix: update figure summarization to correctly override default prompt when user wants to override`}),`\n`,_jsx(_components.li,{children:`refactor: update equations detection to use on premise-provided LLMs`}),`\n`]})}),_jsx(Update,{description:`2025-01-16`,label:`v1.10.24`,rss:{title:`v1.10.24 - configurable S3 endpoint url`,description:`configurable S3 endpoint url.`},id:`v1-10-24`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: configurable S3 endpoint url`}),`\n`]})}),_jsx(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.`},id:`v1-10-21`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: character-level support for azure in hybrid mode`}),`\n`,_jsx(_components.li,{children:`feat: support for docx comments`}),`\n`]})}),_jsx(Update,{description:`2025-09-03`,label:`v1.10.16`,rss:{title:`v1.10.16 - split support`,description:`split support with gemini on vertex ai.`},id:`v1-10-16`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: split support with gemini on vertex ai`}),`\n`]})}),_jsx(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.`},id:`v1-10-13`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`refactor: updated LLM service with vision/text`}),`\n`,_jsx(_components.li,{children:`fix: ensure formatted text (i.e. underline, strikethroughs) is not subsumed by key value detection`}),`\n`]})}),_jsx(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.`},id:`v1-10-12`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: secret management in helm chart`}),`\n`,_jsx(_components.li,{children:`feat: add .msg file support`}),`\n`]})}),_jsx(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.`},id:`v1-10-11`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: HEIC file format support for image processing`}),`\n`,_jsx(_components.li,{children:`feat: character-level OCR detection for strikethrough and underline formatting`}),`\n`,_jsx(_components.li,{children:`feat: parallelize and optimize PDF metadata embedding for improved performance`}),`\n`,_jsx(_components.li,{children:`fix: add locks to prevent race conditions`}),`\n`,_jsx(_components.li,{children:`fix: timeout handling for DOCX to PDF conversion with proper 400 status codes`}),`\n`]})}),_jsx(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.`},id:`v1-10-8`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: configurable S3 SSL options for boto`}),`\n`,_jsx(_components.li,{children:`feat: /billing-usage API for exporting usage in air-gapped deployments`}),`\n`]})}),_jsx(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.`},id:`v1-10-7`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Support for Google Cloud Storage gs:// document url`}),`\n`,_jsx(_components.li,{children:`feat: timeout and fail jobs and batches when queued for GLOBAL_QUEUE_TIMEOUT_SEC`}),`\n`,_jsx(_components.li,{children:`feat: BackendConfig support in Helm Chart for GCP`}),`\n`]})}),_jsx(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.`},id:`v1-10-4`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: generate extract schema if no schema was provided`}),`\n`,_jsx(_components.li,{children:`feat: adding form schema for edit documentation`}),`\n`]})}),_jsx(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.`},id:`v1-10-3`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: improve cold starts`}),`\n`,_jsx(_components.li,{children:`fix: fine-grained citation fixes`}),`\n`]})}),_jsx(Update,{description:`2025-07-31`,label:`v1.10.2`,rss:{title:`v1.10.2 - DOCX improvements`,description:`Covers DOCX improvements; added schema token limits.`},id:`v1-10-2`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: DOCX improvements`}),`\n`,_jsx(_components.li,{children:`feat: added schema token limits`}),`\n`,_jsx(_components.li,{children:`feat: add customizations to auth via environment variables`}),`\n`,_jsx(_components.li,{children:`feat: faster model inference optimizations`}),`\n`]})}),_jsx(Update,{description:`2025-07-30`,label:`v1.10.1`,rss:{title:`v1.10.1 - OCR image resizing improvements`,description:`OCR image resizing improvements.`},id:`v1-10-1`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: OCR image resizing improvements`}),`\n`]})}),_jsx(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.`},id:`v1-10-0`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: implement fault-tolerant webhook delivery`}),`\n`,_jsx(_components.li,{children:`feat: fix table headers for html parsing`}),`\n`,_jsxs(_components.li,{children:[`feat: add secret metadata parameter to /job/`,` endpoint`]}),`\n`,_jsx(_components.li,{children:`feat: include config when include_metadata is enabled for job endpoint`}),`\n`,_jsx(_components.li,{children:`feat: adding sheet color to output`}),`\n`,_jsx(_components.li,{children:`feat: clean up refs in extract output`}),`\n`,_jsx(_components.li,{children:`feat: excel table color mapping implementation`}),`\n`,_jsx(_components.li,{children:`feat: enhance merge tables`}),`\n`,_jsx(_components.li,{children:`feat: table feedback loop using the enrich table flag`}),`\n`,_jsx(_components.li,{children:`feat: add litellm proxy model for ‘best’`}),`\n`]})}),_jsx(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}`.\"},id:`v1-9-94`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`feat: long-polling with timeout (seconds) query param for `,_jsx(_components.code,{children:`/job/{job_id}`})]}),`\n`]})}),_jsx(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.\"},id:`v1-9-93`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`fix: job type and add duration field in `,_jsx(_components.code,{children:`/jobs`}),` endpoint`]}),`\n`,_jsx(_components.li,{children:`fix: Preserve all decimals in md tables`}),`\n`,_jsx(_components.li,{children:`feat: support for GCP`}),`\n`]})}),_jsx(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.`},id:`v1-9-92`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: presentation detection and kv-disabling`}),`\n`]})}),_jsx(Update,{description:`2025-07-11`,label:`v1.9.91`,rss:{title:`v1.9.91 - Strike underline tuning`,description:`Strike underline tuning.`},id:`v1-9-91`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: Strike underline tuning`}),`\n`]})}),_jsx(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.`},id:`v1-9-90`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: implement rtf`}),`\n`,_jsx(_components.li,{children:`fix: Fix offsets for tables extracted from excel sheets`}),`\n`,_jsx(_components.li,{children:`feat: add optional confidence fields to OCRWord and OCRLine`}),`\n`,_jsxs(_components.li,{children:[`feat: add source in `,_jsx(_components.code,{children:`/jobs`})]}),`\n`,_jsx(_components.li,{children:`feat: initial change detection implementation`}),`\n`]})}),_jsx(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.`},id:`v1-9-89`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`docs: clarify Excel citation coordinate system differences`}),`\n`,_jsx(_components.li,{children:`feat: Integrate spreadsheet agent for extract`}),`\n`,_jsx(_components.li,{children:`feat: Convert images to pdf for pdf_url`}),`\n`,_jsxs(_components.li,{children:[`Fix: Allow Gemini to output `,_jsx(_components.code,{children:`\u003cempty>`}),` and `,_jsx(_components.code,{children:`\u003csignature>`}),` fields for key-value`]}),`\n`,_jsx(_components.li,{children:`chore: update textract quota`}),`\n`,_jsx(_components.li,{children:`feat: option for multiplatform builds for onprem`}),`\n`,_jsx(_components.li,{children:`docs: Add Model Governance Policy to security section`}),`\n`,_jsx(_components.li,{children:`fix: Split regex fix for subcategory`}),`\n`,_jsx(_components.li,{children:`fix: Add retries to spreadsheet agent`}),`\n`,_jsx(_components.li,{children:`fix: Merging splits in the new format`}),`\n`,_jsx(_components.li,{children:`fix: Merge array_extract citations based on extract results`}),`\n`,_jsx(_components.li,{children:`Add chart extraction documentation page`}),`\n`,_jsx(_components.li,{children:`feat: ship both small/large models in built images`}),`\n`,_jsx(_components.li,{children:`feat: allow changing default use_gpu_ocr config value based on env var`}),`\n`]})}),_jsx(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.`},id:`v1-9-88`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: handle multipart/form-data content type errors on /split endpoint`}),`\n`,_jsx(_components.li,{children:`Latency fix: Agentic unicode changes`}),`\n`,_jsx(_components.li,{children:`fix: sanitize html file upload path to s3`}),`\n`,_jsx(_components.li,{children:`Add strict typing for SplitResult.splits`}),`\n`,_jsx(_components.li,{children:`feat: Helm chart and values for GPU-based OCR deployment`}),`\n`]})}),_jsx(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.`},id:`v1-9-86`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: enhanced DOCX change tracking with improved underline detection and formatting accuracy`}),`\n`,_jsx(_components.li,{children:`fix: optimized model server initialization to reduce startup time and improve processing performance`}),`\n`]})}),_jsx(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.`},id:`v1-9-85`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: resolved document conversion hangs caused by separate executor processes for improved reliability`}),`\n`]})}),_jsx(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.`},id:`v1-9-84`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: added cancel_all endpoint for on-prem deployments to cancel all running jobs at once`}),`\n`,_jsx(_components.li,{children:`feat: enhanced extraction with schema key normalization and improved page range references in citations`}),`\n`,_jsx(_components.li,{children:`feat: added global timeout overrides for better performance control and reliability`}),`\n`,_jsx(_components.li,{children:`fix: resolved document conversion hangs with global timeout implementation`}),`\n`,_jsx(_components.li,{children:`fix: improved change tracking validation with proper error handling`}),`\n`]})}),_jsx(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.`},id:`v1-9-83`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: enhanced DOCX metadata extraction for improved change tracking capabilities`}),`\n`,_jsx(_components.li,{children:`fix: improved Excel citation handling when OCR data is not available`}),`\n`]})}),_jsx(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.`},id:`v1-9-82`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: added on-prem licensing alerts when connection to license.reducto.ai fails`}),`\n`,_jsx(_components.li,{children:`feat: implemented timeout functionality for improved processing performance and reliability`}),`\n`,_jsx(_components.li,{children:`fix: improved authentication on /upload and /cancel endpoints for better security`}),`\n`]})}),_jsx(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.`},id:`v1-9-81`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: enhanced multilingual OCR text embedding with support for Latin, CJK, Cyrillic, and Devanagari scripts using custom Unifont font`}),`\n`,_jsx(_components.li,{children:`feat: file-based authentication system for on-prem deployments with Kubernetes secret mounting support`}),`\n`,_jsx(_components.li,{children:`feat: automatic file cleanup system with configurable retention windows (default 60 minutes) to manage storage usage`}),`\n`,_jsx(_components.li,{children:`fix: improved authentication reliability with retry logic for API validation calls`}),`\n`,_jsx(_components.li,{children:`fix: enhanced extraction pipeline to handle None extract_outputs and improve data merging`}),`\n`,_jsx(_components.li,{children:`fix: native office conversion now skips files over 150MB and falls back to LibreOffice for better reliability`}),`\n`,_jsx(_components.li,{children:`fix: improved citation confidence handling when confidence values are null`}),`\n`,_jsx(_components.li,{children:`fix: batch processing improvements to keep batches alive for large documents`}),`\n`]})}),_jsx(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.`},id:`v1-9-80`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: enhanced array extraction to work with non-array fields for improved data extraction flexibility`}),`\n`,_jsx(_components.li,{children:`feat: improved LLM error handling and timeout support for more reliable model calls`}),`\n`,_jsx(_components.li,{children:`feat: added support for OpenDocument Text (.odt) file uploads through existing LibreOffice conversion pipeline`}),`\n`,_jsx(_components.li,{children:`fix: improved block merging logic to properly update table content during document enrichment`}),`\n`,_jsx(_components.li,{children:`fix: added retry logic for database errors on job status requests to improve reliability`}),`\n`,_jsx(_components.li,{children:`fix: preserve empty blocks (such as figures with no content) in final document layout`}),`\n`]})}),_jsx(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.`},id:`v1-9-79`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: default to big extract model`}),`\n`,_jsx(_components.li,{children:`feat: automatic file cleanup`}),`\n`,_jsx(_components.li,{children:`fix: support for azure openai`}),`\n`,_jsx(_components.li,{children:`feat: add hidden sheet/row/column filtering for Excel processing`}),`\n`,_jsx(_components.li,{children:`feat: Fix jsonbbox and citations for excel`}),`\n`,_jsx(_components.li,{children:`fix: pdf processing timeout`}),`\n`,_jsx(_components.li,{children:`fix: Fix DOCX to PDF conversion error status code from 500 to 400`}),`\n`]})}),_jsx(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.`},id:`v1-9-78`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: enable change tracking capability`}),`\n`,_jsx(_components.li,{children:`fix: remove the large figure filter in dfine layout model postprocessing`}),`\n`]})}),_jsx(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.`},id:`v1-9-77`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Split blocks for array_extract on excel to separate pages`}),`\n`]})}),_jsx(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.`},id:`v1-9-76`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: Persist the full result for url results to persist bucket`}),`\n`,_jsx(_components.li,{children:`feat: Query jobs by user-id and fair queueing docs`}),`\n`,_jsx(_components.li,{children:`fix: Edit conditionals so full tables aren’t returned in citations`}),`\n`,_jsx(_components.li,{children:`fix: Fix job type error when cancelling a job`}),`\n`,_jsx(_components.li,{children:`fix: on-prem changelog auth on light and dark mode`}),`\n`,_jsx(_components.li,{children:`fix: Rename file to include guessed extension if one isn’t already included`}),`\n`,_jsx(_components.li,{children:`fix: handle empty bbox arrays in layout postprocess calculations`}),`\n`]})}),_jsx(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.`},id:`v1-9-75`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: update replicated helm chart`}),`\n`,_jsx(_components.li,{children:`feat: surface all table citations in v2`}),`\n`]})}),_jsx(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.`},id:`v1-9-74`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: internal webhook via IPC on job completion`}),`\n`,_jsx(_components.li,{children:`feat: expose table citations in extraction results`}),`\n`,_jsx(_components.li,{children:`feat: add persist config option that persists parsebatches and results`}),`\n`,_jsx(_components.li,{children:`fix: keep batch alive for large HTML documents`}),`\n`,_jsx(_components.li,{children:`fix: check for empty document_url list in extract`}),`\n`,_jsx(_components.li,{children:`refactor: PDF editing with PyPDFForm for improved form handling`}),`\n`]})}),_jsx(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.`},id:`v1-9-73`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`feat: update extraction pipeline with improved array handling`}),`\n`,_jsx(_components.li,{children:`fix: f-string usage in logfire calls across the codebase`}),`\n`]})}),_jsx(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.`},id:`v1-9-72`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: OpenAI vision LLM calls in LLM router`}),`\n`]})}),_jsx(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.`},id:`v1-9-71`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`fix: root level acroform rendering (preserve form values)`}),`\n`,_jsx(_components.li,{children:`feat: add onprem config option to enable figure summaries for all figures`}),`\n`,_jsx(_components.li,{children:`feat: add exclude_configs query param to /jobs endpoint to reduce response size`}),`\n`,_jsxs(_components.li,{children:[`fix: onprem CD now corrects the `,_jsx(_components.code,{children:`/version`}),` url to the latest version number`]}),`\n`]})}),_jsx(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.\"},id:`v1-9-70`,children:_jsxs(_components.p,{children:[`Enhanced support for OCR text embedding in PDFs with `,_jsx(_components.code,{children:`embed_text_metadata_pdf`}),` flag.`]})}),_jsx(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.`},id:`v1-9-69`,children:_jsx(_components.p,{children:`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.`})}),_jsx(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.`},id:`v1-9-68`,children:_jsx(_components.p,{children:`Added Azure OpenAI support and improved table model with a new fallback\nmechanism. Enhanced webhook validation and added support for selective\ncustomer notifications via target channels parameter.`})}),_jsxs(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.\"},id:`v1-9-67`,children:[_jsx(_components.p,{children:`Added support for LiteLLM Proxy configuration via environment variables:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`LITELLM_PROXY_URL`}),`: URL of the LiteLLM Proxy`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`LITELLM_PROXY_FAST_MODEL`}),`: Fast model to route to via the proxy`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`LITELLM_PROXY_ACCURATE_MODEL`}),`: Accurate model to route to via the proxy`]}),`\n`]}),_jsx(_components.p,{children:`When using the proxy configuration:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Both fast and accurate models must be defined if using the proxy URL`}),`\n`,_jsx(_components.li,{children:`Existing LiteLLM routing options are overridden when proxy settings are active`}),`\n`]}),_jsx(_components.p,{children:`This enables easier integration with centralized proxy setups for model routing and observability.`})]}),_jsxs(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.\"},id:`v1-9-48`,children:[_jsxs(_components.p,{children:[`Add a `,_jsx(_components.code,{children:`/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.`]}),_jsx(_components.p,{children:`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.`})]}),_jsxs(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.`},id:`v1-9-47`,children:[_jsx(_components.p,{children:`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).`}),_jsx(_components.p,{children:`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.`})]})]})})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{PasswordProtect,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"On-premise changelog","description":"Release notes for on-premise deployments of Reducto","rss":true,"href":"/onprem/changelog"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[19,38,""],[151,2252,")=>null;function _cr"]]},"mdxExtracts":{"tableOfContents":[{"title":"unreleased","slug":"unreleased","depth":1,"children":[]},{"title":"v1.12.20","slug":"v1-12-20","depth":1,"children":[]},{"title":"v1.12.19","slug":"v1-12-19","depth":1,"children":[]},{"title":"v1.12.18","slug":"v1-12-18","depth":1,"children":[]},{"title":"v1.12.17","slug":"v1-12-17","depth":1,"children":[]},{"title":"v1.12.16","slug":"v1-12-16","depth":1,"children":[]},{"title":"v1.12.15","slug":"v1-12-15","depth":1,"children":[]},{"title":"v1.12.14","slug":"v1-12-14","depth":1,"children":[]},{"title":"v1.12.13","slug":"v1-12-13","depth":1,"children":[]},{"title":"v1.12.12","slug":"v1-12-12","depth":1,"children":[]},{"title":"v1.12.11","slug":"v1-12-11","depth":1,"children":[]},{"title":"v1.12.10","slug":"v1-12-10","depth":1,"children":[]},{"title":"v1.12.9","slug":"v1-12-9","depth":1,"children":[]},{"title":"v1.12.8","slug":"v1-12-8","depth":1,"children":[]},{"title":"v1.12.7","slug":"v1-12-7","depth":1,"children":[]},{"title":"v1.12.6","slug":"v1-12-6","depth":1,"children":[]},{"title":"v1.12.5","slug":"v1-12-5","depth":1,"children":[]},{"title":"v1.12.4","slug":"v1-12-4","depth":1,"children":[]},{"title":"v1.12.3","slug":"v1-12-3","depth":1,"children":[]},{"title":"v1.12.2","slug":"v1-12-2","depth":1,"children":[]},{"title":"v1.12.1","slug":"v1-12-1","depth":1,"children":[]},{"title":"v1.12.0","slug":"v1-12-0","depth":1,"children":[]},{"title":"v1.11.81","slug":"v1-11-81","depth":1,"children":[]},{"title":"v1.11.80","slug":"v1-11-80","depth":1,"children":[]},{"title":"v1.11.79","slug":"v1-11-79","depth":1,"children":[]},{"title":"v1.11.78","slug":"v1-11-78","depth":1,"children":[]},{"title":"v1.11.77","slug":"v1-11-77","depth":1,"children":[]},{"title":"v1.11.76","slug":"v1-11-76","depth":1,"children":[]},{"title":"v1.11.75","slug":"v1-11-75","depth":1,"children":[]},{"title":"v1.11.70","slug":"v1-11-70","depth":1,"children":[]},{"title":"v1.11.69","slug":"v1-11-69","depth":1,"children":[]},{"title":"v1.11.68","slug":"v1-11-68","depth":1,"children":[]},{"title":"v1.11.67","slug":"v1-11-67","depth":1,"children":[]},{"title":"v1.11.66","slug":"v1-11-66","depth":1,"children":[]},{"title":"v1.11.65","slug":"v1-11-65","depth":1,"children":[]},{"title":"v1.11.64","slug":"v1-11-64","depth":1,"children":[]},{"title":"v1.11.63","slug":"v1-11-63","depth":1,"children":[]},{"title":"v1.11.62","slug":"v1-11-62","depth":1,"children":[]},{"title":"v1.11.61","slug":"v1-11-61","depth":1,"children":[]},{"title":"v1.11.60","slug":"v1-11-60","depth":1,"children":[]},{"title":"v1.11.59","slug":"v1-11-59","depth":1,"children":[]},{"title":"v1.11.58","slug":"v1-11-58","depth":1,"children":[]},{"title":"v1.11.57","slug":"v1-11-57","depth":1,"children":[]},{"title":"v1.11.56","slug":"v1-11-56","depth":1,"children":[]},{"title":"v1.11.51","slug":"v1-11-51","depth":1,"children":[]},{"title":"v1.11.49","slug":"v1-11-49","depth":1,"children":[]},{"title":"v1.11.48","slug":"v1-11-48","depth":1,"children":[]},{"title":"v1.11.47","slug":"v1-11-47","depth":1,"children":[]},{"title":"v1.11.46","slug":"v1-11-46","depth":1,"children":[]},{"title":"v1.11.45","slug":"v1-11-45","depth":1,"children":[]},{"title":"v1.11.44","slug":"v1-11-44","depth":1,"children":[]},{"title":"v1.11.42","slug":"v1-11-42","depth":1,"children":[]},{"title":"v1.11.41","slug":"v1-11-41","depth":1,"children":[]},{"title":"v1.11.40","slug":"v1-11-40","depth":1,"children":[]},{"title":"v1.11.38","slug":"v1-11-38","depth":1,"children":[]},{"title":"v1.11.37","slug":"v1-11-37","depth":1,"children":[]},{"title":"v1.11.36","slug":"v1-11-36","depth":1,"children":[]},{"title":"v1.11.35","slug":"v1-11-35","depth":1,"children":[]},{"title":"v1.11.34","slug":"v1-11-34","depth":1,"children":[]},{"title":"v1.11.33","slug":"v1-11-33","depth":1,"children":[]},{"title":"v1.11.32","slug":"v1-11-32","depth":1,"children":[]},{"title":"v1.11.31","slug":"v1-11-31","depth":1,"children":[]},{"title":"v1.11.29","slug":"v1-11-29","depth":1,"children":[]},{"title":"v1.11.25","slug":"v1-11-25","depth":1,"children":[]},{"title":"v1.11.21","slug":"v1-11-21","depth":1,"children":[]},{"title":"v1.11.20","slug":"v1-11-20","depth":1,"children":[]},{"title":"v1.11.19","slug":"v1-11-19","depth":1,"children":[]},{"title":"v1.11.18","slug":"v1-11-18","depth":1,"children":[]},{"title":"v1.11.17","slug":"v1-11-17","depth":1,"children":[]},{"title":"v1.11.16","slug":"v1-11-16","depth":1,"children":[]},{"title":"v1.11.15","slug":"v1-11-15","depth":1,"children":[]},{"title":"v1.11.14","slug":"v1-11-14","depth":1,"children":[]},{"title":"v1.11.13","slug":"v1-11-13","depth":1,"children":[]},{"title":"v1.11.12","slug":"v1-11-12","depth":1,"children":[]},{"title":"v1.11.11","slug":"v1-11-11","depth":1,"children":[]},{"title":"v1.11.10","slug":"v1-11-10","depth":1,"children":[]},{"title":"v1.11.9","slug":"v1-11-9","depth":1,"children":[]},{"title":"v1.11.8","slug":"v1-11-8","depth":1,"children":[]},{"title":"v1.11.7","slug":"v1-11-7","depth":1,"children":[]},{"title":"v1.11.6","slug":"v1-11-6","depth":1,"children":[]},{"title":"v1.11.5","slug":"v1-11-5","depth":1,"children":[]},{"title":"v1.11.4","slug":"v1-11-4","depth":1,"children":[]},{"title":"v1.11.3","slug":"v1-11-3","depth":1,"children":[]},{"title":"v1.11.2","slug":"v1-11-2","depth":1,"children":[]},{"title":"v1.11.1","slug":"v1-11-1","depth":1,"children":[]},{"title":"v1.11.0","slug":"v1-11-0","depth":1,"children":[]},{"title":"v1.10.38","slug":"v1-10-38","depth":1,"children":[]},{"title":"v1.10.37","slug":"v1-10-37","depth":1,"children":[]},{"title":"v1.10.36","slug":"v1-10-36","depth":1,"children":[]},{"title":"v1.10.35","slug":"v1-10-35","depth":1,"children":[]},{"title":"v1.10.34","slug":"v1-10-34","depth":1,"children":[]},{"title":"v1.10.33","slug":"v1-10-33","depth":1,"children":[]},{"title":"v1.10.32","slug":"v1-10-32","depth":1,"children":[]},{"title":"v1.10.31","slug":"v1-10-31","depth":1,"children":[]},{"title":"v1.10.30","slug":"v1-10-30","depth":1,"children":[]},{"title":"v1.10.29","slug":"v1-10-29","depth":1,"children":[]},{"title":"v1.10.28","slug":"v1-10-28","depth":1,"children":[]},{"title":"v1.10.27","slug":"v1-10-27","depth":1,"children":[]},{"title":"v1.10.24","slug":"v1-10-24","depth":1,"children":[]},{"title":"v1.10.21","slug":"v1-10-21","depth":1,"children":[]},{"title":"v1.10.16","slug":"v1-10-16","depth":1,"children":[]},{"title":"v1.10.13","slug":"v1-10-13","depth":1,"children":[]},{"title":"v1.10.12","slug":"v1-10-12","depth":1,"children":[]},{"title":"v1.10.11","slug":"v1-10-11","depth":1,"children":[]},{"title":"v1.10.8","slug":"v1-10-8","depth":1,"children":[]},{"title":"v1.10.7","slug":"v1-10-7","depth":1,"children":[]},{"title":"v1.10.4","slug":"v1-10-4","depth":1,"children":[]},{"title":"v1.10.3","slug":"v1-10-3","depth":1,"children":[]},{"title":"v1.10.2","slug":"v1-10-2","depth":1,"children":[]},{"title":"v1.10.1","slug":"v1-10-1","depth":1,"children":[]},{"title":"v1.10.0","slug":"v1-10-0","depth":1,"children":[]},{"title":"v1.9.94","slug":"v1-9-94","depth":1,"children":[]},{"title":"v1.9.93","slug":"v1-9-93","depth":1,"children":[]},{"title":"v1.9.92","slug":"v1-9-92","depth":1,"children":[]},{"title":"v1.9.91","slug":"v1-9-91","depth":1,"children":[]},{"title":"v1.9.90","slug":"v1-9-90","depth":1,"children":[]},{"title":"v1.9.89","slug":"v1-9-89","depth":1,"children":[]},{"title":"v1.9.88","slug":"v1-9-88","depth":1,"children":[]},{"title":"v1.9.86","slug":"v1-9-86","depth":1,"children":[]},{"title":"v1.9.85","slug":"v1-9-85","depth":1,"children":[]},{"title":"v1.9.84","slug":"v1-9-84","depth":1,"children":[]},{"title":"v1.9.83","slug":"v1-9-83","depth":1,"children":[]},{"title":"v1.9.82","slug":"v1-9-82","depth":1,"children":[]},{"title":"v1.9.81","slug":"v1-9-81","depth":1,"children":[]},{"title":"v1.9.80","slug":"v1-9-80","depth":1,"children":[]},{"title":"v1.9.79","slug":"v1-9-79","depth":1,"children":[]},{"title":"v1.9.78","slug":"v1-9-78","depth":1,"children":[]},{"title":"v1.9.77","slug":"v1-9-77","depth":1,"children":[]},{"title":"v1.9.76","slug":"v1-9-76","depth":1,"children":[]},{"title":"v1.9.75","slug":"v1-9-75","depth":1,"children":[]},{"title":"v1.9.74","slug":"v1-9-74","depth":1,"children":[]},{"title":"v1.9.73","slug":"v1-9-73","depth":1,"children":[]},{"title":"v1.9.72","slug":"v1-9-72","depth":1,"children":[]},{"title":"v1.9.71","slug":"v1-9-71","depth":1,"children":[]},{"title":"v1.9.70","slug":"v1-9-70","depth":1,"children":[]},{"title":"v1.9.69","slug":"v1-9-69","depth":1,"children":[]},{"title":"v1.9.68","slug":"v1-9-68","depth":1,"children":[]},{"title":"v1.9.67","slug":"v1-9-67","depth":1,"children":[]},{"title":"v1.9.48","slug":"v1-9-48","depth":1,"children":[]},{"title":"v1.9.47","slug":"v1-9-47","depth":1,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"reducto","siteName":"Reducto","title":"On-premise changelog - Reducto","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-16T12:30:39.617Z","originalFileLocation":"onprem/changelog.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Release notes for on-premise deployments of Reducto\">\u003cmeta data-mint-head name=\"application-name\" content=\"Reducto\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/reducto/riSUMTseceMg4CLB/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/reducto/riSUMTseceMg4CLB/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/reducto/riSUMTseceMg4CLB/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/reducto/riSUMTseceMg4CLB/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/reducto/riSUMTseceMg4CLB/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/reducto/riSUMTseceMg4CLB/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/reducto/riSUMTseceMg4CLB/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/reducto/riSUMTseceMg4CLB/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/reducto/riSUMTseceMg4CLB/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"On-premise changelog - Reducto\">\u003cmeta data-mint-head property=\"og:description\" content=\"Release notes for on-premise deployments of Reducto\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Reducto\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.reducto.ai/onprem/changelog\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://reducto.mintlify.app/_mintlify/api/og/v2?division=On-premise+Resources\u0026amp;title=On-premise+changelog\u0026amp;description=Release+notes+for+on-premise+deployments+of+Reducto\u0026amp;theme=e351366ecfb2cc50f96edafd\u0026amp;signature=947d4e67dbde6dde9da1c1537c9832f2a7626f484065f310d5239d252d7d8087\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"On-premise changelog - Reducto\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Release notes for on-premise deployments of Reducto\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://reducto.mintlify.app/_mintlify/api/og/v2?division=On-premise+Resources\u0026amp;title=On-premise+changelog\u0026amp;description=Release+notes+for+on-premise+deployments+of+Reducto\u0026amp;theme=e351366ecfb2cc50f96edafd\u0026amp;signature=947d4e67dbde6dde9da1c1537c9832f2a7626f484065f310d5239d252d7d8087\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/reducto/riSUMTseceMg4CLB/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Reducto\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5c0c5c\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.reducto.ai/onprem/changelog\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/onprem/changelog.md\">\u003clink data-mint-head rel=\"alternate\" type=\"application/rss+xml\" href=\"https://docs.reducto.ai/onprem/changelog/rss.xml\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.reducto.ai/#organization\",\"name\":\"Reducto\",\"url\":\"https://docs.reducto.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://cdn.reducto.ai/logo.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.reducto.ai#website\",\"name\":\"Reducto\",\"url\":\"https://docs.reducto.ai\",\"publisher\":{\"@id\":\"https://docs.reducto.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.reducto.ai/onprem/changelog#webpage\",\"url\":\"https://docs.reducto.ai/onprem/changelog\",\"name\":\"On-premise changelog\",\"description\":\"Release notes for on-premise deployments of Reducto\",\"dateModified\":\"2026-10-16T12:30:39.617Z\",\"isPartOf\":{\"@id\":\"https://docs.reducto.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.reducto.ai/onprem/changelog#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.reducto.ai/onprem/changelog#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"On-premise Resources\",\"item\":\"https://docs.reducto.ai/onprem/hybrid-vpc-deployment\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"On-premise changelog\",\"item\":\"https://docs.reducto.ai/onprem/changelog\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.reducto.ai/onprem/changelog#article\",\"headline\":\"On-premise changelog\",\"name\":\"On-premise changelog\",\"description\":\"Release notes for on-premise deployments of Reducto\",\"url\":\"https://docs.reducto.ai/onprem/changelog\",\"mainEntityOfPage\":{\"@id\":\"https://docs.reducto.ai/onprem/changelog#webpage\"},\"dateModified\":\"2026-10-16T12:30:39.617Z\",\"publisher\":{\"@id\":\"https://docs.reducto.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.reducto.ai#website\"}}]}\u003c/script>","siteName":"Reducto","nav":{"global":{"anchors":[{"anchor":"Status","icon":"signal","href":"https://status.reducto.ai"},{"anchor":"Studio","icon":"browser","href":"https://studio.reducto.ai"},{"anchor":"Support","icon":"envelope","href":"mailto:support@reducto.ai"},{"anchor":"Model Versions","icon":"bell","href":"/reference/model-versions"},{"anchor":"Changelog","icon":"clock-rotate-left","href":"/reference/changelog"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Get Started","public":true,"pages":[{"title":"Overview","icon":"house","sidebarTitle":"Overview","href":"/overview"},{"title":"API Quickstart","icon":"rocket","href":"/quickstart"},{"title":"Studio Quickstart","icon":"crystal-ball","href":"/studio-quickstart"},{"title":"Reducto API Reference for Coding Agents","sidebarTitle":"Agent Guide","icon":"robot","href":"/agent-guide"}]},{"group":"Developer Tools","pages":[{"title":"Reducto CLI","icon":"code","iconType":"solid","href":"/cli"},{"title":"Reducto MCP Server","icon":"plug","iconType":"solid","href":"/mcp-server"}]},{"group":"Core Functions","public":true,"pages":[{"group":"Upload","pages":[{"title":"Upload","href":"/upload/overview"},{"title":"Uploading Large Files","href":"/upload/large-files"}]},{"group":"Parse","pages":[{"title":"Parse overview","sidebarTitle":"Overview","href":"/parse/overview"},{"title":"Parse r-1","sidebarTitle":"Parse r-1","href":"/parse/r-1"},{"title":"Parse Response Format","sidebarTitle":"Response Format","href":"/parse/response-format"},{"title":"Parse Best Practices","sidebarTitle":"Best Practices","href":"/parse/best-practices"}]},{"group":"Extract","pages":[{"title":"Extract","sidebarTitle":"Overview","href":"/extract/overview"},{"title":"Extract Response Format","sidebarTitle":"Response Format","href":"/extract/response-format"},{"title":"Schema Keyword Support","sidebarTitle":"Schema Keywords","href":"/extract/schema-keywords"},{"title":"Extract Best Practices","sidebarTitle":"Best Practices","href":"/extraction/best-practices-extract"}]},{"title":"Split","href":"/split"},{"group":"Classify","pages":[{"title":"Classify","sidebarTitle":"Overview","href":"/classify/overview"},{"title":"Classify Response Format","sidebarTitle":"Response Format","href":"/classify/response-format"},{"title":"Classify Best Practices","sidebarTitle":"Best Practices","href":"/classify/best-practices"}]},{"title":"Edit","href":"/editing/edit-overview"}]},{"group":"Workflows and Pipelines","public":true,"pages":[{"group":"Pipelines","pages":[{"title":"Pipeline Basics","href":"/workflows/pipeline-basics"},{"title":"Multi-document Pipelines","href":"/workflows/multi-document-pipelines"}]},{"title":"Chaining API Calls","href":"/workflows/chaining-endpoints"},{"group":"Async Processing \u0026 Webhooks","pages":[{"title":"Async Processing","href":"/workflows/async-overview"},{"title":"Svix Webhooks","href":"/workflows/svix-webhooks"},{"title":"Direct Webhooks","href":"/workflows/direct-webhooks"},{"title":"Batch Processing","href":"/workflows/batch-processing"},{"title":"Batch Queue","href":"/workflows/batch-queue"},{"title":"Deleting Jobs \u0026 Uploads","href":"/workflows/deletion"}]}]},{"group":"Configurations","public":true,"pages":[{"title":"Configuration Overview","href":"/configs/overview"},{"group":"Parse Configurations","pages":[{"title":"r-1 configuration compatibility","sidebarTitle":"r-1 compatibility","href":"/configs/parse/r-1-configuration-compatibility"},{"group":"Enhance","pages":[{"title":"Agentic Modes","href":"/configs/parse/agentic-modes"},{"title":"Chart Extraction","href":"/configs/parse/chart-extraction"}]},{"group":"Retrieval","pages":[{"title":"Chunking Methods","href":"/configs/parse/chunking-methods"}]},{"group":"Formatting","pages":[{"title":"Table Output Formats","href":"/configs/parse/table-output-formats"},{"title":"Additional Document Data","href":"/configs/parse/additional-document-data"}]},{"group":"Spreadsheet","pages":[{"title":"Spreadsheet Processing","href":"/configs/parse/spreadsheet"}]},{"group":"Settings","pages":[{"title":"Processing Settings","href":"/configs/parse/ocr-settings"},{"title":"Page Ranges","href":"/configs/parse/page-ranges"},{"title":"Word and Cell Citations","href":"/configs/parse/citations"}]}]},{"group":"Extract Configurations","pages":[{"title":"Deep Extract","href":"/configs/extract/deep-extract"},{"title":"Array Extraction","href":"/configs/extract/array-extraction"},{"title":"Citations","href":"/configs/extract/citations"}]},{"group":"Split Configurations","pages":[{"title":"Split Configuration","href":"/configs/split/configuration"},{"title":"Deep Split","href":"/configs/split/deep-split"}]},{"group":"Classify Configurations","pages":[{"title":"Classify Configuration","href":"/configs/classify/configuration"}]},{"group":"Edit Configurations","pages":[{"title":"Form Schema","href":"/configs/edit/form-schema"}]}]},{"group":"Reference","public":true,"pages":[{"title":"Version Pinning","href":"/reference/version-pinning"},{"title":"Error Codes","href":"/reference/error-codes"},{"title":"Rate Limits","href":"/reference/rate-limits"},{"title":"Checking API Health \u0026 Usage","href":"/reference/checking-api-health"},{"title":"Concurrency Throttle","href":"/reference/throttling"},{"title":"Usage and Pricing","href":"/reference/credit-usage"},{"title":"Pricing Migration Guide","href":"/reference/pricing-migration"},{"title":"Usage Export API","href":"/reference/usage-export-api"},{"title":"Per-Page Billing Breakdown","href":"/reference/page-billing-breakdown"},{"title":"Glossary","href":"/reference/glossary"},{"title":"Frequently Asked Questions","href":"/reference/faq"}]},{"group":"Hidden pages","public":true,"hidden":true,"pages":[{"title":"Legacy Credit Usage and Rates","href":"/faq/legacy-credit-usage-overview"},{"title":"Legacy Credit Usage","href":"/reference/legacy-credit-usage"},{"title":"OpenAPI Schema","href":"/api-reference/openapi.json"}]},{"group":"Components","public":true,"pages":[{"title":"SpreadsheetViewer","href":"/components/spreadsheet-viewer"}]},{"group":"Enterprise Resources","public":true,"pages":[{"title":"Enterprise Readiness","href":"/enterprise/enterprise-readiness"},{"title":"Deployment options (Cloud, On-prem, Hybrid)","href":"/onprem/enterprise_deployment_options"}]},{"group":"Security and privacy","public":true,"pages":[{"title":"Data policies \u0026 compliance","href":"/security/policies"},{"title":"Filing Complaints","href":"/security/filing-complaints"},{"title":"EU data residency \u0026 processing","href":"/security/eu-data-residency"},{"title":"Single sign-on (SSO) FAQ","href":"/security/sso-saml-faq"}]},{"group":"On-premise Resources","icon":"archway","pages":[{"group":"Hybrid VPC","pages":[{"title":"Hybrid VPC Deployment","href":"/onprem/hybrid-vpc-deployment"},{"title":"Hybrid VPC — AWS S3","href":"/onprem/hybrid-vpc-aws"},{"title":"Hybrid VPC — Azure Blob Storage","href":"/onprem/hybrid-vpc-azure"},{"title":"Hybrid VPC — Box","href":"/onprem/hybrid-vpc-box"},{"title":"Hybrid VPC — Google Cloud Storage","href":"/onprem/hybrid-vpc-gcs"}]},{"title":"On-prem security model","href":"/onprem/security_model"},{"title":"Securing Reducto","href":"/onprem/securing_reducto"},{"title":"OCR provider configuration","href":"/onprem/ocr_options"},{"title":"LLM \u0026 service configuration options","href":"/onprem/llm_options"},{"title":"Database configuration","href":"/onprem/database_configuration"},{"title":"Azure Blob Storage authentication","description":"Configure account-key or workload-identity signing for Azure Blob Storage in a self-hosted deployment.","href":"/onprem/azure_blob_storage"},{"title":"On-premise changelog","href":"/onprem/changelog"},{"title":"Observability \u0026 Monitoring","description":"Built-in observability stack for on-premise Reducto deployments","href":"/onprem/observability"},{"title":"Operations","href":"/onprem/operations"},{"title":"Self-hosted fair queueing with Reducto","href":"/onprem/fair_queueing"},{"title":"Automatic file cleanup","href":"/onprem/file_cleanup"},{"title":"Air-gapped usage for billing","href":"/onprem/usage_for_billing"}]}]},{"tab":"API Reference","versions":[{"version":"Current","groups":[{"group":"Document Processing","pages":[{"openapi":"openapi.json post /parse","title":"Parse","href":"/api-reference/parse"},{"title":"Parse Async","openapi":"openapi.json post /parse_async","href":"/api-reference/async-parse"},{"openapi":"openapi.json post /upload","title":"Upload","href":"/api-reference/upload"},{"openapi":"openapi.json post /extract","title":"Extract","href":"/api-reference/extract"},{"openapi":"openapi.json post /extract_async","title":"Extract Async","href":"/api-reference/extract-async"},{"openapi":"openapi.json post /split","title":"Split","href":"/api-reference/split"},{"openapi":"openapi.json post /split_async","title":"Split Async","href":"/api-reference/split-async"},{"openapi":"openapi.json post /classify","title":"Classify","href":"/api-reference/classify"},{"openapi":"openapi.json post /classify_async","title":"Classify Async","href":"/api-reference/classify-async"},{"openapi":"openapi.json post /edit","title":"Edit","href":"/api-reference/edit"},{"openapi":"openapi.json post /edit_async","title":"Edit Async","href":"/api-reference/edit-async"},{"openapi":"openapi.json post /pipeline","title":"Pipeline","href":"/api-reference/pipeline"},{"openapi":"openapi.json post /pipeline_async","title":"Pipeline Async","href":"/api-reference/pipeline-async"}]},{"group":"Job Management","pages":[{"title":"Retrieve Job","openapi":"openapi.json get /job/{job_id}","href":"/api-reference/retrieve-parse"},{"openapi":"openapi.json post /cancel/{job_id}","title":"Cancel Job","href":"/api-reference/cancel-job"},{"title":"Delete Job","openapi":"openapi.json delete /job/{job_id}","href":"/api-reference/delete-job"},{"openapi":"openapi.json get /jobs","title":"Get Jobs","href":"/api-reference/get-jobs"}]},{"group":"File Management","pages":[{"title":"Delete Upload","openapi":"openapi.json delete /upload/{file_id}","href":"/api-reference/delete-upload"}]},{"group":"Utilities","pages":[{"openapi":"openapi.json post /configure_webhook","title":"Webhook Portal","href":"/api-reference/webhook-portal"},{"openapi":"openapi.json get /version","title":"Get Version","href":"/api-reference/get-version"}]}]},{"version":"Legacy API","pages":[{"title":"Legacy API","href":"/api-reference/legacy/parse"}]}]},{"tab":"Cookbooks","pages":[{"title":"Cookbooks","href":"/cookbooks/overview"}]},{"tab":"SDKs","versions":[{"version":"Python","groups":[{"group":"Get Started","pages":[{"title":"Python SDK Overview","sidebarTitle":"Overview","href":"/sdk/python/overview"}]},{"group":"Core Methods","pages":[{"title":"Upload","sidebarTitle":"Upload","href":"/sdk/python/upload"},{"title":"Parse","sidebarTitle":"Parse","href":"/sdk/python/parse"},{"title":"Extract","sidebarTitle":"Extract","href":"/sdk/python/extract"},{"title":"Split","sidebarTitle":"Split","href":"/sdk/python/split"},{"title":"Edit","sidebarTitle":"Edit","href":"/sdk/python/edit"},{"title":"Pipeline","sidebarTitle":"Pipeline","href":"/sdk/python/pipeline"}]},{"group":"Async \u0026 Utilities","pages":[{"title":"Async Client","sidebarTitle":"Async Client","href":"/sdk/python/async"},{"title":"Job Management","sidebarTitle":"Job Management","href":"/sdk/python/job-management"},{"title":"Error Handling","sidebarTitle":"Error Handling","href":"/sdk/python/error-handling"}]}]},{"version":"JavaScript","pages":[{"title":"JavaScript","href":"/sdk/javascript/overview"}]},{"version":"Go","pages":[{"title":"Go","href":"/sdk/go/overview"}]}]},{"tab":"Studio","pages":[{"title":"Studio","href":"/studio-parse"}]}]},"basePath":"","title":"On-premise changelog - Reducto","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}