Changelog

Releases of the Zipline engine and platform, pulled directly from GitHub.

v1.27.2

October 19, 2026

What's Changed

Minor features

  • Wire ModelTransforms-source GroupBys correctly into the DAG by @piyush-zlai in #2187
  • Emit join-level fetch null/total counters without the feature tag by @sean-zlai in #2257
  • Synchronize Teams for UI-managed webhooks by @david-zlai in #2049

Bug fixes

  • Authenticate Redis bulk loader from executor environment by @chewy-zlai in #2225
  • Say "not logged in" when a hub answers with its login page by @diya-zipline in #2240
  • Stop quoting {VAR} placeholders in EMR Serverless overflow --conf flags by @kumar-zlai in #2256

Full Changelog: v1.27.1...v1.27.2

What's Changed

Minor features

  • Add UI-managed workflow webhooks with durable delivery by @david-zlai in #1351

Bug fixes

  • Crucible: resolve Ray, Flink and eval secrets in the job; fix Ray log scope by @diya-zipline in #1384
  • fix(eval): better handling of pure parquet by @cristian-zlai in #1392
  • Improve metric chart rate interval by @sean-zlai in #1394
  • Keep secret placeholders for the job when the hub env value is empty by @kumar-zlai in #1396

Full Changelog: v1.27.1...v1.27.2

v1.27.1

October 15, 2026

What's Changed

Minor features

  • Give the Ray trainer structured logs and a pass/fail bar by @diya-zipline in #2226
  • [Online] Serve joins whose left is a JoinSource by @BenMagyar in #2242
  • Run monolith join parts N at a time (spark.chronon.join.part_parallelism) by @BenMagyar in #2245

Bug fixes

  • Point crucible at its own Databricks secrets, not canary's by @diya-zipline in #2235
  • Snap a bare --end-ds to the end of the day in zipline hub by @sean-zlai in #2224
  • Avoid dropping tables for nested nullability-only schema changes by @varant-zlai in #2244
  • Fix Kinesis connector lz4-java vulnerabilities by @cristian-zlai in #2243
  • Make the Instacart model train end to end on crucible Ray, with in-job secrets by @diya-zipline in #2238
  • Update Flink pkg deps to fix crucible gigatile Iceberg CNF by @piyush-zlai in #2247
  • Fix computation range in the engine when recompute_days is set by @kumar-zlai in #2248
  • Check pushed state against the branch's upstream, not its name by @diya-zipline in #2239

Full Changelog: v1.27.0...v1.27.1

What's Changed

Minor features

  • [Crucible] Apply mode-scoped quotas to compute pods by @tchow-zlai in #1341
  • [Crucible] Select shared compute through stable role labels by @tchow-zlai in #1378

Bug fixes

  • Split Ray head and worker logs on the container label Hub already uses by @diya-zipline in #1375
  • Always resolve job secrets in-job; drop deferSecretsToJob by @kumar-zlai in #1377
  • Fill non-secret conf placeholders from the hub env in the batch submit path by @kumar-zlai in #1380
  • Add Crucible compute-plane monitor tab by @piyush-zlai in #1382
  • Normalize workflow ranges to the terminal partition grid by @sean-zlai in #1362
  • Pin a scheduled run's upstream nodes to the conf version it was scheduled with by @diya-zipline in #1374
  • Run Crucible training once and release Ray pods when the job ends by @diya-zipline in #1383
  • Preserve kv.tablePrefix across backend selection by @cristian-zlai in #1391

Full Changelog: v1.27.0...v1.27.1

v1.27.0

October 8, 2026

What's Changed

Minor features

  • Give agents verbs for trials, and teach them not to self-report metrics by @diya-zipline in #2204
  • Add an Instacart pipeline, so a measured score can move for a reason by @diya-zipline in #2207
  • [Redis writes 2/4] Add durable state and mutation primitives by @BenMagyar in #2136

