mirror of
https://github.com/hanzoai/desktop.git
synced 2026-10-30 14:58:42 +00:00
* wip(desktop): GPU-node connect (gpu.rs/useGpuConnect/hanzo-auth) + luxwallet start + brand assets * feat(desktop): native omnichain post-quantum Lux Wallet (node-independent) Mirror of the live fix in hanzoai/gui pkgs/ai (@hanzo/ai) applied to this repo's pre-convergence frontend tree. Replaces the hanzo-node-backed crypto wallet — which couldn't create/show a wallet without a connected node — with a self-contained stack under apps/hanzo-desktop/src/lib/lux-wallet: - luxfi/crypto WASM (real FIPS-204 ML-DSA-65 + secp256k1 + keccak); EVM keys via BIP-44 keys.deriveSecp256k1 (bit-identical to ethers/MetaMask), PQ identity via keys.serviceIdentity. Secrets sealed in OS keychain, never plaintext. - create / import / list / reveal / balance / send across the 11 ready EVM chains (@luxwallet/chains + /rpc); non-EVM X/P/Q/Z marked "coming soon". - Sign-In-With-Wallet: /v1/iam/web3/nonce -> CAIP-122 -> EIP-191 sign -> /v1/iam/web3/verify (@luxwallet/connect + @luxfi/crypto). - local-HD-PQ default; MPC / Safe selectable (coming soon). Wiring: rewrite pages/crypto-wallet.tsx onto the store; node-independent /wallet route + "Sign in with Wallet" on quick-connection; drop dead wallets-context. MIT/BSD deps vendored under apps/hanzo-desktop/vendor. NOTE: this app now renders @hanzo/ai (main.tsx), so the shipping wallet fix lands via hanzoai/gui; this mirror keeps the repo's own tree consistent. * feat(desktop): the ONE network/wallet standard — shared NetworkSwitcher + WalletMenu Aligns the desktop onto the shared hanzo.network model (@hanzo/ui/network + @hanzo/ui/wallet from @hanzo/[email protected] — same standard as the hanzo CLI and console): - lib/network.ts: ONE place composing the brand network list (hanzo → canonical mainnet/testnet/devnet/local envs; zoo/lux → brand mainnet) into the shared selected-network store. - Sidebar footer mounts <NetworkSwitcher/> + <WalletMenu/> (menuSide=top); wallet auto-provisions the PQ HD account via the lux-wallet adapter (keychain-sealed secrets; backup stays on the crypto-wallet page). - Selected network drives endpoints: lux-wallet brandRpcConfig gateway + rpc override, defaultChainId, and useChainBalance now follow the selection (switch env → every chain/cloud call repoints). - styles.css: semantic token aliases + @source for the shared components. - tsconfig: moduleResolution bundler (exports-aware; tsc clean). - package.json: declare @hanzo/ai (was undeclared — npm install pruned it and broke main.tsx) + @hanzo/ui alias. tsc 0 errors; vite build green; vitest 81/81. * docs(LLM.md): the network/wallet standard — seams + gotchas * chore(desktop): bump @hanzo/ui-shadcn 5.7.3 -> 5.7.4 (genesis-canonical chain IDs) Picks up the corrected network set (testnet 36962, devnet 36964, local 1337 @ :9630/v1/bc/C/rpc). tsc 0; vite build green. --------- Co-authored-by: hanzo-dev <[email protected]>
29 lines
884 B
TypeScript
29 lines
884 B
TypeScript
import { defineConfig } from '@playwright/test';
|
|
|
|
import { detectChromium, launchArgs } from './e2e-tests/deep/support/chromium';
|
|
|
|
// Deep E2E: self-serves the built dist/ and seeds past the onboarding +
|
|
// node-health gates (see e2e-tests/deep/support/app-fixture.ts). No native
|
|
// .app / Tauri runtime, no external webServer — runnable headless in CI.
|
|
export default defineConfig({
|
|
testDir: './e2e-tests/deep',
|
|
fullyParallel: true,
|
|
forbidOnly: !!process.env.CI,
|
|
retries: process.env.CI ? 1 : 0,
|
|
workers: 2,
|
|
reporter: 'line',
|
|
timeout: 60_000,
|
|
expect: { timeout: 15_000 },
|
|
use: {
|
|
trace: 'on-first-retry',
|
|
screenshot: 'only-on-failure',
|
|
launchOptions: { executablePath: detectChromium(), args: launchArgs },
|
|
},
|
|
projects: [
|
|
{
|
|
name: 'chromium',
|
|
use: { browserName: 'chromium', viewport: { width: 1280, height: 832 } },
|
|
},
|
|
],
|
|
});
|