Home / Input Output / daedalus
Apr 23, 6-7 PM (1)
Apr 23, 7-8 PM (0)
Apr 23, 8-9 PM (0)
Apr 23, 9-10 PM (0)
Apr 23, 10-11 PM (0)
Apr 23, 11-12 AM (0)
Apr 24, 12-1 AM (0)
Apr 24, 1-2 AM (1)
Apr 24, 2-3 AM (2)
Apr 24, 3-4 AM (0)
Apr 24, 4-5 AM (0)
Apr 24, 5-6 AM (0)
Apr 24, 6-7 AM (0)
Apr 24, 7-8 AM (0)
Apr 24, 8-9 AM (0)
Apr 24, 9-10 AM (0)
Apr 24, 10-11 AM (0)
Apr 24, 11-12 PM (1)
Apr 24, 12-1 PM (3)
Apr 24, 1-2 PM (0)
Apr 24, 2-3 PM (5)
Apr 24, 3-4 PM (1)
Apr 24, 4-5 PM (5)
Apr 24, 5-6 PM (0)
Apr 24, 6-7 PM (0)
Apr 24, 7-8 PM (0)
Apr 24, 8-9 PM (0)
Apr 24, 9-10 PM (0)
Apr 24, 10-11 PM (0)
Apr 24, 11-12 AM (0)
Apr 25, 12-1 AM (0)
Apr 25, 1-2 AM (0)
Apr 25, 2-3 AM (3)
Apr 25, 3-4 AM (1)
Apr 25, 4-5 AM (3)
Apr 25, 5-6 AM (0)
Apr 25, 6-7 AM (0)
Apr 25, 7-8 AM (0)
Apr 25, 8-9 AM (0)
Apr 25, 9-10 AM (0)
Apr 25, 10-11 AM (0)
Apr 25, 11-12 PM (0)
Apr 25, 12-1 PM (0)
Apr 25, 1-2 PM (0)
Apr 25, 2-3 PM (1)
Apr 25, 3-4 PM (0)
Apr 25, 4-5 PM (0)
Apr 25, 5-6 PM (0)
Apr 25, 6-7 PM (1)
Apr 25, 7-8 PM (0)
Apr 25, 8-9 PM (2)
Apr 25, 9-10 PM (0)
Apr 25, 10-11 PM (0)
Apr 25, 11-12 AM (0)
Apr 26, 12-1 AM (1)
Apr 26, 1-2 AM (0)
Apr 26, 2-3 AM (0)
Apr 26, 3-4 AM (0)
Apr 26, 4-5 AM (2)
Apr 26, 5-6 AM (0)
Apr 26, 6-7 AM (0)
Apr 26, 7-8 AM (0)
Apr 26, 8-9 AM (0)
Apr 26, 9-10 AM (0)
Apr 26, 10-11 AM (0)
Apr 26, 11-12 PM (0)
Apr 26, 12-1 PM (0)
Apr 26, 1-2 PM (0)
Apr 26, 2-3 PM (0)
Apr 26, 3-4 PM (0)
Apr 26, 4-5 PM (0)
Apr 26, 5-6 PM (2)
Apr 26, 6-7 PM (2)
Apr 26, 7-8 PM (4)
Apr 26, 8-9 PM (0)
Apr 26, 9-10 PM (0)
Apr 26, 10-11 PM (0)
Apr 26, 11-12 AM (0)
Apr 27, 12-1 AM (0)
Apr 27, 1-2 AM (0)
Apr 27, 2-3 AM (4)
Apr 27, 3-4 AM (0)
Apr 27, 4-5 AM (0)
Apr 27, 5-6 AM (0)
Apr 27, 6-7 AM (0)
Apr 27, 7-8 AM (0)
Apr 27, 8-9 AM (0)
Apr 27, 9-10 AM (0)
Apr 27, 10-11 AM (0)
Apr 27, 11-12 PM (0)
Apr 27, 12-1 PM (2)
Apr 27, 1-2 PM (0)
Apr 27, 2-3 PM (0)
Apr 27, 3-4 PM (0)
Apr 27, 4-5 PM (0)
Apr 27, 5-6 PM (0)
Apr 27, 6-7 PM (0)
Apr 27, 7-8 PM (0)
Apr 27, 8-9 PM (0)
Apr 27, 9-10 PM (0)
Apr 27, 10-11 PM (0)
Apr 27, 11-12 AM (0)
Apr 28, 12-1 AM (0)
Apr 28, 1-2 AM (0)
Apr 28, 2-3 AM (0)
Apr 28, 3-4 AM (0)
Apr 28, 4-5 AM (0)
Apr 28, 5-6 AM (0)
Apr 28, 6-7 AM (0)
Apr 28, 7-8 AM (0)
Apr 28, 8-9 AM (0)
Apr 28, 9-10 AM (0)
Apr 28, 10-11 AM (0)
Apr 28, 11-12 PM (0)
Apr 28, 12-1 PM (0)
Apr 28, 1-2 PM (0)
Apr 28, 2-3 PM (0)
Apr 28, 3-4 PM (0)
Apr 28, 4-5 PM (0)
Apr 28, 5-6 PM (0)
Apr 28, 6-7 PM (0)
Apr 28, 7-8 PM (0)
Apr 28, 8-9 PM (0)
Apr 28, 9-10 PM (0)
Apr 28, 10-11 PM (0)
Apr 28, 11-12 AM (0)
Apr 29, 12-1 AM (0)
Apr 29, 1-2 AM (0)
Apr 29, 2-3 AM (0)
Apr 29, 3-4 AM (0)
Apr 29, 4-5 AM (0)
Apr 29, 5-6 AM (0)
Apr 29, 6-7 AM (0)
Apr 29, 7-8 AM (0)
Apr 29, 8-9 AM (0)
Apr 29, 9-10 AM (0)
Apr 29, 10-11 AM (1)
Apr 29, 11-12 PM (0)
Apr 29, 12-1 PM (0)
Apr 29, 1-2 PM (1)
Apr 29, 2-3 PM (1)
Apr 29, 3-4 PM (2)
Apr 29, 4-5 PM (1)
Apr 29, 5-6 PM (0)
Apr 29, 6-7 PM (0)
Apr 29, 7-8 PM (0)
Apr 29, 8-9 PM (0)
Apr 29, 9-10 PM (0)
Apr 29, 10-11 PM (0)
Apr 29, 11-12 AM (0)
Apr 30, 12-1 AM (0)
Apr 30, 1-2 AM (1)
Apr 30, 2-3 AM (0)
Apr 30, 3-4 AM (0)
Apr 30, 4-5 AM (0)
Apr 30, 5-6 AM (0)
Apr 30, 6-7 AM (0)
Apr 30, 7-8 AM (0)
Apr 30, 8-9 AM (0)
Apr 30, 9-10 AM (0)
Apr 30, 10-11 AM (0)
Apr 30, 11-12 PM (0)
Apr 30, 12-1 PM (0)
Apr 30, 1-2 PM (0)
Apr 30, 2-3 PM (0)
Apr 30, 3-4 PM (0)
Apr 30, 4-5 PM (0)
Apr 30, 5-6 PM (0)
Apr 30, 6-7 PM (0)
54 commits this week Apr 23, 2026 - Apr 30, 2026
chore(nix): fix nixpkgs-25.11 eval failures on Darwin and Windows
- Remove darwin.apple_sdk.frameworks.{CoreServices,AppKit} and
  darwin.libobjc from buildInputs in any-darwin.nix and devshells.nix;
  darwin.apple_sdk (aliased to apple_sdk_11_0) was removed as a legacy
  compatibility stub — the default Darwin stdenv SDK provides all
  frameworks automatically