Bug fixes

  • feat: skills-eval for agent, use it to reduce size of skills by @cristian-zlai in #2195
  • Give the GigaTile Iceberg source its RowData type information by @BenMagyar in #2216
  • grype: ignore GHSA-9437-39hj-3c93 (Spark History Server XSS) until Spark upgraded by @piyush-zlai in #2223
  • Giga tile Flink: multi-catalog Iceberg source + overwrite-aware polling by @piyush-zlai in #2222
  • Extend Py GroupBy configs to support setting gigatile mode + example confs by @piyush-zlai in #2221
  • fix: bump spark4 jackson to 2.21.7 (GHSA-p6pp-m3f8-5c89, GHSA-cxp5-3px4-pw24) by @piyush-zlai in #2228
  • feat(cli): skip sync by @cristian-zlai in #2227

Full Changelog: v1.26.0...v1.27.0

What's Changed

Minor features

  • Trials: schema-backed experiment tracking, the API, and the UI by @diya-zipline in #1356
  • Say why a failed experiment failed, and on which engine by @diya-zipline in #1359
  • Add bulk workflow cancellation end to end by @sean-zlai in #1361
  • Split Ray logs into head and worker views by @diya-zipline in #1370
  • Give a trial's confs and features the identity a name alone lacks by @diya-zipline in #1360

Bug fixes

  • ci: scan eval-aws, eval-azure and Spark 4 AWS canary images with grype by @piyush-zlai in #1354
  • Add workflow duration display by @sean-zlai in #1355
  • Add cancel workflow action to workflow detail view by @sean-zlai in #1358
  • Update better-auth to 1.7.7 by @sean-zlai in #1363
  • Add workflow cancellation inside nested workflow views (drilldown drawer) by @sean-zlai in #1364
  • Disable orchestrator sensor retries for new workflows by @tchow-zlai in #1366
  • feat(orchestration): forward Iceberg catalog config to Flink streaming jobs by @piyush-zlai in #1369
  • Say "that namespace does not exist" instead of "forbidden" by @diya-zipline in #1371
  • fix: grype scan failures — spark 3.5.8, frontend npm overrides, spark4 jackson 2.21.7 by @piyush-zlai in #1373
  • fix(eval): concurrent isolation by @cristian-zlai in #1372

Full Changelog: v1.26.0...v1.27.0

v1.26.0

September 29, 2026

What's Changed

Minor features

  • Label the CTR example with what happened, not with rand() by @diya-zipline in #2209
  • Resolve secrets in the job through vault refs by @kumar-zlai in #2211

Bug fixes

  • Put the CTR model in the team its training data belongs to by @diya-zipline in #2203
  • Branching and deployment flow doc by @piyush-zlai in #2180
  • fix: bump jackson-databind to 2.18.10 (GHSA-q4xh-88c3-wmh7 et al) by @piyush-zlai in #2212
  • fix: grype spark4 — jackson 2.21.6, log4j-layout-template-json pin, strip org.jline pom metadata by @piyush-zlai in #2213

Full Changelog: v1.25.0...v1.26.0

What's Changed

Minor features

  • Route Crucible workloads to team namespaces by @tchow-zlai in #1335
  • Defer secret resolution to the job on the EMR Serverless route by @kumar-zlai in #1346
  • Add trials and experiments schema with its DAO by @diya-zipline in #1322

Bug fixes

  • Strip shaded JLine builtins from eval and Azure hub assemblies by @piyush-zlai in #1340
  • Make the demo data something a model can actually learn from by @diya-zipline in #1339
  • Surface Ray logs and dashboard links in Hub by @diya-zipline in #1317
  • Make the local Hub stack usable out of the box by @diya-zipline in #1331

Full Changelog: v1.25.0...v1.26.0

v1.25.0

September 24, 2026

What's Changed

Bug fixes

  • fix(integration): use raw_decode to tolerate trailing output after workflowId JSON by @piyush-zlai in #2205
  • Share sensor compute across ranges on the same grid by @tchow-zlai in #2162

Full Changelog: v1.24.1...v1.25.0

What's Changed

Minor features

  • Add conf archiving and localStorage filter persistence by @sean-zlai in #1330

Bug fixes

  • ci: set ZIPLINE_ALLOW_DIRTY=1 for integration test jobs by @piyush-zlai in #1334
  • Accept single query values for list params in Hub request parsing by @piyush-zlai in #1338
  • Raise Hub request body limit and accept gzip request bodies by @piyush-zlai in #1337

