Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
02a64f2
Admin API: list connected workers and queued demand (#2804)
amankrx Sep 28, 2026
a7cc44d
Placement: least_loaded and best_fit allocation strategies, typed pro…
amankrx Sep 28, 2026
5ef7a83
Redis scheduler store: RESP3 cursor pages, the retention default, an …
amankrx Sep 28, 2026
2762510
Matching pass: room that opens mid-pass goes to the oldest waiting ac…
amankrx Sep 28, 2026
2bfa020
GoingAway with a drain flag, reconnect backoff with jitter, and a shu…
amankrx Sep 28, 2026
a21d82c
Dispatch is acknowledged or declined by the worker (#2808)
amankrx Sep 29, 2026
e6aa38a
Worker: kill the whole process group when an action times out or is c…
amankrx Sep 29, 2026
f10c7b7
Worker: bound output capture, upload fan-out, precondition scripts an…
amankrx Sep 29, 2026
74688d6
docs(llms): regenerate llms.txt, llms-small.txt and llms-full.txt (#2…
github-actions[bot] Sep 29, 2026
fcdccc8
Worker: soft memory enforcement against the reservation, and a disk g…
amankrx Sep 29, 2026
3ff63f1
Give the oversized-upload store tests the 30 s deadline the third alr…
amankrx Sep 29, 2026
d86ff4f
Worker advertises CPU and memory from its own cgroup limits (#2820)
amankrx Sep 29, 2026
de7a540
Worker readiness follows scheduler registration (#2821)
amankrx Sep 29, 2026
9a95e29
Worker: SIGTERM grace before the kill, output kept, a TMPDIR per acti…
amankrx Sep 29, 2026
5aa89ad
docs(llms): regenerate llms.txt, llms-small.txt and llms-full.txt (#2…
github-actions[bot] Sep 29, 2026
4fe0a27
Worker reaps the zombies actions leave behind, and an action's stragg…
amankrx Sep 29, 2026
c79e3bb
Namespaces: each action gets a private /tmp, its own tmp directory bo…
amankrx Sep 30, 2026
7bd3c54
Worker: a disk soft limit, and peak_disk_kb from the files an action …
amankrx Sep 30, 2026
3c52ee1
Scheduler: memory escalation with retry budgets by cause, the whole w…
amankrx Sep 30, 2026
035dd63
Persistent workers: a configurable pool with an idle sweeper, the act…
amankrx Sep 30, 2026
59cbad2
Historical resource scheduler: hints by digest keys, size classes wit…
amankrx Sep 30, 2026
938c56f
docs(llms): regenerate llms.txt, llms-small.txt and llms-full.txt (#2…
github-actions[bot] Sep 30, 2026
9a03932
Worker: build the cleanup mark's guard after the lock is released (#2…
amankrx Sep 30, 2026
fd6530e
Store: a read that stops short of the digest's size is an error, not …
amankrx Sep 30, 2026
b4a5468
Worker: read capacity and free memory from the worker's own cgroup di…
amankrx Sep 30, 2026
82240c6
Worker: bound the input fetch with max_download_timeout and let a kil…
amankrx Sep 30, 2026
181a1d3
Support queueing-service through an opt-in gRPC event sink (#2811)
MarcusSorealheis Sep 30, 2026
5b4e555
Give a live worker a grace period to report its own timeout (#2826)
rohnnyjoy Oct 1, 2026
bd1bb34
Store: a fast tier that ends short on a digest resumes from the slow …
amankrx Oct 1, 2026
389cf73
Worker: a stalled scheduler connection reconnects instead of leaving …
amankrx Oct 1, 2026
521838c
Release NativeLink v1.7.3 (#2858)
amankrx Oct 1, 2026
67e4744
docs(config-reference): regenerate for NativeLink v1.7.3 (#2859)
github-actions[bot] Oct 2, 2026
5aaf0f8
docs(llms): regenerate llms.txt, llms-small.txt and llms-full.txt (#2…
github-actions[bot] Oct 2, 2026
46539bd
chore(deps): update dependency typescript to v7 (#2863)
renovate[bot] Oct 2, 2026
d54ab05
chore(deps): update rust crate serial_test to v4 (#2865)
renovate[bot] Oct 2, 2026
b9a0b1e
Disable Bazel disk cache when nativelink cloud cache is enabled (#2864)
palfrey Oct 2, 2026
83c1f81
Azure store: bound a read to the bytes the digest declares and resume…
amankrx Oct 3, 2026
0273fad
ci(nix): warm the Bazel Dev lane from the remote cache via hermetic t…
b7r6 Oct 3, 2026
ddda674
Merge branch 'main' into ci/bazel-dev-warming
b7r6 Oct 3, 2026
a44e37e
ci(bazel): warm the shared cache under the hermetic toolchain identit…
b7r6 Oct 3, 2026
dd4ea22
ci(bazel): warm the shared cache under the hermetic toolchain identit…
b7r6 Oct 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/actions/setup-nativelink-cloud/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ inputs:

outputs:
enabled:
description: "'true' when a user.bazelrc was written, else 'false'."
description: "'true' when remote cache or execution is enabled, else 'false'."
value: ${{ steps.configure.outputs.enabled }}

runs:
Expand Down
47 changes: 30 additions & 17 deletions .github/workflows/native-bazel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,8 @@ jobs:
- name: Free disk space
uses: ./.github/actions/free-disk

- name: Setup Bazel
uses: >- # v0.19.0
bazel-contrib/setup-bazel@c5acdfb288317d0b5c0bbd7a396a3dc868bb0f86
with:
bazelisk-cache: true
repository-cache: true
disk-cache: ${{ github.workflow }}-${{ matrix.os }}-bazel-${{ matrix.bazel_version }}

- name: Setup NativeLink Cloud
id: setup-nativelink-cloud
uses: ./.github/actions/setup-nativelink-cloud
with:
ci-mode: ${{ vars.NATIVELINK_CI_MODE }}
Expand All @@ -72,6 +65,16 @@ jobs:
# non-Linux runners, so macOS lanes fall back to cache.
exec: ${{ runner.os == 'Linux' && 'on' || 'off' }}

- name: Setup Bazel
uses: >- # v0.19.0
bazel-contrib/setup-bazel@c5acdfb288317d0b5c0bbd7a396a3dc868bb0f86
with:
bazelisk-cache: true
repository-cache: true
# Only enable when we don't have remote cache, otherwise it just gets very slow
# and enormous
disk-cache: ${{ steps.setup-nativelink-cloud.outputs.enabled == 'false'}}

- name: Show Bazel version
run: bazel --version

Expand All @@ -85,9 +88,16 @@ jobs:
--extra_toolchains=@rust_toolchains//:all \
--verbose_failures
else
# --config=nl-toolchain (which includes the same toolchains
# line the Bazel 8 branch passes) keys this lane's actions on
# the hermetic LLVM + downloaded-Rust identity. On main pushes
# this job holds the write key, so it is the cache WARMER:
# building under the hermetic identity populates the exact
# digests the Bazel Dev (nix) lane and PR lanes now request.
# One digest space for writer and readers.
bazel test //... \
--lockfile_mode=error \
--extra_toolchains=@rust_toolchains//:all \
--config=nl-toolchain \
--verbose_failures
fi
elif [ "$RUNNER_OS" == "Windows" ]; then
Expand Down Expand Up @@ -119,15 +129,8 @@ jobs:
with:
compose-file: src/bin/docker-compose.store-tester.yaml

- name: Setup Bazel
uses: >- # v0.19.0
bazel-contrib/setup-bazel@c5acdfb288317d0b5c0bbd7a396a3dc868bb0f86
with:
bazelisk-cache: true
repository-cache: true
disk-cache: ${{ github.workflow }}-ubuntu-24.04

- name: Setup NativeLink Cloud
id: setup-nativelink-cloud
uses: ./.github/actions/setup-nativelink-cloud
with:
ci-mode: ${{ vars.NATIVELINK_CI_MODE }}
Expand All @@ -142,6 +145,16 @@ jobs:
# non-Linux runners, so macOS lanes fall back to cache.
exec: ${{ runner.os == 'Linux' && 'on' || 'off' }}

- name: Setup Bazel
uses: >- # v0.19.0
bazel-contrib/setup-bazel@c5acdfb288317d0b5c0bbd7a396a3dc868bb0f86
with:
bazelisk-cache: true
repository-cache: true
# Only enable when we don't have remote cache, otherwise it just gets very slow
# and enormous
disk-cache: ${{ steps.setup-nativelink-cloud.outputs.enabled == 'false'}}

- name: Run Store tester with sentinel
run: |
bazel run //:redis_store_tester \
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/nix.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,17 @@ jobs:

- name: Invoke Bazel build in Nix shell
run: |
# --config=nl-toolchain pins the hermetic LLVM + downloaded Rust
# toolchain identity. Without it, compiles inside `nix develop`
# resolve the nix-store default toolchain, baking /nix/store/<hash>
# paths into every action key — which is why this lane previously got
# 0 remote cache hits against a cache warmed off a non-nix toolchain.
# Pinning the hermetic identity makes this lane's action digests match
# a warm writer that uses the same identity. No remote executor is
# added here: this is cache-read keyed by a stable toolchain, not RBE.
nix develop --impure --command \
bazel-retry test //... \
--config=nl-toolchain \
--verbose_failures \
--lockfile_mode=error \

Expand Down
47 changes: 47 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,53 @@

All notable changes to this project will be documented in this file.

## [1.7.3](https://github.com/TraceMachina/nativelink/compare/v1.7.2..v1.7.3) - 2026-10-01



### ⛰️ Features

- Support queueing-service through an opt-in gRPC event sink ([#2811](https://github.com/TraceMachina/nativelink/issues/2811)) - ([181a1d3](https://github.com/TraceMachina/nativelink/commit/181a1d34a116aafd93f7b735f224a7e31f314b54))
- bound the input fetch with max_download_timeout and let a kill reach it ([#2846](https://github.com/TraceMachina/nativelink/issues/2846)) - ([82240c6](https://github.com/TraceMachina/nativelink/commit/82240c640970e8341f6358404456845aad17df47))
- read capacity and free memory from the worker's own cgroup directory ([#2845](https://github.com/TraceMachina/nativelink/issues/2845)) - ([b4a5468](https://github.com/TraceMachina/nativelink/commit/b4a5468248f4699fcd1ad928e3ea65167e92af86))
- Historical resource scheduler: hints by digest keys, size classes with a cold-start policy, and where each reservation came from ([#2832](https://github.com/TraceMachina/nativelink/issues/2832)) - ([59cbad2](https://github.com/TraceMachina/nativelink/commit/59cbad26b2a793e06d5e436b3e984f3d1c2df74a))
- Persistent workers: a configurable pool with an idle sweeper, the action environment, namespaces, measured usage, and a wait at the cap ([#2830](https://github.com/TraceMachina/nativelink/issues/2830)) - ([035dd63](https://github.com/TraceMachina/nativelink/commit/035dd631650a30334db2f5d062dbde8ff3cde301))
- memory escalation with retry budgets by cause, the whole worker as the last step ([#2829](https://github.com/TraceMachina/nativelink/issues/2829)) - ([3c52ee1](https://github.com/TraceMachina/nativelink/commit/3c52ee1a7026014deef13f92d9cef1e6b474136b))
- a disk soft limit, and peak_disk_kb from the files an action writes ([#2825](https://github.com/TraceMachina/nativelink/issues/2825)) - ([7bd3c54](https://github.com/TraceMachina/nativelink/commit/7bd3c5424d00bd29f6e3e1516d60105196f439e2))
- each action gets a private /tmp, its own tmp directory bound over /tmp ([#2824](https://github.com/TraceMachina/nativelink/issues/2824)) - ([c79e3bb](https://github.com/TraceMachina/nativelink/commit/c79e3bbe69e4ecac3e87f9503f47083bffd07fd6))
- Worker reaps the zombies actions leave behind, and an action's stragglers no longer hold its output open ([#2823](https://github.com/TraceMachina/nativelink/issues/2823)) - ([4fe0a27](https://github.com/TraceMachina/nativelink/commit/4fe0a27ba9e44e02aedf2d197e6f2189c6e543b2))
- SIGTERM grace before the kill, output kept, a TMPDIR per action, and resource usage with an outcome ([#2822](https://github.com/TraceMachina/nativelink/issues/2822)) - ([9a95e29](https://github.com/TraceMachina/nativelink/commit/9a95e29153f9cbd64208355f211293b97c6d6106))
- Worker readiness follows scheduler registration ([#2821](https://github.com/TraceMachina/nativelink/issues/2821)) - ([de7a540](https://github.com/TraceMachina/nativelink/commit/de7a540222ca697da3fec83cbb97ba7bcfab039c))
- Worker advertises CPU and memory from its own cgroup limits ([#2820](https://github.com/TraceMachina/nativelink/issues/2820)) - ([d86ff4f](https://github.com/TraceMachina/nativelink/commit/d86ff4f38ca6e40e09235adfff13cbb036eef9cc))
- soft memory enforcement against the reservation, and a disk guard before inputs are fetched ([#2812](https://github.com/TraceMachina/nativelink/issues/2812)) - ([fcdccc8](https://github.com/TraceMachina/nativelink/commit/fcdccc81fd4e29e824f8eed733f72988f3b81a18))
- bound output capture, upload fan-out, precondition scripts and orphaned action directories ([#2810](https://github.com/TraceMachina/nativelink/issues/2810)) - ([f10c7b7](https://github.com/TraceMachina/nativelink/commit/f10c7b70c10a450cefb0062922b33e0840eec8de))
- kill the whole process group when an action times out or is cancelled ([#2809](https://github.com/TraceMachina/nativelink/issues/2809)) - ([e6aa38a](https://github.com/TraceMachina/nativelink/commit/e6aa38a6b490c281a9df03cf205c951e1a1dbedc))
- Dispatch is acknowledged or declined by the worker ([#2808](https://github.com/TraceMachina/nativelink/issues/2808)) - ([a21d82c](https://github.com/TraceMachina/nativelink/commit/a21d82c8bdd4225e7f2287ff8018ba243384157b))
- GoingAway with a drain flag, reconnect backoff with jitter, and a shutdown guard that waits for the drain ([#2807](https://github.com/TraceMachina/nativelink/issues/2807)) - ([2bfa020](https://github.com/TraceMachina/nativelink/commit/2bfa0207f8910d2af4d1b3d2df564a39c1730235))
- Matching pass: room that opens mid-pass goes to the oldest waiting action, one store read per queued action ([#2806](https://github.com/TraceMachina/nativelink/issues/2806)) - ([2762510](https://github.com/TraceMachina/nativelink/commit/276251061994325162b96a79e12dca3b4dce9e20))
- Redis scheduler store: RESP3 cursor pages, the retention default, an unreadable row skipped, a wait for the new index ([#2803](https://github.com/TraceMachina/nativelink/issues/2803)) - ([5ef7a83](https://github.com/TraceMachina/nativelink/commit/5ef7a8315d472f92dbb785eb82dfe8bd85968e06))
- least_loaded and best_fit allocation strategies, typed properties cached per pass ([#2805](https://github.com/TraceMachina/nativelink/issues/2805)) - ([a7cc44d](https://github.com/TraceMachina/nativelink/commit/a7cc44da142e0a8a136176213fa48f2e71464145))
- Admin API: list connected workers and queued demand ([#2804](https://github.com/TraceMachina/nativelink/issues/2804)) - ([02a64f2](https://github.com/TraceMachina/nativelink/commit/02a64f2b4c69ba5ae157c8c88f7bf6aad8aaa730))
- Serve the scheduler queue in order, and let workers report their load on the keepalive ([#2796](https://github.com/TraceMachina/nativelink/issues/2796)) - ([4c06bb8](https://github.com/TraceMachina/nativelink/commit/4c06bb81ec4702d830d8aba7b6f39f225e016aa6))
- Unsatisfiable actions: the clock follows the fleet's shapes, and a timeout for a fleet with no worker at all ([#2799](https://github.com/TraceMachina/nativelink/issues/2799)) - ([31be880](https://github.com/TraceMachina/nativelink/commit/31be88082f7c376d8b8648b1017d10975215c66a))
- Scheduler worker state: budget released at completion, pause until the next keepalive, retry cap fails with FailedPrecondition ([#2798](https://github.com/TraceMachina/nativelink/issues/2798)) - ([71bb05a](https://github.com/TraceMachina/nativelink/commit/71bb05a0eedb89b69a4d8b5b5b562bea261644cc))
- Worker liveness: any message counts, a 10s default, a dead keepalive reconnects, SIGINT drains ([#2797](https://github.com/TraceMachina/nativelink/issues/2797)) - ([2f54cc3](https://github.com/TraceMachina/nativelink/commit/2f54cc3bcb9548b83eedc447bfa02faca8120374))

### 🐛 Bug Fixes

- a stalled scheduler connection reconnects instead of leaving the worker evicted and idle ([#2856](https://github.com/TraceMachina/nativelink/issues/2856)) - ([389cf73](https://github.com/TraceMachina/nativelink/commit/389cf73574e82ebee101beacea4453424908b06d))
- a fast tier that ends short on a digest resumes from the slow store, and a missing input names its digest so the client re-uploads it ([#2855](https://github.com/TraceMachina/nativelink/issues/2855)) - ([bd1bb34](https://github.com/TraceMachina/nativelink/commit/bd1bb3402e03fd6b377ec7166dd3ba6f0c1b4416))
- Give a live worker a grace period to report its own timeout ([#2826](https://github.com/TraceMachina/nativelink/issues/2826)) - ([5b4e555](https://github.com/TraceMachina/nativelink/commit/5b4e555070fe5e1b3e8709d11d03c1fc6812023b))
- a read that stops short of the digest's size is an error, not EOF ([#2844](https://github.com/TraceMachina/nativelink/issues/2844)) - ([fd6530e](https://github.com/TraceMachina/nativelink/commit/fd6530ea797355506dc4f2ca6e730c398f8900cc))
- build the cleanup mark's guard after the lock is released ([#2843](https://github.com/TraceMachina/nativelink/issues/2843)) - ([9a03932](https://github.com/TraceMachina/nativelink/commit/9a03932c0fd5b38150a865770c3222737b306836))
- Scheduler skips and counts a queue entry it cannot read ([#2795](https://github.com/TraceMachina/nativelink/issues/2795)) - ([4001f52](https://github.com/TraceMachina/nativelink/commit/4001f5256eccfbfa1f09b849a7f03e4092c4f9bc))
- Sorted index reads return the whole set, not ten rows ([#2794](https://github.com/TraceMachina/nativelink/issues/2794)) - ([7b2c02d](https://github.com/TraceMachina/nativelink/commit/7b2c02db4993bffb6073d408d7955d34e7882e1f))

### 🧪 Testing & CI

- Give the oversized-upload store tests the 30 s deadline the third already has ([#2818](https://github.com/TraceMachina/nativelink/issues/2818)) - ([3ff63f1](https://github.com/TraceMachina/nativelink/commit/3ff63f17f52372c7ee7459d4f5f7690713fa6e5c))
- Give trivy three vulnerability database mirrors to fall through ([#2801](https://github.com/TraceMachina/nativelink/issues/2801)) - ([a9c6801](https://github.com/TraceMachina/nativelink/commit/a9c6801f4e374016734811eb35231e14303778c8))

## [1.7.2](https://github.com/TraceMachina/nativelink/compare/v1.7.1..v1.7.2) - 2026-09-25

### Major changes
Expand Down
36 changes: 18 additions & 18 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ resolver = "2"
edition = "2024"
name = "nativelink"
rust-version = "1.97.1"
version = "1.7.2"
version = "1.7.3"

[profile.release]
lto = true
Expand Down
2 changes: 1 addition & 1 deletion MODULE.bazel
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module(
name = "nativelink",
version = "1.7.2",
version = "1.7.3",
compatibility_level = 0,
)

Expand Down
Loading
Loading