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 (42)
Jun 12, 9-10 AM (23)
Jun 12, 10-11 AM (30)
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 (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 (13)
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 (17)
Jun 18, 8-9 AM (82)
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 (12)
Jun 18, 2-3 PM (51)
Jun 18, 3-4 PM (42)
Jun 18, 4-5 PM (4)
3,006 commits this week Jun 11, 2026 - Jun 18, 2026
[UTxO-HD] Port ouroboros-consensus:cardano HFC to the mk-free API
Make the Cardano HFC mk-free: Block.hs (CardanoLedgerState + era pattern
synonyms), CanHardFork (EraTranslation diff/values restructure), QueryHF (NS
projection with an era-typed filter), and protocolInfoCardano genesis, which
now produces the per-era genesis Values via the Nary embedding. The canonical
/serialise machinery is stripped from Cardano.Ledger.

There is deliberately no TxIn/TxOut instance for (HardForkBlock xs): tables
are per-era only. With this, lib:ouroboros-consensus:cardano is green.

TODO @js: CardanoTxOut and its IndexedMemPack codecs are retained only
for the deferred snapshot-converter tool.
Fix choosePeerTx size-match predicate
The pre-fix predicate used 'Map.lookupMax txOffsets'' to read the
peer's recorded tx size for the size check. When the same tx hash
was referenced in two EBs with disagreeing recorded sizes (a
malformed body delivered under one of them, or any inconsistency
between 'missingEbTxs' and 'reverseEbIndexByTx'), the lex-max EB's
size won the lookup and silently vetoed every peer that offered
the closure.

Replace 'lookupMax + ==' with 'Map.filter (size == target)'
followed by 'not (Map.null …)'. The request now carries the
offsets of every entry that agrees with the target's authoritative
size and a peer is selected as soon as any agreement exists.
Fix Match result type variable namespace (r not in scope)
matchShape's result type variable was generated from a value-namespace name
(makeRandomVariable), so implicit quantification in the signature did not bind
it and GHC reported 'not in scope'. Rebuild it as a type-variable-namespace
name. (Latent bug surfaced by the new Match activation test.)

Co-Authored-By: Claude Opus 4.8 <[email protected]>
test(internal/config): cover defaults/env/YAML/precedence + harden SaveAtomic (#743)
Adds tests for internal/config covering defaults, env-var loading, YAML loading and precedence, plus reliability hardening of SaveAtomic (F_FULLFSYNC on darwin, explicit enc.Close, per-path mutex via sync.Map, unique tmp via os.CreateTemp, fsynced parent dir with propagated non-ENOTSUP errors, clearConfigEnv test helper). Fixes a precedence bug where envconfig.Process ran after yaml.Unmarshal so env silently overrode YAML and adds LoadWithFlags(configFile, *pflag.FlagSet) which snapshots and re-applies pflag-Changed values so CLI wins over YAML/env per the documented precedence; cmd/adder/main.go now uses LoadWithFlags. Effective order is now CLI > YAML > env > defaults.

BREAKING: deployments that today set an env var to override a YAML key will see the YAML value win after this change.

Closes #708

Signed-off-by: Ales Verbic <[email protected]>
Generate explicit arg matches in Match decoder; add Match activation test
The Match destructor no longer uses head/(tail^n) to index the constructor's
arguments; it binds them with an explicit list pattern

  \case args_ of { [a0, a1, ...] -> f_ (decode a0) (decode a1) ...; _ -> PlutusTx.Builtins.error () }

The wildcard branch is unreachable for well-formed Data and uses the on-chain
error builtin, matching the previous head/tail crash-on-malformed behaviour.

Adds Match/Spec.hs (deriving (AsData, Match) via Plinth) which exercises
matchShape's dispatch + field decoding at runtime, so the codegen is verified
end-to-end in CI like the AsData test.

Co-Authored-By: Claude Opus 4.8 <[email protected]>