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 (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 (10)
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 (5)
3,051 commits this week Jun 10, 2026 - Jun 17, 2026
feat(tx-construction): add fluent minting to the transaction builder
Add `TxBuilder.addMint({ policy, assets, redeemer })` so consumers can mint or
burn assets under a policy without dropping to the lower-level `initializeTx`.
The policy script is attached to the witness set, the asset quantities are added
to the body, and (for Plutus policies) the redeemer is included and its execution
units evaluated during `build()`. Previously `GenericTxBuilder` had no minting
support — `mint` was never forwarded to `initializeTx`.

This also fixes redeemer index reconciliation for non-spend purposes: builder
redeemers are stamped with a sentinel index by `buildRedeemers`, but
`reorgRedeemers` only reindexed spend redeemers, so mint/withdrawal/certificate
redeemers reached `updateRedeemers` with an index the evaluator could not match.
Sentinel-indexed non-spend redeemers are now reindexed by their position within
their purpose; redeemers that already carry a concrete index are left untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
chore(deps): bump tx3-sdk to 0.13.0
Updates the `tx3-sdk` dependency from 0.9.2 to the latest published
release, 0.13.0, and adapts to its API changes:

- `BytesEnvelope`'s `encoding: BytesEncoding` field became
  `content_type: String`; submit now passes `content_type: "hex"`
  (matching the SDK's own convention) and drops the removed
  `BytesEncoding` import.
- `MissingTxArgDiagnostic.ty` was renamed to `arg_type`.

The bump also pulls pallas up to the stable 1.x line, whose
`pallas-crypto` moved key generation to `rand_core` 0.10. cshell
otherwise stays on `rand_core` 0.9 (bip39/bip32, private-key
encryption), so the `private_key_encryption_roundtrip` test now builds
its test keys from bytes via the existing byte constructors instead of
`SecretKey::new`/`SecretKeyExtended::new`.

The `trp::Error` match and the `ParamType` match needed no changes.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
feat(tx-construction): export tx-builder utils for manual tx assembly
buildRedeemers, buildWitness and computeCollateral are defined in
tx-builder/utils.ts but the tx-builder barrel never re-exported them, so
they were absent from the package's public API. Consumers assembling Plutus
transactions manually (mint / script-spend / withdrawal redeemers,
collateral) had to reimplement buildRedeemers and could not use
computeCollateral. Re-export ./utils from the barrel to expose them.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Fixes for reinstallable lib:ghc build-tools, freetype pkg-config version, and wasm test filesystem access (#2522)
* useLocalGhcLib: expose genprimopcode/deriveConstants for reinstallable lib:ghc

When `build-tool-depends` is on, lib:ghc names `genprimopcode` and
`deriveConstants` as exe build-tools.  These live in the GHC source tree, not
on hackage, so cabal could only find them by chance on PATH.  Expose them
(alongside the `compiler/` subdir) as reinstallable source-repository-packages
from the GHC source, wired through inputMap, so cabal satisfies the goals
normally.

This removes the need for the `packages.ghc...build-tools = mkForce [alex
happy]` override, so drop it from configuration-nix.nix.

* cabal-pkg-config: report freetype's pkg-config (libtool) version

FreeType's freetype2.pc advertises a libtool/ABI version (e.g. 26.2.20) that
is deliberately decoupled from the release .version (e.g. 2.13.3), per
freetype's docs/VERSIONS.TXT.  `pkg-config --modversion freetype2` returns the
libtool number, so plan-to-nix must report the same value; otherwise the v2
slice's UnitId (which folds the resolved freetype2 version into
pkgHashPkgConfigDeps) forks, taking every transitive consumer
(gi-freetype2 -> gi-harfbuzz -> gi-pango -> gi-gdk3 -> gi-gtk3 -> ...) with it.

Add a `passthru.pc-version` table (the known release->libtool rows from
VERSIONS.TXT), falling back to .version with a warning for unknown releases.
This does not alter freetype's derivation, so it neither rebuilds nor forces a
build of freetype during planning.

* wasm: give test runner filesystem access; skip subprocess check on wasm

The wasm testWrapper ran `wasmtime <test>` with no `--dir`, so WASI granted the
module zero filesystem access and any test reading its data-files
(getDataFileName, under <pkg>-data/share/...) or a source-relative file failed
with a misleading "does not exist".  Preopen `/nix/store` and `.` so those
reads work.

The check-datadir test also exercises a build-tool-depends exe via readProcess,
which WASI cannot do (no process spawning -> "unsupported operation").  Guard
that check to non-wasm targets; the datadir and source-relative-file checks
still run under wasm.

* wasm: fix zlib cross-compilation

zlib doesn't cross-compile cleanly to wasm:

  * gzguts.h only `#include <errno.h>` when NO_STRERROR is unset, but
    gzread.c / gzwrite.c use errno / EAGAIN / EWOULDBLOCK unconditionally.
    zlib's configure probes strerror by compiling *and running* a test, which
    can't run when cross-compiling to wasm, so it defines NO_STRERROR (even
    though wasi-libc has strerror) and the gz* sources fail to compile with
    "use of undeclared identifier 'errno'".  Always include errno.h.

  * zlib sets NIX_LDFLAGS = "--undefined-version" whenever the linker is lld
    (to counter lld 16+'s --no-undefined-version default for its shared-lib
    version script).  wasm-ld is lld-based but rejects that flag, and we build
    static anyway, so drop it.

* wasm: disable check-datadir v2 check (data-files unreachable under WASI)

The v2 check stages data-files as absolute /nix/store symlinks and points Cabal
at them via the <pkg>_datadir env var.  wasmtime neither forwards host env vars
to the wasm guest nor follows absolute symlinks (no CLI option for either), so
check-datadir.run-v2 cannot pass on wasm.  Gate run-v2 on a non-wasm host so
the wasi32 job isn't a permanent failure, and document why in both the test and
the wasm test wrapper.  (v1 run still runs on wasm: its data-files are real
files in a -data output.)

* check-datadir: disable on Windows and Android

The test runs the built test binary, which spawns a build-tool-depends exe
(readProcess) and reads its data-files / a source-relative file.  That can't be
reproduced when the binary runs under an emulator: Windows (wine) and Android
can't reliably spawn the build-tool.  Disable the whole test there
(meta.disabled), alongside the existing wasm run-v2 skip.

* pkgconf-pc-version: don't force a freetype cross build on wasm/musl/android

Adding a pc-version to freetype (overlays/cabal-pkg-config.nix) pulled freetype
into this test's scope on every target, but its build stack (zlib / libpng /
brotli / …) doesn't cross-compile to wasm, musl or android, so the test started
failing there.  freetype's .pc Version: is platform-independent, so gate it like
systemd — verify it on glibc / darwin / windows and drop it (leaving the test
disabled via the existing checks==[] guard) on the others.