Apr 13, 6-7 PM (18)
Apr 13, 7-8 PM (13)
Apr 13, 8-9 PM (15)
Apr 13, 9-10 PM (22)
Apr 13, 10-11 PM (29)
Apr 13, 11-12 AM (13)
Apr 14, 12-1 AM (6)
Apr 14, 1-2 AM (8)
Apr 14, 2-3 AM (15)
Apr 14, 3-4 AM (4)
Apr 14, 4-5 AM (4)
Apr 14, 5-6 AM (63)
Apr 14, 6-7 AM (50)
Apr 14, 7-8 AM (101)
Apr 14, 8-9 AM (33)
Apr 14, 9-10 AM (21)
Apr 14, 10-11 AM (34)
Apr 14, 11-12 PM (42)
Apr 14, 12-1 PM (72)
Apr 14, 1-2 PM (96)
Apr 14, 2-3 PM (44)
Apr 14, 3-4 PM (35)
Apr 14, 4-5 PM (9)
Apr 14, 5-6 PM (20)
Apr 14, 6-7 PM (22)
Apr 14, 7-8 PM (14)
Apr 14, 8-9 PM (10)
Apr 14, 9-10 PM (11)
Apr 14, 10-11 PM (24)
Apr 14, 11-12 AM (24)
Apr 15, 12-1 AM (3)
Apr 15, 1-2 AM (9)
Apr 15, 2-3 AM (8)
Apr 15, 3-4 AM (1)
Apr 15, 4-5 AM (1)
Apr 15, 5-6 AM (32)
Apr 15, 6-7 AM (7)
Apr 15, 7-8 AM (25)
Apr 15, 8-9 AM (49)
Apr 15, 9-10 AM (40)
Apr 15, 10-11 AM (127)
Apr 15, 11-12 PM (53)
Apr 15, 12-1 PM (60)
Apr 15, 1-2 PM (43)
Apr 15, 2-3 PM (45)
Apr 15, 3-4 PM (29)
Apr 15, 4-5 PM (44)
Apr 15, 5-6 PM (21)
Apr 15, 6-7 PM (33)
Apr 15, 7-8 PM (15)
Apr 15, 8-9 PM (17)
Apr 15, 9-10 PM (5)
Apr 15, 10-11 PM (20)
Apr 15, 11-12 AM (16)
Apr 16, 12-1 AM (12)
Apr 16, 1-2 AM (6)
Apr 16, 2-3 AM (7)
Apr 16, 3-4 AM (3)
Apr 16, 4-5 AM (4)
Apr 16, 5-6 AM (8)
Apr 16, 6-7 AM (33)
Apr 16, 7-8 AM (32)
Apr 16, 8-9 AM (31)
Apr 16, 9-10 AM (27)
Apr 16, 10-11 AM (50)
Apr 16, 11-12 PM (56)
Apr 16, 12-1 PM (58)
Apr 16, 1-2 PM (30)
Apr 16, 2-3 PM (40)
Apr 16, 3-4 PM (46)
Apr 16, 4-5 PM (47)
Apr 16, 5-6 PM (56)
Apr 16, 6-7 PM (17)
Apr 16, 7-8 PM (68)
Apr 16, 8-9 PM (38)
Apr 16, 9-10 PM (11)
Apr 16, 10-11 PM (23)
Apr 16, 11-12 AM (23)
Apr 17, 12-1 AM (12)
Apr 17, 1-2 AM (8)
Apr 17, 2-3 AM (3)
Apr 17, 3-4 AM (4)
Apr 17, 4-5 AM (3)
Apr 17, 5-6 AM (9)
Apr 17, 6-7 AM (26)
Apr 17, 7-8 AM (96)
Apr 17, 8-9 AM (70)
Apr 17, 9-10 AM (53)
Apr 17, 10-11 AM (41)
Apr 17, 11-12 PM (58)
Apr 17, 12-1 PM (64)
Apr 17, 1-2 PM (39)
Apr 17, 2-3 PM (46)
Apr 17, 3-4 PM (36)
Apr 17, 4-5 PM (13)
Apr 17, 5-6 PM (9)
Apr 17, 6-7 PM (25)
Apr 17, 7-8 PM (22)
Apr 17, 8-9 PM (3)
Apr 17, 9-10 PM (16)
Apr 17, 10-11 PM (24)
Apr 17, 11-12 AM (16)
Apr 18, 12-1 AM (2)
Apr 18, 1-2 AM (2)
Apr 18, 2-3 AM (6)
Apr 18, 3-4 AM (1)
Apr 18, 4-5 AM (2)
Apr 18, 5-6 AM (2)
Apr 18, 6-7 AM (1)
Apr 18, 7-8 AM (2)
Apr 18, 8-9 AM (4)
Apr 18, 9-10 AM (4)
Apr 18, 10-11 AM (1)
Apr 18, 11-12 PM (6)
Apr 18, 12-1 PM (7)
Apr 18, 1-2 PM (8)
Apr 18, 2-3 PM (9)
Apr 18, 3-4 PM (0)
Apr 18, 4-5 PM (2)
Apr 18, 5-6 PM (6)
Apr 18, 6-7 PM (2)
Apr 18, 7-8 PM (2)
Apr 18, 8-9 PM (4)
Apr 18, 9-10 PM (9)
Apr 18, 10-11 PM (21)
Apr 18, 11-12 AM (23)
Apr 19, 12-1 AM (1)
Apr 19, 1-2 AM (4)
Apr 19, 2-3 AM (1)
Apr 19, 3-4 AM (0)
Apr 19, 4-5 AM (0)
Apr 19, 5-6 AM (2)
Apr 19, 6-7 AM (0)
Apr 19, 7-8 AM (2)
Apr 19, 8-9 AM (1)
Apr 19, 9-10 AM (1)
Apr 19, 10-11 AM (4)
Apr 19, 11-12 PM (7)
Apr 19, 12-1 PM (6)
Apr 19, 1-2 PM (8)
Apr 19, 2-3 PM (22)
Apr 19, 3-4 PM (7)
Apr 19, 4-5 PM (4)
Apr 19, 5-6 PM (3)
Apr 19, 6-7 PM (8)
Apr 19, 7-8 PM (3)
Apr 19, 8-9 PM (8)
Apr 19, 9-10 PM (6)
Apr 19, 10-11 PM (25)
Apr 19, 11-12 AM (23)
Apr 20, 12-1 AM (4)
Apr 20, 1-2 AM (5)
Apr 20, 2-3 AM (2)
Apr 20, 3-4 AM (7)
Apr 20, 4-5 AM (1)
Apr 20, 5-6 AM (6)
Apr 20, 6-7 AM (7)
Apr 20, 7-8 AM (29)
Apr 20, 8-9 AM (42)
Apr 20, 9-10 AM (36)
Apr 20, 10-11 AM (95)
Apr 20, 11-12 PM (42)
Apr 20, 12-1 PM (35)
Apr 20, 1-2 PM (53)
Apr 20, 2-3 PM (67)
Apr 20, 3-4 PM (45)
Apr 20, 4-5 PM (38)
Apr 20, 5-6 PM (13)
Apr 20, 6-7 PM (0)
3,792 commits this week Apr 13, 2026 - Apr 20, 2026
fix: scope test temp dirs to RUNNER_TEMP instead of globbing shared /tmp (#5239)
## Problem

The CI build host (`zur1-s-d-029`) runs ~28 GHA self-hosted runners
as a single user against **one shared tmpfs `/tmp`**. Any job running
`rm -rf /tmp/e2e-* /tmp/test-cluster*` on `if: always()` will wipe
sibling runners' **live** VolatileDB files.

Under UTxO-HD (cardano-node >= 10.7.0) the consensus layer re-opens
VolatileDB files by path through `fs-api`, so an unlinked
`blocks-*.dat` now crashes the node with
`ApiMisuse (ClosedDBError (UnexpectedFailure (FileSystemError
FsResourceDoesNotExist …)))`
instead of tolerating the unlink via open fd's.

This reproduced on master (`253d290bfd`) — Conway Integration Tests
crashed at 15:46:43 UTC on 2026-04-20 with two pool nodes failing
simultaneously on
`/tmp/test-cluster436150/pool-*/db/volatile/blocks-0.dat`.
See also upstream ouroboros-consensus#1991.

## Fix

- Set `TMPDIR: ${{ runner.temp }}` on every job that launches a local
  test cluster or E2E run. `$RUNNER_TEMP` is per-job, per-runner, and
  auto-cleaned by the runner service between jobs, so clusters live
  in a private directory that sibling runners cannot touch.
- Drop the pre-existing dangerous cleanup in
  `.github/workflows/linux-e2e.yml` and `.github/workflows/release.yml`
  — `$RUNNER_TEMP` makes them redundant.
- Replace the shared fixed path `TMPDIR: /tmp/gha-bench` in
  `linux-benchmarks.yml` and `restoration-benchmarks.yml` for the
  same reason.

No new cleanup steps are introduced.
fix: correct CBOR encoding and decoding for negative big ints (#41)
* fix: correct CBOR encoding and decoding for negative big ints

Signed-off-by: Jonathan Lim <[email protected]>

* fix: use alloc_integer instead of alloc

Signed-off-by: Jonathan Lim <[email protected]>

* chore: formatting

Signed-off-by: Jonathan Lim <[email protected]>

* chore: added tests showing the negative bigint handling

Signed-off-by: Jonathan Lim <[email protected]>

* style: formatting

Signed-off-by: Jonathan Lim <[email protected]>

---------

Signed-off-by: Jonathan Lim <[email protected]>
fix: scope test temp dirs to RUNNER_TEMP instead of globbing shared /tmp
The build host runs ~28 GHA runners as a single user against one tmpfs
/tmp, so any job running `rm -rf /tmp/e2e-* /tmp/test-cluster*` on
`if: always()` wipes sibling runners' live VolatileDB files. Under
UTxO-HD (node >= 10.7.0) the consensus layer re-opens these files by
path and crashes with `FsResourceDoesNotExist` instead of tolerating
the unlink via open fd's, which manifested as the Conway Integration
Tests failure on master at 253d290bfd.

Point TMPDIR at \$RUNNER_TEMP — per-job, per-runner, auto-cleaned by
the runner service — so test clusters live in a private directory that
sibling runners cannot touch. Drop the now-redundant (and dangerous)
`rm -rf /tmp/...` cleanup steps from linux-e2e and release. Replace
the shared `/tmp/gha-bench` fixed path in benchmarks with RUNNER_TEMP
for the same reason.