Full Changelog: v1.24.1...v1.25.0

v1.24.1

September 23, 2026

What's Changed

Bug fixes

  • Avoid per-request GroupBy deep copy in GroupByFetcher by @BenMagyar in #2194
  • Name the trainer example for the business, not the runtime by @diya-zipline in #2193
  • Revert trigger fire-on-window-close from #1575 by @piyush-zlai in #2201
  • Set up guardrail around flagging unpushed changes by @piyush-zlai in #2199

Full Changelog: v1.24.0...v1.24.1

What's Changed

Minor features

  • Give each model version its own output directory by @diya-zipline in #1328

Bug fixes

  • Route Crucible pods to the submitting team's node pool by @kumar-zlai in #1325

Full Changelog: v1.24.0...v1.24.1

v1.24.0

September 21, 2026

What's Changed

Minor features

  • Add streaming Flink runtime for ModelTransforms-source GroupBys by @piyush-zlai in #2186

Bug fixes

  • Make agent feature edits reach CTR training; fix click-history clock by @diya-zipline in #2181
  • Correct the activity clock at the source instead of forking the GroupBy by @diya-zipline in #2183
  • Score the CTR model on a held-out day instead of nothing by @diya-zipline in #2182
  • fix(spark): skip log rows with unknown schema_hash instead of failing the flattener by @nikhil-zlai in #2185
  • [Spark 4] Ship AWS engine artifacts in the release image by @tchow-zlai in #2189

Full Changelog: v1.23.4...v1.24.0

What's Changed

Bug fixes

  • Tag job submission/completion metrics with workflow branch by @piyush-zlai in #1321
  • fix(eval): s3a checks + contextual sources by @cristian-zlai in #1323

Full Changelog: v1.23.4...v1.24.0

v1.23.4

September 17, 2026

What's Changed

Bug fixes

  • Rename KV publication override flag by @tchow-zlai in #2174
  • Address remaining CTR and training review findings by @diya-zipline in #2179

Full Changelog: v1.23.3...v1.23.4

What's Changed

Bug fixes

  • ui(stats): set a category for complex features by @cristian-zlai in #1319
  • Streamline timeline partition and workflow payloads by @sean-zlai in #1309

Full Changelog: v1.23.3...v1.23.4

v1.23.3

September 15, 2026

What's Changed

Minor features

  • Add MegaTile streaming pipeline: 2 point gets instead of prefix scan by @nikhil-zlai in #1627
  • [Redis writes 1/4] Define batch modes and publication contract by @BenMagyar in #2135
  • Expose staging-query force overwrite in the CLI by @tchow-zlai in #2154
  • Publish Bigtable KV uploads with version timestamps by @tchow-zlai in #2155
  • GigaTile: push-based serving — design doc, core processor, Flink wiring by @nikhil-zlai in #1645

Bug fixes

  • Right-size GCP Dataproc and AWS EMR canary clusters by @tchow-zlai in #2153
  • Align EMR Serverless initial executors with canary cap by @tchow-zlai in #2156
  • Fix Iceberg partition column case resolution by @diya-zipline in #2079
  • Add opt-in DELTA temporality knob for OTLP metrics by @bobbetter in #2157
  • [Spark 4] Run Crucible compute on Spark 4 by @tchow-zlai in #2152
  • Add aws_databricks derivations join + ctr_labels SQ; publish Spark 4 cloud_aws jar per dev VERSION by @piyush-zlai in #2163
  • Add sub-daily dayoffset canary confs by @kumar-zlai in #2167
  • [Spark 4] Align Flink native dependencies by @tchow-zlai in #2168
  • Add AWS TRAIN_MODEL hello-world canary and Hub integration test by @diya-zipline in #2158
  • Pass submission context to direct model training by @diya-zipline in #2176
  • [Spark 4] Select Spark 4 Flink dependencies for Crucible by @tchow-zlai in #2170
  • Add AWS CTR training through Hub and Ray by @diya-zipline in #2161
  • improv(stats): Compute nulls on complex types by @cristian-zlai in #2178
  • Grid-floor non-string ds in scanDistinctPartitions fallback by @piyush-zlai in #2177

