Skip to main content
EigenPal ships on a unified platform version. Each production release updates Studio, the public API, infrastructure, and (when applicable) the CLI and SDKs together.

0.16.10 (2026-09-10)

Infrastructure & processing

  • OCR processing now distinguishes temporary host availability issues from true processing timeouts, keeps redundant production capacity warm, and pages only when unfinished work is affected. Short self-healing interruptions remain visible for diagnosis without generating misleading recovery alerts.

0.16.9 (2026-09-10)

Platform (Studio)

  • Harden web image handling, document image processing, and email delivery against crafted inputs that could cause remote code execution, excessive resource use, or recipient-validation bypasses.

Infrastructure & processing

  • Harden web image handling, document image processing, and email delivery against crafted inputs that could cause remote code execution, excessive resource use, or recipient-validation bypasses.

0.16.8 (2026-09-10)

Platform (Studio)

  • Files are easier to recognize throughout Studio with refreshed Office logos, dedicated PDF, archive, text, JSON, and code treatments, plus image thumbnails. File inputs now use a clearer rounded drag-and-drop experience with consistent selected-file previews.

0.16.7 (2026-09-10)

Platform (Studio)

  • File uploads now infer supported document media types from the filename when clients provide an empty or generic content type, allowing original Outlook messages and macro-enabled workbooks to upload without conversion.

Public API

  • File uploads now infer supported document media types from the filename when clients provide an empty or generic content type, allowing original Outlook messages and macro-enabled workbooks to upload without conversion.

CLI

  • The CLI now uploads macro-enabled Excel workbooks with the correct media type, so original .xlsm workflow inputs work without manual conversion.

SDK

  • TypeScript SDK file helpers now infer the correct media types for .xlsm workbooks and .msg Outlook messages.

Infrastructure & processing

  • Document parsing now reads Excel, legacy Excel, and macro-enabled workbooks directly, preserving every non-empty sheet and its cell evidence without executing formulas or macros. Large single-page extractions are also split into bounded AI context windows instead of failing at the model limit.

0.16.6 (2026-09-09)

Infrastructure & processing

  • Template processing now enforces memory limits when joining large collections, preventing crafted templates from exhausting worker memory.

0.16.5 (2026-09-08)

Platform (Studio)

  • Human review is now available in production, including workflow authoring and review queues.

Public API

  • Human review API endpoints are now available in every production organization for listing tasks, confirming fields, and completing reviews.

Infrastructure & processing

  • Workflow and agent runs can now request human review in every production organization.

0.16.4 (2026-09-08)

Platform (Studio)

  • Studio adds List Archive and Extract Archive File steps for ZIP workflow inputs. Enumerate archive contents, wire \{\{ item.path }} through foreach, and pass extracted files straight into Parse, Vision, or Search Files without leaving the builder.
  • Studio now finishes multi-GB file uploads with resumable multipart transfers, retrying individual parts without restarting the whole file.
  • Studio workflows now include Search Files: ask a question about a ZIP archive and get a cited answer plus the files the step inspected. Scope the search to a folder inside the archive and use the same model and reasoning controls as other AI steps.

Public API

  • Upload ZIP archives as reusable workflow inputs through the Files API. Archives can be much larger than single documents, so teams can pass bundled evidence, exports, or multi-file drops into the same runs that already accept PDFs and Office files.
  • File uploads can now negotiate a resumable multipart session for multi-GB objects, with on-demand part URLs, authoritative resume listing, and safe completion that never overwrites a finished file.
  • Starting a run from a reusable file id now keeps a private run-owned reference to the original bytes instead of duplicating large uploads. Deleting the reusable file leaves past runs readable until those runs themselves are deleted.

CLI

  • Dataset import and export now keep a single /api/v1 prefix when the CLI base URL already includes /api/v1, so those commands reach the dataset API instead of a doubled /v1/v1 path.
  • The CLI now uploads large run files with resumable, storage-direct transfers, so multi-GB inputs stream from disk instead of loading into memory or a single request.
  • The CLI now recognizes .zip files when uploading reusable workflow inputs, so archive uploads get the correct content type without extra flags.

SDK

View full release notes →

0.16.3 (2026-09-08)

Platform (Studio)

  • Human review: open pending reviews directly from run details and confirm unchanged fields inline from the field list.

Public API

  • Human review field confirmations now preserve valid JSON null values and return clear validation errors when a reviewed value does not match its schema.

0.16.2 (2026-09-08)

Platform (Studio)

  • Human review: pause workflows and agents only when selected fields need attention, inspect source files beside structured output with spatial citation highlights when lineage is available, correct and confirm values, then approve the same run to continue. Confidence thresholds, explicit field selection, required-field progress, rejection, and cancellation keep exception review focused instead of forcing teams to recheck every field.

Public API

  • Human review APIs now list pending tasks, return review data and source-file references, persist field corrections and confirmations, and approve or reject paused runs with optimistic concurrency protection. Task detail may also include resolved lineage and parsed-document context when an upstream grounded extract produced sidecars.

CLI

  • Workflow authoring now includes human-review guidance and ready-to-use templates for confidence-based exception review and explicit approval of critical fields.

SDK

  • TypeScript and Python SDKs now expose human-review resources for listing and retrieving tasks, confirming corrected fields, downloading attached source files, and approving or rejecting paused runs.

Infrastructure & processing

  • Grounded extraction now runs the same shared algorithm locally when a parse step supplies a valid structured document and your provider supports strict structured output. Step JSON stays schema-shaped with _grounding metadata; lineage and the parsed document graph are stored as optional sidecars for review and audit, not mixed into workflow output. Text-only inputs and unsupported providers continue to use the existing text grounding path with clear degraded markers when the shared path is unavailable.

0.16.1 (2026-09-07)

Platform (Studio)

  • GPT-6 Astra is available across workflows, agents, evaluations, and vision tasks, with configurable reasoning and current token pricing.
  • Self-hosted PaddleOCR models now appear with clear provider identity in Studio model selectors and settings.
  • Archive imports now reject malformed ZIP64 data safely instead of risking an unbounded processing loop.

CLI

  • CLI archive handling now rejects malformed ZIP64 data safely instead of risking an unbounded processing loop.

Infrastructure & processing

  • GPT-6 Astra is available across workflows, agents, evaluations, and vision tasks, with configurable reasoning and current token pricing.
  • Self-hosted deployments can connect directly to PaddleOCR-VL for high-quality document parsing, with bounded concurrency and long-running PDF support built in.

0.16.0 (2026-09-07)

Platform (Studio)

  • Agent model pickers are now compact, searchable, grouped by provider, and ordered from the most capable model to the least without changing configured defaults.
  • Send Email is now a first-class workflow action. Add Resend or SMTP servers in Settings → Email servers, then pick a stable ems_… server on the step — including generated files from the same run as attachments. Cloud and on-prem share this Settings surface; there is no default server. Secrets stay encrypted, and reads never show credentials. Changing an SMTP host, username, or provider asks you to re-enter the password so a stored secret cannot follow a new destination.

Public API

  • The public API now manages organization email servers at /v1/email-servers: list, create, inspect, update, delete, and send a connectivity test. Each server is an ems_… resource with a Resend or SMTP transport. Secrets are encrypted and never returned; disabled servers reject tests, and names must be unique among live servers. Updating SMTP to a different host or username requires a new password or explicitly clearing authentication — the previous password is never reused against a new destination.

CLI

  • Manage organization email servers with eigenpal email-servers: list and inspect ems_… servers, create or update Resend and SMTP providers (including an optional SMTP CA PEM), delete servers, and send a live test message with --to. Secrets are read from stdin, a file, or a secure prompt — never from command-line flags.

SDK

  • TypeScript and Python SDKs now manage organization email servers: list, create, inspect, update, delete, and send a connectivity test. Stored credentials are never returned.

Infrastructure & processing

  • Send Email delivers through the organization server selected on the step. There is no fallback: a missing, deleted, or disabled server fails the run. Evaluation runs skip delivery, including workflows invoked from an eval. Cancelling a run aborts an in-flight send. Multi-tenant SMTP servers must resolve to public addresses, while single-tenant deployments can use internal relays. Partial SMTP acceptance reports which recipients were delivered or rejected so operators can avoid duplicate reruns. SMTP may still deliver twice if a worker stops after the relay accepts the message; Resend deduplicates the same step attempt.

0.15.1 (2026-09-04)

Infrastructure & processing

  • OpenParser OCR capacity now recovers cleanly after failed updates, avoiding unnecessary warm resources while preserving active document processing.

0.15.0 (2026-09-04)

Platform (Studio)

  • Workflow validation now explains when a catalog model belongs in provider instead of the raw model override, and reruns preserve clean original filenames in generated outputs and citations.
  • Make document inputs uploaded in Studio datasets available to experiment runs, including examples saved by earlier releases.

Public API

  • Experiment result responses and JSON exports now include evaluator-specific structured details, so clients can identify the exact JSON path, expected value, and actual value behind a failed comparison. CSV exports retain their existing stable columns.

CLI

  • Experiment analysis is now built into the CLI for workflows and agents: summarize pass, fail, error, and score totals; filter failures by evaluator; inspect structured discrepancy paths; and compare actual outputs between batches. Run payloads can be projected with --select, and repository-level validation discovers nested workflow projects automatically. Polling commands also expose consistent wait limits and reject flag combinations that cannot produce a reliable verdict. Waiting commands now keep human output concise by default; pass --json whenever scripts need the terminal payload.
  • eigenpal docs now lists, searches, and reads the complete release-matched platform documentation offline, including detailed evaluator syntax, workflow step guides, CLI reference, and the OpenAPI contract.
  • CLI file uploads now send valid content types for Outlook and unknown files, cancellation confirms the asynchronous request clearly, and run comparisons show every repeated workflow step by branch and iteration path.

Infrastructure & processing

  • Make document inputs uploaded in Studio datasets available to experiment runs, including examples saved by earlier releases.
  • Exact-diff evaluators can exclude volatile fields with ignore: true, including nested fields inside a selected object or array. This keeps golden outputs readable while scoring only stable business data such as identities, names, and classifications.
  • Script steps now bind inputs by parameter name, so workflows behave consistently after storage even when JSON key order differs from the authored YAML.
View full release notes →

0.14.3 (2026-09-04)

Platform (Studio)

  • Model selection now includes the GPT 5.6 Sol, Terra, and Luna lineup plus Claude Fable 5, Fable 5.1, Opus 5, and Sonnet 5. Reasoning effort can be configured for supported workflow steps, agent training and runs, workflow-building chat, and LLM judges; existing choices keep their current provider defaults when the setting is omitted.

CLI

  • Workflow YAML can configure model-aware reasoning effort on AI steps and LLM judges. Omit the setting to preserve each model’s current default.

Infrastructure & processing

  • AI processing supports the latest GPT and Claude request formats, including reliable structured extraction with Claude Fable 5 and Fable 5.1. Workflow and agent execution can pass an optional model-aware reasoning effort while preserving previous defaults, and agent sandboxes can use GPT 5.6, Claude Fable 5, Fable 5.1, Opus 5, and Sonnet 5.

0.14.2 (2026-09-02)

Infrastructure & processing

  • Single-node deployments can now upgrade installations with large legacy datasets without startup failures or loss of trigger configuration.

0.14.1 (2026-09-02)

Infrastructure & processing

  • Single-node deployments can now upgrade installations with legacy run review data without startup failures.

0.14.0 (2026-09-02)

This release gives document teams more control over structured-data quality. Exact-diff evaluators can express field-specific matching rules, PDF parsing can preserve visual layout, and spreadsheet conversion can retain the rows, columns, and displayed values that matter to downstream workflows. CLI authoring guidance makes these capabilities easier to discover and safer to automate, with non-interactive commands failing clearly instead of waiting on unavailable prompts.

Platform (Studio)

  • ai.parse adds outputFormat: layout for native PDF extraction. It returns fixed-width plain text that preserves columns, spacing, and line breaks for multi-column forms and tables that lose meaning when flattened. This PDF-only format must be selected explicitly with parseMode: native or parseMode: native-or-ocr: native mode fails closed if layout extraction cannot complete, while hybrid mode keeps accepted layout pages and substitutes OCR markdown only for suspect or empty pages. Existing formats and defaults are unchanged.
  • Spreadsheet to JSON now handles .xls and .xlsx workbooks with configurable headerless input or an explicit header row, named or positional column projection, rectangular ranges, and raw or displayed cell values. Displayed values preserve formatted text such as dates, leading zeros, punctuation, diacritics, and embedded newlines. Blank-cell and blank-row policies make sparse sheets predictable, while optional sheet metadata and diagnostics explain the selected range and non-fatal issues. Existing zero-config output remains rows, plus fileId when CSV output is enabled; zero-config CSV keeps the full selected sheet, and configured CSV follows the same projection. File, row, column, and cell limits reject unsafe workloads before conversion.
  • Exact-diff evaluators add composable per-field rules for extraction outputs. Choose ordered or unordered comparison independently from items: at-least | at-most | exactly, set numeric tolerances, and reject unexpected object fields where strict output shapes matter. Ordered arrays retain prefix-compatible matching, while unordered arrays find the best one-to-one structural pairing instead of depending on row order. Unordered object arrays can also use typed matchBy identities such as sku or [country, sku] for predictable single- or composite-key matching. Studio now provides a rule editor with path-aware validation. Grounding metadata is excluded from scoring, oversized comparison workloads fail safely with bounded diagnostics, and existing evaluator configurations keep their historical behavior.

Public API

  • Template creation now accepts reusable file references correctly, restoring CLI template uploads and workflow pushes that use local DOCX or XLSX files.

CLI

View full release notes →

0.13.2 (2026-09-01)

CLI

  • CLI installation no longer downloads packages already included in its self-contained executable, reducing install overhead and improving compatibility with restricted enterprise networks.

0.13.1 (2026-08-31)

Platform (Studio)

  • Workflows can turn JSON rows into a downloadable Excel workbook with a new JSON to XLSX step. Pick ordered columns, map an array of objects, and get a .xlsx run output — including multi-sheet workbooks — without filling a template.
  • Studio now uses the shared theme provider, so system / light / dark stays aligned with OpenParser instead of drifting independently.
  • Publishing a workflow that still has a local template: ./file.xlsx path now fails with a clear error. Use eigenpal workflow push to upload the file, or set templateId to a tmpl_… id first.
  • Studio template uploads and replacements now create immutable, checksum-backed revisions and discover tokens consistently across DOCX and XLSX files. Deleting a logical template preserves revision content used by pinned workflows.
  • Fill Template (transform.template) now documents workspace tmpl_... templates separately from Git agent templates, and Studio copy covers DOCX and XLSX. XLSX files use \{placeholder} and \{table:array.prop} in the spreadsheet; \{\{placeholder}} in an uploaded sheet warns on upload and fails at fill instead of leaving leftover braces. templateId must be a workspace tmpl_... ID, not a file ID. Filled values that look like formulas stay text; formulas already in the template stay formulas.
  • Studio now blocks crafted HTML from retaining executable content during sanitization.

Public API

  • Workflow push can fully remove a template it uploaded if publishing then fails. Deleting a template that workflows already pin still keeps those revisions runnable.
  • The public API now lists the text, vision, and OCR models configured for your environment. GET /v1/models is a cheap catalog inventory for the current tenant: it reports whether each model is configured and which capability it is the default for, without probing live providers or exposing secrets.
  • The public API now supports the full lifecycle for tenant-scoped DOCX and XLSX templates: upload, inspect, list, download, replace, and delete, with direct-upload support for larger files. Every replacement creates a checksum-backed immutable revision; deleting the logical tmpl_… resource preserves revisions already pinned by workflows.

CLI

  • workflow versions create --file now resolves local template: paths the same way as workflow push, and workflow templates smoke --data help documents the JSON fixture file path.
  • eigenpal workflow push keeps local Office templates inside the workflow project, including when a path uses ../ or a symlink. Files outside that directory need --allow-external-templates. Push validates the workflow and version before uploading, creates new template resources instead of moving shared tmpl_… pointers, and fully removes those unpublished uploads if publish does not succeed.
  • When resolving a workflow by wf_… id, connection failures, auth errors, and server outages now surface their normal CLI messages instead of being misreported as “workflow not found.”
View full release notes →

0.13.0 (2026-08-25)

Platform (Studio)

  • API reference for listing dataset examples now documents include=metadata, so you can page through example ids, names, and file refs without loading every payload.
  • Local Studio development no longer keeps a growing on-disk compiler cache that can exhaust memory during long bun dev sessions.
  • Studio’s sidebar theme picker now supports keyboard navigation across system, light, and dark.
  • Studio dashboard sessions continue to authenticate /api/v1 calls. Token-based /api/v1 and /v1 requests still work without a browser login, and the dedicated API hostname keeps its public routing and CORS behavior.
  • Studio save-as-release still publishes a tagged version as the live workflow. Publishing from an existing snapshot creates a new tagged release instead of rewriting the original tag, so earlier releases stay intact. Connect API docs version pickers follow the public version list, so after restore the current untagged version shows as latest while tagged releases stay selectable.

