deploy: ffe6a61f0379b536c3672cb0d19174a85f30ba13
Mar 11, 5-6 PM (51)
Mar 11, 6-7 PM (35)
Mar 11, 7-8 PM (20)
Mar 11, 8-9 PM (39)
Mar 11, 9-10 PM (14)
Mar 11, 10-11 PM (57)
Mar 11, 11-12 AM (43)
Mar 12, 12-1 AM (4)
Mar 12, 1-2 AM (8)
Mar 12, 2-3 AM (6)
Mar 12, 3-4 AM (3)
Mar 12, 4-5 AM (4)
Mar 12, 5-6 AM (8)
Mar 12, 6-7 AM (46)
Mar 12, 7-8 AM (15)
Mar 12, 8-9 AM (62)
Mar 12, 9-10 AM (50)
Mar 12, 10-11 AM (88)
Mar 12, 11-12 PM (29)
Mar 12, 12-1 PM (60)
Mar 12, 1-2 PM (51)
Mar 12, 2-3 PM (48)
Mar 12, 3-4 PM (62)
Mar 12, 4-5 PM (23)
Mar 12, 5-6 PM (26)
Mar 12, 6-7 PM (14)
Mar 12, 7-8 PM (39)
Mar 12, 8-9 PM (28)
Mar 12, 9-10 PM (10)
Mar 12, 10-11 PM (41)
Mar 12, 11-12 AM (16)
Mar 13, 12-1 AM (7)
Mar 13, 1-2 AM (21)
Mar 13, 2-3 AM (13)
Mar 13, 3-4 AM (7)
Mar 13, 4-5 AM (1)
Mar 13, 5-6 AM (2)
Mar 13, 6-7 AM (7)
Mar 13, 7-8 AM (32)
Mar 13, 8-9 AM (48)
Mar 13, 9-10 AM (90)
Mar 13, 10-11 AM (25)
Mar 13, 11-12 PM (32)
Mar 13, 12-1 PM (54)
Mar 13, 1-2 PM (59)
Mar 13, 2-3 PM (35)
Mar 13, 3-4 PM (58)
Mar 13, 4-5 PM (26)
Mar 13, 5-6 PM (30)
Mar 13, 6-7 PM (17)
Mar 13, 7-8 PM (39)
Mar 13, 8-9 PM (28)
Mar 13, 9-10 PM (14)
Mar 13, 10-11 PM (23)
Mar 13, 11-12 AM (26)
Mar 14, 12-1 AM (1)
Mar 14, 1-2 AM (1)
Mar 14, 2-3 AM (9)
Mar 14, 3-4 AM (2)
Mar 14, 4-5 AM (0)
Mar 14, 5-6 AM (1)
Mar 14, 6-7 AM (0)
Mar 14, 7-8 AM (1)
Mar 14, 8-9 AM (19)
Mar 14, 9-10 AM (3)
Mar 14, 10-11 AM (0)
Mar 14, 11-12 PM (3)
Mar 14, 12-1 PM (1)
Mar 14, 1-2 PM (20)
Mar 14, 2-3 PM (5)
Mar 14, 3-4 PM (0)
Mar 14, 4-5 PM (0)
Mar 14, 5-6 PM (0)
Mar 14, 6-7 PM (2)
Mar 14, 7-8 PM (4)
Mar 14, 8-9 PM (11)
Mar 14, 9-10 PM (10)
Mar 14, 10-11 PM (20)
Mar 14, 11-12 AM (66)
Mar 15, 12-1 AM (6)
Mar 15, 1-2 AM (23)
Mar 15, 2-3 AM (8)
Mar 15, 3-4 AM (0)
Mar 15, 4-5 AM (1)
Mar 15, 5-6 AM (1)
Mar 15, 6-7 AM (0)
Mar 15, 7-8 AM (0)
Mar 15, 8-9 AM (2)
Mar 15, 9-10 AM (14)
Mar 15, 10-11 AM (1)
Mar 15, 11-12 PM (7)
Mar 15, 12-1 PM (20)
Mar 15, 1-2 PM (19)
Mar 15, 2-3 PM (30)
Mar 15, 3-4 PM (2)
Mar 15, 4-5 PM (4)
Mar 15, 5-6 PM (4)
Mar 15, 6-7 PM (8)
Mar 15, 7-8 PM (8)
Mar 15, 8-9 PM (11)
Mar 15, 9-10 PM (7)
Mar 15, 10-11 PM (28)
Mar 15, 11-12 AM (23)
Mar 16, 12-1 AM (7)
Mar 16, 1-2 AM (19)
Mar 16, 2-3 AM (14)
Mar 16, 3-4 AM (9)
Mar 16, 4-5 AM (0)
Mar 16, 5-6 AM (5)
Mar 16, 6-7 AM (21)
Mar 16, 7-8 AM (32)
Mar 16, 8-9 AM (57)
Mar 16, 9-10 AM (90)
Mar 16, 10-11 AM (61)
Mar 16, 11-12 PM (78)
Mar 16, 12-1 PM (50)
Mar 16, 1-2 PM (60)
Mar 16, 2-3 PM (29)
Mar 16, 3-4 PM (84)
Mar 16, 4-5 PM (48)
Mar 16, 5-6 PM (23)
Mar 16, 6-7 PM (87)
Mar 16, 7-8 PM (29)
Mar 16, 8-9 PM (24)
Mar 16, 9-10 PM (17)
Mar 16, 10-11 PM (34)
Mar 16, 11-12 AM (33)
Mar 17, 12-1 AM (13)
Mar 17, 1-2 AM (14)
Mar 17, 2-3 AM (6)
Mar 17, 3-4 AM (5)
Mar 17, 4-5 AM (7)
Mar 17, 5-6 AM (16)
Mar 17, 6-7 AM (15)
Mar 17, 7-8 AM (36)
Mar 17, 8-9 AM (198)
Mar 17, 9-10 AM (39)
Mar 17, 10-11 AM (37)
Mar 17, 11-12 PM (20)
Mar 17, 12-1 PM (119)
Mar 17, 1-2 PM (110)
Mar 17, 2-3 PM (48)
Mar 17, 3-4 PM (88)
Mar 17, 4-5 PM (28)
Mar 17, 5-6 PM (13)
Mar 17, 6-7 PM (12)
Mar 17, 7-8 PM (30)
Mar 17, 8-9 PM (39)
Mar 17, 9-10 PM (30)
Mar 17, 10-11 PM (35)
Mar 17, 11-12 AM (21)
Mar 18, 12-1 AM (1)
Mar 18, 1-2 AM (11)
Mar 18, 2-3 AM (9)
Mar 18, 3-4 AM (0)
Mar 18, 4-5 AM (6)
Mar 18, 5-6 AM (5)
Mar 18, 6-7 AM (3)
Mar 18, 7-8 AM (12)
Mar 18, 8-9 AM (19)
Mar 18, 9-10 AM (78)
Mar 18, 10-11 AM (86)
Mar 18, 11-12 PM (64)
Mar 18, 12-1 PM (72)
Mar 18, 1-2 PM (49)
Mar 18, 2-3 PM (125)
Mar 18, 3-4 PM (40)
Mar 18, 4-5 PM (16)
Mar 18, 5-6 PM (2)
4,538 commits this week
Mar 11, 2026
-
Mar 18, 2026
Fix CommitFinalized version-race causing permanently stuck snapshots
After a deposit snapshot confirms, maybeRequestNextSnapshot fires
ReqSn(ver=N) immediately for pending L2 txs. With a slow network,
CommitFinalized arrives and bumps the version to N+1 before the echo
returns. The stale ReqSn(ver=N) is rejected with ReqSvNumberInvalid
and nobody re-triggers a fresh request, leaving the head stuck.
Two-part fix mirroring the DecommitFinalized fix:
- aggregateNodeState: use LastSeenSnapshot{lastSeen=confirmedSn}
instead of toLastSeenSnapshot, keeping seenSnapshotNumber at the
confirmed value so the next ReqSn number is correct
- onOpenChainIncrementTx: add maybeRequestSnapshotAfterCommit so the
leader immediately sends ReqSn(ver=newVersion) for pending L2 txs
after CommitFinalized, instead of waiting for the next timer tick
Signed-off-by: Sasha Bogicevic <[email protected]>
Add failing test for CommitFinalized version-race snapshot stuck bug
After a deposit snapshot confirms, maybeRequestNextSnapshot fires ReqSn(ver=0) immediately. With a 25s network delay, CommitFinalized arrives first and bumps the version to 1. The stale ReqSn(ver=0) echo is rejected with ReqSvNumberInvalid and nobody re-triggers ReqSn(ver=1), leaving the head permanently stuck. Signed-off-by: Sasha Bogicevic <[email protected]>
gateway: remove db-sync compatibility layer
Randomize cert order in substituteExecutionUnits property test
Use Gen.shuffle to vary cert ordering across runs, giving meaningful random variation now that the test covers multiple cert types with both Nothing and Just witnesses.
chore: upgrade crate versions and `mithril-test-lab/mithril-devnet/VERSION` version
name = "client-cardano-database-v2" -version = "0.0.17" +version = "0.0.18" * client-cardano-database from `0.1.40` to `0.1.41` * client-cardano-stake-distribution from `0.1.16` to `0.1.17` * client-cardano-transaction from `0.1.25` to `0.1.26` * client-mithril-stake-distribution from `0.2.14` to `0.2.15` * mithril-metric from `0.1.20` to `0.1.21` * mithril-aggregator from `0.8.35` to `0.8.36` * mithril-client-cli from `0.12.43` to `0.12.44` * mithril-client-wasm from `0.9.12` to `0.9.13` * mithril-client from `0.13.5` to `0.13.6` * mithril-common from `0.6.57` to `0.6.58` * mithril-relay from `0.2.3` to `0.2.4` * mithril-signer from `0.3.23` to `0.3.24` * mithril-end-to-end from `0.4.122` to `0.4.123` * [js] mithril-client-wasm from `0.9.12` to `0.9.13` * mithril-test-lab/mithril-devnet/VERSION from `0.4.24` to `0.4.25`
chore: upgrade `benchmark/aggregator-prover` to `0.2.0`
fix: run the validation and the insertion of a transaction in the mempool at the same time
Signed-off-by: Eric Torreborre <[email protected]>
GitHub CI: skip build and test if 'skip-tests' label is attached
GitHub CI: separate haddock and website documentation jobs
refactor(ci): rework binaries dependencies check on windows with a list of authorized system dll
Unify cert indexing via indexCertificatesWith, fix Nothing-witness bug
Extract shared indexCertificatesWith helper that preserves certificates with Nothing witnesses (non-witnessed certs like ConwayRegCert without deposit). Previously, all three indexTxCertificates implementations filtered out Nothing-witness certs, causing mapScriptWitnessesCertificates in both the legacy and experimental APIs to silently drop them during fee balancing. Also replaces the inlined cert-indexing in the experimental API's mapScriptWitnessesCertificates with a call to indexTxCertificates, and expands the cert-preservation property test to cover delegation and registration+delegation cert types. Fixes #1138
WIP: rename commit -> deposit
Add Flat encoding test coverage across all packages
Pay down test coverage debt for Flat serialization instances. This ensures encoding stability is verified by tests before we attempt to fix the Generic derivation bug in a follow-up PR. Adds roundtrip and stable byte encoding tests for: - Flat library types (Maybe, Either, NonEmpty, Complex, Ratio, Set, Tree, Map, Seq, DList, Filler, PreAligned, and monoid/semigroup wrappers) - TPLC types (Version, Name, Kind, DeBruijn, NamedDeBruijn, SrcSpan, SrcSpans, DefaultFun, DefaultUni, and all newtype wrappers including TyName, Unique, TyDeBruijn, etc.) - PIR types (Recursivity, Strictness) - UPLC types (Binder variants, FakeNamedDeBruijn, minimal Program encoding) - Value types (K encodes as ByteString, Quantity as Integer) Also adds a standalone encoding generator executable (cabal run flat-encoding-generator) for reproducing expected byte constants.
Fixing the stuck snapshots by re-requesting ReqSn
DecommitFinalized aggregate now resets seenSnapshot to
LastSeenSnapshot{confirmedSn} instead of toLastSeenSnapshot(seenSnapshot).
This prevents seenSnapshotNumber from advancing to the requested snapshot
number (which blocked re-requesting), and allows onOpenChainDecrementTx
to emit a fresh ReqSn with the new version for any pending L2 txs.
Signed-off-by: Sasha Bogicevic <[email protected]>
Fix snapshot stuck after DecommitFinalized due to stale ReqSn version
After a decommit snapshot confirms, the leader immediately requests the next snapshot via maybeRequestNextSnapshot, sending ReqSn(ver=N). If DecommitFinalized arrives before the network echo returns, it bumps the version to N+1, causing the stale ReqSn(ver=N) echo to be rejected with ReqSvNumberInvalid. Since nothing re-triggers a fresh request, the head gets permanently stuck in RequestedSnapshot. Signed-off-by: Sasha Bogicevic <[email protected]>
test: satisfy clippy in utxo event test
Fix clippy warnings
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
docs: clarify gateway yaci data plane
Bump version to 2.0.1
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Bump version to 2.0.0
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Bump version to 1.4.1
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>