- Update ghc8107 → ghc810 in installers/default.nix; ghc8107 was
  removed from nixpkgs-25.11 (closest available: ghc810)
chore(electron): upgrade from 24.2.0 to 41.3.0
Update Electron to 41.3.0 and adapt all affected layers:

Nix packaging:
- Rebuild electron headers derivation for 41.3.0
- Update patchelf/rpath/interpreter handling for new binary layout
- Expand runtime-nodejs-deps.json to include transitive closure (~445 packages)
- Add ELECTRON_SKIP_BINARY_DOWNLOAD=1 to prevent install script fetching
- Migrate nixpkgsJs compat shim to nixpkgs-25.11 nodejs_22; drop glibc-electron-loader.patch

JS dependencies (yarn.lock / package.json):
- @ledgerhq/hw-transport-node-hid 6.33.0, @trezor/connect 9.7.2
- @cardano-foundation/ledgerjs-hw-app-cardano 7.1.4
- @electron/rebuild 4.0.4, @swc/core 1.10.18, webpack 5.106.2
- node-hid 3.3.0, node-forge 1.4.0, moment 2.30.1, ws 8.18.2, axios 1.7.7

Renderer / MobX compatibility (SWC 1.10):
- Set legacyDecorator: true and useDefineForClassFields: false in swc-loader
  options so MobX 5 prototype setters intercept observable class field
  initialisation (SWC 1.3+ changed decorator defaults)
