Files
Mycelium-ui-private/CHANGELOG.md
syoul 874dd33a6d release: v0.1.1
Bump package + crate + tauri identifier from 0.1.0 to 0.1.1 and
rebuild the .deb. The 0.1.1 binary includes everything between
fork-init and HEAD~0:
  - custom TCP/QUIC listen ports (default 9651/9652)
  - daemon-failure banner with shortcut to Settings
  - misc UX wording

CHANGELOG split: 0.1.1 section closes the previously-Unreleased
list; 0.1.0 untouched.

release/mycellium-ui-private_0.1.0_amd64.deb removed and replaced
by 0.1.1 with refreshed SHA256SUMS.
2026-04-27 02:44:14 +02:00

4.4 KiB

Changelog

All notable changes to this fork are documented here. Format follows Keep a Changelog, version numbers follow Semantic Versioning.

This fork tracks syoul/Mycell-UI (the public-network variant) as upstream. Bugfixes from upstream are cherry-picked; this changelog only records changes specific to the private-network track.

Unreleased

[0.1.1] — 2026-04-27

Added

  • SidecarConfig.tcpListenPort and SidecarConfig.quicListenPort (Option): pin the daemon's peer-listen ports across restarts so they can be reliably port-forwarded on a home router. Defaults to mycelium's standard 9651 (TCP) and 9652 (QUIC); clearing the field falls back to ephemeral.
  • Two input fields in Settings → Daemon configuration to expose them, with help text explaining when to override.
  • App.vue surfaces a top banner when phase === 'error' with the daemon error message and a shortcut "Go to Settings" button when the failure mentions a network-config issue.

Changed

  • release/mycellium-ui-private_*.deb rebuilt against the above.

0.1.0 — 2026-04-27

Forked from Mycell-UI@5229e2c ("feat(packaging): pre-spawn cleanup wrapper for clean restarts").

Added

  • Bundling of the mycelium-private daemon (separate upstream release tarball — mycelium-private-{triple}-unknown-linux-musl.tar.gz) instead of the public mycelium.
  • SidecarConfig.networkName field (UTF-8, 2..=64 bytes — public, agreed across all nodes of the same overlay).
  • Network key management: network_key_status, network_key_generate, network_key_import, network_key_export, network_key_delete Tauri commands. Keys are 32 random bytes from the OS RNG, stored at app_data_dir/network_key.bin with mode 0600.
  • "Private network" section in Settings at the top: name input, generate / reveal-hex / import / delete buttons, configured / missing status badge.
  • Pre-flight check in sidecar::start: refuses to spawn the daemon without a non-empty network name AND an existing key file. Surfaces a clear error rather than letting mycelium-private fail mid-startup.
  • mycellium-bootstrap-private cleanup wrapper kills both mycelium and mycelium-private orphans on each spawn, since either would block UDP/9650 (multicast discovery) and TCP/8990 (hardcoded JSON-RPC port).

Changed

  • App identifier: tech.threefold.mycellium-uitech.threefold.mycellium-ui-private.
  • Cargo crate name + lib name: mycellium_ui_libmycellium_ui_private_lib.
  • Display: Mycellium UIMycellium UI Private. Sidebar shows "Mycellium Private" with an amber accent.
  • .deb package name: mycellium-uimycellium-ui-private. Distinct binary at /usr/bin/mycellium-ui-private. The two apps coexist on the same machine.
  • polkit action ID: tech.threefold.mycellium-ui.bootstraptech.threefold.mycellium-ui-private.bootstrap. Path annotation points at /usr/bin/mycellium-bootstrap-private.
  • Default peer list is now empty: a private network has no Threefold-operated seed; the user must explicitly add bootstrap peers they control.
  • The "Static peers" textarea hint in Settings changed from "tcp://188.40.132.242:9651" to "tcp://your-node.example.org:9651".
  • README rewritten to focus on the private-network model, key distribution flow, and the divergence policy from upstream.

Removed

  • The two public Threefold seed peers from SidecarConfig::default() (TCP 188.40.132.242:9651 and QUIC [2a01:4f8:212:fa6::2]:9651).

Inherited from upstream Mycell-UI@5229e2c

  • Sidecar lifecycle via pkexec with elevated cleanup wrapper (auth_admin_keep cached per session).
  • Ephemeral ports for the REST API, peer-listen TCP/QUIC, and Prometheus metrics endpoint.
  • reqwest connection pool disabled (pool_max_idle_per_host(0)) to dodge stale-connection errors on long-running sessions.
  • Short-poll inbox loop (workaround for the upstream HTTP serialization bug — see docs-syoul/upstream-bug-http-serialization.md in the public repo).
  • Status page surfaces the full overlay IPv6 (parsed from the daemon's Node overlay IP: log line) in addition to the /64 subnet.
  • pkexec | policykit-1 Depends alternative for compatibility with both Debian 12 (bookworm) and Debian 13 (trixie).