Full Changelog: v1.23.2...v1.23.3

What's Changed

Minor features

  • UI: Show online joins from fetcher on monitor overview with detail drawers showing per-group batch data status by @sean-zlai in #1303
  • Route TRAIN_MODEL directly through Crucible (Slice B) by @diya-zipline in #1297
  • Harden direct Ray training submissions and trainer archives by @diya-zipline in #1307

Bug fixes

  • Prevent feature canary runs from promoting stable by @tchow-zlai in #1300
  • improv(crucible): different jar manifest spark3/4 by @cristian-zlai in #1311
  • improv(eval): address staging query failure on quickstart by @cristian-zlai in #1306
  • feat(aws): fetcher with logging by @cristian-zlai in #1316

Full Changelog: v1.23.2...v1.23.3

v1.23.2

September 4, 2026

What's Changed

Bug fixes

  • [Spark 4] Add source compatibility CI by @tchow-zlai in #2142
  • Add DirectTrainingSubmitter next to TrainingRequest by @diya-zipline in #2141
  • [Spark 4] Apply Delta partial-stats data skipping by @tchow-zlai in #2144
  • Revert Flink TaskManager memory back to 4G by @piyush-zlai in #2149
  • [Spark 4] Use official Delta runtime for Crucible AWS by @tchow-zlai in #2145
  • [Spark 4] Use official UC and Iceberg runtimes for Crucible AWS by @tchow-zlai in #2146
  • [Spark 4] Publish a consistent Crucible engine set by @tchow-zlai in #2147
  • Resolve GroupBy status via serving info instead of CHRONON_METADATA conf by @piyush-zlai in #2150
  • [Spark 4] Build Crucible artifacts in the canonical build job by @tchow-zlai in #2151

Other changes

  • Add Kafka tasks parallelism override by @JoeTime17 in #2148

New Contributors

  • @diya-zipline made their first contribution in #2141

Full Changelog: v1.23.1...v1.23.2

What's Changed

Bug fixes

  • [Spark 4] Add Platform source compatibility CI by @tchow-zlai in #1295
  • [Spark 4] Publish and select AWS Hub and Eval images by @tchow-zlai in #1296
  • Expose batch-table GC days override to AWSCleanupVerticle by @piyush-zlai in #1299

Full Changelog: v1.23.1...v1.23.2

v1.23.1

September 2, 2026

What's Changed

Bug fixes

  • Yank sensitive config values from Vertx /config endpoint response by @piyush-zlai in #2134
  • [Spark 4] Deprecate configurable write formats by @tchow-zlai in #1661
  • [Spark 4] Preserve query semantics across Spark 3 and Spark 4 by @tchow-zlai in #2140
  • improv(flink): memory settings for dataproc submitter by @cristian-zlai in #2133

Full Changelog: v1.23.0...v1.23.1

What's Changed

Bug fixes

  • Redact sensitive UI environment variables by @sean-zlai in #1291
  • fix(orchestration): ask a producer about its own grid everywhere by @kumar-zlai in #1280
  • Convert Chronon training requests to Crucible Ray requests by @diya-zipline in #1283
  • [Spark 4] Make Platform eval source-compatible with Spark 3 and 4 by @tchow-zlai in #1293
  • fix(eval): proj and non-proj allowed in wheres by @cristian-zlai in #1294

New Contributors

  • @diya-zipline made their first contribution in #1283

Full Changelog: v1.23.0...v1.23.1

v1.23.0

August 31, 2026

What's Changed

Minor features

  • Add opt-in BatchGetItem path for DynamoDBKVStoreImpl.doGetLookups by @piyush-zlai in #2114
  • KVStore.cleanupTables + DynamoDB batch-table sweep by @piyush-zlai in #2128

