Week 38 · 2026
Sep 14 – Sep 20, 2026 · gathered Sep 21, 2026
- 5
- PRs merged
- 1
- PRs opened
- 2
- Closed
- 0
- Opened
- 0
- Releases
- 2
- Repos
- 37
- Commits
- 2
- Comments
Highlights
5 PRs merged, 1 opened and 37 commits across two repos, with no releases. Two issues closed, each by one of the merges below (#2855, #2871). Two of the five merges are last week's leftovers, described then; the other three are a script regen, a fund-lockout fix, and a CI test-runner change. The one PR opened this week merged the following Monday.
Reactive. The compiled head validator script was regenerated Monday (#2872), a two-line hash bump; the PR benchmarks found no cost or size differences, so nothing behavioural changed.
We focused on a user-reported issue this week: A user depositing two
UTxOs into an open head through the Mesh SDK's incrementalCommitFunds
found neither reflected on L2 after three hours, and both gone from their L1
wallet, sitting unspendable at the deposit script (#2871). The cause sits in
coverFee: when a deposit's own value didn't cover the min ADA of its output,
coverFee topped the output up but left the inline datum, which records
the deposited outputs, at the original value, so observeDepositTx's
value-versus-datum check rejected the deposit and the node never observed
it. The fix (#2873) runs observeDepositTx against the finalized draft
before handing it back from POST /commit, failing fast with a new
DepositTooLow{providedValue, minimumValue} error naming the shortfall,
and splits decodeDepositDatum out of the observer so hydra-tx recover
can decode already-stuck deposits for manual recovery. Left as follow-ups:
the blueprint path's change output is still topped up from node fuel, and
Arbitrary HeadId generates 16-byte values against a 28-byte policy id.
Merged Tuesday.
Both PRs described last week also merged: the fanout full-selection guard (#2858, closing #2855) on Tuesday, and the adversarial model testing suite (#2864) on Wednesday.
The rest of the week went into test infrastructure. nix flake check now
runs the Haskell test suites for hydra-node, hydra-tx, hydra-chain-observer,
hydra-plutus-extras, hydra-plutus and hydra-agda (#2874, merged Friday);
hydra-cluster stays excluded because its tests spin up real programs,
and hydra-tui because it needs vty. In review since Wednesday, 13
end-to-end tests that each started a real Cardano node and real Hydra nodes
were replaced with 30 unit tests checking the same logic directly, cutting
roughly 114 seconds of test time to about 1.3 seconds (#2875). Writing
the replacements surfaced four things the slow tests had only exercised by
accident: the per-address client filter, the pending-deposits list on the
API, two read models behind the commit endpoint and network status, and,
the biggest gap, all 39 cases of which internal events reach clients and
in what form, untested because every prior test built its own expectations
through that same code. A docs claim that the address filter applies to
TxValid and TxInvalid was also corrected (it doesn't), and CommitInfo
gained Eq/Show so a test could compare it. Two behaviour changes to
the address filter rode along: a snapshot that confirms no transaction
(one settling only a deposit or decommit) now reaches address-filtered
clients instead of being dropped, and a transaction spending from the
watched address now matches, not only one paying to it.
KPI & Outcome Achievement (M6). Routine only: the W37 note published.
Activity
Merged PRs, issues, and releases grouped by deliverable — the evidence behind the narrative above.
Other / Reactive
- Mergednix flake check incorporating haskell testscardano-scaling/hydra · @noonio
- MergedFix Deposit output calculationcardano-scaling/hydra · @v0d1ch
- MergedRegenerate head scriptcardano-scaling/hydra · @vrom911
- MergedModel rollbacks, restarts and L2 spam with de/commitscardano-scaling/hydra · @v0d1ch
- MergedRoute a full selection to a full fanoutcardano-scaling/hydra · @vrom911
- PR openedMove some tests away from hydra-clustercardano-scaling/hydra · @noonio
- Issue closedIncremental deposit not recorded and not recoverable — funds locked for 6+ hourscardano-scaling/hydra · @Fiftyw3bs
35 commits · cardano-scaling/hydra
M6 KPI & Outcome Achievement
Not started2 commits · cardano-scaling/hydra-updates
M3 Operational Excellence
In progress- Issue closedHead can wedge in FanoutProgress when a client selects the whole remaindercardano-scaling/hydra · @vrom911