Apr 20, 3-4 PM (47)
Apr 20, 4-5 PM (41)
Apr 20, 5-6 PM (31)
Apr 20, 6-7 PM (24)
Apr 20, 7-8 PM (10)
Apr 20, 8-9 PM (7)
Apr 20, 9-10 PM (16)
Apr 20, 10-11 PM (28)
Apr 20, 11-12 AM (18)
Apr 21, 12-1 AM (24)
Apr 21, 1-2 AM (5)
Apr 21, 2-3 AM (13)
Apr 21, 3-4 AM (4)
Apr 21, 4-5 AM (3)
Apr 21, 5-6 AM (8)
Apr 21, 6-7 AM (15)
Apr 21, 7-8 AM (44)
Apr 21, 8-9 AM (119)
Apr 21, 9-10 AM (36)
Apr 21, 10-11 AM (35)
Apr 21, 11-12 PM (98)
Apr 21, 12-1 PM (57)
Apr 21, 1-2 PM (71)
Apr 21, 2-3 PM (60)
Apr 21, 3-4 PM (33)
Apr 21, 4-5 PM (31)
Apr 21, 5-6 PM (27)
Apr 21, 6-7 PM (38)
Apr 21, 7-8 PM (35)
Apr 21, 8-9 PM (37)
Apr 21, 9-10 PM (14)
Apr 21, 10-11 PM (34)
Apr 21, 11-12 AM (12)
Apr 22, 12-1 AM (2)
Apr 22, 1-2 AM (3)
Apr 22, 2-3 AM (3)
Apr 22, 3-4 AM (4)
Apr 22, 4-5 AM (3)
Apr 22, 5-6 AM (17)
Apr 22, 6-7 AM (34)
Apr 22, 7-8 AM (21)
Apr 22, 8-9 AM (37)
Apr 22, 9-10 AM (18)
Apr 22, 10-11 AM (47)
Apr 22, 11-12 PM (45)
Apr 22, 12-1 PM (56)
Apr 22, 1-2 PM (64)
Apr 22, 2-3 PM (44)
Apr 22, 3-4 PM (86)
Apr 22, 4-5 PM (46)
Apr 22, 5-6 PM (17)
Apr 22, 6-7 PM (10)
Apr 22, 7-8 PM (18)
Apr 22, 8-9 PM (15)
Apr 22, 9-10 PM (23)
Apr 22, 10-11 PM (31)
Apr 22, 11-12 AM (17)
Apr 23, 12-1 AM (7)
Apr 23, 1-2 AM (4)
Apr 23, 2-3 AM (4)
Apr 23, 3-4 AM (6)
Apr 23, 4-5 AM (3)
Apr 23, 5-6 AM (8)
Apr 23, 6-7 AM (17)
Apr 23, 7-8 AM (26)
Apr 23, 8-9 AM (33)
Apr 23, 9-10 AM (33)
Apr 23, 10-11 AM (29)
Apr 23, 11-12 PM (30)
Apr 23, 12-1 PM (51)
Apr 23, 1-2 PM (69)
Apr 23, 2-3 PM (65)
Apr 23, 3-4 PM (26)
Apr 23, 4-5 PM (22)
Apr 23, 5-6 PM (7)
Apr 23, 6-7 PM (7)
Apr 23, 7-8 PM (11)
Apr 23, 8-9 PM (14)
Apr 23, 9-10 PM (6)
Apr 23, 10-11 PM (28)
Apr 23, 11-12 AM (18)
Apr 24, 12-1 AM (7)
Apr 24, 1-2 AM (4)
Apr 24, 2-3 AM (7)
Apr 24, 3-4 AM (5)
Apr 24, 4-5 AM (8)
Apr 24, 5-6 AM (13)
Apr 24, 6-7 AM (12)
Apr 24, 7-8 AM (33)
Apr 24, 8-9 AM (40)
Apr 24, 9-10 AM (41)
Apr 24, 10-11 AM (72)
Apr 24, 11-12 PM (57)
Apr 24, 12-1 PM (100)
Apr 24, 1-2 PM (57)
Apr 24, 2-3 PM (35)
Apr 24, 3-4 PM (19)
Apr 24, 4-5 PM (16)
Apr 24, 5-6 PM (38)
Apr 24, 6-7 PM (27)
Apr 24, 7-8 PM (12)
Apr 24, 8-9 PM (42)
Apr 24, 9-10 PM (17)
Apr 24, 10-11 PM (30)
Apr 24, 11-12 AM (16)
Apr 25, 12-1 AM (8)
Apr 25, 1-2 AM (1)
Apr 25, 2-3 AM (10)
Apr 25, 3-4 AM (5)
Apr 25, 4-5 AM (3)
Apr 25, 5-6 AM (13)
Apr 25, 6-7 AM (1)
Apr 25, 7-8 AM (4)
Apr 25, 8-9 AM (24)
Apr 25, 9-10 AM (17)
Apr 25, 10-11 AM (4)
Apr 25, 11-12 PM (4)
Apr 25, 12-1 PM (13)
Apr 25, 1-2 PM (3)
Apr 25, 2-3 PM (10)
Apr 25, 3-4 PM (6)
Apr 25, 4-5 PM (10)
Apr 25, 5-6 PM (16)
Apr 25, 6-7 PM (12)
Apr 25, 7-8 PM (30)
Apr 25, 8-9 PM (55)
Apr 25, 9-10 PM (13)
Apr 25, 10-11 PM (21)
Apr 25, 11-12 AM (22)
Apr 26, 12-1 AM (5)
Apr 26, 1-2 AM (0)
Apr 26, 2-3 AM (2)
Apr 26, 3-4 AM (5)
Apr 26, 4-5 AM (2)
Apr 26, 5-6 AM (2)
Apr 26, 6-7 AM (3)
Apr 26, 7-8 AM (8)
Apr 26, 8-9 AM (3)
Apr 26, 9-10 AM (0)
Apr 26, 10-11 AM (2)
Apr 26, 11-12 PM (1)
Apr 26, 12-1 PM (6)
Apr 26, 1-2 PM (4)
Apr 26, 2-3 PM (14)
Apr 26, 3-4 PM (14)
Apr 26, 4-5 PM (0)
Apr 26, 5-6 PM (13)
Apr 26, 6-7 PM (13)
Apr 26, 7-8 PM (7)
Apr 26, 8-9 PM (7)
Apr 26, 9-10 PM (4)
Apr 26, 10-11 PM (26)
Apr 26, 11-12 AM (21)
Apr 27, 12-1 AM (6)
Apr 27, 1-2 AM (7)
Apr 27, 2-3 AM (9)
Apr 27, 3-4 AM (9)
Apr 27, 4-5 AM (5)
Apr 27, 5-6 AM (13)
Apr 27, 6-7 AM (7)
Apr 27, 7-8 AM (82)
Apr 27, 8-9 AM (46)
Apr 27, 9-10 AM (29)
Apr 27, 10-11 AM (61)
Apr 27, 11-12 PM (78)
Apr 27, 12-1 PM (66)
Apr 27, 1-2 PM (44)
Apr 27, 2-3 PM (45)
Apr 27, 3-4 PM (10)
3,920 commits this week Apr 20, 2026 - Apr 27, 2026
chore(deps): bump the actions-deps group with 2 updates
Bumps the actions-deps group with 2 updates: [oasdiff/oasdiff-action](https://github.com/oasdiff/oasdiff-action) and [scala-steward-org/scala-steward-action](https://github.com/scala-steward-org/scala-steward-action).


Updates `oasdiff/oasdiff-action` from 0.0.39 to 0.0.43
- [Release notes](https://github.com/oasdiff/oasdiff-action/releases)
- [Commits](https://github.com/oasdiff/oasdiff-action/compare/f8cb9308b42121e793f835bd14c0b8090420430c...c002f996c3d084acf62ea6dd4f2e7a57b7bc2a35)

Updates `scala-steward-org/scala-steward-action` from 2.86.0 to 2.88.0
- [Release notes](https://github.com/scala-steward-org/scala-steward-action/releases)
- [Commits](https://github.com/scala-steward-org/scala-steward-action/compare/026472ebc0e1f80577b240b249e3dc1494e7041b...b186ab858ce163f9af7b016fac32cfb3f2c2f503)

---
updated-dependencies:
- dependency-name: oasdiff/oasdiff-action
  dependency-version: 0.0.43
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: scala-steward-org/scala-steward-action
  dependency-version: 2.88.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <[email protected]>
testnet: drop tag side from digest-pinned images (Antithesis parser)
Antithesis's image puller rejects `name:tag@sha256:digest` with
"Invalid image name: cannot be empty or contain invalid character"
(verified via run https://github.com/cardano-foundation/cardano-node-antithesis/actions/runs/24998978617).

Switch to canonical OCI digest-only form `name@sha256:digest`. Identical
content guarantee, accepted by Antithesis.

Update push-cardano_node_master_images.sh to skip entries that have no
tag after sanitization — digest-only pins refer to images that already
exist in the registry by definition; there is nothing to rebuild.
publish-images: strip @sha256 digest before splitting name/tag
Compose entries are now `name:tag@sha256:digest`. The previous regex
captured the whole string and `git rev-list "tag@sha256:..."` failed,
making the workflow skip every cardano-foundation/* image with a
"Tag not found in repo" log.

Strip the digest before the `:` -> ` ` split so name/tag resolution
proceeds normally. The digest stays in compose where Antithesis pulls
by it; publish-images uses the tag side to map to a commit and rebuild.
testnet: pin oura to v1.9.4 by content digest
Promote the tag pin to a digest pin
(@sha256:b67470ccfd16d5d26305fde751accf05789d68387bb17c2ee01ed717cb98b896).
Tags are mutable: txpipe could re-tag v1.9.4 to a different image. Digests
are content-addressed — what we pull is what we built against.

publish-images script only resolves cardano-foundation/* images, so the
oura digest reference is inert for our build pipeline.
testnet: pin every image to its content digest
Promote tag-only references to tag@sha256:digest across the whole
docker-compose. Tags on a registry are mutable (anyone with push can
re-tag what we depend on); content-addressed digests are not.

Caveat: publish-images.yaml's resolution regex captures the full
"name:tag@sha256:digest" string and tries `git rev-list` on
"tag@sha256:digest" which fails — so it will skip every
cardano-foundation/* image with a "Tag not found in repo" log. This is
intentional for now: the images already exist at the pinned digests, so
Antithesis pulls what was built. Future component changes require either
(a) a manual rebuild + digest update in compose, or
(b) teaching scripts/push-cardano_node_master_images.sh to split on `@`
   and resolve only the tag side.

Pinned digests resolved 2026-04-27 from ghcr.