---
collection: workflow-orchestration
collection_name: Background Jobs & Orchestration
week_start: 2026-10-19
title: CI jobs grow up: per-run budgets, live status and richer sandboxes
release_count: 33
generated: 2026-10-26
canonical: https://releases.sh/collections/workflow-orchestration/digest/2026-10-19
---

# CI jobs grow up: per-run budgets, live status and richer sandboxes

Inngest rewrote how CI jobs execute — every job now runs with its own step budget and typed outputs, while matrices moved under ci.job — and Trigger.dev shipped hosted webhooks, Slack and Linear agents, and an October Node.js security release.

### CI pipelines get a real execution model

Inngest's biggest change of the week landed in its CI SDK, which now gives [each job its own run with a separate step budget](https://github.com/inngest/inngest-js/releases/tag/%40inngest/ci%400.5.0), so long pipelines stop tripping the step limit mid-flight. The same rework lets a matrix's axes be an async function that resolves once per run with the repository and commit — combinations can come from the PR being tested rather than a hardcoded list — and handlers now take a single context object, with jobs returning typed output that downstream jobs read as `from.output`. The matrix API itself consolidated: [ci.matrix() gave way to ci.job({ matrix })](https://github.com/inngest/inngest-js/releases/tag/%40inngest/ci%400.6.0), which keeps the same axes, exclude, include, concurrency and failFast options.

Runners got more useful in parallel. [Cached jobs can expire with cache.maxAge](https://github.com/inngest/inngest-js/releases/tag/%40inngest/ci%400.4.0) so stale snapshots rebuild, `checkout()` and `files()` can read another repository or ref, and duration options accept human strings like "1d" — though bare numeric strings now mean milliseconds, and misuse throws at app boot instead of mid-run. Pull request runs now [check out GitHub's test merge of head into base](https://github.com/inngest/inngest-js/releases/tag/%40inngest/ci%400.6.1), failing loudly when the PR conflicts, and statuses stream queued, running and result states with Cancel and Re-run buttons. On the flag side, functions with `optimizeParallelism: false` [again complete when they return](https://github.com/inngest/inngest-js/releases/tag/inngest%404.25.0) rather than waiting on unawaited steps, and sandboxes gained image selection via `image.inngest()` / `image.custom()`.

A larger shake-up arrived on the SDK side: scores and warnings now write as [per-name `inngest.score.<name>` and `inngest.warning.<code>` metadata kinds](https://github.com/inngest/inngest-js/releases/tag/inngest%404.26.0), which older servers reject — check your server version before upgrading. The same line adds `toolDefinitions()` for Anthropic's tools parameter, experimental `inngest.globals()`, and a sandbox `$` shell that runs each command as a step.

### Pause, replay and stabilize the server

Inngest Server's trio of releases tightened operations. [Functions can be paused](https://github.com/inngest/inngest/releases/tag/v1.47.0) through the REST API, CLI and MCP, with `includeOutput` soft-deprecated for `include=output` on run-list endpoints; stuck-Running runs from transient step-discovery failures and dropped Connect cleanups were fixed alongside. Replay followed a day later with [replays by time range and status added to the v2 API](https://github.com/inngest/inngest/releases/tag/v1.49.0), closing the pause/resume loop, and skipped runs now appear in paging. Between them, [gRPC limits rose so Connect can handle execution requests above 4 MiB](https://github.com/inngest/inngest/releases/tag/v1.48.0), and duplicate Connect execution after an executor failure is fixed by resuming the original lease or buffered response.

### Trigger.dev: security release and agent integrations

Trigger.dev's week was dominated by a security update: [deployed tasks moved onto the October 2026 Node.js releases](https://github.com/triggerdotdev/trigger.dev/releases/tag/v4.7.7), fixing CVE-2026-111497 (an out-of-bounds write in the Brotli decoder) and several TLS hostname verification bypasses — existing deployments keep the old runtime until you redeploy. That release also covers self-hosted webapp and supervisor fixes.

Feature work landed around it. v4.8.0 introduced [hosted webhooks plus Slack and Linear agents for chat.agent](https://trigger.dev/changelog#4-8-0), and the CLI gained a [`tasks trigger` command, `query.dashboards` management and span redaction before telemetry export](https://trigger.dev/changelog#4-7-5). Deployed tasks now [reject certificates from the compromised eMudhra CAs](https://trigger.dev/changelog#4-7-6), `NODE_EXTRA_CA_CERTS` reaches tasks, and Date fields log correctly again. Matching Helm chart bumps tracked the server releases.

### n8n settles into fixes

n8n cut a double-digit run of patches with no single headline. The recurring items: [Postgres nodes no longer overwrite global pgtypes](https://github.com/n8n-io/n8n/releases/tag/n8n%402.45.2), [workers claim the next queue job and its lock atomically](https://github.com/n8n-io/n8n/releases/tag/n8n%402.45.1), and [shutdown resume keys queue outcomes by job](https://github.com/n8n-io/n8n/releases/tag/n8n%402.44.5). The 2.45.0 minor brought [Anthropic thinking turns replayed with their tool arguments](https://github.com/n8n-io/n8n/releases/tag/n8n%402.45.0) and protected-instance editing fixes, while the earlier 2.44.x line [reused log-streaming webhook connections and turned expression spans off by default](https://github.com/n8n-io/n8n/releases/tag/n8n%402.44.4).

## Releases covered

### Inngest

- [Inngest JS SDK @inngest/ci 0.5.0 gives each job its own run](https://github.com/inngest/inngest-js/releases/tag/%40inngest/ci%400.5.0)
- [Inngest JS SDK @inngest/ci 0.6.0 removes ci.matrix() in favor of ci.job({ matrix })](https://github.com/inngest/inngest-js/releases/tag/%40inngest/ci%400.6.0)
- [Inngest CI SDK v0.4.0 adds job caching expiry and cross-repo checkout](https://github.com/inngest/inngest-js/releases/tag/%40inngest/ci%400.4.0)
- [Inngest CI 0.6.1 now tests pull requests as they would be merged](https://github.com/inngest/inngest-js/releases/tag/%40inngest/ci%400.6.1)
- [Inngest JS SDK 4.25.0 restores v3 run completion for optimizeParallelism: false](https://github.com/inngest/inngest-js/releases/tag/inngest%404.25.0)
- [Inngest JS SDK 4.26.0 changes score metadata kinds and requires newer server](https://github.com/inngest/inngest-js/releases/tag/inngest%404.26.0)
- [Inngest Server v1.47.0 adds function pause API and soft-deprecates includeOutput](https://github.com/inngest/inngest/releases/tag/v1.47.0)
- [Inngest Server v1.49.0 adds function replays and resume to v2 API](https://github.com/inngest/inngest/releases/tag/v1.49.0)
- [Inngest Server v1.48.0 raises gRPC limits and resumes Connect requests across executor recovery](https://github.com/inngest/inngest/releases/tag/v1.48.0)

### n8n

- [n8n@2.45.2](https://github.com/n8n-io/n8n/releases/tag/n8n%402.45.2)
- [n8n@2.45.1](https://github.com/n8n-io/n8n/releases/tag/n8n%402.45.1)
- [n8n@2.44.5](https://github.com/n8n-io/n8n/releases/tag/n8n%402.44.5)
- [n8n@2.45.0](https://github.com/n8n-io/n8n/releases/tag/n8n%402.45.0)
- [n8n@2.44.4](https://github.com/n8n-io/n8n/releases/tag/n8n%402.44.4)

### Trigger.dev

- [trigger.dev v4.7.7](https://github.com/triggerdotdev/trigger.dev/releases/tag/v4.7.7)
- [Trigger.dev v4.8.0](https://trigger.dev/changelog#4-8-0)
- [Trigger.dev v4.7.5](https://trigger.dev/changelog#4-7-5)
- [Trigger.dev v4.7.6](https://trigger.dev/changelog#4-7-6)
