📢 Changelog
🗓️ 2026-01-07
🚀 Features
Worksheets (Public Preview)

Run SQL queries directly in the Ascend UI with the new Worksheets editor. Position your cursor on any query and click Run to execute it, or select multiple queries to run them in sequence. A visual highlight bar shows exactly which queries will execute.
Worksheets are stored per-user in worksheets/<your-email>/ as regular .sql files you can rename and reorganize. Saving doesn't trigger builds. You can also run Worksheets in Deployments to query production data, though saving is disabled there.
Regex-based retry clauses
Define pattern-specific retry rules for Components with independent counters per error type:
retry_strategy:
retry_clauses:
- pattern: "503.*Service Unavailable"
max_attempts: 10
- pattern: "timeout"
max_attempts: 3
Each pattern maintains its own retry count, so transient 503 errors won't exhaust your timeout retry budget.
Learn more about retry clauses →
Notification center

A new notification center in the navbar collects toast notifications with persistent history. Notifications are scoped to your user — click the bell icon to review your past notifications, dismiss individual items, or clear all. Toasts now dismiss 3x faster since you can always find them in the notification center.
Custom and high-memory runner sizes (Private Preview)
Configure CPU and memory for Workspaces, Flows, and Flow runs with new high-memory presets and custom size options. Contact your Ascend representative to enable this feature.
🌟 Improvements
- Improved responsiveness of real-time updates across the UI
- Preview operations are up to 3x faster due to caching
- Flow run history displays timestamps above each run column with detailed start/finish times in tooltip
- Flow run history adds logarithmic scale toggle for duration bars — useful when outlier runs distort the chart
- Run filter dropdowns include All/Clear buttons for bulk selection
🛠️ Bug fixes
- Fixed Flow runs timing out during graceful shutdown when tasks continue running
- Fixed DuckLake data table compaction crashing with memory overflow on large tables
- Fixed S3 credentials expiring after 1 hour in Kubernetes environments
🗓️ 2026-01-01
🚀 Features
-
DuckLake table partitioning: Configure
partition_byin your DuckLake Data Plane options to partition tables by columns or expressions, enabling partition pruning for improved query performance.data_plane:
duckdb:
ducklake:
partition_by:
- regionSQL expressions are also supported:
data_plane:
duckdb:
ducklake:
partition_by:
- year(created_at)
- month(created_at)
🌟 Improvements
-
Flow names in the Deployment timeline view are now clickable, navigating directly to the Flow's run history.