- Relax MobX enforceActions to 'observed' (was 'always'); 'always' blocked
  constructor initialisation routed through setters outside any action

Main process / Electron 41 API fixes:
- safeExitWithCode: app.exit() → process.exit() — app.exit() triggers
  Chromium teardown that causes SIGABRT when renderer is still alive
- CardanoNode._handleCardanoNodeExit: return early when state is STOPPING
  or STOPPED so stop() exclusively owns the shutdown sequence; prevents a
  double broadcastStateChange(STOPPED) IPC call that crashes Chromium
- mainErrorHandler: 'gpu-process-crashed' → 'child-process-gone' (Electron 23+)
- windows/main: 'crashed' → 'render-process-gone' (Electron 23+); remove
  event parameter from 'closed' handler (listener takes no arguments)
- webpack.config (dev): exit webpack watcher when Electron closes cleanly
- package.json dev script: --kill-others --success first so concurrently
  stops all processes when Electron exits

TypeScript fixes (updated @trezor/connect 9.x API):
- Define BridgeInfo/UdevInfo locally (removed from public exports)
- Add required appName field to Trezor manifest
- type: 'warning' as const for dialog MessageBoxOptions
- Cast devicePath to DeviceUniquePath branded type
- Make node-hid-incompatible Device fields optional in local types
- Remove non-existent onLearnMoreClick prop from StakingRewards story
feat(release-cli): add drt newsfeed subcommands
Adds three subcommands under `drt newsfeed`:

- `release` — fetches installer metadata from a URL, builds a
  software-update + announcement pair with pre-filled hashes/URLs and
  localised text, opens \$EDITOR for review, then writes the newsfeed
  JSON and verification file.  Release notes URL defaults to the GitHub
  release tag derived from the fetched version.
- `publish` — uploads the current newsfeed JSON and verification file
  to an S3 bucket for end-to-end testing (--dry-run supported).
- `message` — adds a standalone announcement item with a configurable
  version target.

Common repo/env args (--env, --newsfeed-repo, --verification-repo) are
shared via a flattened NewsfeedRepoArgs struct and read from NEWSFEED_*
environment variables.
feat(release-cli): add drt newsfeed subcommands
Adds three subcommands under `drt newsfeed`:

- `release` — fetches installer metadata from a URL, builds a
  software-update + announcement pair with pre-filled hashes/URLs and
  localised text, opens \$EDITOR for review, then writes the newsfeed
  JSON and verification file.  Release notes URL defaults to the GitHub
  release tag derived from the fetched version.