Public API

  • List dataset examples without pulling every payload. GET /api/v1/automations/:id/examples now accepts include=metadata, which returns ids, names, annotations, and expected file refs while leaving input and expected JSON unloaded. Keep the default include=full when you still need the complete example bodies.
  • You can now create, promote, and restore workflow versions through the public API. Create a tagged candidate with activate: false to test it without changing live traffic, then promote that exact version after it qualifies. You can also publish from YAML, copy an existing version into a new release without changing its original tag, or restore an earlier snapshot. Name-conflict errors include conflictingWorkflowId so you can see which workflow already owns the name.

CLI

  • eigenpal workflow versions can now create, promote, and restore YAML workflow versions through the public API. Tag a candidate from a YAML file or an existing snapshot with an explicit semver, keep it off live traffic with --no-activate, then promote that exact version when it qualifies. Restoring still rolls a workflow back by copying a snapshot into a new current version — lists now show that untagged HEAD clearly instead of hiding it. workflow versions list --limit and --offset page that full public list locally. --json prints the sliced \{ data, total, limit, offset } envelope (total is the unsliced count), not the raw server payload.

SDK

  • TypeScript and Python SDKs can list dataset examples with include: "metadata". That returns ids, names, annotations, and expected file refs without loading each example’s input and expected JSON. The default remains a full payload, so existing list calls stay unchanged.
View full release notes →

0.12.2 (2026-08-21)

Platform (Studio)

  • Document editing: the DOCX editor used for templates, run file review, and Office file previews now follows your light or dark theme, and Save (including Cmd/Ctrl+S) writes back to the document you opened instead of downloading a copy. Documents that fail to open now report the reason instead of showing an empty editor. Placeholder highlighting in DOCX templates is temporarily unavailable.
  • Connect: a workflow that wraps another workflow now documents the full response shape. Its OpenAPI spec, Swagger UI preview, and the response examples and generated types on the Connect page show the nested objects and arrays returned by the workflow it calls, instead of leaving those fields untyped.

0.12.1 (2026-08-19)

Platform (Studio)

  • Connect: download an OpenAPI spec (swagger.json) and preview it in Swagger UI directly from the Connect page. Selecting a workflow or agent produces a spec for just that automation: the five endpoints needed to integrate it (start a run, poll it, cancel it, list and download artifacts), with the request body documenting its exact input fields and file uploads and run responses typed with its actual output schema. With no selection you get the full platform API spec. Swagger UI is bundled with the product, so the preview also works in on-prem installs without internet access.

0.12.0 (2026-08-18)

Platform (Studio)

  • The workflow builder chat honors the new disableTemperature: true model configuration option, so models that reject a sampling temperature work from the first request.
  • Object-typed workflow inputs can now declare a nested schema. In the workflow builder, choosing the Object type (or an array of objects) opens a property editor where you define each field with its type, description, allowed enum values, and required flag, including nested objects and arrays up to five levels deep. Declared fields are enforced when a run starts: missing required fields and type mismatches are rejected with precise field paths. Downstream steps get full autocomplete and type resolution for nested references such as \{\{ input.metadata.vendor.name }}, and the declared shape appears in the scope browser and in generated API documentation. The builder flags expressions that reference undeclared nested fields, the run form and evaluation input editor pre-fill the declared required fields, and the AI expression generator sees the nested shape when suggesting expressions. The headless execution server now enforces declared inputs with the same validator, so its API documentation and runtime behavior agree.
  • Grounded OpenParser extraction results can now carry complete field lineage through the Eigenpal web runtime, preserving source evidence and confidence metadata for downstream review experiences.

Public API

  • Object-typed workflow inputs can now declare a nested schema. In the workflow builder, choosing the Object type (or an array of objects) opens a property editor where you define each field with its type, description, allowed enum values, and required flag, including nested objects and arrays up to five levels deep. Declared fields are enforced when a run starts: missing required fields and type mismatches are rejected with precise field paths. Downstream steps get full autocomplete and type resolution for nested references such as \{\{ input.metadata.vendor.name }}, and the declared shape appears in the scope browser and in generated API documentation. The builder flags expressions that reference undeclared nested fields, the run form and evaluation input editor pre-fill the declared required fields, and the AI expression generator sees the nested shape when suggesting expressions. The headless execution server now enforces declared inputs with the same validator, so its API documentation and runtime behavior agree.
  • Listing runs with sinceLastClosed=true works again. Once a review had been closed, asking for the runs recorded since then returned an error instead of the runs, so review tooling that polls for new work had no way to ask “what has arrived since I last signed off”. The filter now returns those runs.

Infrastructure & processing

  • Model entries in the deployment configuration can now set disableTemperature: true. Workflow steps then never send a sampling temperature to that model, which lets reasoning models (and gateways in front of them) that reject the parameter run without a first-call retry.
  • Object-typed workflow inputs can now declare a nested schema. In the workflow builder, choosing the Object type (or an array of objects) opens a property editor where you define each field with its type, description, allowed enum values, and required flag, including nested objects and arrays up to five levels deep. Declared fields are enforced when a run starts: missing required fields and type mismatches are rejected with precise field paths. Downstream steps get full autocomplete and type resolution for nested references such as \{\{ input.metadata.vendor.name }}, and the declared shape appears in the scope browser and in generated API documentation. The builder flags expressions that reference undeclared nested fields, the run form and evaluation input editor pre-fill the declared required fields, and the AI expression generator sees the nested shape when suggesting expressions. The headless execution server now enforces declared inputs with the same validator, so its API documentation and runtime behavior agree.

0.11.3 (2026-08-13)

Platform (Studio)

  • API reference pages for starting and reading runs now show complete examples, including output and execution.status.

Public API

  • Run API: completed-run examples now include type, execution.status, output, files, and error, instead of a shared async/completed union that dropped those fields. Default GET and list responses populate execution.retry.nextRun when a retry exists, and expand=execution keeps schemaValid instead of clearing it. Child invoke-workflow runs document parentExecutionId and childExecutions.

SDK

  • Generated run types now distinguish a completed run from the async accepted envelope (RunAccepted), and include parentExecutionId for child invoke-workflow runs.

0.11.2 (2026-08-07)

  • Internal improvements.

0.11.1 (2026-08-07)

Platform (Studio)

  • Document and image processing now runs on updated imaging components that carry upstream security fixes.

Infrastructure & processing

  • Document and image processing now runs on updated imaging components that carry upstream security fixes.

0.11.0 (2026-08-06)

Platform (Studio)

  • Workflow builder chat now works with reasoning models served through a self-hosted openai-compatible gateway, instead of failing with a “temperature is not supported” error. On models that only accept their own default temperature setting, replies can vary between attempts on the same question.
  • Canonical API hostnames now consistently expose only supported API and operational routes, returning a clear 404 for unsupported discovery paths.
  • Agent Builder attachments now negotiate multipart or storage-direct transfer, so large PDFs and archives can reach the active sandbox without crossing cloud payload limits. Large downloads use the same secure dual path. Self-hosted operators can set deployment.multipartMaxBytes in eigenpal.config.yaml; the supplied on-prem deployments keep files on multipart and streamed downloads by default.
  • Canonical API hostnames now serve API routes and discovery endpoints reliably without Studio sign-in handling intercepting requests.

Public API

  • Upload and download reusable files up to 100 MiB through one negotiated API: files within the deployment body limit use multipart, while larger cloud transfers use verified storage-direct uploads and short-lived authenticated download links. Retry-safe temporary run and Builder files expire after 24 hours. Existing multipart routes and studio.eigenpal.com/api/v1 remain compatible, and new integrations can use api.eigenpal.com/v1.

CLI

  • The CLI now uses api.eigenpal.com as the default cloud API origin and automatically pre-uploads run files that exceed the multipart request limit. Self-hosted users can keep custom API origins and set EIGENPAL_MULTIPART_MAX_BYTES to their proxy limit, or none to keep all files on multipart.

SDK

  • The TypeScript and Python SDKs now transparently upload large run inputs without crossing cloud request limits, follow secure storage-direct downloads, and default cloud calls to api.eigenpal.com. Set multipartMaxBytes / multipart_max_bytes, or EIGENPAL_MULTIPART_MAX_BYTES, to match a self-hosted proxy; use null / None to keep every run file on multipart. Explicit files.upload files remain reusable until deleted.
  • TypeScript file uploads now follow the server-negotiated multipart endpoint, improving compatibility across hosted and self-managed route layouts.
View full release notes →

0.10.56 (2026-08-05)