🛠️ Bug fixes
-
Fixed S3 authentication failures in long-running Flows. Credentials using IAM roles now automatically refresh, preventing failures after the 1-hour token expiration.
-
Fixed Flows with large partition counts (100K+) failing on Snowflake due to LOB size limits. Partition metadata is now stored in individual rows instead of aggregated arrays.
🗓️ 2025-12-25
Minor bug fixes and performance improvements.
🗓️ 2025-12-18
🚀 Features
-
Ascend-managed DuckLake without PostgreSQL (Public Preview): Ascend-managed DuckLake now supports a fully cloud storage-based architecture — no PostgreSQL required. Both metadata and data are stored in object storage, simplifying infrastructure and reducing overhead in a way that can improve performance for certain workloads. Configure with
$ascend_managed.duckdb_ducklake. See self-hosted DuckLake to bring your own storage. -
dbt project integration (Private Preview): Run dbt projects as Ascend Applications with full support for dbt models, tests, and builds via the new
dbtComponent type. -
🤖🐐 Otto improvements:
- Extended thinking support for Claude models — enable advanced reasoning with configurable token budgets
- Improved response conciseness and parallel tool execution
🌟 Improvements
- DuckDB upgraded to 1.4.3 with MotherDuck compatibility.
🛠️ Bug fixes
- Fixed identifier quoting across databases: database, schema, and table names starting with digits or containing special characters are now automatically quoted for Databricks, MS SQL Server, MySQL, Oracle, PostgreSQL, and Snowflake.
- Fixed incremental merge writes to PostgreSQL failing when the target table lacked a unique index. Ascend now automatically creates the required unique index on
unique_keycolumns when creating new tables. - Fixed Flow Graph freezing in an infinite loop when zooming to a node via the build panel.
- Fixed Flow Graph not updating to reflect row counts and Component statuses after data changes.
- Fixed branch selector crashing when typing an existing branch name instead of selecting it from the dropdown.
🗓️ 2025-12-11
🌟 Improvements
- Super Graph rendering is 85% faster. Lazy tooltip initialization, memoized build graph calculations, and pre-computed derived values significantly reduce DOM overhead and recomputation on large Projects.
- DuckLake table compaction now supports data tables in addition to metadata tables. Configure compaction thresholds per Component or globally via Profile defaults:
data_plane:
duckdb:
ducklake_data_table_compaction:
small_file_record_count_limit: 100000
small_file_count_threshold: 50
small_file_ratio_threshold: 0.25 - Component defaults now support wildcards in the
flow_namefield, enabling global configuration across all Flows using regex patterns. - 🤖🐐 MCP tool calls now include explanations and descriptions for better visibility into Otto's actions.
- Deployment pages now load Flow runs beyond the initial 30-day window. Historical runs are fetched in the background and stored locally for faster subsequent access.
- DuckLake table compaction now includes helper tables created by Component store adapters, reducing fragmentation across all metadata tables.
🗓️ 2025-12-04
🚀 Features
- 🤖🐐 Otto can now navigate you through the Ascend UI. Ask Otto to open a specific file, go to a Deployment page, or view a Flow run, and it will take you there directly.
- 🤖🐐 OttoPilot is now available on the Dashboard. Get quick help, instance summaries, and suggested prompts without leaving the main view.
🛠️ Bug fixes
- Fixed Microsoft SQL Server datetime predicates failing due to incorrect format. Datetime values are now formatted without timezone info and with millisecond precision.
- Fixed DuckLake compaction using wrong catalog name when catalog override is configured.
- Fixed Automation runs table only showing one run when multiple Automations triggered from the same event.
- Fixed Flow run links in email notifications using incorrect project identifier.
- Fixed Deployment Flow pages incorrectly redirecting to Super Graph view.
- Fixed Snowflake Connection URLs generated with incorrect case for account locator.
- Fixed SSH key display flickering when loading Repository settings.
- Fixed clicking Component in Deployment Flow run history opening the wrong file.
🗓️ 2025-11-27
🚀 Features
- 🤖🐐 Otto can fetch and analyze web content. Enable
web_accessto let Otto read documentation, API references, and other online resources to better assist with your work. - Read Components now support
strategy: fullfor native database connectors. Use this for small datasets or one-time loads that don't need partitioning:read:
connection: my_database
strategy: full
🌟 Improvements
- DuckLake now uses block-level row count statistics for dramatically faster output row calculations. Row counts that previously took minutes on large datasets are now near-instantaneous. Statistics are automatically computed during partition writes and backfilled for existing Components.
- 🤖🐐 Otto max turns handling improved. When approaching the turn limit (default 50), Otto receives a warning and gracefully summarizes progress instead of abruptly stopping.
- Workspace status on Project page now correctly reflects actual state (Online, Paused, etc.).
🛠️ Bug fixes
- Fixed Snowflake Read Components dropping
_ascend_sourceand_ascend_ingested_atcolumns due to case sensitivity. Snowflake returns column names in uppercase, which now matches correctly. - Fixed Cmd+K quick search opening the wrong item when using keyboard navigation. The navigation index now correctly maps to visible items only.
- Fixed Component form overwriting extra YAML fields when switching between code and form views. Custom configuration options are now preserved.
🗓️ 2025-11-20
🚀 Features
- 🤖🐐 Otto now defaults to agent mode, providing more proactive, capable assistance. Otto can now autonomously plan, execute, and iterate on tasks without requiring explicit step-by-step prompts.
🌟 Improvements
- DuckLake metadata tables now automatically compact to prevent fragmentation. Tables with too many small files are detected and rewritten as single files during data maintenance.
- MotherDuck no longer uses DDL locking, allowing concurrent schema operations.
- Databricks Instance Store connections now handle invalid session handles gracefully with automatic reconnection. Added hourly connection pool recycling to prevent stale sessions.
- Blob storage list operations (S3, GCS, ABFS) now use native client prefix filtering instead of directory traversal, significantly improving performance for prefix-based listings.
- Table names with special characters (hyphens, spaces) now work correctly across all Data Planes. Quoting is applied automatically based on identifier validity.
- Default Workspace auto-snooze timeout increased from 20 to 30 minutes.
- Deployment Flows page loads faster with lazy timeline calculation, optimized date formatting, and a single shared popover instead of per-run popovers.
🛠️ Bug fixes
- Fixed missing
_ascend_sourcecolumn in database-based Read Components. This regression caused schema mismatch errors when processing new data. - Fixed Incremental Read Components not respecting the
normalizesetting when nocolumnsconfig is specified. Also fixed Smart Table meta columns incorrectly appearing in output when usingcolumnsconfig. - Fixed Flow run listing not filtering by Profile and Project path for runtime queries.
🗓️ 2025-11-13
🚀 Features
- 🤖🐐 New OttoPilot experience with onboarding, welcome chat, and dashboard integration. Otto now provides a guided introduction for new users and quick access from the dashboard.
- DuckLake now supports
use_nightlyandforce_installoptions for extension management. Useuse_nightly: truefor latest development builds orforce_install: trueto reinstall the extension.
🌟 Improvements
- 🤖🐐 Otto improvements:
- Jinja templating is now disabled by default for custom rules and agents. Rules with
{{ }}syntax that aren't valid Jinja will no longer silently fail. Addjinja: trueto frontmatter to enable Jinja rendering.
- Jinja templating is now disabled by default for custom rules and agents. Rules with
- Smart Schema processing on DuckDB now uses temporary tables for intermediate operations, reducing write times by 33-47%.
- Flow run data loads faster with improved browser caching.
🛠️ Bug fixes
- 🤖🐐 Otto fixes:
- Fixed Otto Automation failures when no explicit model was configured. Model selection now properly falls back through the priority chain (agent → defaults → Instance → provider).
- Fixed unable to disable Workspace auto-snooze in settings.
- Fixed MotherDuck logo not displaying in Explore tab.
🗓️ 2025-11-06
🛠️ Bug fixes
- Fixed suspended Instance lockout controls to prevent content flashing before redirect.
🗓️ 2025-11-03
🚀 Features
- 🤖🐐 New Otto capabilities:
- Otto agent configuration now supports agent overrides, custom instructions, and configurable
max_turnssettings viaotto.yaml, including commit message generation with context integration.
- Otto agent configuration now supports agent overrides, custom instructions, and configurable
- Write Components now support full refresh operations for object storage (GCS, S3, ABFS), BigQuery, MySQL, Oracle, and PostgreSQL Connection types. Full refresh resets and rebuilds destination tables from scratch.
🌟 Improvements
- Snowflake authentication workflows updated to use key-pair authentication as password-based auth approaches deprecation.
🛠️ Bug fixes
- Flow run errors now include the actual error message instead of generic timeout or segfault messages.
- Fixed DuckDB Connections to PostgreSQL metadata failing with
no password suppliederrors due to race conditions. Atomic file replacement ensures complete password files are written before reading. - Fixed Flow Components in subdirectories not displaying run history due to path resolution issues.
- Fixed Automation run error display formatting. Error messages now render with resize handles and copy buttons.
- Fixed editor focus behavior when saving files or accepting AI changes.
🗓️ 2025-10-27
🚀 Features
- 🤖🐐 New Otto capabilities:
- Otto now generates commit messages using Conventional Commits with type prefixes, scopes, and breaking change indicators.
- Otto agent system updated with improved context gathering that traces symbols and enhanced tool descriptions for error-prone operations like RegEx escaping.
- Otto displays inline file diffs consistently across all AI model providers.
- SQLFrame DataFrame support added across BigQuery, Snowflake, Databricks, and DuckDB Data Planes with Spark-like API and lazy evaluation.
- Project defaults now support Flow runner size configurations using RegEx patterns to match Flow names.
🌟 Improvements
- Added syntax highlighting for
.ascendignoreand other ignore files. - Snowflake authentication updated to use key pair authentication instead of deprecated password method.
- Increased MySQL connection pool size to handle higher concurrent loads, reducing timeout errors for Instance-to-cloud GRPC communications.
- Workspace pane automatically closes docked views when no tabs are present.
- Deployment names in merge menus now match labels used elsewhere in the UI.
- Tab loading logic enhanced with AbortController support for better resource management and error handling.
🛠️ Bug fixes
- Otto fixes:
- Fixed patch parser to detect and correct malformed patch endings with extra
+characters. - Fixed Otto Chat title generation failing silently.
- Fixed commit message generation wrapping text in triple backticks or including commentary. Now outputs clean text without formatting artifacts.
- Fixed patch parser to detect and correct malformed patch endings with extra
- Fixed empty data tables being dropped during maintenance, breaking downstream Components. Tables referenced by committed partitions are now protected from deletion.
- Fixed table creation race conditions causing
Clustering Key has changederrors. Unified SQL generation with DDL locking ensures consistent behavior across Data Planes. - Fixed
Run Flowbutton text not updating when builds became out-of-date. - Fixed delete dialogs remaining open after successful deletions.
- Improved local storage error handling for corrupted data, quota exceeded errors, and other storage failures.
🗓️ 2025-10-20
🚀 Features
- 🤖🐐 New Otto capabilities:
- Otto communication style updated to remove filler phrases like "Certainly!" and "Of course!", with improved context gathering and tool descriptions for error-prone operations.
- Projects now support
.ascendignorefiles to exclude parts of your Project during development.- Profiles also support an
ignorefield for additional ignore patterns.
- Profiles also support an
🌟 Improvements
- Smart Schema support expanded:
- MySQL, Oracle, PostgreSQL, Microsoft SQL Server, BigQuery, Snowflake, and SFTP Read Components now support Smart Schema.
- Smart SQL Transforms, Smart Python Transforms, and Custom Python Transforms now support Smart Schema.
🛠️ Bug fixes
- Fixed Component tests with
severity: warncausing hard failures. Test severity parsing now handles all configuration patterns correctly. - Fixed authorization checks hitting rate limits during rapid UI interactions. Authorization checks are now cached.
- Fixed polling being lost when switching browser tabs. Polling now pauses and resumes based on tab visibility.
- Fixed Project page crashing with
Cannot read properties of undefinederrors when refreshing. Page now handles empty states and removed unnecessary polling. - Fixed Workspace tours breaking when encountering auto-snoozed Workspaces. Tours now detect Workspace state and prompt users to start paused Workspaces.
🗓️ 2025-10-13
🚀 Features
- Added product overview and welcome video.
- Flow configurations now support Flow runner size overrides for custom resource allocation per Flow.
- Added nested subdirectories support for Flow and Component organization with collapsible directory views and summary statistics.