- `publish` — uploads the current newsfeed JSON and verification file
  to an S3 bucket for end-to-end testing (--dry-run supported).
- `message` — adds a standalone announcement item with a configurable
  version target.

Common repo/env args (--env, --newsfeed-repo, --verification-repo) are
shared via a flattened NewsfeedRepoArgs struct and read from NEWSFEED_*
environment variables.
feat(release-cli): add drt newsfeed subcommands
Adds three subcommands under `drt newsfeed`:

- `release` — fetches installer metadata from a URL, builds a
  software-update + announcement pair with pre-filled hashes/URLs and
  localised text, opens \$EDITOR for review, then writes the newsfeed
  JSON and verification file.  Release notes URL defaults to the GitHub
  release tag derived from the fetched version.
- `publish` — uploads the current newsfeed JSON and verification file
  to an S3 bucket for end-to-end testing (--dry-run supported).
- `message` — adds a standalone announcement item with a configurable
  version target.

Common repo/env args (--env, --newsfeed-repo, --verification-repo) are
shared via a flattened NewsfeedRepoArgs struct and read from NEWSFEED_*
environment variables.
fix(release-cli): don't overwrite signed installers on hash mismatch
In fetch-installers, verify the -unsigned companion's hash against
Hydra's expected value before skipping re-download; this confirms the
companion is the genuine unsigned original and the main file is the
signed installer.

In drt sign, compare the SHA-256 of the main file against its -unsigned
companion before concluding it is already signed. On Windows, signing
renames the original before the remote nix run, so a failed signing
attempt leaves the companion on disk; if fetch-installers then
re-downloads a fresh unsigned copy both files are byte-identical and
signing must be retried rather than skipped.
chore(nix): upgrade cardano-node to 10.7.1 and enable LSM UTxO backend
Upgrade cardano-node from 10.6.2 to 10.7.1 and configure the V2LSM
ledger backend to reduce memory usage by storing UTxO data on disk
rather than in-heap. Also updates the cardano-playground config pin
and switches the config path to environments-pre/.

chore(nix): use mithril flake for windows client instead of fetching tarball

Mithril now exposes a cross-compiled Windows build directly at
packages.x86_64-linux.mithril-client-cli-windows, so the previous
workaround of downloading a pre-built tarball from GitHub releases is
no longer needed.

The mithril input remains pinned to a patched branch
(sl/fix-darwin-mithril-cli) which restores Darwin builds accidentally
dropped in the latest upstream release.

fix: update mithril to fix nix builds for mac

fix: update mithril to fix rustc version mismatch on darwin

Points mithril input at sl/fix-mismatch-rust-versions branch which
ensures all craneLib instances use the rust-overlay toolchain (1.94)
rather than falling back to nixpkgs rustc (1.91), fixing Darwin builds
that fail with [email protected] requiring rustc 1.93+.

fix(nix): remove erroneous space in WIN_SIGN_HOST bash default substitution

\${WIN_SIGN_HOST: -HSM} with a space causes bash to parse -HSM as a
substring-from-end offset, treating HSM as a variable. With set -u this
throws "HSM: unbound variable". The correct syntax for a default-value
substitution is \${WIN_SIGN_HOST:-HSM} (no space).

test: mock _convertSnapshot in tests that call startBootstrap

_convertSnapshot was added to startBootstrap after these tests were
written. Without a mock it falls through to _runCommand → buildMithrilEnv
which fetches genesis/ancillary keys from raw.githubusercontent.com,
causing EAI_AGAIN failures in network-isolated environments.

feat: use snapshot-converter binary for UTxO-HD LSM snapshot conversion

Replace the mithril-client subcommand invocation with the standalone
snapshot-converter binary from cardano-node for converting downloaded
in-memory snapshots to LSM format.

