Jun 09, 2-3 PM (36)
Jun 09, 3-4 PM (38)
Jun 09, 4-5 PM (16)
Jun 09, 5-6 PM (18)
Jun 09, 6-7 PM (18)
Jun 09, 7-8 PM (19)
Jun 09, 8-9 PM (16)
Jun 09, 9-10 PM (16)
Jun 09, 10-11 PM (28)
Jun 09, 11-12 AM (10)
Jun 10, 12-1 AM (11)
Jun 10, 1-2 AM (16)
Jun 10, 2-3 AM (11)
Jun 10, 3-4 AM (19)
Jun 10, 4-5 AM (5)
Jun 10, 5-6 AM (2)
Jun 10, 6-7 AM (46)
Jun 10, 7-8 AM (82)
Jun 10, 8-9 AM (18)
Jun 10, 9-10 AM (59)
Jun 10, 10-11 AM (46)
Jun 10, 11-12 PM (134)
Jun 10, 12-1 PM (49)
Jun 10, 1-2 PM (33)
Jun 10, 2-3 PM (32)
Jun 10, 3-4 PM (28)
Jun 10, 4-5 PM (36)
Jun 10, 5-6 PM (12)
Jun 10, 6-7 PM (12)
Jun 10, 7-8 PM (38)
Jun 10, 8-9 PM (11)
Jun 10, 9-10 PM (10)
Jun 10, 10-11 PM (20)
Jun 10, 11-12 AM (7)
Jun 11, 12-1 AM (10)
Jun 11, 1-2 AM (2)
Jun 11, 2-3 AM (0)
Jun 11, 3-4 AM (2)
Jun 11, 4-5 AM (8)
Jun 11, 5-6 AM (12)
Jun 11, 6-7 AM (34)
Jun 11, 7-8 AM (106)
Jun 11, 8-9 AM (37)
Jun 11, 9-10 AM (20)
Jun 11, 10-11 AM (105)
Jun 11, 11-12 PM (25)
Jun 11, 12-1 PM (38)
Jun 11, 1-2 PM (39)
Jun 11, 2-3 PM (15)
Jun 11, 3-4 PM (20)
Jun 11, 4-5 PM (5)
Jun 11, 5-6 PM (7)
Jun 11, 6-7 PM (26)
Jun 11, 7-8 PM (90)
Jun 11, 8-9 PM (11)
Jun 11, 9-10 PM (5)
Jun 11, 10-11 PM (25)
Jun 11, 11-12 AM (5)
Jun 12, 12-1 AM (8)
Jun 12, 1-2 AM (2)
Jun 12, 2-3 AM (2)
Jun 12, 3-4 AM (4)
Jun 12, 4-5 AM (7)
Jun 12, 5-6 AM (15)
Jun 12, 6-7 AM (46)
Jun 12, 7-8 AM (19)
Jun 12, 8-9 AM (28)
Jun 12, 9-10 AM (22)
Jun 12, 10-11 AM (29)
Jun 12, 11-12 PM (42)
Jun 12, 12-1 PM (24)
Jun 12, 1-2 PM (26)
Jun 12, 2-3 PM (22)
Jun 12, 3-4 PM (38)
Jun 12, 4-5 PM (23)
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 (34)
Jun 15, 11-12 PM (25)
Jun 15, 12-1 PM (40)
Jun 15, 1-2 PM (26)
Jun 15, 2-3 PM (20)
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 (10)
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 (11)
Jun 16, 7-8 AM (81)
Jun 16, 8-9 AM (18)
Jun 16, 9-10 AM (27)
Jun 16, 10-11 AM (10)
Jun 16, 11-12 PM (31)
Jun 16, 12-1 PM (35)
Jun 16, 1-2 PM (39)
Jun 16, 2-3 PM (0)
3,122 commits this week Jun 09, 2026 - Jun 16, 2026
Fix 9.6 overlapping-patterns + unused Hsc import in Type.Type
On GHC 9.6, UserTyVar/KindedTyVar already exhaust HsTyVarBndr, so the
catch-all tripped -Werror=overlapping-patterns; move it into the >=9.10
branch (where it covers HsBndrWildCard). That leaves PlinthPlugin.Hsc unused
on 9.6, so CPP-guard its import too.

Verified locally with plutus's -Wall -Werror set on both GHC 9.6.7 and 9.12.2.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
[Peras] Improve return type of ChainDB's `addPeras{Vote/Cert}` methods and fix corresponding ChainDB statemachine tests (#2029)
# Description

@jasagredo identified that ChainDB statemachine tests, updated to
support full Peras VoteDB/CertDB in [Peras
3.75](https://github.com/IntersectMBO/ouroboros-consensus/pull/1966/changes/fd19c52bc140868d5c629d6473db78dab5a858ff),
were sometimes running into the normally-impossible
`MultipleWinnersInRound` exception.

This was a very intricate bug to track down, but ultimately we
identified that the model `ChainDB` would not run Peras-related garbage
collection, while the SUT would; and that was affecting how a vote
reusing an old-but-normally-GCed ID, but with a different boosted block,
would be rejected/accepted by the model/SUT, eventually leading to
`MultipleWinnersInRound` exception in the SUT. So this PR updates the
model to run the same GC behavior as the SUT.

In the process, we also identified that the SUT would conditionnally
discard some certs who are considered too old (for chain selection
purpose), in a non-visible/non-explicit way, while the model would not.
So we made this ignoring behavior explicit, and updated the model to
have the same behavior as the SUT, in order to prevent future annoying
debugging in statemachine tests, even though it seemed not to create
visible issues for now.

Finally, to prevent running into other `MultipleWinnersInRound`
exceptions in the future, the generator for `AddPerasVote` commands in
ChainDB's statemachine tests has been improved and documented, and now
limits the total stake distributed in a given round to never reach 2 x
quorum.

The only breaking changes are ChainDB's API methods `addPerasVoteSync`,
`addPerasVoteWithAsyncCertHandling`, `addPerasCertSync`,
`addPerasCertAsync` who get updated return types.
Rename Conway rules
- `ConwayBBODY` -> `BBODY`
- `ConwayCERT` -> `CERT`
- `ConwayCERTS` -> `CERTS`
- `ConwayDELEG` -> `DELEG`
- `ConwayENACT` -> `ENACT`
- `ConwayEPOCH` -> `EPOCH`
- `ConwayGOV` -> `GOV`
- `ConwayGOVCERT` -> `GOVCERT`
- `ConwayHARDFORK` -> `HARDFORK`
- `ConwayLEDGER` -> `LEDGER`
- `ConwayMEMPOOL` -> `MEMPOOL`
- `ConwayNEWEPOCH` -> `NEWEPOCH`
- `ConwayRATIFY` -> `RATIFY`
- `ConwayTICKF` -> `TICKF`
- `ConwayUTXO` -> `UTXO`
- `ConwayUTXOS` -> `UTXOS`
- `ConwayUTXOW` -> `UTXOW`