🌟 Improvements
- PostgreSQL authentication updated to use
pgpassfiles with automatic IAM token refresh. - Smart schema now supported on the Databricks Data Plane.
- DuckDB upgraded to version 1.4.1.
🛠️ Bug fixes
- Fixed concurrent DuckDB operations causing segmentation faults due to missing thread locks. Added locking for DDL operations, query execution, and batch insertions.
- Fixed Smart Schema components with NULL partitioning versions failing during concurrent backfills with
Invalid partitioning version: Noneerrors. - Fixed DuckLake Connections on S3 failing after 1 hour due to expired AWS credentials. DuckLake now automatically refreshes credentials every hour.
- Fixed multiple UI memory leaks from Monaco editors, polling handlers, and window event listeners.
- Fixed paused Workspaces timing out when attempting to load Git status, causing 503 errors. Paused Workspaces now display a message instead of attempting to load Git status.

🗓️ 2025-10-06
🚀 Features
- Otto can now send automated email alerts with optional AI-powered explanations.
- Otto conversation limit increased from 25 to 50 maximum turns per request.
🌟 Improvements
- DuckDB now defaults to
max_combined_sql_statements=1when using DuckLake for better performance and resource utilization. Prevents memory issues and CPU usage inefficiencies. - Build performance improved by up to 67% for large projects through global Jinja2 template caching, file I/O optimization, and threading improvements.
- Otto Bedrock integration now supports prompt caching for Anthropic models, reducing costs and latency.
- Flow runner resource allocation now supports configurable size overrides for CPU, memory, and disk allocation per runner.
🛠️ Bug fixes
- Fixed MCP tool call responses failing due to serialization issues with complex data types. JSON serialization now handles all data types correctly.
- Fixed segmentation fault in DuckLake by implementing safer check for partitioning version column existence.
🗓️ 2025-09-29
🚀 Features
- 🤖🐐 New Otto capabilities:
- Claude Sonnet 4.5 model is now the default LLM for Otto.
- Added guided tour for first-time users.

