Apr 25, 2-3 PM (10)
Apr 25, 3-4 PM (6)
Apr 25, 4-5 PM (10)
Apr 25, 5-6 PM (16)
Apr 25, 6-7 PM (13)
Apr 25, 7-8 PM (30)
Apr 25, 8-9 PM (55)
Apr 25, 9-10 PM (13)
Apr 25, 10-11 PM (21)
Apr 25, 11-12 AM (22)
Apr 26, 12-1 AM (5)
Apr 26, 1-2 AM (0)
Apr 26, 2-3 AM (2)
Apr 26, 3-4 AM (5)
Apr 26, 4-5 AM (2)
Apr 26, 5-6 AM (2)
Apr 26, 6-7 AM (3)
Apr 26, 7-8 AM (8)
Apr 26, 8-9 AM (3)
Apr 26, 9-10 AM (0)
Apr 26, 10-11 AM (2)
Apr 26, 11-12 PM (1)
Apr 26, 12-1 PM (6)
Apr 26, 1-2 PM (4)
Apr 26, 2-3 PM (14)
Apr 26, 3-4 PM (14)
Apr 26, 4-5 PM (0)
Apr 26, 5-6 PM (13)
Apr 26, 6-7 PM (13)
Apr 26, 7-8 PM (7)
Apr 26, 8-9 PM (7)
Apr 26, 9-10 PM (5)
Apr 26, 10-11 PM (27)
Apr 26, 11-12 AM (21)
Apr 27, 12-1 AM (7)
Apr 27, 1-2 AM (7)
Apr 27, 2-3 AM (9)
Apr 27, 3-4 AM (9)
Apr 27, 4-5 AM (5)
Apr 27, 5-6 AM (13)
Apr 27, 6-7 AM (7)
Apr 27, 7-8 AM (82)
Apr 27, 8-9 AM (47)
Apr 27, 9-10 AM (33)
Apr 27, 10-11 AM (62)
Apr 27, 11-12 PM (80)
Apr 27, 12-1 PM (66)
Apr 27, 1-2 PM (44)
Apr 27, 2-3 PM (52)
Apr 27, 3-4 PM (42)
Apr 27, 4-5 PM (36)
Apr 27, 5-6 PM (26)
Apr 27, 6-7 PM (13)
Apr 27, 7-8 PM (26)
Apr 27, 8-9 PM (13)
Apr 27, 9-10 PM (16)
Apr 27, 10-11 PM (42)
Apr 27, 11-12 AM (28)
Apr 28, 12-1 AM (17)
Apr 28, 1-2 AM (8)
Apr 28, 2-3 AM (4)
Apr 28, 3-4 AM (5)
Apr 28, 4-5 AM (5)
Apr 28, 5-6 AM (8)
Apr 28, 6-7 AM (8)
Apr 28, 7-8 AM (37)
Apr 28, 8-9 AM (54)
Apr 28, 9-10 AM (59)
Apr 28, 10-11 AM (53)
Apr 28, 11-12 PM (56)
Apr 28, 12-1 PM (49)
Apr 28, 1-2 PM (54)
Apr 28, 2-3 PM (69)
Apr 28, 3-4 PM (31)
Apr 28, 4-5 PM (14)
Apr 28, 5-6 PM (47)
Apr 28, 6-7 PM (9)
Apr 28, 7-8 PM (9)
Apr 28, 8-9 PM (14)
Apr 28, 9-10 PM (20)
Apr 28, 10-11 PM (34)
Apr 28, 11-12 AM (29)
Apr 29, 12-1 AM (13)
Apr 29, 1-2 AM (1)
Apr 29, 2-3 AM (1)
Apr 29, 3-4 AM (6)
Apr 29, 4-5 AM (1)
Apr 29, 5-6 AM (4)
Apr 29, 6-7 AM (12)
Apr 29, 7-8 AM (45)
Apr 29, 8-9 AM (75)
Apr 29, 9-10 AM (49)
Apr 29, 10-11 AM (28)
Apr 29, 11-12 PM (51)
Apr 29, 12-1 PM (39)
Apr 29, 1-2 PM (21)
Apr 29, 2-3 PM (66)
Apr 29, 3-4 PM (25)
Apr 29, 4-5 PM (36)
Apr 29, 5-6 PM (16)
Apr 29, 6-7 PM (10)
Apr 29, 7-8 PM (14)
Apr 29, 8-9 PM (13)
Apr 29, 9-10 PM (17)
Apr 29, 10-11 PM (25)
Apr 29, 11-12 AM (29)
Apr 30, 12-1 AM (6)
Apr 30, 1-2 AM (8)
Apr 30, 2-3 AM (1)
Apr 30, 3-4 AM (6)
Apr 30, 4-5 AM (2)
Apr 30, 5-6 AM (8)
Apr 30, 6-7 AM (15)
Apr 30, 7-8 AM (17)
Apr 30, 8-9 AM (100)
Apr 30, 9-10 AM (19)
Apr 30, 10-11 AM (50)
Apr 30, 11-12 PM (120)
Apr 30, 12-1 PM (69)
Apr 30, 1-2 PM (45)
Apr 30, 2-3 PM (117)
Apr 30, 3-4 PM (29)
Apr 30, 4-5 PM (34)
Apr 30, 5-6 PM (9)
Apr 30, 6-7 PM (20)
Apr 30, 7-8 PM (23)
Apr 30, 8-9 PM (28)
Apr 30, 9-10 PM (13)
Apr 30, 10-11 PM (25)
Apr 30, 11-12 AM (15)
May 01, 12-1 AM (18)
May 01, 1-2 AM (15)
May 01, 2-3 AM (6)
May 01, 3-4 AM (7)
May 01, 4-5 AM (3)
May 01, 5-6 AM (5)
May 01, 6-7 AM (8)
May 01, 7-8 AM (13)
May 01, 8-9 AM (24)
May 01, 9-10 AM (16)
May 01, 10-11 AM (16)
May 01, 11-12 PM (17)
May 01, 12-1 PM (37)
May 01, 1-2 PM (29)
May 01, 2-3 PM (19)
May 01, 3-4 PM (16)
May 01, 4-5 PM (25)
May 01, 5-6 PM (11)
May 01, 6-7 PM (20)
May 01, 7-8 PM (22)
May 01, 8-9 PM (65)
May 01, 9-10 PM (15)
May 01, 10-11 PM (40)
May 01, 11-12 AM (61)
May 02, 12-1 AM (6)
May 02, 1-2 AM (11)
May 02, 2-3 AM (5)
May 02, 3-4 AM (8)
May 02, 4-5 AM (6)
May 02, 5-6 AM (2)
May 02, 6-7 AM (2)
May 02, 7-8 AM (14)
May 02, 8-9 AM (6)
May 02, 9-10 AM (7)
May 02, 10-11 AM (6)
May 02, 11-12 PM (5)
May 02, 12-1 PM (7)
May 02, 1-2 PM (3)
May 02, 2-3 PM (8)
3,789 commits this week Apr 25, 2026 - May 02, 2026
asteria-game: top-level catch in BootstrapMain + drop sidecar
Run 2 (commit 483d327) on testnets/asteria_game/ surfaced 3 new
findings, two of which were unchanged from run 1:

  1. stub/serial_driver_asteria_bootstrap.sh — non-zero exit
  2. chain-sync-client/parallel_driver_flaky_chain_sync.sh —
     non-zero exit
  3. convergence/finally_tips_agree.sh — non-zero exit (rc=101)