Platform (Studio)

  • Agent Builder training chat now shows Pierre file diffs for edit/write, a Pierre syntax-highlighted file view for Read file, secure request-secret password cards (encrypted into the draft; the agent only sees configured/skipped), and a quiet timeline note when you release an agent version from the dashboard.

Infrastructure & processing

  • Production releases that do not change document processing finish faster by reusing verified OCR provider checks from the last successful release, while still re-checking providers when processing code or infrastructure changes.

0.10.55 (2026-08-05)

Platform (Studio)

  • Agent Builder now resumes your latest draft, clearly distinguishes unsaved edits from saved changes that are not live, and provides direct Save and Release actions. Releases show the current and next version and let you choose a patch, minor, or major update. Dashboard save and release actions remain available to the builder as private context, so it can accurately answer what is live without guessing. Starting a separate draft is explicit, attachments remain available when beginning a conversation, stopped sandboxes can be restarted without losing the draft, and test runs reliably receive JSON-only inputs.

Public API

  • Agent Builder releases now complete live automation synchronization reliably, so a successful release is immediately available without a separate recovery step.

Infrastructure & processing

  • OCR and LLM model catalogs keep loading when the service adds new optional fields, so Studio and Eigenpal no longer fall back to stale model lists during catalog updates.
  • Cloud document processing providers that are already available stay online during routine production updates when their identity is unchanged. New or changed providers stay unavailable until they pass live verification, so customers keep working providers instead of a full outage window.

0.10.54 (2026-08-04)

Platform (Studio)

  • Workflow Studio now shows each OpenParser OCR model with its actual provider logo, keeps narrow step configuration panels contained, and places settings, theme, and sidebar controls together in a cleaner navigation footer.

0.10.53 (2026-08-04)

Platform (Studio)

  • OpenParser Studio now visualizes the openparser@1 document graph directly, including typed elements, figures, tables, relationships, and element-level extraction citations.

Public API

  • OpenParser parse responses now return the unified openparser@1 document graph, with plain text, canonical Markdown, pages, typed elements, relations, annotations, assets, geometry, confidence, and provider provenance in one predictable contract.

0.10.52 (2026-08-04)

Platform (Studio)

  • Agent Builder: improve connection recovery so interrupted sessions resume reliably, stale environments are replaced safely, and approval prompts remain retryable when delivery fails.

0.10.51 (2026-08-03)

  • Internal improvements.

0.10.50 (2026-08-03)

Platform (Studio)

  • OpenParser Studio: pipeline creation no longer reports a duplicate-name error after a successful save, and edits now save reliably from the browser.

0.10.49 (2026-08-03)

  • Internal improvements.

0.10.48 (2026-07-30)

Platform (Studio)

  • OpenParser Studio now displays canonical OpenParser JSON with readable indentation, including large document results.

0.10.47 (2026-07-30)

Platform (Studio)

  • OpenParser Studio now keeps large document results responsive, renders OCR markdown with clearer structure, and provides consistent copy and download actions for Markdown and JSON output. Documentation links now reliably open the generated API reference.

Infrastructure & processing

  • OpenParser jobs now recover more safely when document processing capacity becomes unavailable. Retryable failures pause new dispatches, retry without duplicate charges, and bound large-document processing so one document cannot overwhelm the service.

0.10.46 (2026-07-30)

Platform (Studio)

  • Team settings: bring back the invitation link. Creating an invitation now shows its link straight away whenever no invitation email was delivered, and administrators can pull up the link again at any time from the invitations table. This unblocks onboarding on deployments without email delivery, where handing over the link is the only way to get someone into the workspace.
  • Run details: field grounding now labels flagged fields by what the extraction actually reports, showing “3 with low confidence” instead of “3 to review”. The count is a confidence signal, not an assigned task.

0.10.45 (2026-07-29)

Platform (Studio)

  • Parse Document setup now clearly separates OCR from Vision AI, automatically offers available OpenParser OCR models, shows each model’s per-page price, displays only the controls that affect the selected method, and surfaces structured layout data with tables, figures, polygons, and bounding boxes for downstream workflow steps.

CLI

  • The workflow authoring reference now covers explicit OCR and Vision AI parse modes, optional figure-caption models, and structured layout output.

Infrastructure & processing

  • Document parsing now defaults to higher-fidelity OCR, preserves canonical structured layout alongside Markdown, and automatically supports available OCR models with provider-specific per-page pricing. Other OCR providers retain their existing rates.

0.10.44 (2026-07-28)

  • Internal improvements.

0.10.43 (2026-07-27)

  • Internal improvements.

0.10.42 (2026-07-27)

  • Internal improvements.

0.10.41 (2026-07-27)

Platform (Studio)

  • Run traces now show each attempt of an AI request. A request that timed out and was retried used to appear as a single long bar, so a step that spent three timeouts on one page looked identical to one slow call. The raw trace now has one bar per try, labelled with the try number, and the run timeline marks a retried call with how many times it was sent. Retried requests also record how long they waited for a free slot, which distinguishes a slow model from a queue backed up behind its own in-flight requests. For documents parsed page by page, each split retry records the pages it covered and how deep the split went.
  • Runs and Experiments improvements: - An experiment run now shows the same input and output panels as the main run view, including input file downloads, per-step output files, and inline field-level output review. - Scored runs show their eval score in the runs list and in the run header, so an experiment’s results can be compared without opening each run. - A run that came from an experiment or a dataset example now links straight to that run in the Evals view. - The Live and Experiments toggles on Runs are remembered between visits. - Field grounding: a wide document no longer overflows the panel. Wide tables and long unbroken text scroll inside the document card.

0.10.40 (2026-07-25)

Infrastructure & processing

  • Processing reliability on busy deployments: health checks are now served independently of document processing, so the service stays responsive to them even while working through a heavy document. It is no longer restarted mid-run just because it is under load, so long-running document runs complete more reliably.
  • Document processing is more resilient on CPU- and memory-constrained deployments. Page rasterization for vision and OCR now runs in isolation, so a single large or malformed document can no longer stall the processing service or cause it to restart mid-run. Runs on big scanned documents that previously failed partway through with “the worker stopped before this attempt recorded a terminal result” now complete reliably.

0.10.39 (2026-07-25)

Platform (Studio)

  • Label Pages runs: the page preview now shows the classified document in the full viewer instead of small thumbnails. PDFs render page-by-page with zoom and navigation and each page’s labels shown beside it; Word and other Office documents open in their own preview next to a per-page label list. Filter by a label to focus on just the pages that carry it.

0.10.38 (2026-07-24)

Platform (Studio)

  • OpenParser Studio: manage extraction pipelines from a dedicated workspace — create, edit, run, duplicate, and delete saved configurations. Jobs show the pipeline and version that produced each result, and you can save a new pipeline from job settings.
  • OpenParser Studio: clearer progress while documents upload, parse, and extract, with live elapsed timing at each stage. Job history and the playground share a unified header with breadcrumbs, improved document and Markdown output viewers, and a cleaner parse sidebar. Choose light or dark theme and manage your account from the sidebar; model selectors and in-product copy are simpler throughout the workspace.
  • Members provisioned through SSO are now read-only in workspace member settings. Their role and access come from your identity provider’s groups, so admins can no longer change or remove them by hand, and each SSO member is clearly labeled. Accounts created with a username and password stay fully manageable by admins.

Public API

  • Breaking: OpenParser API resource identifiers now use consistent prefixed ids. Parse, extract, and batch jobs return opj_… ids instead of UUIDs. Saved extraction pipelines use oppl_… instead of oep_…. New parse output writes figure image ids as opfig_… instead of ocrfig_…. Existing jobs and pipelines are remapped automatically on upgrade when the OCR queue is idle enough for migration preflight. Prefer the new formats in job URLs, parse_job_id, pipeline_id, and batch child job_id fields. During the transition, previously issued UUID job ids, oep_… pipeline ids, and UUID list cursors remain readable; responses continue to return the preferred opj_… / oppl_… forms. Historical parse artifacts and result_json may still embed legacy ocrfig_… figure paths; GET /files/\{id} accepts both opfig_… and ocrfig_….

Infrastructure & processing

  • Hardened AI-powered document processing against prompt-injection attempts hidden inside uploaded documents. Instructions embedded in a document can no longer steer extraction, classification, or vision results away from the requested schema, or coax the model into disclosing its own configuration.
  • AI vision step results no longer include internal document storage references in their metadata. The step’s _vision provenance now records only which pages were inspected and how many were merged, keeping internal storage paths out of workflow output.

0.10.37 (2026-07-24)

Platform (Studio)

  • New Label Pages step tags each page of a document with zero or more labels (multi-label) using AI, and groups the results into a label-to-pages map. Unlike section splitting — which produces one contiguous range per section — this collects pages of the same kind wherever they appear, so scattered pages (for example every signature or photo page throughout a report) can be gathered in one place. The page-inspection step can now take an explicit list of page indices, so you can route the pages for a given label straight into a visual inspection without hand-listing them.

0.10.36 (2026-07-23)

Platform (Studio)

  • OpenParser Job History now reports the real end-to-end duration for completed parse and extraction jobs instead of showing a zero or unavailable measurement.
  • Running OpenParser jobs now show the document scanning animation from the playground while results are being prepared.
  • Parse and Extract now use consistent operation icons across OpenParser Studio and documentation.

0.10.35 (2026-07-23)

Platform (Studio)

  • OpenParser sign-in and account creation now redirect directly to the branded authentication flow without an intermediate confirmation page.
  • OpenParser parse jobs now retain both raw and openparser@1 results. Retrieve either representation with GET /jobs/\{id}/result?format=..., switch formats in the Studio Output tab, and start extraction from a raw-format parse job without running OCR again.

Public API

  • OpenParser parse jobs now retain both raw and openparser@1 results. Retrieve either representation with GET /jobs/\{id}/result?format=..., switch formats in the Studio Output tab, and start extraction from a raw-format parse job without running OCR again.
  • OpenParser now keeps recognized text aligned with its original bounding box by default. Set ocr_options.merge_layout_blocks to true per parse, extraction, batch item, or saved pipeline when merged recognition is preferred over one-to-one text geometry.

0.10.34 (2026-07-23)

Platform (Studio)

  • OpenParser sign-in and account creation now keep OpenParser branding throughout the authentication experience.
  • OpenParser Studio: uploads and sample documents now open their Job History detail immediately, so browser back and forward navigation follows each run naturally while extraction and result review stay in one place.
  • Run detail now shows clean, readable file names for inputs and outputs instead of internal storage identifiers, and long file names no longer overlap the preview and download buttons.

Public API

  • OpenParser parsing now preserves every detected layout region—including empty title, header, and figure boxes—so document overlays remain complete. The obsolete figure_assets option is removed because figure regions are now always retained.
  • OpenParser can now process documents beyond 25 pages and admit batches of up to 100 documents, while retaining per-page safety limits.
  • OpenParser jobs can now stream their retained source documents with GET /jobs/\{id}/source, making it easier to build durable review experiences around past runs.
  • POST /suggest-schema now returns the suggested schema inline as a convenience response instead of creating a job that clients must poll.

Infrastructure & processing

  • Documents uploaded without a declared file type are now recognized from their contents, so PDFs, RTF, and Office files parse reliably instead of failing with an “unsupported file type” error. This most often helped uploads coming from automated integrations that omit the file type.

0.10.33 (2026-07-22)

Platform (Studio)

  • OpenParser Studio: make Playground the home page, add shareable social previews, clarify job status and pipeline empty states, and tidy the OCR model selector copy.

Public API

  • OpenParser suggested extraction model catalog (GET /models/llm in suggested mode) now surfaces up to 20 recommended models instead of 12, so more current options appear before you need to search.

0.10.32 (2026-07-22)

  • Internal improvements.

0.10.31 (2026-07-22)

Platform (Studio)

  • OpenParser Studio production sign-in no longer auto-redirects to Eigenpal when you are signed out. Choose Continue to sign in on the local OpenParser page to authenticate with your Eigenpal account; sign-out stays on OpenParser.

0.10.30 (2026-07-22)

Platform (Studio)

  • OpenParser production sign-in now shares Eigenpal sessions across its dedicated domain and returns users to their original OpenParser destination after authentication.
  • OpenParser Playground: remove the doubled border and rounded corners around the document workspace.

Infrastructure & processing

  • OpenParser: restore schema suggestions, use GPT-5.6 Terra as the default extraction model with GPT-4.1 Mini as a certified fallback, tighten compatibility checks, and provide clearer failure guidance.

0.10.29 (2026-07-22)

Platform (Studio)

  • OpenParser Studio sign-in and sign-up now load the shared identity UI correctly for signed-out visitors.

0.10.28 (2026-07-22)

Platform (Studio)

  • API keys: keep usable credentials in the primary list and move revoked or expired credentials into a collapsed history section for faster scanning.
  • OpenParser Studio sign-in and sign-up now show OpenParser product copy and logo while retaining the shared Eigenpal identity.

Public API

  • OpenParser model discovery (GET /models/llm) now refreshes the live compatible catalog on the API service instead of falling back to a short emergency list when the catalog credential is missing from that process.

Infrastructure & processing

  • OpenParser document processing now bounds source downloads and retries transient storage failures, preventing stalled jobs from running indefinitely.

0.10.27 (2026-07-21)

Platform (Studio)

  • New Inspect Pages (Vision) step lets a workflow look at the actual page images of a document and return structured results, for details that only exist in the pixels rather than the text. Use it to check whether a document is signed, rate embedded photos, or spot stamps and logos. It works on PDFs, images, and Office documents, and you can point it at a specific page range (for example the section found by a Split step) so it only reviews the pages that matter. The run trace shows the pages it inspected next to the results.
  • Parsing can now describe the figures on a page as text. Enable “describe figures” on a Parse step and the images on each page (property photos, charts, stamps) are detected and captioned inline, so later steps that work on text, like Split, can find image-only pages. This is especially useful for scanned documents, where the photo pages carry almost no text on their own. You can provide custom instructions for how figures should be described.
  • Split step results are now also available keyed by section name. A later step can point at one section directly, for example \{\{ steps.split.output.sections.photos.page_range }}, instead of filtering the full list. This makes wiring a Split step into a downstream step much simpler.
  • The Inspect Pages (Vision) step now takes a Page From / Page To range instead of a single page-range expression, and both are optional. Leave them blank to inspect the whole document, which is processed in chunks and the results merged automatically. This makes it much easier to point the step at a range (for example the start and end of a Split section) or to scan an entire document without writing a range expression.

0.10.26 (2026-07-21)

Platform (Studio)

  • Wildcard API keys can use the OpenParser OCR API consistently with every other platform capability. Keys can also be restricted to the dedicated ocr:full scope when OCR-only access is preferred.
  • Run traces now include a Grounding panel for extract steps: every extracted value is highlighted in the input text, tinted by confidence, and clicking a field or a highlight jumps between them. Grounded fields also show inline context previews of the exact source passage, both in the panel and in the expanded step row. Split steps gain the same visual page-range panel the segmenter uses, with page thumbnails and per-section preview. The workflow builder reflects that grounding is on by default and lets you pick any configured provider as the grounding model, and capturing expected output from a run no longer snapshots volatile grounding metadata into evals.

Public API

  • Wildcard API keys can use the OpenParser OCR API consistently with every other platform capability. Keys can also be restricted to the dedicated ocr:full scope when OCR-only access is preferred.
  • OpenParser: completed extraction jobs can now be retrieved reliably with their attempt and usage metadata.

CLI

  • The step catalog now documents grounded extraction as the default: extract steps ship per-field confidence and source spans under the _grounding output key unless grounded: false is set.

Infrastructure & processing

  • Data extraction now verifies itself by default. Every extract step traces each extracted field back to its exact location in the source text and attaches a confidence level (high, medium, or low) plus a needs-review flag under a reserved _grounding output key, so downstream steps and evaluators can route uncertain values to a human. The verification pass runs on your workspace model (any configured provider), chunks long documents automatically, and falls back to deterministic text matching instead of failing the run when no model is available. Set grounded: false on a step to opt out.

0.10.25 (2026-07-20)

Platform (Studio)

  • Failed single sign-on attempts now return to the sign-in page with a clear, actionable message (for example, when an account’s email domain isn’t authorized or the account hasn’t been granted access) instead of a blank error page.

0.10.24 (2026-07-15)

Platform (Studio)

  • Agent runs graded by configured evaluators now record a weighted score and pass/fail result, visible in the runs feed and run detail responses. Previously only workflow runs carried an evaluator verdict.
  • Email addresses for a workflow are unique across your whole organization, not just the workflow you are editing. Picking one that is already taken used to fail with a server error. It now tells you which workflow already receives email at that address, or that the workflow you are editing already has it, so you know what to do next. Duplicate folder names and duplicate workspace invites also report clearly instead of failing.
  • ai.extract with grounded: true no longer succeeds silently without producing grounding. When the grounding pass cannot run (missing OpenAI credentials on the worker, or a grounding model that is not an OpenAI model) the step now fails with an error that names the exact misconfiguration. When the pass runs but produces no field grounding, the output carries an explicit degraded marker instead of nothing. The grounding model picker in the workflow builder now only offers OpenAI models, matching what the grounding pass supports.
  • Agent training: when a training session fails to open, the dashboard now shows what went wrong instead of a generic error. The message names the setup step that failed, and a session blocked by secrets that cannot be decrypted says so and points at the agent settings. A session whose setup fails partway through no longer opens on an incomplete workspace.
  • Self-hosted deployments can now sign users in through corporate single sign-on services that use a redirect-and-token flow instead of OIDC. The new protocol supports mutual TLS for the server-to-server exchange, maps directory groups to EigenPal roles (admin, member, viewer) on every SSO sign-in so the directory stays the source of truth, and links existing password accounts by email so nobody loses access when SSO is turned on. Startup validation rejects unsafe callback origins and provider identifiers, while malformed or oversized identity responses fail closed.

Public API

  • Syncing an automation immediately after a release no longer fails with HTTP 500 while the new release tag propagates. The sync endpoint now reports a retryable status with a clear message when the Git source is momentarily unavailable.
  • Fixed single-experiment results export returning HTTP 400 whenever the includeTrace query flag was omitted. workflow experiment results and the auto-pull at the end of workflow experiment watch now download per-evaluator results in JSON and CSV again.
  • Creating an email trigger address that is already in use now returns 409 with a message naming the workflow in your organization that already uses it, instead of 500.

CLI

  • Agent example runs now report a real evaluator verdict in the CLI: eigenpal run agents.<name> --example <name> --wait waits for the verdict, prints the weighted score and pass/fail result, and --fail-on-mismatch exits non-zero when the run fails its evaluators, matching the existing workflow behavior. When no evaluators are configured, the CLI says so instead of silently reporting nothing.
  • agents secrets is now one command group with list, set, unset, import, and export subcommands (agents secret remains as an alias). The new agents secrets list shows the secret names and descriptions declared in the package without ever printing values. Previously set and unset lived under a separate singular command and secrets list failed with an argument error.
  • agents sync retries automatically with a short backoff when the server reports the Git source as temporarily unavailable, so the sync right after agents release succeeds without manual retries.
  • agents dataset validate now checks the same layout the server accepts on agents dataset push: example folders under examples/, file inputs referenced from input.json with \{ "$file": "input/..." }, and expected.json optional. Previously the local validator demanded a different layout that push would then reject, so no dataset could satisfy both. Validation errors now point at the exact rule that failed, including a hint when example folders sit at the dataset root instead of under examples/. When the agent package carries an input schema, each example’s full input object is validated against it (required fields, unknown keys, and value types, with \{ "$file": ... } references accepted for file fields), so inputs that would fail at run start are caught locally. Failure-expected examples (expected.json with $error) are rejected for agent datasets, since agent runs are evaluated only when they complete.
View full release notes →

0.10.23 (2026-07-15)

  • Internal improvements.

0.10.22 (2026-07-14)

Platform (Studio)

  • Organization members can now configure, test, and manage outbound webhooks from Studio.

0.10.21 (2026-07-14)

Platform (Studio)

  • Webhooks: notify external systems when workflow or agent runs are created or change status, with signed delivery, custom headers, retry history, testing, and manual redelivery from Studio.
  • Webhook signing secrets are now easier to copy securely from endpoint setup and details, with clearer event selection defaults.
  • Webhook setup now keeps failed submissions actionable with clear inline error feedback.

Public API

  • Run creation and rerun requests now publish signed lifecycle webhooks only after inputs are ready, so API-triggered automations never emit events for runs that fail during setup.

Infrastructure & processing

  • Improved staging worker deployment reliability when compute capacity is fully allocated.

0.10.20 (2026-07-12)

Platform (Studio)

  • Workflows: configure automatic retries from Studio at the workflow level or override them for individual HTTP GET/HEAD and Website Reader steps.

CLI

  • The bundled workflow reference now documents durable retry policies, inheritance, supported step types, and retry safety limits.

Infrastructure & processing

  • Workflow runs can recover replay-safe network steps from transient failures without restarting completed work, using bounded backoff and durable retry state. Retry behavior is now step-scoped. Legacy whole-run retry settings no longer restart a failed workflow; configure durable retries on eligible steps or through the workflow retry default instead.

0.10.19 (2026-07-09)

Platform (Studio)

  • Workflow composition is unified on action.invoke-workflow: use execution: inline (default) to run a target workflow’s steps inside the parent run, or execution: child for a separate child run. Reusable blocks (control.block, kind: block) are removed — migrate to inline invoke with workflow: <name-or-id>.

Public API

  • Workflow run endpoints now preserve inline invoke snapshots across initial runs, reruns, and dataset executions so composed workflows remain reproducible after target workflows change.

CLI

  • Workflow YAML reference docs now describe action.invoke-workflow as the single composition primitive, including inline and child execution modes.

0.10.18 (2026-07-08)

Infrastructure & processing

  • On-prem deployments: improve OpenShift compatibility so migration and processing jobs can start reliably under random-user security policies.

0.10.17 (2026-07-08)

Platform (Studio)

  • Document parser: vision parsing can now render PDF pages at higher resolution and image quality for documents where small text or compression artifacts hurt OCR accuracy.

Infrastructure & processing

  • Document parser: vision parsing can now render PDF pages at higher resolution and image quality for documents where small text or compression artifacts hurt OCR accuracy.

0.10.16 (2026-07-07)

Platform (Studio)

  • Workflow experiment results now preserve evaluator error details alongside each per-evaluator score, so example grading views and tools can distinguish failed judges from unknown results instead of treating them as passing.

CLI

  • eigenpal run <workflow> --example <name> now actually grades the example instead of printing PASS whenever the run merely finished. It runs the workflow’s current published version on the server’s stored dataset example, so configured evaluators run automatically and the CLI surfaces the real weighted score and per-evaluator pass/fail. Workflows with no evaluators fall back to a structural diff of the output against the example’s stored expected output. The summary reports two separate signals: execution health (ok/errored) and accuracy. Add --fail-on-mismatch to exit non-zero when a graded example fails. Because the run uses the server-side example, push your latest dataset and evaluators (eigenpal workflow dataset push, eigenpal workflow evaluators push) before running --example.

0.10.15 (2026-07-06)

Platform (Studio)

  • Experiments: make result review easier in Studio with trace exports, clickable score bars, calmer live refreshes, developer-view defaults, and clearer separation between below-threshold results and run errors.

Public API

  • Experiment export endpoints now support JSON exports with full run trace details for deeper debugging and audit review.

SDK

  • SDK clients now expose the trace-inclusive experiment export option for deeper debugging and audit review.

0.10.14 (2026-07-06)

Platform (Studio)

  • Evaluations: expected workflow failures now report cleaner scores when a run is supposed to stop early. Studio marks non-applicable quality judges as skipped, so successful rejection examples can receive a full score from the structured failure checks that actually apply.

0.10.13 (2026-07-06)

  • Internal improvements.

0.10.12 (2026-07-06)

  • Internal improvements.

0.10.11 (2026-07-03)

  • Internal improvements.

0.10.10 (2026-07-03)

  • Internal improvements.

0.10.9 (2026-07-02)

Platform (Studio)

  • Build document-processing workflows that split, route, and verify a mixed batch: - Document separation detects the boundaries and types of the documents inside one large scan, so a single upload can be broken into its individual documents and each sent to its own extraction pipeline — even for batches hundreds of pages long. - Multi-way routing sends each detected document to the right branch by its type, and stays readable on the canvas even with many branches. - Grounded extraction attaches a confidence level and source location to each extracted field, flagging values that aren’t found verbatim in the document so reviewers know where to look. - The run view now lets you open the detected documents and preview their pages, and inspect the OCR layout with bounding boxes drawn over the page (with a toggle to the extracted text) — right from the step timeline.

CLI

  • The workflow step catalog now lists the new document-separation and multi-way routing steps, plus the grounded-extraction options, so authoring and validating workflows from the CLI stays in step with what the platform supports.

Infrastructure & processing

  • Self-hosted (on-prem) deployments can now run official EigenPal release images, with access provisioned per customer. Images are published only after a release ships and are signed so you can verify their authenticity before deploying.

0.10.8 (2026-07-01)

Platform (Studio)

  • Single-file workflow inputs now display correctly after a dataset import. Previously an input that takes one file could show an empty file slot; imported examples now match each file to the workflow’s declared input shape.
  • Evaluator scoring now uses a single pass threshold for the whole workflow. The score-by-example chart’s cutoff line and every evaluator’s pass/fail are measured against that one threshold, so the chart, the per-evaluator results, and the run gate always agree. Experiment scores are shown in two states — passing (green) or below threshold (amber).
  • The LLM judge evaluator now requires evaluation criteria. Without them the model invents its own scoring rubric, so the editor marks the field required, renames it to “Evaluation criteria” with a worked example, and blocks saving until it is filled in.
  • Workflow folders can now be reorganized. A new “Move to folder” action in each folder’s menu lets you move a folder (and everything inside it) into another folder or back to the top level, so you can restructure your workspace without recreating folders. Destinations that would nest a folder inside itself are blocked, with a tooltip explaining why.
  • Nested sub-workflows now display and resolve correctly across runs, the workflow builder, and the CLI. In the Runs list, a run that invokes a sub-workflow which itself invokes another sub-workflow now nests every level under its parent, instead of stopping at the first level. In the workflow builder, an “Invoke Workflow” step that targets a workflow built from other invoked workflows now shows the real output field types instead of “unknown”, so you can reference those fields with autocomplete; referencing one of those fields no longer triggers a false “field not found” warning. The same resolution now applies when validating and publishing workflows (including via the CLI), so deeply nested invoke chains validate against their real output fields. All of this resolves through arbitrarily deep chains with a safety limit that prevents looping on workflows that invoke each other.
  • Runs: add a simplified review mode with developer-view toggle, review status badges, and inline output review for JSON fields and generated files.
  • New debugging and control primitives for runs. You can now cancel an in-progress run through the API, experiment results report when a batch has fully finished, steps skipped by a condition or an empty loop are reported as skipped rather than succeeded, and each step records the exact configuration it ran with so failures are easier to diagnose.
  • Run detail responses are leaner and more explicit: you choose exactly which sections to expand, and the public run schema now exposes the workflow version, cancellation-request time, and trace, retry, and email-trigger details.

CLI

  • eigenpal workflow validate now tells you when a workflow contains Invoke Workflow steps that local validation cannot fully check. Because those steps reference other workflows that live on the server, the command prints a short note pointing you to validate --online (or push) to verify the invoke targets, input types, and cycles. The skill guidance now shows the --online step in the validate-then-push flow as well.
  • The evaluator configuration reference now reflects the single workflow-level pass threshold. A per-evaluator passThreshold is documented as legacy — pass/fail is decided by the one workflow-level threshold — and that workflow-level threshold no longer shows a fixed default, since it is derived when omitted.

SDK

  • The Python SDK now requires Python 3.10 or newer. Python 3.9 has reached the end of its support window, and dropping it keeps the SDK on current, actively maintained dependencies. If you are still on Python 3.9, upgrade to 3.10+ to continue receiving SDK updates.
View full release notes →

0.10.7 (2026-06-30)

Platform (Studio)

  • Faster dashboard navigation. Lists keep their contents on screen while filters and folders refresh instead of flashing a loading state, document and image previews are cached so they no longer re-download on every navigation, and heavy viewers (PDF, charts, rich text) load on demand for a quicker first paint.
  • Workflows that invoke another workflow now pass file inputs through to the sub-workflow, so file-backed sub-workflow runs no longer fail before they start.

CLI

  • eigenpal --help now groups run, rerun, and runs under a dedicated “Run” section instead of the catch-all “Other” bucket, so starting a run and reading its output is easy to find.

0.10.6 (2026-06-30)

This release contains maintenance and reliability improvements with no customer-facing changes.

0.10.5 (2026-06-29)

This release makes EigenPal’s public changelog a reliable product record. Each release now has a dedicated docs page that explains what changed for Studio, the public API, the CLI, SDKs, and document processing in one place. That means teams can follow platform improvements without piecing together GitHub activity or package-specific notes. The changelog is organized around customer-facing product areas, so it is easier to see which changes affect app users, API integrations, developer tools, and processing behavior.

Platform (Studio)

  • Invoke Workflow steps are now typed end to end. Pick a target workflow and map each input it declares to a value, then reference the workflow’s output fields and any files it generates from downstream steps with autocomplete. Inputs and outputs are checked when you save and when the step runs, so mismatches surface early instead of failing mid-run.
  • Runs that invoke another workflow now appear nested under their parent run in both the runs feed and the run timeline, and link straight to the sub-workflow’s own run and trace.
  • You can view a workflow’s inferred output schema (the fields and files it returns, typed from its own steps) without running it.
  • File inputs are preserved consistently across runs, reruns, reviewed examples, and dataset experiments, so reused runs and examples no longer lose or mispoint their files.
  • Creating new organizations and other Git-backed source operations stay reliable even during Git provider outages.

Public API

  • Run file inputs now use a consistent artifact model. Callers provide reusable files with $fileId or inline files with $inline, and EigenPal materializes them into run-owned artifacts before execution, reruns, promotion, and dataset workflows.
  • A new endpoint returns a workflow’s inferred output schema without running it, as JSON Schema or as a TypeScript or Python type.

CLI

  • eigenpal workflow schema <workflow> prints a workflow’s inferred output schema as JSON Schema, or as a TypeScript or Python type with --format.
View full release notes →

0.10.4 (2026-06-25)

Platform (Studio)

  • Unify file list review surfaces

0.10.3 (2026-06-24)

SDK

Patch Changes

  • e48cb81: Remove fileVerdict from run review correction types; file correction intent is encoded via correctedArtifactPath.

0.10.2 (2026-06-24)

CLI

Patch Changes

  • ca9ae4f: Workflow inputs can declare an external file source (single-tenant on-prem). A type: file input with source: &lt;name&gt; (e.g. gpfs) is provided as a plain string id at run time; the worker resolves it to a file artifact via the configured source before the workflow executes.

0.10.1 (2026-06-23)

Public API

  • Polish reviews pages and group API reference nav

Infrastructure & processing

  • Client-shareable deployment architecture PDFs

0.10.0 (2026-06-23)

Platform (Studio)

  • Add simple runs review mode

Infrastructure & processing

  • Autogenerate chart architecture diagram from helm template
  • AWS/GCP/Azure Terraform examples with architecture diagrams
  • Helm chart + local kind for single-tenant on-prem

0.9.0 (2026-06-22)

CLI

Minor Changes

  • c35d5d4: Clean up the public runs and evaluation API surface: move workflow eval operations onto automations, expose run scores/artifacts through the unified runs API, and update CLI/SDK helpers to use the canonical routes. Breaking: runs.evalResults and GET /api/v1/runs/\{id}/eval-results are replaced by runs.scores and GET /api/v1/runs/\{id}/scores.

Patch Changes

  • c35d5d4: Clarify --max-wait help text so timeout exit behavior reads naturally.

SDK

Minor Changes

  • c35d5d4: Clean up the public runs and evaluation API surface: move workflow eval operations onto automations, expose run scores/artifacts through the unified runs API, and update CLI/SDK helpers to use the canonical routes. Breaking: runs.evalResults and GET /api/v1/runs/\{id}/eval-results are replaced by runs.scores and GET /api/v1/runs/\{id}/scores.
View full release notes →

0.8.0 (2026-06-18)

CLI

Minor Changes

  • d620a00: Expose the clean public automation API around automations, runs, files/artifacts, datasets, evaluators, experiments, evaluation results, and run promotion. This intentionally breaks the pre-v1 SDK/CLI surface that exposed workflow- and agent-specific top-level resources outside the explicit legacy compatibility routes.
    [!WARNING] Breaking change (pre-v1). The workflow- and agent-specific top-level resources have been removed in favor of a single automation-centric surface. These packages are still 0.x, so this breaking redesign ships as a minor bump. Update your integration before upgrading.

    Removed

    • Top-level workflow resources, e.g. client.workflows.*, including client.workflows.executions.runAndWait(...) and the rest of the client.workflows.executions.* tree.
    • Top-level agent resources, e.g. client.agents.* (runs, reviews, traces, files, expected artifacts).
    • Top-level source/git resources, e.g. client.sources.*.
View full release notes →

0.7.2 (2026-06-13)

SDK

Minor Changes

  • c5a709c: Public workflow list/detail responses include apiEnabled and triggers; run definition docs note workflow-only scope.

0.7.1 (2026-06-13)

SDK

Patch Changes

  • 9db3f01: Expose apiEnabled and triggers on AgentSummary for runtime trigger projection.

0.7.0 (2026-06-12)

CLI

Minor Changes

  • 963fd6c: Unify run detail on GET /api/v1/runs/\{id}: return the canonical Run object directly (no \{ run: ... } envelope) and merge expanded fields in-place via documented expand tokens. Remove the session-only expand=internal dashboard escape hatch; SDKs and CLI now use explicit expand lists.

Patch Changes

  • 963fd6c: Update runs commands for the grouped run API shape and four expand tokens.

SDK

Minor Changes

  • 963fd6c: Unify run detail on GET /api/v1/runs/\{id}: return the canonical Run object directly (no \{ run: ... } envelope) and merge expanded fields in-place via documented expand tokens. Remove the session-only expand=internal dashboard escape hatch; SDKs and CLI now use explicit expand lists.

Patch Changes

  • 12c00d8: Docs: clearer wording in the file-input and TypeScript-runtime sections. No API or behavior changes.

0.6.17 (2026-06-12)

SDK

Patch Changes

  • 716c3cf: Update the hosted default API base URL and API-key guidance from app.eigenpal.com to studio.eigenpal.com.

0.6.16 (2026-06-12)

CLI

Patch Changes

  • 75dd64c: Internal refactor: move the skill tool registry into its own module so other tooling can import it. No change to any command, flag, argument, or output.

0.6.15 (2026-06-10)

CLI

Minor Changes

  • ca87265: Unify workflow and agent run starts behind the canonical /api/v1/run/\{target} endpoint, root eigenpal run / eigenpal rerun commands, and root SDK client.run() / client.rerun() methods. The old nested CLI commands and SDK resource methods for starting workflow or agent runs have been removed.

Patch Changes

  • 5ea0bb5: workflow dataset pull gains --example-id &lt;id&gt; (repeatable) to export a single example or a selected subset of a dataset, instead of always pulling the whole dataset. The subset ZIP uses the same archive layout as a full pull, so it re-imports into any dataset via dataset push --mode append. Requesting an example id that does not exist for the workflow exits non-zero.

SDK

Minor Changes

  • ca87265: Unify workflow and agent run starts behind the canonical /api/v1/run/\{target} endpoint, root eigenpal run / eigenpal rerun commands, and root SDK client.run() / client.rerun() methods. The old nested CLI commands and SDK resource methods for starting workflow or agent runs have been removed.

0.6.10 (2026-06-08)

CLI

Patch Changes

  • 99ca1b4: Unify agent and workflow run commands and SDK helpers on the shared /api/v1/runs API, including the public client.runs facade and regenerated SDK reference docs.

SDK

Patch Changes

  • 99ca1b4: Unify agent and workflow run commands and SDK helpers on the shared /api/v1/runs API, including the public client.runs facade and regenerated SDK reference docs.

0.6.9 (2026-06-04)

SDK

Minor Changes

  • 5e7c051: Add observability (phase timeline + structured failure) to workflow execution and agent run status API responses.

0.6.6 (2026-06-03)

CLI

Patch Changes

  • 245f347: Clean up the agent CLI surface by removing obsolete compatibility commands, moving reruns to agents rerun, and replacing run pulls with canonical artifact fetching.
  • 5ab00ee: Tighten permissions on ~/.config/eigenpal/credentials.json and its parent directory to owner-only (0600 / 0700). Previously the file was written 0600 but the parent directory inherited the user’s umask (typically 0755), allowing other local users to list the directory and stat the file. The CLI now also re-tightens permissions on every write, so installs created with older versions are corrected on the next auth login / auth use.

0.6.4 (2026-06-03)

CLI

Patch Changes

  • c3486a5: Fix agent git cutover QA findings: dashboard runs now navigate to the created run, inbound email aliases preserve mixed-case organization qualifiers, sandbox source materializes under /workspace/agent, run artifact downloads use direct paths like /files/eigenpal.lock, wait-for-completion responses include source provenance, and CLI wait/watch commands exit nonzero for failed or cancelled runs.

SDK

Patch Changes

  • c3486a5: Fix agent git cutover QA findings: dashboard runs now navigate to the created run, inbound email aliases preserve mixed-case organization qualifiers, sandbox source materializes under /workspace/agent, run artifact downloads use direct paths like /files/eigenpal.lock, wait-for-completion responses include source provenance, and CLI wait/watch commands exit nonzero for failed or cancelled runs.

0.6.2 (2026-06-02)

CLI

Patch Changes

  • d2202b6: List all agent runs for unqualified targets, and reserve source-ref filtering for explicit @ref targets.

0.6.0 (2026-06-02)

CLI

Minor Changes

  • 2aeeaf2: Add native source git save and branch-aware git release flows for Git-backed builder workspaces.

Patch Changes

  • 2aeeaf2: Complete the agent Git cutover with pluralized agent CLI commands, source-ref run support, lockfile metadata, and regenerated SDK/docs surfaces.
  • 2aeeaf2: Expose Git-backed agent source refs and public source automation APIs consistently across CLI docs and SDK facades.

SDK

Patch Changes

  • 2aeeaf2: Complete the agent Git cutover with pluralized agent CLI commands, source-ref run support, lockfile metadata, and regenerated SDK/docs surfaces.
  • 2aeeaf2: Expose Git-backed agent source refs and public source automation APIs consistently across CLI docs and SDK facades.

0.5.12 (2026-06-02)

CLI

Minor Changes

  • d3b0768: Add control.fail and ai.classify step types, plus the expected/error.json dataset assertion format.
    • control.fail terminates a workflow with a typed status code + message envelope. Optional condition template gates the fail. Compose with ai.classify to reject documents that match an undesired label.
    • ai.classify runs single-label closed-set classification through the existing extract LLM pipeline. Output is \{ label, confidence, reason }, where label is constrained to the configured names.
    • examples/&lt;name&gt;/expected/error.json (mutually exclusive with output.json) lets eval examples assert that a workflow should fail with a specific \{ code, messageContains, step }. The exact-diff evaluator scores 1 on match, 0 otherwise.
    • eigenpal workflow validate now catches expected/error.json shape issues and per-step config violations (e.g. ai.classify with fewer than two labels) at push time instead of deferring to runtime. Skill reference docs (step-types.md, dataset-format.md, evaluators.md, workflow-yaml.md) updated.

Patch Changes

  • 99cad97: Skill reference (auto-generated from WorkflowDefinitionSchema) now documents the new values row for enum inputs, alongside the existing items row used by array inputs. Output-only doc refresh — no CLI behavior change.
  • d70f697: Document the control.parallel, control.parallel_map, control.foreach, control.if, and control.block step types in the bundled skill reference. The auto-generated catalog cannot render nested step shapes, so the YAML form, output access paths (e.g. steps.&lt;parallel&gt;.output.&lt;branch&gt;.&lt;inner&gt;.&lt;field&gt;), and scoping rules now live as hand-written prose. Also documents the multi-step iteration hazard: only the LAST inner step’s output is keyed into each items[i] for parallel_map / foreach — end the body with a transform.script if you need to preserve intermediate fields.
  • ed2cde6: Fix eigenpal workflow pull writing a 0-byte file. The v1 single-workflow endpoint now returns the current YAML at the top level (yamlContent) via a new WorkflowDetail response shape, and the CLI throws a clear error instead of silently writing empty output when no version has been published. Also fixes adjacent regressions caused by the same picker: workflow list now shows the workflow name and version columns (previously always -), workflow push --bump reads the server’s current version correctly, the “did you mean?” suggestion on a slug typo lists candidates again, and workflow execution list shows a duration column computed from the run start/end timestamps.

0.5.11 (2026-05-26)

CLI

Patch Changes

  • 2958f4d: Fix Git-backed source smoke-test polish: hidden git show and git sync now accept bare agent slugs, and workflow scaffolds use the current triggerMethods YAML shape.

0.5.10 (2026-05-26)

CLI

Patch Changes

  • aee7e0c: Add hidden Git source commands for editing trigger policy and encrypted secrets.

0.5.9 (2026-05-26)

CLI

Major Changes

  • fadb59b: CLI command tree reorganized around the data model. Top-level surface is now workflow, agent (reserved), and skill; everything that operates on a workflow lives under workflow, grouped by sub-entity. Renames (clean break — no aliases):
    • eigenpal exec &lt;slug&gt;eigenpal workflow execution run &lt;slug&gt;
    • eigenpal cleareigenpal workflow clear
    • eigenpal install-skilleigenpal skill (same interactive multiselect UX)
    • eigenpal execution \{get,list,watch,compare}eigenpal workflow execution \{…}
    • eigenpal workflow set-definitioneigenpal workflow push
    • eigenpal workflow get-definitioneigenpal workflow pull
    • eigenpal workflow set-evaluators / get-evaluatorsworkflow evaluators \{push,pull}
    • eigenpal workflow set-dataset / get-dataset / list-examplesworkflow dataset \{push,pull,list}
    • eigenpal workflow run-experiment / get-experiment-status / get-experiment-results / get-eval-results / list-executionsworkflow experiment \{run,status,results,eval-results,list}
    • eigenpal workflow list-versions / restore-versionworkflow version \{list,restore}
View full release notes →