🌟 Improvements
- File upload memory management improved with single-threaded parquet conversion to prevent OOM crashes.
- DuckDB DDL operations now properly locked to prevent race conditions when multiple operations run with task-threads > 1.
- Documentation site redesigned with updated visual styling.

🛠️ Bug fixes
- Fixed BigQuery Read Components with column casting throwing syntax errors due to missing fully qualified table names.
- Fixed BigQuery Flows with concurrent components writing to the same table failing with
Transaction is aborted due to concurrent updateerrors. Added automatic retry logic with exponential backoff. - Fixed
COALESCEexpressions in partitioned Data Plane operations causing SQL type inference issues. AllCOALESCEexpressions now use explicitCAST(NULL AS {type})syntax. - Fixed adding columns to existing Databricks tables failing with
[PARSE_SYNTAX_ERROR]errors. Column addition now works correctly across all Data Planes.
🗓️ 2025-09-22
🚀 Features
- 🤖🐐 New Otto capabilities:
- Otto now supports LLMs across providers with Instance-level model management settings. Configure under
AI & Models.
- Otto now works with Jinja macros, parameters, Automations, Tasks, and SSH Tunnels with updated rules and reduced token usage.
- Otto now supports LLMs across providers with Instance-level model management settings. Configure under
- Smart schema evolution is now the default schema change strategy for Read Components with object storage and Local File Connections on all Data Planes. Data partitions store their own schemas and reconcile type differences without copying data on schema changes.
- Existing Components continue to use the
fullstrategy. New Components default tosmartstrategy.
- Existing Components continue to use the
- Workspace auto-snooze automatically pauses inactive Workspaces after a configurable timeout (5-120 minutes), with detection of ongoing Flow runs to avoid interruption.
- Auto-snooze applies to all new Workspaces with a default timeout of 10 minutes.
🌟 Improvements
- Focus on a Component in the build panel to jump to its location in the Flow Graph, or on a Flow to jump to its location in the Super Graph.