(1) Bootstrap continued to fail because `withN2C` and other
calls *outside* runDeploy's local try block could still throw
(connection failures, transient queryUTxOs errors when relay1
is being faulted, etc.). Antithesis treats every non-zero exit
as a real "Always: zero exit code" violation regardless of
subsequent successful fires. Wraps the entire post-startup body
(everything after the `_starting` and `_wallet_loaded` SDK
events) in `try`; on any uncaught exception fires
asteria_bootstrap_deferred (sdkSometimes True) and exits 0.

(2) and (3) failed because the prior compose-level mounts
(tmpfs over /opt/antithesis/test/v1/chain-sync-client and
bind-mount of a no-op over convergence/finally_tips_agree.sh)
have no effect — Antithesis's composer discovers driver scripts
at image-bake time, not at container-runtime, so per-service
mounts are ignored. The convergence finding was rc=101 instead
of "missing" because the composer ran the original baked
version, not the bind-mounted no-op.

The proper fix is to drop the sidecar service entirely from
this testnet's compose. The sidecar:f889dbc image is the *sole*
source of both /opt/antithesis/test/v1/convergence/ and
/opt/antithesis/test/v1/chain-sync-client/ scripts. With no
sidecar container the composer has no host for those drivers
and they disappear from the run. Tracer / tracer-sidecar /
log-tailer remain (none of those bake composer scripts) so
report observability is preserved.

testnets/asteria_game/no-op-finally.sh is removed (it was a
runtime-mount workaround that didn't take effect).
fix(utxorpc): forward v1alpha/v1beta service features from utxorpc-spec
utxorpc-spec 0.19 gated each service module (query, submit, sync, watch)
behind its own cargo feature. pallas-utxorpc only forwarded the cardano
features, so spec::query/submit/sync/watch disappeared from the
re-export at pallas::interop::utxorpc::spec, breaking downstream
consumers that build u5c gRPC services (e.g. dolos).

Enable the four service features for both v1alpha and v1beta so the spec
re-export stays complete. The cardano features are pulled in transitively.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
chore(tx-generator): bump pin to upstream main fe70082 (post-#117)
Picks up:
  * PR #117 — refill recovery-await timeout → IndexNotReady (transient
    retry, not Always-fire SubmitRejected)

Targets the Antithesis finding 'tx_generator_refill_submit_rejected'
seen at vtime 117s on commit 41213dc, where the prior in-flight refill
landed on the relay but the change-output never appeared on the best
chain (likely block rolled back). Treating that as IndexNotReady lets
the composer retry on the next tick against a fresh post-rollback
faucet UTxO.
fix(utxorpc): restore v1alpha root re-export behind u5c-v1alpha-compat
Walks back the breaking change from the previous commit. The crate root
re-export of `Mapper` and `spec` returns, but now lives behind a new
`u5c-v1alpha-compat` Cargo feature that is on by default.

Default consumers see no change — `pallas_utxorpc::Mapper` keeps
resolving to the v1alpha mapper. Consumers who want the explicit-version
future can opt out with `default-features = false` and use
`pallas_utxorpc::v1alpha::Mapper` / `v1beta::Mapper` directly.

Both `pub mod v1alpha;` and `pub mod v1beta;` remain unconditional; the
feature only gates the root re-export.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
feat(utxorpc)!: drop spec-version features and root re-export
Always compile both v1alpha and v1beta into pallas-utxorpc, and require
callers to pick a version explicitly. The crate root no longer re-exports
either Mapper or spec — `pallas_utxorpc::Mapper` becomes
`pallas_utxorpc::v1alpha::Mapper` (or v1beta::Mapper).

This is a breaking change, taken deliberately: having v1alpha implicitly
be "the" Mapper at the crate root was tech-debt that would have grown
worse as v1beta matures and v1alpha eventually deprecates. Surfacing the
choice at the use-site makes the version explicit and removes the
default-feature ambiguity.

Side effects:
  * pallas-utxorpc has no Cargo features anymore.
  * pallas/Cargo.toml drops the hoisted u5c-v1alpha / u5c-v1beta
    features for the same reason.
  * Cross-version wire-compat tests are unconditional now.
  * Shared infrastructure (LedgerContext, type aliases) stays at the
    crate root — they are version-agnostic.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
fix(utxorpc): map ScriptAny to ScriptAny instead of ScriptAll
map_native_script was constructing u5c NativeScript::ScriptAll for the
babbage::NativeScript::ScriptAny arm, inverting the semantics ("any"
becomes "all"). The bug was pre-existing in the original lib.rs and got
copied into both v1alpha and v1beta during the dual-spec split.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
feat(utxorpc): add v1beta spec support alongside v1alpha
Bumps utxorpc-spec to 0.19 and exposes both `pallas_utxorpc::v1alpha`
and `pallas_utxorpc::v1beta` mappers. The crate root keeps re-exporting
v1alpha items (Mapper, spec) under the default `v1alpha` feature, so
existing call sites compile unchanged. v1beta is gated behind an
opt-in `v1beta` feature; both features are additive.

Shared mapping logic (~80% of the surface — all certificates, pparams,
plutus data, witnesses, scripts, blocks) lives in a single
`impl_cardano_mapper_shared!` macro instantiated once per version. Methods
that diverge between specs (map_native_script, map_tx_datum, map_tx_output,
map_asset, map_policy_assets, map_conway_gov_action, map_tx) are defined
per-version. v1beta-only mappers (BootstrapWitness, Vote, VotingProcedure,
VoterVotes) live next to the rest of the v1beta module.

Adds cross-version wire-compatibility tests (PParams, Certificate,
PoolRegistrationCert, Metadata, PlutusData) that act as a tripwire if
upstream diverges any shared message in a future release.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
chore(master): bump sidecar to 65039df (drops orphan flaky_chain_sync probe)
The sidecar tag previously pinned in master (f889dbc) was built before
commit 65039df, which removed components/sidecar/composer/chain-sync-client/
parallel_driver_flaky_chain_sync.sh from the sidecar image. Adversary was
removed from cardano_node_master in #109, but the sidecar pin still carried
the stale probe — so on every master run the composer discovers the script,
runs it, fails to reach /state/adversary-control.sock (no adversary in
master), and exits 1 in 3 ms with empty stderr/stdout.

Bumping to sidecar:65039df rebuilds the image without the orphan probe.
Closes #115.