CRAFT Release Notes
CRAFT ships on a monthly cadence using calendar versioning (YYYY.MM).
Each release bundles updates across the platform; user-facing changes are
summarized below in Keep a Changelog style.
Current Release: CRAFT 2026.06
Release Cadence & Versioning Policy
Release Cadence & Versioning Policy
CRAFT publishes a unified
YYYY.MM release on or around the last business
day of each calendar month. The release name reflects the month it ships in;
if a release slips into the following month, the version follows the actual
ship month.Underlying components continue to follow semantic versioning and may publish
point releases between monthly bundles.2026.06
Released 2026-05-28Added
- Snowflake key-pair and OAuth/SSO authentication for data connectors — connect to Snowflake without long-lived passwords, aligning data ingestion with enterprise identity and key-rotation policies. See Data Connections.
- Org-level Snowflake data connection provisioning — Snowflake connections can now be provisioned at the organization level, reducing per-project setup for teams sharing the same warehouse. See Data Connections.
- Memory asset filtering — retrieve memories scoped to a specific dataset, schema, or table using the new
asset_fqnfield on the memories API, so agents can recall context without post-filtering a full memory set. See Memory. - 412 / 413 / 428 added to the API error reference — the HTTP status table in API Errors now documents Precondition Failed, Payload Too Large, and Precondition Required, matching what every service has been returning all along on agent-registration ETag/If-Match cycles and artifact uploads.
Changed
- Default LLM is now
gemini-3.5-flash(Vertex AI) — across all framework tutorials, gateway configs, and per-call override examples.gemini-3.5-flashwas GA’d at Google I/O 2026-05-19 and outperformsgemini-3.1-proon 6 of 8 major benchmarks (including agentic MCP Atlas +5.4% and coding Terminal-Bench +6%) at 3.6× the speed. Secondary option shown for model agnosticity is nowclaude-opus-4-8on Vertex AI; OpenAI examples usegpt-5.5. See Access LLMs and the LLM Gateway operator guide. gemini-3.1-pro-preview-customtoolsre-scoped to specialized use only — explicit warnings on every appearance: it is a fine-tuned variant of basegemini-3.1-prothat prioritizes registered custom functions over bash fallbacks; per Google’s own guidance, only choose it when extensive custom tool calling is core to the agent (the model degrades on non-tool workloads if more than half of requests don’t involve tools). Preview SLA, global endpoint only, Provisioned Throughput unsupported.- SDK examples in the API reference now use the real client model — the generated Python and TypeScript SDKs follow the openapi-python-client / openapi-generator pattern (
AuthenticatedClient+ per-endpoint module functions), not a fluentGovernanceClient(...).foo.bar()API that never existed. TypeScript npm scope corrected to@emergence-ai/em-runtime-*-sdk. See API Authentication. - Solution Developer Guide ports point at the gateway — every direct host-port reference (
:8001,:8002,:8003) in executable code and curl examples now uses the gateway path (https://<platform-host>/api/{governance,assets,utils}/...). The platform services all bind container port 8000; the gateway HTTPRoute fronts them. See Local Development and Your First Agent. - Agent-registration idempotency contract is now documented end-to-end —
POST /assets/agentsreturns 201 on first registration and 409RESOURCE_ALREADY_EXISTSon a re-POST with the same name in the same project;PUTrequires anIf-Matchheader (428 Precondition Required without; 412 Precondition Failed with a stale ETag; 200 with the current one). See Your First Agent. - RBAC configuration rewritten against the real permissions API — Steps 2–4 of the RBAC guide now use the live
/governance/permissions/{grant,revoke,check,set-parent,delete-all,accessible-objects}endpoints.checkis aGETwith query parameters; grants and revokes arePOSTwith{resource_type, resource_id, subject, relation}bodies. See RBAC Configuration. - Data connection registration documents the real schema — the field is
connection_type(nottype), the enum value ispostgres(notpostgresql), and configuration goes underdatabase_config/storage_config/filesystem_configdepending on connector kind, with credentials as a separate top-level block. Pre-save validation lives atPOST /assets/data/verify; post-save validation atPOST /assets/data/{resource_uri}/verify. See Data Source Setup. - Environment-variable conventions clarified for Vertex AI —
VERTEXAI_PROJECT/VERTEXAI_LOCATION(the LiteLLM convention used by CRAFT’s reference Helm chart) is the canonical form; LiteLLM also accepts the Google Cloud SDK standardsGOOGLE_CLOUD_PROJECT/GOOGLE_CLOUD_LOCATIONset automatically bygcloud auth application-default login. See the LLM Gateway operator guide. - Top-bar nav now has icons matching the left-nav style across all 8 tabs.
- Refreshed platform UI components — the runtime interface now includes updated Avatar, Accordion, ContextualMenu, SegmentedControl, and Tooltip components, improving visual consistency across the platform.
- Semiconductor v0.3.9 cycle — Knowledge tab (Documents + Agent Insights), equipment factor analysis embedded directly in generated reports, fab-dashboard-contextual chat answers, Excursion Reconciliation Agent (equipment signals vs yield outcomes), pre-generated report exports, chat runtime progress bar, wafer-map heatmaps, mid-stream agent-task cancellation, and ~30 incremental fixes. See Semiconductor.
Fixed
- Memory API documentation corrected to actual
/utils/endpoints — The Memory Service pages previously documented non-existent/v2/api/memoriespaths. Memory is implemented within the Utils service (em-runtime-utils); the correct endpoints arePOST /api/utils/context-packs/{name}/memories(create),GET /api/utils/memories(list),GET /api/utils/memories/{id}(retrieve),PATCH /api/utils/memories/{id}(update), andDELETE /api/utils/memories/{id}(soft-delete). Context pack creation requirespack_type(nottype) and pagination usespage_size(notlimit). All requests require anX-Project-IDheader for project scoping. If you built against the previously documented paths, update to the/utils/routes. See Memory Service and Memory Integration. - Catalog summary updates — catalog entity summaries now update correctly across all API call paths.
- Natural-language SQL generation stability — resolved a crash when table selections were supplied without schemas, and tightened validation on chart type fields so malformed model responses no longer break query generation. See Data Insights.
- Gemini embedding compatibility — embeddings produced by Gemini models are now sized to fit the vector store, preventing ingestion failures on memory and catalog writes.
- Data table interactions — corrected spacing and search behavior in runtime data tables so filtering and selection behave as expected.
em-servicechart version pin corrected repo-wide —helm install ... --version 0.0.16was returning “manifest unknown” because only0.0.15is published to the OCI registry. The earlier fix covered Quickstart and the em-service chart reference; the pin is now corrected across the whole Solution Developer Guide (starter templates, register-a-solution, package-and-deploy, overview) and the Tier 1 CI fixtures, so every scaffold pins the actually-published0.0.15. See Quickstart and em-service chart.hello-solutionresource naming in Quickstart — addingapi.fullnameOverride: hello-solution-apito thevalues.yamlensureskubectl port-forward svc/hello-solution-apiresolves (without the override, em-service defaults the resource name to the release name and the documented commands returnNotFound).
2026.05
Released 2026-05-13Added
- Catalog foreign-key graph and DDL storage — the data catalog now traces relationships between entities through foreign-key edges (including soft FKs) and supports path-finding queries, and each catalog entity retains its
CREATE TABLEDDL alongside profile and lineage metadata. Together these let agents and SQL-generation pipelines navigate schemas without re-deriving structure on every call. See Data Connections. - MCP tools for schema exploration —
get_schema,search_schema, andsample_datalet any MCP-aware client introspect catalog structure and preview rows from a connected warehouse, so chat surfaces outside the platform can ground answers in live schema rather than stale copies. See MCP Server. - MCP tools for natural-language analytics —
generate_sql,execute_query,resolve_term, andgenerate_plotly_chartexpose Data Insights through MCP, so external assistants can ask questions in natural language and receive SQL, results, and charts without leaving their conversation. See Chat with Data. - Wildcard catalog field search — leading and both-ends wildcards (
*term*,term*) now match field names, so columns can be located from a fragment rather than the full identifier. See Data Connections. - HTTP observability metrics with swappable OTEL backends — every platform service emits consistent HTTP latency, error, and throughput metrics routable to any OpenTelemetry-compatible backend, and a new usage-event endpoint records per-tenant API consumption for reporting. See OpenTelemetry.
- Project selector in the sidebar — the runtime UI footer now exposes the active project and a switcher, removing a navigation hop when working across multiple projects.
- Semiconductor Knowledge tab — a Documents and Agent Insights surface in the fab analytics dashboard so engineers can browse SOPs, ingest curated reference material, and review agent-generated analysis alongside live runs. See Semiconductor.
- Equipment factor analysis with report integration — fab analytics agents now render equipment factor visualizations directly inside generated reports, surfacing tool-level contributions to yield without a separate analysis step. See Semiconductor.
- Chat with context from the fab dashboard — the semiconductor chat agent answers questions grounded in the current dashboard view, so analysts can ask follow-ups without restating which run, wafer, or excursion they are inspecting. See Semiconductor.
- Excursion Reconciliation Agent — compares equipment signals against yield outcomes (including yield-only paths when equipment data is partial) to triangulate root causes for production excursions. See Semiconductor.
- Pre-generated semiconductor report exports — workflow runs now pre-generate downloadable report artifacts at completion instead of waiting for an export request, making large run results immediately shareable.
- Chat runtime progress bar — long-running semiconductor chat turns now show turn-based progress, so users get visible feedback during multi-minute analysis runs.
Changed
- Service account secrets use self-descriptive key names — autonomous workloads read
client_idandclient_secretfrom explicitly-named secret fields rather than generic ones, making rotation and audit clearer. See Authentication. - Autonomous service accounts resolve consistently in audit and authorization — request context for non-interactive callers now returns the service account’s
client_idasuser_id, so authorization checks and audit logs trace back to the right principal regardless of whether the caller is a person or a service. See Authorization. - Metadata search responses include the publishing service — each search result now carries a
service_namefield, so multi-service catalogs are easier to navigate and disambiguate. - Data Readiness gains scoped read access to project metadata — a new
service_metadata_readerrelation in the project authorization schema grants the Data Readiness service the minimum permissions it needs without broadening other service roles. See Authorization. - HTTP metrics capture the routed path, not the raw URI — observability middleware now records the resolved route template, so dashboards group requests by endpoint instead of fragmenting on path parameters. See OpenTelemetry.
- Faster semiconductor API responses — caching and bulk-query consolidation cut latency on analytics endpoints under sustained dashboard load, so frequently-viewed runs and excursions render faster on subsequent visits.
- Iceberg ingest path for semiconductor data generation — the v2 data-generation workflow can now write directly into Apache Iceberg, simplifying integration with lakehouse storage for downstream analytics. See Semiconductor.
Fixed
- OIDC discovery metadata at the issuer-derived path — well-known OIDC metadata is now served at the path RFC 8414 clients probe (including Claude Code), so MCP authentication flows complete without manual endpoint configuration. See MCP Server.
- Whitespace-only catalog search returns an empty result set — a blank or whitespace query no longer raises an error; it returns no rows, matching the behavior of every other search input.
- Navigation no longer crashes after workflow completion — moving away from a completed workflow run in the runtime UI no longer throws.
- “Clear All” resets every score type — clearing scores in the runtime now resets metadata scores through the unified scores endpoint, alongside the other score categories.
- Chat artifact table styling — table outlines and header backgrounds render correctly in chat artifact previews.
- Semiconductor chat answer accuracy — fixed a case where numbered option selections were misinterpreted as entity IDs, and added structured error parsing so agent-task failures surface readable messages instead of opaque tracebacks. See Semiconductor.
- Reliable wafer-map visualizations in chat — wafer maps now render as heatmaps rather than scatter plots, restoring readable spatial distributions in chat answers.
- Mid-stream cancellation for semiconductor agent tasks — disconnecting the client mid-stream now correctly cancels the in-flight agent task, freeing compute and avoiding orphaned work.
Security
@tanstackpackages pinned against a supply chain attack — exact version pins prevent installation of compromised@tanstack/*versions discovered in the npm registry, hardening the runtime UI build against dependency confusion.
2026.04
Released 2026-04-30Added
- Conversational data analysis (chat-with-data) — ask natural-language questions across your registered data assets and receive streaming answers with auto-generated SQL, charts, tables, and downloadable Python code. Sessions support multi-turn follow-ups, artifact attachments, and resumable event replay if the connection drops. See Chat with Data.
- Snowflake data connector — connect to Snowflake warehouses for cataloging, profiling, and natural-language querying alongside existing PostgreSQL and Redshift sources. See Data Connections.
- Automated data intelligence enrichment — a new eight-step pipeline runs after profiling to produce table and column descriptions, semantic classifications (Fact/Dimension/Reference), join proposals, sample questions, glossary terms, and text-pattern detections. Each finding is persisted as a searchable memory so downstream agents can reason over your catalog without re-discovery. See Data Enrichment.
- Business glossary backed by the memory service — vocabulary and concept terms now live in context packs with verification status, tagging, and back-references to the tables where each term appears. See Memory.
- Org-level data connection provisioning — connections can be registered once at the organization level and reused across projects, reducing per-project setup for shared warehouses. See Data Connections.
- Audit logging via OpenTelemetry — platform service and workflow audit events stream through the OTEL collector alongside traces and metrics, unifying observability for compliance-sensitive deployments. See OpenTelemetry.
- Self-Improvement evals harness for the semiconductor stack — internal evals infrastructure for the fab analytics agents, exercising agent behaviour against curated scenarios so regressions are caught before they ship. See Semiconductor.
- Client-dashboard observability for semiconductor analytics — the runtime UI’s semiconductor client dashboards now emit structured telemetry to the platform OpenTelemetry pipeline, so dashboard performance and agent invocations are visible alongside backend services.
- Excursion editing and tabbed run details (semiconductor) — engineers can now edit excursion records in place and navigate run details through a tabbed interface, reducing click depth during incident review. See Semiconductor.
Changed
- Breaking: Data quality workflow triggers no longer accept
resource_type,resource_uri, ordatabase_type— tag generation, rule generation, and execution now derive these from the asset FQN, organization, and project. Tag generation accepts a new optionalindustry_infoparameter for domain-specific tagging. Callers must remove the deprecated fields from trigger payloads. See Data Governance Workflows. - Data quality results now apply on completion — DQ execution, DQ assessment, and metadata assessment workflows no longer create a pending approval; results are written directly when the workflow finishes, eliminating the manual approval step. See Data Governance Workflows.
- Profiling, Metadata Assessment, and DQ Assessment workflows are now table- or schema-scoped only — database-wide enrichment moves to the new Data Intelligence workflow, which orchestrates LLM passes across the entire catalog in a single run. See Data Governance Workflows.
- Workflow run listings support multi-status filtering and multi-column sorting — query workflow history with expressions like
?status=running,failed&sort=status:desc,started_at:asc, and group workflows by category (ingestion, enrichment, data_quality, assessment) in the configuration list. See Data Governance Workflows. - Column profiles include distribution analysis — value frequency counts for low-cardinality columns, percentiles for numerics, length and case patterns for text, temporal ranges, and JSON structure breakdowns, controlled by the
DISTRIBUTION_ANALYSIS_ENABLEDflag. See Data Profiling. - Refreshed conversational interface for Talk2Data — streaming UX improvements, an artifact picker panel with infinite scroll, active context bar, session context management, and reliable auto-reconnection on dropped streams. See Chat with Data.
- Runtime UI cycle: dashboard navigation polish, agent-card flows, and dozens of incremental fixes — the runtime UI shipped fifty point releases this cycle covering dashboard navigation flow, agent registration UI, project-context propagation in SDK requests, table interaction polish, and component refresh (Avatar, Accordion, ContextualMenu, Tooltip).
- Resolved agent-card URLs in the semiconductor A2A client — the fab analytics agents now use the agent’s resolved well-known URL rather than its display-name URL, fixing edge cases when registering or invoking agents from custom endpoints. See Semiconductor.
- More accurate Otsu threshold for semiconductor yield analysis — added a MAD-based geometric-mean correction that prevents threshold inflation on noisy distributions, producing more reliable defect/yield segmentation.
Fixed
- PostgreSQL ingestion to SSL-enforcing databases — connections to AWS RDS and other managed PostgreSQL deployments no longer fail with
no pg_hba.conf entry … no encryption; the connection pool now negotiates SSL with the same semantics assslmode=require. See Data Connections. - Data quality scorecards reset correctly after a clear — DQ Score now returns N/A immediately after clearing values and reflects fresh results on the next rule execution, instead of staying pinned at 100%.
- Schema search filters by table name — searching within a schema returns only tables whose names contain the query, instead of returning every table in the schema.
- Issues requiring attention excludes deleted datasets — the home dashboard no longer surfaces violations for soft-deleted tables in either the list or the count.
- Profiling stability on Redshift — large-value aggregations on event-count columns no longer overflow, and distribution analysis no longer crashes on boolean columns. See Data Profiling.
- Catalog summary updates — entity summaries now refresh across all API call paths, eliminating stale text after asset updates.
Security
- MIME type validation on artifact and file uploads — uploaded files are validated against an allowlist before storage, preventing disguised content from reaching the catalog or downstream agents.
- SQL injection hardening in dataset search — catalog search escapes user-supplied wildcards and validates query input before composing
ILIKEfilters. - Stricter data connection name validation — connection names containing special characters that could break downstream SQL or filesystem paths are rejected at the API boundary.
2026.03
Released 2026-03-31Added
- Intelligent context for AI agents — an 8-step LLM enrichment pipeline runs automatically after profiling, producing asset-granular memories (semantic layer, table summaries, sample questions, JOIN proposals, text patterns) that agents can retrieve at query time. See Data Enrichment.
- Memory — agents can now store and retrieve structured context packs and typed memories (glossary, exemplar, summary, observation, ontology, policy, join) through the Utils service, so they recall task-specific knowledge across sessions. See Memory.
- Business Glossary — glossary terms are now persisted as first-class memories with full CRUD, verification, and tagging, replacing the previous placeholder. See Data Governance.
- Chat with Data — a new conversational interface for asking natural-language questions of your data, with multi-turn sessions, server-sent responses, a durable per-turn event log for replay, and auto-generated session titles. See Chat with Data.
- Column distribution analysis — column profiles now include histograms: value-frequency counts for low-cardinality columns, percentiles for high-cardinality numerics, length and case analysis for text, temporal ranges, and JSON structure analysis. See Data Profiling.
- Data Quality approval workflows — generated DQ tags and rules can be previewed (including SQL and validation status) before being persisted, so reviewers approve before commit. See Data Governance.
- Hardened semiconductor code-run execution — the fab analytics code-run service now handles out-of-memory failures gracefully without crashing the agent, with improved observability into long-running runs and corrected log message streaming so users see live progress instead of buffered batches. See Semiconductor.
- Persistent client-dashboard auth across tabs (semiconductor) — fab analytics users no longer need to re-authenticate when opening run details in a new browser tab.
- Runtime UI: initial dashboard navigation, chart controls, and agent integration — the runtime UI shipped 19 point releases this cycle covering the foundational dashboard navigation flow, chart-control polish, log message streaming, and authentication persistence across the sidebar.
Changed
- Event-driven ingestion and auto-chained profiling — creating a data connection now automatically triggers ingestion via the platform event bus, and ingestion auto-chains into profiling on completion. No more manual workflow kickoff. See Data Connections.
- Simpler DQ workflow inputs — tag generation, rule generation, and execution no longer require
resource_type,resource_uri, ordatabase_typeparameters — these are derived internally from the asset FQN. Tag generation also accepts an optionalindustry_infoparameter for domain-specific tagging. See Data Governance. - DQ execution, DQ assessment, and metadata assessment no longer require approval — results are available immediately on completion, since these are read-only analyses. Tag and rule generation still require approval (preview before commit). See Data Governance.
- Faster metadata assessments at scale — scoring and violation detection now run in-memory against the catalog SDK rather than issuing ~28 database queries per asset, sized to handle large catalogs without timing out. See Data Governance.
- OpenTelemetry instrumentation across the platform — runtime services now emit traces, metrics, and structured logs to your OpenTelemetry collector, supporting end-to-end request tracing. See OpenTelemetry.
- Richer catalog responses and filters — catalog entities now include
row_count,column_count, andtable_count; metadata responses supportinclude_childrento expand nested assets; asset list endpoints acceptkey_prefixandowner_idfilters; tag operations support bulk get/store/delete. See Data Connections.
Fixed
- Cross-tenant resource URI collisions in authorization — the authorization engine now keys resource URIs by tenant, so the same
resource_uriin different tenants no longer shares permissions. See Authorization. - Catalog re-ingestion no longer blocked after database-level deletes — removing assets directly from the database used to leave orphan references that prevented re-ingestion through the API; re-ingestion now succeeds cleanly. See Data Connections.
- Data connection secrets are cleaned from the secrets backend on deletion — deleting a connection now removes its credentials from secret storage, eliminating orphaned secrets. See Data Connections.
- Multi-replica migration race condition — concurrent platform replicas no longer race when applying database migrations on startup; an advisory lock now serializes migration runs safely.
- More predictable workflow approval and execution — workflow approval no longer fails on Keycloak token refresh, status updates no longer deadlock under concurrent load, and workflow runs against external Keycloak no longer fail with JWT issuer mismatches.
Removed
- MinIO removed as the Chat with Data artifact backend — query results (Parquet, charts, JSON) now live in the platform Artifacts API, authenticated via service-worker tokens. Operators no longer need to provision MinIO alongside Chat with Data. See Chat with Data.
- Debug
/configendpoint removed from production — internal configuration is no longer exposed over HTTP.
Security
- Streaming file uploads — large file and artifact uploads now stream to storage rather than buffering the entire payload in memory, removing a denial-of-service vector on multi-gigabyte uploads. See Data Connections.
- Stricter resource URI validation in DQ workflows — DQ tag, rule, and execution workflows now validate resource URIs and propagate organization and project context end-to-end, preventing cross-project asset references.
2026.02
Released 2026-02-27Added
- Data Quality workflows for Data Governance — automated DQ tag generation, rule generation, and rule execution, plus scorecard, trend, and detail endpoints for tracking quality metrics across assets. See Data Governance and Data Profiling.
- Talk to Data foundation — initial release of the multi-agent system that powers natural-language conversations with structured data sources, including shared libraries and orchestration scaffolding for downstream solutions. See Data Insights and Chat with Data.
- Table and column profiling with Amazon Redshift support — a new Profiler workflow scans tables and columns to seed governance assessments, and a Redshift adapter extends profiling beyond Snowflake and Postgres. See Data Connections.
- Workflow approval flow with real-time status streaming — Data Governance workflows now support a reviewer approval step before runs are finalized (with reset-to-pending), and a Server-Sent Events stream on workflow endpoints replaces client-side polling for status updates. See Workflows.
- Bulk catalog metadata endpoints and entity versioning — update metadata for many catalog entities in a single request, and track changes over time with major/minor versioning on catalog metadata entities.
- Multivariate excursion detection and report visualizations for the semiconductor solution — detect lot excursions across correlated variables (not just single-metric thresholds), and generate charts directly inside fab analytics reports through a new visualization agent. See Semiconductor.
Changed
- Connection health visibility — data connections now expose
statusandstatus_message, and list responses includeowner_id, so administrators can diagnose connection failures and identify owners without extra requests. See Data Connections. - More descriptive workflow status messages — Prefect-backed workflows now emit structured status messages from tasks and lifecycle hooks, so operators see meaningful progress instead of opaque task names.
- Standardized pagination and error envelope across Data Governance endpoints — consistent page, size, and cursor semantics and a unified error response shape throughout the API surface. See Data Governance.
- Breaking: Data Quality workflow APIs split rule generation from execution — DQ rule generation and execution are now distinct workflow steps; integrations that previously called a single combined endpoint must adopt the two-step generate-then-execute pattern. See Workflows.
Fixed
- Multi-realm Keycloak bootstrap and CORS coverage — bootstrap against newer Keycloak versions now succeeds, and CORS preflight is enabled on the remaining platform APIs that previously rejected browser requests. See Authentication.
- Database migration safety and connection-pool stability — migrations now fail fast when multiple Alembic heads are detected, preventing partial schema upgrades, and nested savepoints in workflow event creation are now committed on success, eliminating a slow connection-pool leak under sustained load.
- SSE streaming robustness — malformed
Last-Event-IDheader values now return 400 instead of crashing the streaming endpoint with a 500.
Removed
- Breaking: Legacy
domain_idandclient_idfields removed from data catalog entities — these tenant-extension fields are no longer recognized in catalog payloads; callers must migrate to the standard organization and project model. See Data Connections.
2026.01
Released 2026-01-31Added
- Data connection management API — programmatically register, list, update, and remove PostgreSQL and Redshift connections, with built-in connectivity verification so misconfigured credentials are caught before a workflow runs. See Data Connections.
- Object storage APIs — first-class clients and endpoints for managing object-storage assets across deployments, so agents can read and write blobs without bespoke integration code.
- Scoped secrets at organization, project, and resource levels — store and retrieve secrets at the granularity your workflow actually needs, with permission checks that inherit from the owning resource so secret access stays consistent with the rest of your authorization model. See Authorization.
- Agent guardrails — opt-in safety checks on agent inputs and outputs, providing a foundation for content moderation, PII handling, and policy enforcement on agentic workflows. See Agents.
- Data generation agent for semiconductor workflows — an interactive agent with web-search capability guides fab engineers through synthetic dataset generation, including reproducible runs via configurable seeds. See Semiconductor.
- Data catalog and metadata enrichment workflows — LLM-powered metadata enrichment over a versioned catalog of databases, schemas, tables, and columns; ingestion runs are tracked end-to-end with configurable retry behavior and live status reporting. See Data Enrichment.
Changed
- A2A protocol for semiconductor chat — chat services now run on the standard A2A SDK, with end-user authentication propagated through each agent request, aligning the semiconductor solution with the platform’s agent-to-agent communication model. See Semiconductor.
- Unified bootstrap across platform services — a single bootstrap flow now provisions identity realms, organizations, permission grants, and database state in one pass, and surfaces project-level readiness in the bootstrap status response.
- Stateless yield-excursion workflow — yield-excursion pipelines now pass data via explicit dictionaries between steps rather than shared state, making runs easier to reason about, retry, and observe. See Semiconductor.
- Standardized workflow naming and a service-ingestion workflow type — workflow names follow a single convention across ingestion, enrichment, and analysis runs, and service ingestion is now a first-class workflow type. See Data Governance Workflows.
Fixed
- Pearson correlation in excursion analysis — corrected a case where the Pearson coefficient was applied to inputs it shouldn’t have been, restoring expected correlation results in yield-excursion runs. See Semiconductor.
- Windows compatibility for self-improvement runs — resolved path and environment issues that prevented self-improvement workflows from running on Windows hosts.
- Local Docker Compose startup for semiconductor services — fixed build and runtime errors that blocked bringing up all semiconductor services together, easing local end-to-end testing.
- Reports now reference the analysis run, not the underlying orchestrator run — generated reports link to the correct analysis run ID, so report URLs match what users see in the analysis history.
- Catalog asset generation — addressed a case where catalog asset generation could silently no-op under certain bootstrap states.
Security
- Permission enforcement on all secrets endpoints — every create, read, update, and delete on the secrets API is now gated on the caller’s authorization against the owning resource, closing a gap where checks based on secret type alone could be bypassed. See Authorization.
- Container base images pinned to immutable digests — workflow runner images now reference specific tool versions instead of
:latest, preventing supply-chain drift if a published tag is moved or replaced. - Hardened API surface — standardized exception handling and additional input validation across runtime services reduce the risk of information disclosure via unhandled errors. See API Reference.

