Skip to content

fix(rivethub-electron): renewed device cert without relaunch; drop RivetOS-runtime text - #1200

Merged
philbert440 merged 3 commits into
mainfrom
fix/desktop-cert-reload-stale-text
Oct 18, 2026
Merged

philbert440 merged 3 commits into
mainfrom
fix/desktop-cert-reload-stale-text

Conversation

@rivetphilbot

Copy link
Copy Markdown
Collaborator

Two desktop fixes, plus user-facing text that still pointed at RivetOS-runtime knobs.

rivethub-electron

  • Renewed device cert is picked up live. The mTLS pipe cached the device identity for the life of the process. rh cert renew rewrites the 30-day step-ca leaf in place, usually behind the device.crt/device.key symlinks, while the tray app keeps running, so the old cert stayed in use until relaunch. The identity is now keyed by a stat stamp (ino, size, mtime; symlinks followed) and re-checked on each new loopback connection. A renewal caught mid-write keeps the last good identity.
  • Update download is removed after a successful Linux install. The rivethub-update-* temp dir was only cleaned up on failure. That left about 120 MB in a RAM-backed /tmp until reboot.
  • README. Replaces the rivet-ca.sh issue-client enrollment text with the step-ca device cert flow (rh cert renew). Also corrects the claim that Linux keeps an app menu; it's macOS-only.

rivethub-web text

  • Devices tab: it no longer tells users to set RIVETOS_DEN_DEVICES=1. No rh setting enables device enrollment today.
  • Shared dir: RIVETOS_SHARED_DIR → RIVETHUB_SHARED_DIR.
  • Stats: "run rivetos doctor" → point at the node's worker logs. rh doctor doesn't report the job queue.
  • Naming: "Dens"/"den" → "Nodes"/"node", and "RivetOS memory" → "RivetHub memory".

Verified

  • rivethub-electron: tsc is clean and vitest passes (new identityStamp test for a temp-file-plus-rename behind a symlink).
  • rivethub-web: tsc is clean and the touched suites pass.

rivetphilbot and others added 3 commits October 18, 2026 17:33
…nch; drop the update download after install

The mTLS pipe cached the device identity for the life of the process, and
each listener kept its own copy. Device leaves are now 30-day step-ca certs
that rh cert renew rewrites in place, so a long-running tray app kept
presenting the old leaf and lost every https node at expiry until it was
restarted. The pipe now re-stats the identity files (following symlinks) on
each connection and reloads them when they change, keeping the last good
identity if a renewal is caught mid-write.

On Linux the downloaded AppImage stayed in its rivethub-update-* temp dir
after a successful install; on hosts with a RAM-backed /tmp that held
~120 MB until reboot. Remove it once the copy lands.

README: device identity is a step-ca leaf renewed by rh cert renew, and
no application menu is installed on Linux.
- Devices: drop the RIVETOS_DEN_DEVICES instructions; the RivetHub runtime
  does not read them and nothing a user can set turns enrollment on.
- Agents settings: the shared directory env var is RIVETHUB_SHARED_DIR.
- Memory stats: there is no doctor command for failed jobs on the RivetHub
  runtime; point at the node's worker logs.
- Memory/wiki copy says RivetHub memory; den wording becomes node.
@philbert440
philbert440 merged commit 3af47f9 into main Oct 18, 2026
3 checks passed
@philbert440
philbert440 deleted the fix/desktop-cert-reload-stale-text branch October 18, 2026 21:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants