Jun 12, 5-6 PM (19)
Jun 12, 6-7 PM (26)
Jun 12, 7-8 PM (12)
Jun 12, 8-9 PM (17)
Jun 12, 9-10 PM (5)
Jun 12, 10-11 PM (30)
Jun 12, 11-12 AM (6)
Jun 13, 12-1 AM (6)
Jun 13, 1-2 AM (2)
Jun 13, 2-3 AM (0)
Jun 13, 3-4 AM (3)
Jun 13, 4-5 AM (0)
Jun 13, 5-6 AM (3)
Jun 13, 6-7 AM (7)
Jun 13, 7-8 AM (5)
Jun 13, 8-9 AM (6)
Jun 13, 9-10 AM (14)
Jun 13, 10-11 AM (12)
Jun 13, 11-12 PM (2)
Jun 13, 12-1 PM (23)
Jun 13, 1-2 PM (21)
Jun 13, 2-3 PM (8)
Jun 13, 3-4 PM (1)
Jun 13, 4-5 PM (4)
Jun 13, 5-6 PM (4)
Jun 13, 6-7 PM (3)
Jun 13, 7-8 PM (3)
Jun 13, 8-9 PM (7)
Jun 13, 9-10 PM (16)
Jun 13, 10-11 PM (19)
Jun 13, 11-12 AM (24)
Jun 14, 12-1 AM (18)
Jun 14, 1-2 AM (0)
Jun 14, 2-3 AM (0)
Jun 14, 3-4 AM (0)
Jun 14, 4-5 AM (2)
Jun 14, 5-6 AM (0)
Jun 14, 6-7 AM (2)
Jun 14, 7-8 AM (3)
Jun 14, 8-9 AM (0)
Jun 14, 9-10 AM (1)
Jun 14, 10-11 AM (2)
Jun 14, 11-12 PM (10)
Jun 14, 12-1 PM (8)
Jun 14, 1-2 PM (4)
Jun 14, 2-3 PM (8)
Jun 14, 3-4 PM (2)
Jun 14, 4-5 PM (1)
Jun 14, 5-6 PM (1)
Jun 14, 6-7 PM (0)
Jun 14, 7-8 PM (11)
Jun 14, 8-9 PM (1)
Jun 14, 9-10 PM (13)
Jun 14, 10-11 PM (29)
Jun 14, 11-12 AM (23)
Jun 15, 12-1 AM (8)
Jun 15, 1-2 AM (10)
Jun 15, 2-3 AM (4)
Jun 15, 3-4 AM (4)
Jun 15, 4-5 AM (1)
Jun 15, 5-6 AM (4)
Jun 15, 6-7 AM (6)
Jun 15, 7-8 AM (41)
Jun 15, 8-9 AM (26)
Jun 15, 9-10 AM (11)
Jun 15, 10-11 AM (35)
Jun 15, 11-12 PM (25)
Jun 15, 12-1 PM (40)
Jun 15, 1-2 PM (26)
Jun 15, 2-3 PM (21)
Jun 15, 3-4 PM (24)
Jun 15, 4-5 PM (21)
Jun 15, 5-6 PM (13)
Jun 15, 6-7 PM (13)
Jun 15, 7-8 PM (7)
Jun 15, 8-9 PM (26)
Jun 15, 9-10 PM (20)
Jun 15, 10-11 PM (22)
Jun 15, 11-12 AM (39)
Jun 16, 12-1 AM (11)
Jun 16, 1-2 AM (5)
Jun 16, 2-3 AM (1)
Jun 16, 3-4 AM (9)
Jun 16, 4-5 AM (6)
Jun 16, 5-6 AM (1)
Jun 16, 6-7 AM (16)
Jun 16, 7-8 AM (81)
Jun 16, 8-9 AM (18)
Jun 16, 9-10 AM (28)
Jun 16, 10-11 AM (22)
Jun 16, 11-12 PM (31)
Jun 16, 12-1 PM (37)
Jun 16, 1-2 PM (49)
Jun 16, 2-3 PM (34)
Jun 16, 3-4 PM (28)
Jun 16, 4-5 PM (37)
Jun 16, 5-6 PM (17)
Jun 16, 6-7 PM (26)
Jun 16, 7-8 PM (9)
Jun 16, 8-9 PM (11)
Jun 16, 9-10 PM (4)
Jun 16, 10-11 PM (31)
Jun 16, 11-12 AM (9)
Jun 17, 12-1 AM (8)
Jun 17, 1-2 AM (8)
Jun 17, 2-3 AM (11)
Jun 17, 3-4 AM (4)
Jun 17, 4-5 AM (1)
Jun 17, 5-6 AM (6)
Jun 17, 6-7 AM (99)
Jun 17, 7-8 AM (33)
Jun 17, 8-9 AM (22)
Jun 17, 9-10 AM (56)
Jun 17, 10-11 AM (18)
Jun 17, 11-12 PM (19)
Jun 17, 12-1 PM (57)
Jun 17, 1-2 PM (28)
Jun 17, 2-3 PM (37)
Jun 17, 3-4 PM (26)
Jun 17, 4-5 PM (19)
Jun 17, 5-6 PM (16)
Jun 17, 6-7 PM (10)
Jun 17, 7-8 PM (14)
Jun 17, 8-9 PM (12)
Jun 17, 9-10 PM (37)
Jun 17, 10-11 PM (29)
Jun 17, 11-12 AM (14)
Jun 18, 12-1 AM (12)
Jun 18, 1-2 AM (8)
Jun 18, 2-3 AM (5)
Jun 18, 3-4 AM (11)
Jun 18, 4-5 AM (11)
Jun 18, 5-6 AM (11)
Jun 18, 6-7 AM (9)
Jun 18, 7-8 AM (19)
Jun 18, 8-9 AM (83)
Jun 18, 9-10 AM (45)
Jun 18, 10-11 AM (51)
Jun 18, 11-12 PM (23)
Jun 18, 12-1 PM (67)
Jun 18, 1-2 PM (14)
Jun 18, 2-3 PM (53)
Jun 18, 3-4 PM (44)
Jun 18, 4-5 PM (64)
Jun 18, 5-6 PM (24)
Jun 18, 6-7 PM (21)
Jun 18, 7-8 PM (13)
Jun 18, 8-9 PM (17)
Jun 18, 9-10 PM (23)
Jun 18, 10-11 PM (30)
Jun 18, 11-12 AM (26)
Jun 19, 12-1 AM (13)
Jun 19, 1-2 AM (9)
Jun 19, 2-3 AM (5)
Jun 19, 3-4 AM (2)
Jun 19, 4-5 AM (11)
Jun 19, 5-6 AM (4)
Jun 19, 6-7 AM (92)
Jun 19, 7-8 AM (18)
Jun 19, 8-9 AM (36)
Jun 19, 9-10 AM (39)
Jun 19, 10-11 AM (27)
Jun 19, 11-12 PM (30)
Jun 19, 12-1 PM (53)
Jun 19, 1-2 PM (65)
Jun 19, 2-3 PM (30)
Jun 19, 3-4 PM (60)
Jun 19, 4-5 PM (6)
Jun 19, 5-6 PM (1)
3,176 commits this week
Jun 12, 2026
-
Jun 19, 2026
Switch cardano-crypto-leios tests to quickcheck
Add a few bits and pieces to the network design sections
Distribute resource management RSKs into per-component sections
wip(ci): activate 'future_snark'
wip(DO NOT MERGE): reactivate e2e logs grouping in GH actions
Re-activate as-is in order to see if there was some changes GH sides that solved the previous problem: logs of a retried run were lost.
fix(cardano-services): type WsServer intervals as NodeJS.Timeout for @types/node 22
@types/node@22 has setInterval return NodeJS.Timeout and clearInterval no longer accept the legacy NodeJS.Timer, so `clearInterval(this.heartbeatInterval)` failed to type-check (WsServer/server.ts). Retype the heartbeatInterval and stakeInterval fields as NodeJS.Timeout | undefined. (Masked locally by incremental tsc --build; caught on a clean CI compile.) Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
colmena: add ephemeral nvme and move leios.db to it
chore: target Node 22 LTS (drop EOL Node 18)
The project was pinned to Node 18.12.0 (.nvmrc + all CI workflows) with a stale `engines: >=16.20.2` — both Node 16 and 18 are EOL. Move to the current Node 22 LTS line, tracked by major (not a stuck patch pin like 18.12.0) so it doesn't go stale again: - .nvmrc: 22 - all 9 CI workflows: node-version 22 - Dockerfile: NODEJS_MAJOR_VERSION=22 - engines.node: >=22 across root + all workspace manifests - @types/node: ^18 -> ^22 Fix surfaced by @types/node@22: PerformanceEntry no longer carries `detail` (it's on PerformanceMark/Measure) — measurement-util now casts the entry to read it, and the mark filter is a type predicate so the target type narrows. Unblocks the Node-20+ dependency majors (e.g. uuid@14) that previously couldn't pass CI on Node 18. Validated: full build green on @types/node@22; core/crypto/key-management suites pass (sandbox runs Node 24, i.e. >=22). Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
wip(stm): cache ivc prover setup - not to merge
fix(stm): gating behind 'future_snark' feature
feat(common): activate bytes codec for SNARK proofs
docs: add guide to run SNARK tests
wip(ci): run IVC SNARK proofs in e2e tests
wip(e2e): avoid early timeouts
fix(stm): output IVC ancillary verifier data on aggregation
The IVC SNARK aggregation now produces the AncillaryVerifierData so certificates carry it and the embedded IVC proof can be verified.
fix(aggregator): prune signer registrations before epoch settings
Pruning epoch settings before the signer registrations that reference them broke the foreign key constraint after a large epoch gap.
fix(stm): deserialize IVC verifying keys against their circuit
Reading the verifying keys with an empty constraint system produced a degenerate key, breaking the certificate hash round trip in the client.
fix(e2e): wait for the expected epoch in stake distribution checks
The Mithril and Cardano stake distribution checks now poll until an artifact reaches the expected epoch instead of asserting once on the latest one.
fix(stm): carry the rolling state forward on same-epoch IVC steps
A same-epoch step does not advance the rolling state, so reuse the parent certificate's rolling state instead of failing.
refactor(e2e): wait 1 more epoch on the minimal scenario
fix(aggregator): do not attempt to aggregate during the genesis epoch
test(stm): guard IVC rolling state serde round trip
Assert the rolling state survives the AncillaryProverData CBOR round trip, and add anyhow context to the two IVC proof verification checks.
fix(e2e): run genesis early with minimal scenario