Sovran Patch
362fa0b36c
refactor: extract bitcoin stack into Sovran_Bitcoin flake input
...
Decouple the Bitcoin/Lightning modules and packages into the standalone
Sovran_Bitcoin flake, consumed as a NixOS module input.
Deleted (now in Sovran_Bitcoin):
- modules/bitcoin/ (19 files — vendored nix-bitcoin modules)
- modules/bitcoinecosystem.nix
- modules/nwc-wallets.nix
- modules/mempool.nix
- packages/{albyhub,mempool,rtl,build-support}/
- tests/bitcoin-btcpay-hardening.nix
Created:
- modules/sovran-bitcoin-integration.nix — the OS-specific bridge that
maps sovran_systemsOS.* options to sovran-bitcoin.* and applies
Second_Drive paths, operator 'free', forced wallet, firewall 3051,
and Sovran Hub NWC environment wiring.
Modified:
- flake.nix — added sovran-bitcoin flake input, updated module imports
- modules/modules.nix — removed deleted imports
- modules/core/sovran-hub.nix — version metadata now reads from
pkgs.sovran-bitcoin.* overlay instead of local packages/
- tests/test_bitcoin_tor_gossip.py — updated to check integration layer
The sovran_systemsOS.* option namespace is preserved. The Hub, roles,
and custom.nix continue to work unchanged.
2026-08-31 10:17:14 -05:00
naturallaw777
a9ff168fd6
security: prevent LND admin macaroon exposure in curl argv
2026-08-15 23:00:59 -05:00
naturallaw777
587c19c2a5
fix(hub): persistent browser profile so logout survives window reopen
...
The Hub launcher used an ephemeral /tmp profile deleted on exit, which
wiped the hub_manual_logout marker cookie. On reopen, /auto-login minted a
new session and logged the user straight back in without a password.
Use a persistent per-user profile under XDG_STATE_HOME and drop the
deletion trap so the logout marker survives close/reopen. Keep
--skip-origin-startup-dialog. Adds regression tests.
2026-08-15 17:22:58 -05:00
naturallaw777
de32699539
fix(hub): recover from expired sessions and preserve logout
2026-08-15 16:43:37 -05:00
naturallaw777
8f89a4350a
fix: prevent Bitcoin Core switch from hanging the Hub UI
2026-08-11 18:47:40 -05:00
copilot-swe-agent[bot] and naturallaw777
947c04834d
Fix all 8 security hardening blockers for PR #423
...
Co-authored-by: naturallaw777 <99053422+naturallaw777@users.noreply.github.com >
2026-08-11 15:38:08 +00:00
copilot-swe-agent[bot] and naturallaw777
a111de1ece
Security hardening: fix all 8 blocking findings for PR #419
...
Fix 1: Update support.js to collect SSH public key and POST JSON
Fix 2: Legacy njalla.sh migration - parse safely, archive non-executable, replace cron with systemd timer
Fix 3: DDNS SSRF prevention - allowlist only njal.la, reject other hosts, disable curl redirects
Fix 4: Legacy root support-key removal migration (_remove_legacy_root_support_key)
Fix 5: Automatic support-key expiration (expires_at + _expire_support_if_stale)
Fix 6: Move security helpers to security_helpers.py, tests import production code
Fix 7: Real NIP-19/Bech32 npub validation (_bech32_decode + _validate_npub)
Fix 8: Replace journalctl sudo wildcard with restricted sovran-journal-helper.py
Also: Make _write_hub_overrides() atomic with tempfile+os.replace
94 tests passing
Co-authored-by: naturallaw777 <99053422+naturallaw777@users.noreply.github.com >
2026-08-11 12:07:18 +00:00
copilot-swe-agent[bot] and naturallaw777
f2ad9c1f17
Security hardening: fix DDNS injection, Nix injection, reboot auth, support key, sudo rules
...
Co-authored-by: naturallaw777 <99053422+naturallaw777@users.noreply.github.com >
2026-08-11 10:44:26 +00:00