:sparkles: Features
* Add pinned_environments/default_target_environment + ability to delete env (1360) mykalmax
* Add model name to audit log (1376) datnguye
:beetle: Bug fixes
* Clear timeoutId and callback to avoid zombie timeouts (1375) mykalmax
* Table creation for forward-only snapshots of newly added models izeigerman
* Fix defaul model kind list, add defaults config examples (1374) treysp
* Do not throw on canceled request (1377) mykalmax
* Make interval unit a part of the data hash (1386) izeigerman
* Handle exp.Array when validating unique_key (1388) GeorgeSittas
* Automatic derivation of a partitioning transformation for a time column in BigQuery (1389) izeigerman
* Fix formatting (1394) eakmanrq
* Ensure external macros are resolved correctly (1392) GeorgeSittas
* Num audits detected by sqlmesh audit was incorrect (1400) crericha
* Improve error reporting when validating the connection config (1404) izeigerman
* Use PARTITIONS view to fetch table partitions in the BigQuery adapter (1406) izeigerman
* Sanitized model names before using them as part of Airflow task IDs (1407) izeigerman
* Snapshot table should contain the kind_name enum value, not the enum (1410) crericha
* Add check for key (1408) z3z1ma
:broom: Chore
* Improve Engine Adapter Abstraction for Handling DataFrames (1362) eakmanrq
:alien: Other
* Support dbt singular tests (1348) crericha
* Note macro column name interpolation limitation (1378) treysp
* Chore: bump sqlglot, fix mssql tests and a couple of type hints (1384) GeorgeSittas
* Extend documentation with recent changes to forward-only models (1385) izeigerman
* Clarify need to save model file to see updated lineage (1387) treysp
* Clarify incremental by time model automatic filter (1382) treysp
* Add environment variables to config guide (1393) treysp
* Detect merge conflict (1399) eakmanrq
* Add snowflake private key support (1409) eakmanrq
* Update cli reference plan args (1398) treysp