Home /
Input Output /
daedalus
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)
Apr 30, 7-8 PM (1)
Apr 30, 8-9 PM (0)
Apr 30, 9-10 PM (0)
Apr 30, 10-11 PM (0)
Apr 30, 11-12 AM (0)
May 01, 12-1 AM (0)
May 01, 1-2 AM (0)
May 01, 2-3 AM (0)
May 01, 3-4 AM (0)
May 01, 4-5 AM (0)
May 01, 5-6 AM (0)
May 01, 6-7 AM (0)
May 01, 7-8 AM (0)
May 01, 8-9 AM (0)
May 01, 9-10 AM (0)
May 01, 10-11 AM (0)
May 01, 11-12 PM (0)
May 01, 12-1 PM (0)
May 01, 1-2 PM (0)
May 01, 2-3 PM (0)
May 01, 3-4 PM (0)
May 01, 4-5 PM (0)
May 01, 5-6 PM (0)
May 01, 6-7 PM (1)
May 01, 7-8 PM (2)
May 01, 8-9 PM (0)
May 01, 9-10 PM (0)
May 01, 10-11 PM (0)
May 01, 11-12 AM (0)
May 02, 12-1 AM (0)
May 02, 1-2 AM (0)
May 02, 2-3 AM (0)
May 02, 3-4 AM (0)
May 02, 4-5 AM (0)
May 02, 5-6 AM (0)
May 02, 6-7 AM (0)
May 02, 7-8 AM (1)
May 02, 8-9 AM (0)
May 02, 9-10 AM (0)
May 02, 10-11 AM (0)
May 02, 11-12 PM (0)
May 02, 12-1 PM (0)
May 02, 1-2 PM (0)
May 02, 2-3 PM (0)
May 02, 3-4 PM (0)
May 02, 4-5 PM (0)
May 02, 5-6 PM (0)
May 02, 6-7 PM (0)
May 02, 7-8 PM (0)
May 02, 8-9 PM (0)
May 02, 9-10 PM (0)
May 02, 10-11 PM (0)
May 02, 11-12 AM (0)
May 03, 12-1 AM (0)
May 03, 1-2 AM (0)
May 03, 2-3 AM (0)
May 03, 3-4 AM (0)
May 03, 4-5 AM (0)
May 03, 5-6 AM (0)
May 03, 6-7 AM (0)
May 03, 7-8 AM (0)
May 03, 8-9 AM (0)
May 03, 9-10 AM (0)
May 03, 10-11 AM (0)
May 03, 11-12 PM (0)
May 03, 12-1 PM (0)
May 03, 1-2 PM (0)
May 03, 2-3 PM (0)
May 03, 3-4 PM (0)
May 03, 4-5 PM (0)
May 03, 5-6 PM (0)
May 03, 6-7 PM (0)
May 03, 7-8 PM (0)
May 03, 8-9 PM (0)
May 03, 9-10 PM (0)
May 03, 10-11 PM (0)
May 03, 11-12 AM (0)
May 04, 12-1 AM (0)
May 04, 1-2 AM (0)
May 04, 2-3 AM (9)
May 04, 3-4 AM (0)
May 04, 4-5 AM (0)
May 04, 5-6 AM (0)
May 04, 6-7 AM (0)
May 04, 7-8 AM (0)
May 04, 8-9 AM (0)
May 04, 9-10 AM (0)
May 04, 10-11 AM (0)
May 04, 11-12 PM (0)
May 04, 12-1 PM (1)
May 04, 1-2 PM (3)
May 04, 2-3 PM (0)
May 04, 3-4 PM (0)
May 04, 4-5 PM (0)
May 04, 5-6 PM (2)
May 04, 6-7 PM (0)
May 04, 7-8 PM (0)
May 04, 8-9 PM (0)
May 04, 9-10 PM (0)
May 04, 10-11 PM (0)
May 04, 11-12 AM (0)
May 05, 12-1 AM (0)
May 05, 1-2 AM (0)
May 05, 2-3 AM (0)
May 05, 3-4 AM (0)
May 05, 4-5 AM (0)
May 05, 5-6 AM (0)
May 05, 6-7 AM (0)
May 05, 7-8 AM (0)
May 05, 8-9 AM (0)
May 05, 9-10 AM (0)
May 05, 10-11 AM (0)
May 05, 11-12 PM (0)
May 05, 12-1 PM (0)
May 05, 1-2 PM (0)
May 05, 2-3 PM (0)
May 05, 3-4 PM (0)
May 05, 4-5 PM (0)
May 05, 5-6 PM (1)
May 05, 6-7 PM (0)
May 05, 7-8 PM (0)
May 05, 8-9 PM (0)
May 05, 9-10 PM (0)
May 05, 10-11 PM (0)
May 05, 11-12 AM (0)
May 06, 12-1 AM (0)
May 06, 1-2 AM (0)
May 06, 2-3 AM (0)
May 06, 3-4 AM (0)
May 06, 4-5 AM (0)
May 06, 5-6 AM (0)
28 commits this week
Apr 29, 2026
-
May 06, 2026
fix(darwin): exclude fsevents from electron-rebuild and install scripts
fsevents v1.x (optional dep of chokidar v2) uses NAN which calls v8::Object::GetIsolate(), removed in Electron 41+ v8 headers. This caused the Darwin CI build to fail with a compile error in fsevents.cc. fsevents is not used at runtime by Daedalus (not in runtime-nodejs-deps.json, not imported in any source file), so it is safe to skip compilation entirely.
fix(darwin): exclude fsevents from electron-rebuild and install scripts
fsevents v1.x (optional dep of chokidar v2) uses NAN which calls v8::Object::GetIsolate(), removed in Electron 41+ v8 headers. This caused the Darwin CI build to fail with a compile error in fsevents.cc. fsevents is not used at runtime by Daedalus (not in runtime-nodejs-deps.json, not imported in any source file), so it is safe to skip compilation entirely.
chore: treefmt nix files to fix CI
fix(darwin): use bundled N-API prebuilts instead of compiling from source
blake-hash and node-hid fail to compile on Darwin because the current build deletes all prebuilt .node files then re-runs install scripts, which invoke node-gyp against node-addon-api napi.h — rejected by Apple Clang 15+ as a non-constant in-class initializer. Both packages bundle N-API prebuilt binaries in their npm tarballs (ABI- stable, no Electron-version-specific recompilation needed). Preserve their prebuilds/ directories from the blanket deletion and skip their install scripts. usb is handled the same way (universal fat binary). On aarch64-darwin, blake-hash ships no arm64 prebuilt so node-gyp-build falls back to compilation. Patch node-addon-api napi.h to use 'static inline const' (C++17), deferring the initializer to program startup and removing the constant-expression requirement. Supersedes the ineffective CXXFLAGS/npm_config_cxxflags approach: those env vars are not read by node-gyp on this build setup.
fix(installer): re-patch electron PT_INTERP after extraction on Linux
The electron binary in relocatableElectron has an absolute Nix store path embedded as its ELF interpreter (PT_INTERP) via patchelf --set-interpreter. This works for nix run (symlinks into the store), but after the self-extracting installer copies the bundle to ~/.daedalus/<cluster>/, that store path no longer exists, causing the kernel to return ENOENT: "cannot execute: required file not found". Fix: bundle a statically-linked patchelf (pkgsStatic, doCheck=false to skip the musl test-suite shared-object build failure) in the archive as .patchelf-static. The installer script re-patches electron's PT_INTERP to the installed ld-linux path immediately after extraction, then removes the helper binary. The three chmod +w calls are required because Nix store permissions (555 dirs, 444 files) are preserved in the tar archive: - libexec/ for rm of .patchelf-static - lib/electron/ for patchelf's rename(tmpfile, electron) - lib/electron/electron for patchelf's O_RDWR open
fix(darwin): pass CXXFLAGS to node-gyp to suppress Apple Clang 15 enum error
Apple Clang 15+ rejects static_cast<enum>(-1) in constant expressions (Wenum-constexpr-conversion), causing blake-hash and node-hid to fail in the Darwin node_modules build. NIX_CFLAGS_COMPILE doesn't reach node-gyp since it invokes the compiler directly, bypassing the Nix CC wrapper. Set CXXFLAGS and npm_config_cxxflags before the install scripts loop — both are read directly by node-gyp.
fix(storybook): stub fs built-in for node-gyp-build inside usb package
fix(ci): fix jest, lint, and storybook checks for Electron 41 upgrade
- jest.config.js: add legacyDecorator and useDefineForClassFields=false to @swc/jest transform so MobX 5 decorators work correctly with SWC 1.10+ - storybook/main.ts: same SWC decorator fix, plus add dgram:false fallback for @trezor/transport which imports the Node.js dgram UDP module - hardware-wallets.types.ts: move import after type declarations to top to fix ESLint import/first error
fix(nix/darwin): skip electron-chromedriver install script and fix Electron 41.3.0 hashes
Skip the electron-chromedriver binary download during node_modules install (mirrors the existing Linux skip: v12 package downloads v12 chromedriver, mismatching our electron v41; the binary is provided via darwinSpecificCaches). Also fix SHASUMS256.txt, electron zip, and chromedriver zip hashes for both x64 and arm64, derived from the official Electron 41.3.0 release.
fix(nix/darwin): update Electron 41.3.0 hashes for Darwin builds
Update electronShaSums, electronChromedriverShaSums (SHASUMS256.txt), electron zip, and chromedriver zip hashes for both x64 and arm64. Hashes derived from the official Electron 41.3.0 SHASUMS256.txt.
fix(nix/windows): place native .node binaries where each loader expects them
usb uses node-gyp-build (searches usb/build/Release/*.node), node-hid uses pkg-prebuilds (searches node-hid/build/Release/HID.node), and usb-detection uses bindings (patched to search DAEDALUS_INSTALL_DIRECTORY). Previously all three were copied to the install root from build/Debug, which only worked for bindings-based modules and used unoptimised debug builds.
fix(nix): fix Windows cross-compilation for Electron 41 upgrade
- Use electron-packager's electronZipDir to bypass @electron/get cache/network entirely
- Fix electron-headers extraction (flat tarball layout in Electron 41)
- Switch Wine Windows version to win10 (Node.js 20+ requires it)
- Use Node.js 20.20.2 for native module rebuilds (Node.js 24 OOMs under Wine 8.0)
- Run @electron/rebuild via node.exe directly instead of npm.cmd (avoids Wine hang)
- Update findVisualStudio stub for node-gyp 12.x async API
- Fix ESM-incompatible require("fs") call in @electron/rebuild patch
- Fix return→exit in shell script (can't return outside a function)
- Add mkdir -p for scoped package parent dirs in installPhase
- Fix NSIS LoadLanguage → LoadLanguageFile for makensis 3.10+
- Update electron zip and node.lib hashes for Electron 41.3.0
chore(nix): replace Haskell installer tool with inline Nix NSIS generation
Remove the daedalus-installer Haskell executable (which required a GHC version removed from nixpkgs-25.11) and generate the two NSIS scripts (daedalus.nsi, uninstaller.nsi) directly as Nix writeText derivations. All inputs are known at eval time so no build-time Haskell tool is needed.
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
fix(nix/darwin): skip electron-chromedriver install script and fix Electron 41.3.0 hashes
Skip the electron-chromedriver binary download during node_modules install (mirrors the existing Linux skip: v12 package downloads v12 chromedriver, mismatching our electron v41; the binary is provided via darwinSpecificCaches). Also fix SHASUMS256.txt, electron zip, and chromedriver zip hashes for both x64 and arm64, derived from the official Electron 41.3.0 release.
fix(nix/darwin): update Electron 41.3.0 hashes for Darwin builds
Update electronShaSums, electronChromedriverShaSums (SHASUMS256.txt), electron zip, and chromedriver zip hashes for both x64 and arm64. Hashes derived from the official Electron 41.3.0 SHASUMS256.txt.
fix(nix/windows): place native .node binaries where each loader expects them
usb uses node-gyp-build (searches usb/build/Release/*.node), node-hid uses pkg-prebuilds (searches node-hid/build/Release/HID.node), and usb-detection uses bindings (patched to search DAEDALUS_INSTALL_DIRECTORY). Previously all three were copied to the install root from build/Debug, which only worked for bindings-based modules and used unoptimised debug builds.
fix(nix): fix Windows cross-compilation for Electron 41 upgrade
- Use electron-packager's electronZipDir to bypass @electron/get cache/network entirely
- Fix electron-headers extraction (flat tarball layout in Electron 41)
- Switch Wine Windows version to win10 (Node.js 20+ requires it)
- Use Node.js 20.20.2 for native module rebuilds (Node.js 24 OOMs under Wine 8.0)
- Run @electron/rebuild via node.exe directly instead of npm.cmd (avoids Wine hang)
- Update findVisualStudio stub for node-gyp 12.x async API
- Fix ESM-incompatible require("fs") call in @electron/rebuild patch
- Fix return→exit in shell script (can't return outside a function)
- Add mkdir -p for scoped package parent dirs in installPhase
- Fix NSIS LoadLanguage → LoadLanguageFile for makensis 3.10+
- Update electron zip and node.lib hashes for Electron 41.3.0
fix(nix): fix Windows cross-compilation for Electron 41 upgrade
- Use electron-packager's electronZipDir to bypass @electron/get cache/network entirely
- Fix electron-headers extraction (flat tarball layout in Electron 41)
- Switch Wine Windows version to win10 (Node.js 20+ requires it)
- Use Node.js 20.20.2 for native module rebuilds (Node.js 24 OOMs under Wine 8.0)
- Run @electron/rebuild via node.exe directly instead of npm.cmd (avoids Wine hang)
- Update findVisualStudio stub for node-gyp 12.x async API
- Fix ESM-incompatible require("fs") call in @electron/rebuild patch
- Fix return→exit in shell script (can't return outside a function)
- Add mkdir -p for scoped package parent dirs in installPhase
- Fix NSIS LoadLanguage → LoadLanguageFile for makensis 3.10+
- Update electron zip and node.lib hashes for Electron 41.3.0
chore(nix): replace Haskell installer tool with inline Nix NSIS generation
Remove the daedalus-installer Haskell executable (which required a GHC version removed from nixpkgs-25.11) and generate the two NSIS scripts (daedalus.nsi, uninstaller.nsi) directly as Nix writeText derivations. All inputs are known at eval time so no build-time Haskell tool is needed.
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)
Merge pull request #3327 from input-output-hk/sl/drt-newsfeed
feat(release-cli): add drt newsfeed subcommands
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