- Add snapshot-converter to daedalus-bridge (all platforms) and expose
  daedalus-bridge in perSystem/packages for all target systems
- Thread snapshot-converter through common.nix and cardano-bridge.nix;
  include it in the aarch64-darwin codesign loop and the NSIS installer
- Add runBinary() to mithrilCommandRunner for running non-mithril
  binaries with plain process.env (no mithril env vars or origin tag)
- Rewrite _convertSnapshot to find the most recent ledger slot, build
  the LSM output paths, and invoke snapshot-converter directly
- Update tests accordingly

fix(darwin): bundle .so files into binary-lib subdirs alongside .dylib

moveDylibsToSubdir was only handling *.dylib, causing liblmdb.so
(introduced by cardano-node's UTxO-HD LSM support) to be left in
Contents/MacOS/ root while its install name was already patched to
@executable_path/cardano-node-lib/liblmdb.so, resulting in a dyld
load failure at runtime.

fix(mithril): correct snapshot-converter args and finalizing diagnostics

Fix snapshot-converter invocation to properly replace the in-memory ledger
snapshot with an LSM one: move the in-memory snapshot out of ledger/ to a
temp location, then run converter with --input-mem pointing to the temp path
and --output-lsm-snapshot as a full path back into ledger/<slot>, so
cardano-node finds an LSM-format snapshot at the expected location.

Also fix --output-lsm-database (was pointing into a non-existent tmp/snapshots
subdir, now uses dbDirectory/lsm) and --config (was constructing a path that
doesn't exist, now uses launcherConfig.nodeConfig.network.configFile).

Add stdinInput support to runBinary and diagnostic logger.info calls around
each async step in the finalizing phase to pinpoint any future hangs.

fix(windows): bundle libsnappy.dll with installer

cardano-node.exe now links against libsnappy (used by the LSM storage
backend), but the DLL was not listed in the NSIS installer manifest.

fix(nix): bundle snapshot-converter into macOS app

Add snapshot-converter to mkBundle and copy it into Contents/MacOS alongside mithril-client. libsnappy and other dylibs are picked up automatically by mkBundle's otool-L-based discovery.

fix(nix): bundle libmcfgthread-2.dll for cardano-wallet on Windows

cardano-wallet was built against libmcfgthread-2.dll (MCF thread runtime v2)
but only v1 was bundled, causing STATUS_ACCESS_VIOLATION on startup.

fix(nix): copy checkpoints.json into macOS app bundle

fix(nix): copy genesis-dijkstra.json into macOS app bundle

fix(mithril): skip node start when bootstrap is in progress on disk check

The 10-minute disk space check fires during mithril sync with chain data
already present (partial download). The chain-present path was missing a
guard for in-progress mithril statuses, causing it to call cardanoNode.start()
on an incomplete chain. This exhausted the 5-retry budget, leaving the FSM
in unrecoverable state just before mithril finished. Uses the existing
isMithrilBootstrapBlockingNodeStart helper to break early.

test(mithril): verify disk check does not start node during active bootstrap
fix(release-cli): don't overwrite signed installers on hash mismatch
In fetch-installers, verify the -unsigned companion's hash against
Hydra's expected value before skipping re-download; this confirms the
companion is the genuine unsigned original and the main file is the
signed installer.

In drt sign, compare the SHA-256 of the main file against its -unsigned
companion before concluding it is already signed. On Windows, signing
renames the original before the remote nix run, so a failed signing
attempt leaves the companion on disk; if fetch-installers then
re-downloads a fresh unsigned copy both files are byte-identical and
signing must be retried rather than skipped.
chore(nix): upgrade cardano-node to 10.7.1 and enable LSM UTxO backend
Upgrade cardano-node from 10.6.2 to 10.7.1 and configure the V2LSM
ledger backend to reduce memory usage by storing UTxO data on disk
rather than in-heap. Also updates the cardano-playground config pin
and switches the config path to environments-pre/.

chore(nix): use mithril flake for windows client instead of fetching tarball

Mithril now exposes a cross-compiled Windows build directly at
packages.x86_64-linux.mithril-client-cli-windows, so the previous
workaround of downloading a pre-built tarball from GitHub releases is
no longer needed.

The mithril input remains pinned to a patched branch
(sl/fix-darwin-mithril-cli) which restores Darwin builds accidentally
dropped in the latest upstream release.

fix: update mithril to fix nix builds for mac

fix: update mithril to fix rustc version mismatch on darwin

Points mithril input at sl/fix-mismatch-rust-versions branch which
ensures all craneLib instances use the rust-overlay toolchain (1.94)
rather than falling back to nixpkgs rustc (1.91), fixing Darwin builds
that fail with [email protected] requiring rustc 1.93+.

fix(nix): remove erroneous space in WIN_SIGN_HOST bash default substitution

\${WIN_SIGN_HOST: -HSM} with a space causes bash to parse -HSM as a
substring-from-end offset, treating HSM as a variable. With set -u this
throws "HSM: unbound variable". The correct syntax for a default-value
substitution is \${WIN_SIGN_HOST:-HSM} (no space).

test: mock _convertSnapshot in tests that call startBootstrap

_convertSnapshot was added to startBootstrap after these tests were
written. Without a mock it falls through to _runCommand → buildMithrilEnv
which fetches genesis/ancillary keys from raw.githubusercontent.com,
causing EAI_AGAIN failures in network-isolated environments.

feat: use snapshot-converter binary for UTxO-HD LSM snapshot conversion

Replace the mithril-client subcommand invocation with the standalone
snapshot-converter binary from cardano-node for converting downloaded
in-memory snapshots to LSM format.

- Add snapshot-converter to daedalus-bridge (all platforms) and expose
  daedalus-bridge in perSystem/packages for all target systems
- Thread snapshot-converter through common.nix and cardano-bridge.nix;
  include it in the aarch64-darwin codesign loop and the NSIS installer
- Add runBinary() to mithrilCommandRunner for running non-mithril
  binaries with plain process.env (no mithril env vars or origin tag)
- Rewrite _convertSnapshot to find the most recent ledger slot, build
  the LSM output paths, and invoke snapshot-converter directly
- Update tests accordingly

fix(darwin): bundle .so files into binary-lib subdirs alongside .dylib

moveDylibsToSubdir was only handling *.dylib, causing liblmdb.so
(introduced by cardano-node's UTxO-HD LSM support) to be left in
Contents/MacOS/ root while its install name was already patched to
@executable_path/cardano-node-lib/liblmdb.so, resulting in a dyld
load failure at runtime.

fix(mithril): correct snapshot-converter args and finalizing diagnostics

Fix snapshot-converter invocation to properly replace the in-memory ledger
snapshot with an LSM one: move the in-memory snapshot out of ledger/ to a
temp location, then run converter with --input-mem pointing to the temp path
and --output-lsm-snapshot as a full path back into ledger/<slot>, so
cardano-node finds an LSM-format snapshot at the expected location.

Also fix --output-lsm-database (was pointing into a non-existent tmp/snapshots
subdir, now uses dbDirectory/lsm) and --config (was constructing a path that
doesn't exist, now uses launcherConfig.nodeConfig.network.configFile).

Add stdinInput support to runBinary and diagnostic logger.info calls around
each async step in the finalizing phase to pinpoint any future hangs.

fix(windows): bundle libsnappy.dll with installer

cardano-node.exe now links against libsnappy (used by the LSM storage
backend), but the DLL was not listed in the NSIS installer manifest.

fix(nix): bundle snapshot-converter into macOS app

Add snapshot-converter to mkBundle and copy it into Contents/MacOS alongside mithril-client. libsnappy and other dylibs are picked up automatically by mkBundle's otool-L-based discovery.

fix(nix): bundle libmcfgthread-2.dll for cardano-wallet on Windows

cardano-wallet was built against libmcfgthread-2.dll (MCF thread runtime v2)
but only v1 was bundled, causing STATUS_ACCESS_VIOLATION on startup.

fix(nix): copy checkpoints.json into macOS app bundle

fix(nix): copy genesis-dijkstra.json into macOS app bundle
feat: use snapshot-converter binary for UTxO-HD LSM snapshot conversion
Replace the mithril-client subcommand invocation with the standalone
snapshot-converter binary from cardano-node for converting downloaded
in-memory snapshots to LSM format.

- Add snapshot-converter to daedalus-bridge (all platforms) and expose
  daedalus-bridge in perSystem/packages for all target systems
- Thread snapshot-converter through common.nix and cardano-bridge.nix;
  include it in the aarch64-darwin codesign loop and the NSIS installer
- Add runBinary() to mithrilCommandRunner for running non-mithril
  binaries with plain process.env (no mithril env vars or origin tag)
- Rewrite _convertSnapshot to find the most recent ledger slot, build
  the LSM output paths, and invoke snapshot-converter directly
- Update tests accordingly

fix(darwin): bundle .so files into binary-lib subdirs alongside .dylib

moveDylibsToSubdir was only handling *.dylib, causing liblmdb.so
(introduced by cardano-node's UTxO-HD LSM support) to be left in
Contents/MacOS/ root while its install name was already patched to
@executable_path/cardano-node-lib/liblmdb.so, resulting in a dyld
load failure at runtime.

fix(mithril): correct snapshot-converter args and finalizing diagnostics

Fix snapshot-converter invocation to properly replace the in-memory ledger
snapshot with an LSM one: move the in-memory snapshot out of ledger/ to a
temp location, then run converter with --input-mem pointing to the temp path
and --output-lsm-snapshot as a full path back into ledger/<slot>, so
cardano-node finds an LSM-format snapshot at the expected location.

Also fix --output-lsm-database (was pointing into a non-existent tmp/snapshots
subdir, now uses dbDirectory/lsm) and --config (was constructing a path that
doesn't exist, now uses launcherConfig.nodeConfig.network.configFile).

Add stdinInput support to runBinary and diagnostic logger.info calls around
each async step in the finalizing phase to pinpoint any future hangs.

fix(windows): bundle libsnappy.dll with installer

cardano-node.exe now links against libsnappy (used by the LSM storage
backend), but the DLL was not listed in the NSIS installer manifest.

fix(nix): bundle snapshot-converter into macOS app

Add snapshot-converter to mkBundle and copy it into Contents/MacOS alongside mithril-client. libsnappy and other dylibs are picked up automatically by mkBundle's otool-L-based discovery.
fix(mithril): correct snapshot-converter args and finalizing diagnostics
Fix snapshot-converter invocation to properly replace the in-memory ledger
snapshot with an LSM one: move the in-memory snapshot out of ledger/ to a
temp location, then run converter with --input-mem pointing to the temp path
and --output-lsm-snapshot as a full path back into ledger/<slot>, so
cardano-node finds an LSM-format snapshot at the expected location.

Also fix --output-lsm-database (was pointing into a non-existent tmp/snapshots
subdir, now uses dbDirectory/lsm) and --config (was constructing a path that
doesn't exist, now uses launcherConfig.nodeConfig.network.configFile).

Add stdinInput support to runBinary and diagnostic logger.info calls around
each async step in the finalizing phase to pinpoint any future hangs.
fix(darwin): bundle .so files into binary-lib subdirs alongside .dylib
moveDylibsToSubdir was only handling *.dylib, causing liblmdb.so
(introduced by cardano-node's UTxO-HD LSM support) to be left in
Contents/MacOS/ root while its install name was already patched to
@executable_path/cardano-node-lib/liblmdb.so, resulting in a dyld
load failure at runtime.