Bug fixes

  • Pipeline Redis batch and streaming reads by @BenMagyar in #2095
  • fix(flink): prevent empty Flink manifest on restart by @cceasy in #2116
  • Wait for DynamoDB replicas ACTIVE in bulkPut by @piyush-zlai in #2125
  • Isolate TTL cache refresh execution by @BenMagyar in #2092
  • Strip executionInfo from Join metadata on KV upload by @piyush-zlai in #2126
  • Use 4G TaskManagers for canary configs by @tchow-zlai in #2131
  • Scheduled refresher for DynamoDB batch table registry pointer by @piyush-zlai in #2129
  • Make UNIQUE_TOP_K duplicate resolution deterministic by @tchow-zlai in #2130

Other changes

  • feat(cloud_gcp): forward spark.bigtable.* confs to the BigTable bulk-load writer by @cceasy in #2127

Full Changelog: v1.22.0...v1.23.0

What's Changed

Minor features

  • feat(eval): bigquery setups allowed + tests for aliases by @cristian-zlai in #1274
  • CleanupVerticle + AWS DynamoDB batch-table sweep by @piyush-zlai in #1287
  • UI: Monitor chart filters by @sean-zlai in #1289
  • UI: Add date range filtering to home and workflow views by @sean-zlai in #1290
  • Site: Add /docs/changelog page for GitHub releases by @sean-zlai in #1284

Bug fixes

  • Upgrade frontend deps (notable Better Auth to 1.7) by @sean-zlai in #1288

Full Changelog: v1.22.0...v1.23.0

v1.22.0

August 20, 2026

What's Changed

Bug fixes

  • last values with sub-daily offset should write with batch end by @BenMagyar in #2109
  • Use latest key filter snapshot for uploads by @BenMagyar in #2087
  • Patch Iceberg HttpComponents security vulnerabilities by @nikhil-zlai in #2112
  • Exclude metaData recursively from semantic hashes by @kumar-zlai in #2111
  • Increase GCP integration executor memory by @tchow-zlai in #2113
  • Align chained join schemas with response precedence by @BenMagyar in #2118
  • Tweak IonWriter to add ttl field by @piyush-zlai in #2119
  • Fix nightly Grype failures: bump netty to 4.1.137.Final by @piyush-zlai in #2121
  • Add env var toggle to disable fetcher batch IR cache by @piyush-zlai in #2120
  • Add pre-traffic warmup hook to FetcherVerticle by @piyush-zlai in #2104
  • Bump test_run_adhoc timeout to 1800s by @david-zlai in #2122

Full Changelog: v1.21.1...v1.22.0

What's Changed

Minor features

  • UI: Add schedule view filtering and sorting by @sean-zlai in #1265
  • Add schedule state filtering to conf list by @sean-zlai in #1277

Bug fixes

  • Pin httpcore5 to fix Grype scans by @tchow-zlai in #1268
  • Check cancel streaming eligibility server-side by @sean-zlai in #1270
  • bug(eval): revise fields available for derivations by @cristian-zlai in #1273
  • Patch Platform images for Grype HTTP advisories by @nikhil-zlai in #1271
  • ci: increase Mill heap for eval assembly by @tchow-zlai in #1275
  • ci: isolate Mill assembly builds by @tchow-zlai in #1276
  • ci: exclude NVMe stress from standard AWS Canary by @tchow-zlai in #1278
  • ci: use large runner for jar builds by @tchow-zlai in #1279

Full Changelog: v1.21.1...v1.22.0

v1.21.2

August 13, 2026

What's Changed

Bug fixes

  • Add Flink latency stage metrics by @german-krikorian-ck in #2085
  • Register Iceberg table broadcast payloads with JavaSerializer in ChrononKryoRegistrator by @nikhil-zlai in #2090
  • Cast request keys before online derivations by @BenMagyar in #2089
  • Normalize numeric Catalyst inputs to declared types by @BenMagyar in #2088
  • Reuse Avro codecs in fetch path by @BenMagyar in #2094
  • Reuse JavaFetcher metric contexts by @BenMagyar in #2098
  • Cache localized Catalyst UDF jars by @BenMagyar in #2093
  • Configure Redis pools without borrow-time pings by @BenMagyar in #2097
  • Map Dataproc SETUP_DONE to JobStatusType.PENDING by @david-zlai in #2103
  • Fix online-suite session-contamination flake: advertise loopback in CatalystUtil by @nikhil-zlai in #2106

Full Changelog: v1.20.1...v1.21.2

