Run audits concurrently using concurrent_tasks setting by airhorns · Pull Request #5731 · SQLMesh/sqlmesh

@airhorns @claude

When audit_only=True, all audit tasks across all snapshots are flattened
into a single thread pool instead of following DAG ordering. Since audits
are read-only SELECT queries with no side effects, DAG dependencies are
irrelevant and all concurrent_tasks worker slots stay filled.

Per-model audit concurrency is also plumbed through SnapshotEvaluator.audit()
via a new audit_concurrent_tasks parameter (defaults to sequential). The
cross-model path hardcodes this to 1 to avoid nested thread pool
multiplication.

The SnapshotEvaluator parameter ddl_concurrent_tasks is renamed to
concurrent_tasks to reflect its broader scope.

Closes SQLMesh#5468

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>