May 05, 12-1 PM (115)
May 05, 1-2 PM (118)
May 05, 2-3 PM (66)
May 05, 3-4 PM (91)
May 05, 4-5 PM (41)
May 05, 5-6 PM (26)
May 05, 6-7 PM (28)
May 05, 7-8 PM (73)
May 05, 8-9 PM (31)
May 05, 9-10 PM (18)
May 05, 10-11 PM (25)
May 05, 11-12 AM (17)
May 06, 12-1 AM (10)
May 06, 1-2 AM (5)
May 06, 2-3 AM (9)
May 06, 3-4 AM (23)
May 06, 4-5 AM (7)
May 06, 5-6 AM (13)
May 06, 6-7 AM (30)
May 06, 7-8 AM (11)
May 06, 8-9 AM (106)
May 06, 9-10 AM (27)
May 06, 10-11 AM (41)
May 06, 11-12 PM (46)
May 06, 12-1 PM (86)
May 06, 1-2 PM (53)
May 06, 2-3 PM (43)
May 06, 3-4 PM (33)
May 06, 4-5 PM (18)
May 06, 5-6 PM (8)
May 06, 6-7 PM (12)
May 06, 7-8 PM (26)
May 06, 8-9 PM (13)
May 06, 9-10 PM (9)
May 06, 10-11 PM (30)
May 06, 11-12 AM (23)
May 07, 12-1 AM (7)
May 07, 1-2 AM (2)
May 07, 2-3 AM (1)
May 07, 3-4 AM (10)
May 07, 4-5 AM (4)
May 07, 5-6 AM (33)
May 07, 6-7 AM (97)
May 07, 7-8 AM (235)
May 07, 8-9 AM (42)
May 07, 9-10 AM (29)
May 07, 10-11 AM (55)
May 07, 11-12 PM (40)
May 07, 12-1 PM (59)
May 07, 1-2 PM (48)
May 07, 2-3 PM (47)
May 07, 3-4 PM (44)
May 07, 4-5 PM (58)
May 07, 5-6 PM (10)
May 07, 6-7 PM (24)
May 07, 7-8 PM (30)
May 07, 8-9 PM (12)
May 07, 9-10 PM (18)
May 07, 10-11 PM (65)
May 07, 11-12 AM (20)
May 08, 12-1 AM (6)
May 08, 1-2 AM (19)
May 08, 2-3 AM (19)
May 08, 3-4 AM (8)
May 08, 4-5 AM (3)
May 08, 5-6 AM (20)
May 08, 6-7 AM (19)
May 08, 7-8 AM (53)
May 08, 8-9 AM (34)
May 08, 9-10 AM (12)
May 08, 10-11 AM (32)
May 08, 11-12 PM (40)
May 08, 12-1 PM (30)
May 08, 1-2 PM (45)
May 08, 2-3 PM (46)
May 08, 3-4 PM (26)
May 08, 4-5 PM (23)
May 08, 5-6 PM (29)
May 08, 6-7 PM (15)
May 08, 7-8 PM (10)
May 08, 8-9 PM (15)
May 08, 9-10 PM (16)
May 08, 10-11 PM (23)
May 08, 11-12 AM (12)
May 09, 12-1 AM (4)
May 09, 1-2 AM (1)
May 09, 2-3 AM (0)
May 09, 3-4 AM (6)
May 09, 4-5 AM (6)
May 09, 5-6 AM (2)
May 09, 6-7 AM (6)
May 09, 7-8 AM (4)
May 09, 8-9 AM (4)
May 09, 9-10 AM (3)
May 09, 10-11 AM (9)
May 09, 11-12 PM (6)
May 09, 12-1 PM (21)
May 09, 1-2 PM (24)
May 09, 2-3 PM (12)
May 09, 3-4 PM (14)
May 09, 4-5 PM (7)
May 09, 5-6 PM (0)
May 09, 6-7 PM (2)
May 09, 7-8 PM (3)
May 09, 8-9 PM (1)
May 09, 9-10 PM (8)
May 09, 10-11 PM (33)
May 09, 11-12 AM (16)
May 10, 12-1 AM (15)
May 10, 1-2 AM (0)
May 10, 2-3 AM (0)
May 10, 3-4 AM (5)
May 10, 4-5 AM (0)
May 10, 5-6 AM (4)
May 10, 6-7 AM (0)
May 10, 7-8 AM (17)
May 10, 8-9 AM (8)
May 10, 9-10 AM (1)
May 10, 10-11 AM (26)
May 10, 11-12 PM (4)
May 10, 12-1 PM (49)
May 10, 1-2 PM (18)
May 10, 2-3 PM (8)
May 10, 3-4 PM (13)
May 10, 4-5 PM (26)
May 10, 5-6 PM (10)
May 10, 6-7 PM (7)
May 10, 7-8 PM (23)
May 10, 8-9 PM (12)
May 10, 9-10 PM (10)
May 10, 10-11 PM (29)
May 10, 11-12 AM (19)
May 11, 12-1 AM (12)
May 11, 1-2 AM (5)
May 11, 2-3 AM (5)
May 11, 3-4 AM (7)
May 11, 4-5 AM (3)
May 11, 5-6 AM (12)
May 11, 6-7 AM (28)
May 11, 7-8 AM (60)
May 11, 8-9 AM (34)
May 11, 9-10 AM (76)
May 11, 10-11 AM (55)
May 11, 11-12 PM (78)
May 11, 12-1 PM (83)
May 11, 1-2 PM (102)
May 11, 2-3 PM (41)
May 11, 3-4 PM (27)
May 11, 4-5 PM (24)
May 11, 5-6 PM (26)
May 11, 6-7 PM (42)
May 11, 7-8 PM (53)
May 11, 8-9 PM (57)
May 11, 9-10 PM (22)
May 11, 10-11 PM (49)
May 11, 11-12 AM (19)
May 12, 12-1 AM (2)
May 12, 1-2 AM (2)
May 12, 2-3 AM (3)
May 12, 3-4 AM (4)
May 12, 4-5 AM (8)
May 12, 5-6 AM (11)
May 12, 6-7 AM (17)
May 12, 7-8 AM (23)
May 12, 8-9 AM (25)
May 12, 9-10 AM (35)
May 12, 10-11 AM (80)
May 12, 11-12 PM (95)
May 12, 12-1 PM (17)
4,558 commits this week May 05, 2026 - May 12, 2026
fix(tx-generator): install bash signal trap so composer scripts honour the exit-0 contract
The "Always: Commands finish with zero exit code" property has been
flagging tx-generator/parallel_driver_refill.sh at ~0.12% in recent
Antithesis runs (6/4908 on the 2026-05-11 Cardano Foundation Test
run). Every failing example shows the SDK's antithesis_random Rust
binary writing
  Error: Os { code: 32, kind: BrokenPipe, message: "Broken pipe" }
to the script's stderr immediately before the script exits non-zero —
the parent bash interpreter receives SIGPIPE and dies with 141.

Install sdk_install_signal_trap (from the now-shared composer-sdk
helper) at the top of every tx-generator composer script. The trap
converts in-bash SIGPIPE/SIGTERM/SIGINT into a Sometimes-optional
observation + exit 0, mirroring the defense asteria-game has carried
since df7ef80.
refactor(composer-sdk): share helper across tx-generator and asteria-game
Extract emit + signal-handling helpers into
components/composer-sdk/helper_sdk_common.sh, wired into both
component subflakes as a path: input. asteria-game/helper_sdk.sh and
tx-generator/helper_sdk_lib.sh become thin shims that source the
shared file alongside any component-specific helpers
(control_socket_request for tx-generator).

No behavior change for asteria-game; tx-generator gains the
sdk_install_signal_trap / sdk_run_signal_safe[_fn] /
sdk_sometimes_optional primitives previously available only on the
asteria side. Callers of those primitives in tx-generator are added in
the follow-up commit.
Deprecate TxBody and TxBodyContent in favour of the experimental API
Deprecates the old-API transaction body surface (the type, its
constructor, and direct producers/consumers) so users are pointed at
'Cardano.Api.Experimental'. Internal modules that still use these
symbols are annotated with -Wno-deprecations to keep -Werror green;
they will be migrated in a follow-up along with the setter family.

Deprecations:
- TxBody (data type), ShelleyTxBody (constructor)
- TxBodyContent (type/constructor)
- createTransactionBody, defaultTxBodyContent
- getTxBody, getTxBodyContent
- BalancedTxBody

The existing pattern-synonym TxBody deprecation message is updated for
consistency with the new messages.
feat: add constitutional committee endpoints
- /governance/committee: current committee snapshot with members, quorum,
  and source NewCommittee governance action (null for the Conway-genesis
  committee).
- /governance/committee/votes: paged history of all CC member votes.
- /governance/committee/{cc_id}/votes: paged votes filtered by CIP-129 hot
  or cold credential; cold queries aggregate across hot-key rotations.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
feat: add constitutional committee endpoints
- /governance/committee: current committee snapshot with members, quorum,
  and source NewCommittee governance action (null for the Conway-genesis
  committee).
- /governance/committee/votes: paged history of all CC member votes.
- /governance/committee/{cc_id}/votes: paged votes filtered by CIP-129 hot
  or cold credential; cold queries aggregate across hot-key rotations.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
feat: constitutional committee endpoints
Adds three endpoints for surfacing constitutional committee state and votes:

- GET /governance/committee — current committee snapshot with members,
  quorum, members count, and source NewCommittee gov action (genesis
  committee returns proposal fields as null and `is_genesis: true`).
- GET /governance/committee/votes — paged list of all CC votes ever cast.
- GET /governance/committee/:cc_id/votes — paged list of votes filtered
  by CIP-129 hot (cc_hot1...) or cold (cc_cold1...) credential.
  Cold queries aggregate across every hot key the cold has authorized.

Per-vote shape includes the voting anchor (metadata_url / metadata_hash),
governance_type, block height/time, and the voter's CIP-129 hot id.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Peras: Add asserts in the implForgeCert
There is a chance that incompatible ordering functions may be
passed to the `verifyCert`. And we need to catch this problem
sooner and prevent from building incorrect cert with mismatched
amount of votes, so we add a check that the size of the deduplicated
voters and certs is the same.

See https://github.com/tweag/cardano-peras/issues/240 for the
deeper discussion.