- Data Plane Connections now appear in Flow Connections list. Build info panel displays the number of Connections used in a Flow.
- Lists throughout Ascend Instance now sort alphabetically including Deployment, Project, Git branch, Profile, and Environment selectors.
🛠️ Bug fixes
- PostgreSQL Read Components now preserve array and JSON column types instead of converting to VARCHAR. Added
arrays_as_jsonparameter for non-mappable array data. - Fixed incremental merger resets failing with malformed SQL syntax errors. Qualified table names now generate proper
DROPstatements across Data Planes.
🗓️ 2025-09-15
⚠️ Breaking changes
- GCS and ABFS Connections now use more stable metadata fields (
md5Hash,crc32cfor GCS;content_md5,etagfor ABFS) for fingerprinting to prevent unnecessary re-ingests when storage tiers change. Requires re-ingesting existing data.
🌟 Improvements
- Deployment run pages now link directly to individual Flows instead of the Super Graph.
- Flex Code Flow creation forms streamlined to include only essential fields (name, description, Data Plane Connection, parameters, and defaults).
- BigQuery Data Plane replaced custom UDF logic with native
IFfunctions for better performance. - DuckLake on S3 now uses
httpfsas the default Connection method. - Added local file caching support for DuckLake with S3, GCS, and Azure Blob Storage.
🛠️ Bug fixes
- Fixed DuckDB
SAFE_STRINGmacro creation failing in DuckLake environments with expression depth limit errors. Added Python UDF fallback. - Fixed long-running DuckLake jobs losing connection to metadata database.
- Fixed DuckDB-based ingestion not working with multiple PostgreSQL Components simultaneously.
🗓️ 2025-09-08
🚀 Features
- Added drag-and-drop file upload from computer to file tree.
🌟 Improvements
- Moved Instance status indicator to right side of header next to user menu.
🛠️ Bug fixes
- Fixed
ascend view connection samplecommand failing withpyarrow.lib.ArrowInvaliderror when PostgreSQL tables contain range type columns. Command now converts range types to string representations. - Fixed incremental reads not honoring start values during backfill phases.
🗓️ 2025-09-01
🚀 Features
- MySQL and PostgreSQL databases hosted by AWS can now authenticate using AWS IAM roles.
🛠️ Bug fixes
- Fixed Databricks SQL connector compatibility issue due to renamed API. System now handles both API versions with fallback logic.
- Fixed
partition_templatefunctionality in blob Write Components. Datetime templates are now properly parsed and interpolated.
🗓️ 2025-08-25
🚀 Features
-
🤖🐐 New Otto capabilities: Otto can now be used as an Action in Automations to respond to Flow events, analyze data patterns, and execute actions across multiple platforms:
automation: name: otto-notifications enabled: true triggers: events:
- sql_filter: json_extract_string(event, '$.data.flow') = 'transform-demo'
types:
- FlowRunError
- FlowRunSuccess
actions:
-
type: run_otto name: run-otto config: prompt: >-
Instructions
You are being invoked at the end of a flow run. Your job is to assess changes in flow run behavior, and send a Slack message to keep other users updated. You cannot ask for help or clarification; you must do this end-to-end on your own based on your own judgement. Your last action should always be to post a message to Slack.
Flow run analysis rules
Analyze flow success / failure by fetching the maximum number of flow runs.
-
If the flow run was a success and the previous flow run was also a success, send a funny message congratulating the team on another smooth run.
-
If the flow run was a success and the previous flow run was not, send an exciting and congratulatory messages celebrating the flow is now fixed, and congratulating whichever user did the fixing (check git history).
-
If the flow run was a failure and the previous flow run was also a failure, send a sad message imploring somebody to fix it.
-
If the flow run was a failure and the previous flow run was not, send a big alert message. You should try to identify who broke the flow, and even @ mention them if you can. You should also try to analyze the changes and suggest fixes if possible.
Additionally, you should make heavy use of git history and file reading calls to help track down details that may be relevant.
Slack message and notification
At the end of your analysis, you must post a message to Slack in the appropriate channel.
Your slack post message should:
- include a link to the flow run: https://[runtime.link_url]/flows/[flow_name]/[run_name]
- be formatted for Slack rendering, which is different than markdown
- when @ mentioning users, look up their profile so you can reference their actual id
-
- Otto introduces custom rules for adding special instructions for chat interactions.
- Otto now connects to external MCP servers via configuration files.
- Otto's configuration now uses
otto.yamlfile in a dedicatedottodirectory for centralized agent and MCP server configuration.
🌟 Improvements
- Write Components for blob storage (ABFS, GCS, S3) now support configurable chunk size using the
part_file_rowsfield to optimize performance and avoid OOM errors:
component:
write:
connection: write_s3
input:
name: my_component
flow: my_flow
s3:
path: /some_other_dir/
formatter: json
part_file_rows: 1000
🛠️ Bug fixes
- Fixed database Read Components (PostgreSQL, MySQL, Microsoft SQL Server, Oracle) converting SQL null values to the literal string 'None' when loading query results into PyArrow arrays. Null values are now properly preserved.
- This change affects all pipelines using database Read Components across all Data Planes.
- If you previously added cleanup steps to handle 'None' string values, you can remove them.
🗓️ 2025-06-23
🚀 Features
- 🤖🐐 New Otto capabilities: Otto now renders tool calls, showing which tools are called, their inputs, and outputs.
🌟 Improvements
- Write Components now support improved performance for large uploads through chunked blob storage:
- Paths ending with a filename (e.g.,
.parquet) → single file output (unchanged) - Paths ending with a trailing slash (
/) → chunked output withpart_<chunkid>format - Partition writes now always produce chunked output files
- Paths ending with a filename (e.g.,
- Flows can now be run from Deployment history pages when on the latest Project build.
🛠️ Bug fixes
- Fixed action failures in Automations interrupting the entire workflow. Individual action failures are now isolated.
🗓️ 2025-06-16
🚀 Features
- Private Python package repositories now supported for AWS CodeArtifact and GCP Artifact Registry via
pyproject.tomlfiles. See how-to guide for setup instructions.
🌟 Improvements
- Instance header now displays error when Instance backend is unhealthy:

- Improved error messages for OOM process terminations:
Flow runner process for my_flow/fr-01977f3c-845b-72a1-b225-4327835f8434 exited with code -9.
Exit code -9 usually means the kernel's Out-Of-Memory (OOM) killer terminated the process after it exceeded its memory limit.
Consider increasing the runner size or optimizing the workflow's memory usage.
🛠️ Bug fixes
- Fixed build history calendar days outside the current month not being selectable.
🗓️ 2025-06-09
🛠️ Bug fixes
- Fixed Workspace settings not clearing old run history when switching Projects.
- Fixed status bar on Explore tab showing outdated information. Now updates in real-time.
- Fixed Workspace settings URLs not navigating to correct pages.
- Fixed Workspace or Deployment size settings not being respected.
- Improved "Flow runner not found" error messages to include detailed pod status information (OOM, timeout, unexpected states, API/connection errors).
- Fixed Flow runners staying active when idle. Now automatically shut down when not in use.
- Fixed Git operations hanging indefinitely when repositories became unresponsive. Now timeout automatically.
- Fixed Application parameters not working with Incremental logic in SQL transforms.
- Fixed partition filter and partition value analyzers interfering with each other during concurrent backfills. Now run independently.
- Fixed text parser crashing when given string file paths in Arrow and pandas reads.
🗓️ 2025-06-02
🚀 Features
- 🤖🐐 Otto can now provide SQL linting information via SQLFluff.
- Command-K search now supports navigation to settings pages.
🌟 Improvements
- Improved UI rendering of errors and warnings.
- Added Polars DataFrame support as input/output format in Python transforms.
- Parquet processing now normalizes column names to avoid case conflicts.
- Automation sensors now support timezone configuration.
- Automation failed status now shown when there is no associated Flow run.
🛠️ Bug fixes
- Fixed column case sensitivity handling for Python Read Components on Snowflake.
- Fixed Profile name, Project UUID, and path not being persisted into build info.
- Fixed Transformations with upstream Incremental Read Components not resolving to correct table name.
- Improved Unicode and emoji handling.
- Fixed Component/Run state carrying over from current builds into historical ones.
- Added timezone information to timestamps across the UI.
- Fixed record columns not being resizable in Explore view.
🗓️ 2025-05-26
🚀 Features
- Added syntax highlighting for INI, TOML, and SQLFluff files.
- AWS Managed Vault now supported as Instance or Environment Vault.
- 🤖🐐 New Otto capabilities:
- Otto can now validate YAML files and test Connections.
- Otto automatically configures tools based on environment context (Workspace vs. Deployment).
🌟 Improvements
- Streamlined Python interfaces in Simple Applications for easier migration from regular Flows.
- Added copy button to Connection test errors.
🛠️ Bug fixes
- Fixed multi-line comment parsing in SQL and SQL Jinja files.
- Fixed compatibility issues between
.yamland.ymlfile extensions. - Optimized error stack traces to be more concise.
- Fixed PostgreSQL Connections SSL verification and empty port configuration handling.
- Fixed clickable error links in Component cards within Deployments.
- Fixed arrow keys not working when renaming files.
🗓️ 2025-05-19
🚀 Features
- 🤖🐐 New Otto capabilities:
- Project file health checks including YAML linting and fixes
- Connection testing and issue resolution
- Connection listing and exploration
- Flow and Component execution, monitoring, and troubleshooting
- Components can now have non-data graph dependencies to any other Component.
- Added Git status indicators to file browser and tab bar.
- Retry logic now configurable for all Component types.
- Added pause-all functionality for Deployment Automations.
🌟 Improvements
- Runs table column widths now remember user preferences.
- Improved Automation form workflow.
- Component build errors now provide more specific information about which Component failed.
🛠️ Bug fixes
- Fixed Databricks Connections not reconnecting when encountering "Database Invalid session" errors.
- Fixed file refresh not updating cached and open files.
- Fixed repo save button state not reflecting current state correctly.
- Improved branch listing operation reliability.
- Fixed zooming on individual nodes in expanded Application Component graph tab.
- Fixed Databricks Connections catalog reference handling.
- Fixed UI state consistency issues during rapid save, build, and run operations.
- Fixed MySQL Connections with SSL=True throwing exceptions.
- Fixed table references not using full names in merge operations.
- Improved detection and handling of build failures caused by OOM conditions.
- Fixed empty files causing Project builds to fail.