What's Changed

Bug fixes

  • UI: UTC dates by @sean-zlai in #1263

Full Changelog: v.1.21.0...v1.21.2

v1.21.1

August 12, 2026

What's Changed

Bug fixes

  • Add Flink latency stage metrics by @german-krikorian-ck in #2085
  • Register Iceberg table broadcast payloads with JavaSerializer in ChrononKryoRegistrator by @nikhil-zlai in #2090
  • Cast request keys before online derivations by @BenMagyar in #2089
  • Normalize numeric Catalyst inputs to declared types by @BenMagyar in #2088
  • Reuse Avro codecs in fetch path by @BenMagyar in #2094
  • Reuse JavaFetcher metric contexts by @BenMagyar in #2098
  • Cache localized Catalyst UDF jars by @BenMagyar in #2093
  • Configure Redis pools without borrow-time pings by @BenMagyar in #2097
  • Map Dataproc SETUP_DONE to JobStatusType.PENDING by @david-zlai in #2103
  • Fix online-suite session-contamination flake: advertise loopback in CatalystUtil by @nikhil-zlai in #2106

Full Changelog: v1.20.1...v1.21.1

What's Changed

Minor features

  • UI: Log level improvements by @sean-zlai in #1252

Bug fixes

  • Determine streaming node skipped state by latest step CTRL-301 by @kumar-zlai in #1251
  • Add StepTracker regression test for async cluster creation failure by @david-zlai in #1245
  • fix(orchestration): don't finish daily deploy workflows while batch uploads are unfilled by @nikhil-zlai in #1255
  • Run NVMe stress in nightly AWS e2e CTRL-201 by @tchow-zlai in #1197
  • Fix frontend Grype vulnerabilities by @nikhil-zlai in #1254
  • fix(orchestration): gate batch children of a running stream on the stream's own upstream deps by @kumar-zlai in #1257
  • fix(orch): don't demote Running adhoc streaming step to Submitted on transient PENDING by @david-zlai in #1253
  • Resolve latest branch node hash on streaming crash-recovery retriggers by @kumar-zlai in #1261
  • fix(orchestration): express node plan ranges on the producer's own grid by @nikhil-zlai in #1258
  • UI: UTC dates by @sean-zlai in #1263

Full Changelog: v1.20.1...v1.21.1

v.1.21.0

August 12, 2026

What's Changed

Bug fixes

  • Add Flink latency stage metrics by @german-krikorian-ck in #2085
  • Register Iceberg table broadcast payloads with JavaSerializer in ChrononKryoRegistrator by @nikhil-zlai in #2090
  • Cast request keys before online derivations by @BenMagyar in #2089
  • Normalize numeric Catalyst inputs to declared types by @BenMagyar in #2088
  • Reuse Avro codecs in fetch path by @BenMagyar in #2094
  • Reuse JavaFetcher metric contexts by @BenMagyar in #2098
  • Cache localized Catalyst UDF jars by @BenMagyar in #2093
  • Configure Redis pools without borrow-time pings by @BenMagyar in #2097
  • Map Dataproc SETUP_DONE to JobStatusType.PENDING by @david-zlai in #2103
  • Fix online-suite session-contamination flake: advertise loopback in CatalystUtil by @nikhil-zlai in #2106

Full Changelog: v1.20.1...v.1.21.0

v1.20.1

August 7, 2026

What's Changed

Minor features

  • feat: Per-aggregation filter conditions in GroupBy by @cceasy in #1977

Bug fixes

  • CTRL-281: Add hostname to OTLP attributes for deduping on multipod by @cristian-zlai in #2082
  • Surface async Dataproc cluster creation failures by @david-zlai in #2080
  • CLI: Fix auth behind JWT-only API gateways by @sean-zlai in #1985

Full Changelog: v1.20.0...v1.20.1

What's Changed

Bug fixes

  • Surface streaming semanticHash conflict on the failing workflow CTRL-278 by @kumar-zlai in #1248
  • ci: serialize nightly AWS e2e runs to prevent shared-state collisions by @kumar-zlai in #1247
  • Auth: Fix zipline CLI auth behind JWT-only API gateways by @sean-zlai in #1153

Full Changelog: v1.20.0...v1.20.1

v1.20.0

July 30, 2026

What's Changed

Minor features

  • feat(aws): add Redis/ElastiCache KV store support by @piyush-zlai in #2074
  • Re-enable Hive UDF support in fetcher + flink by @piyush-zlai in #2031

Bug fixes

  • Bypass FutureConverters on hot fetch path to avoid ForkJoinPool hop by @piyush-zlai in #2069
  • handle v2 delta stats for readiness checks by @BenMagyar in #2046
  • setting up benchmark path for redis kv impl by @BenMagyar in #2071
  • Validate join request key schemas before Avro encoding by @tchow-zlai in #2056
  • Fix nightly Grype failure: force lz4-java 1.11.1 in kinesis connector by @piyush-zlai in #2078
  • Cache catalyst planning per query instead of per CatalystUtil instance by @nikhil-zlai in #2066

Full Changelog: v1.19.1...v1.20.0

What's Changed

Minor features

  • UI: Dynamic workflow/conf status by @sean-zlai in #1233

Bug fixes

  • Fix Flink cold-start ValidationError: propagate savepoints dir in CrucibleSubmitter by @piyush-zlai in #1235
  • Progress the steps that satisfy constraints when one step in a batch violates one by @nikhil-zlai in #1237
  • Dedupe retriggered streaming steps by node in StreamingStepExecutor CTRL-272 by @kumar-zlai in #1224
  • fix(orch): reconcile StreamingRetrying steps when deploy schedule is removed by @david-zlai in #1238
  • feat(aws): add Redis/ElastiCache KV store support for hub and orchestration by @piyush-zlai in #1236
  • Terminate workflow on conflicting active streaming step CTRL-278 by @kumar-zlai in #1239
  • UI: Fix status refresh, improve node details view by @sean-zlai in #1241

Full Changelog: v1.19.1...v1.20.0

v1.19.1

July 27, 2026

What's Changed

Bug fixes

  • Log output schema instead of df.show() after Join backfill by @david-zlai in #2062
  • Surface branch and effective engine version as k8s labels on Flink jobs + wait for job manager deployment status error transitions by @piyush-zlai in #2057
  • Fix nightly Grype failures: bump jackson-databind and jetty by @piyush-zlai in #2063
  • Add zipline admin doctor infra-health grouped deployment checks by @kumar-zlai in #2061
  • Deduplicate contextual GroupBy requests in bulk fetchJoin by @piyush-zlai in #2064
  • Add DynamoDB SDK metrics bridge into Chronon OTel pipeline by @piyush-zlai in #2065
  • fix(online): keep serving existing metadata when a TTLCache refresh fails by @cceasy in #2058

Full Changelog: v1.19.0...v1.19.1

What's Changed

Bug fixes

  • ci: nightly tracks latest release + Slack on failure only by @kumar-zlai in #1219
  • Crucible Flink ports for label support + jmDeploymentStatus = error transitions by @piyush-zlai in #1214
  • ci: gate nightly on zipline doctor infra-health + Slack warnings by @kumar-zlai in #1220
  • Fix nightly Grype failures: eval jackson drift + jetty-security ignore by @piyush-zlai in #1227
  • Revert "Annotate registered steps with call site for failure tracing" by @david-zlai in #1232

Full Changelog: v1.19.0...v1.19.1

v1.19.0

July 23, 2026

What's Changed

Bug fixes

  • Skip System.exit in cluster deploy mode to fix YARN status reporting by @cceasy in #1844
  • Throttle warn/error logging on the fetcher request hotpath by @piyush-zlai in #2051
  • Backfill day-for-day dep for ModelTransform EVENTS sources by @david-zlai in #2059

Full Changelog: v1.18.1...v1.19.0

What's Changed

Minor features

  • Show node metadata in details / compare view (along with contents) by @sean-zlai in #1216

Bug fixes

  • Fix admin upgrade data-plane not picking up the latest engine version by @piyush-zlai in #1211
  • UI: Timeline overview status order by @sean-zlai in #1212

Full Changelog: v1.18.1...v1.19.0

Page 1 of 3
Older