Skip to content

feat(desktop): Managed updates section — per-connection SSH updates with live receipts (#91277 Phase 4 UI) - #95982

Merged
teknium1 merged 1 commit into
mainfrom
feat/managed-update-ui
Aug 27, 2026
Merged

feat(desktop): Managed updates section — per-connection SSH updates with live receipts (#91277 Phase 4 UI)#95982
teknium1 merged 1 commit into
mainfrom
feat/managed-update-ui

Conversation

@teknium1

Copy link
Copy Markdown
Contributor

Summary

The managed SSH remote update (#95942) is now human-drivable: a "Managed updates" section on the Gateways settings page lists every registered SSH connection with an Update button, live progress, and the correlated receipt (#91277 Phase 4 UI; adapted from #93042's renderer unit by @andrexibiza with the canary/rollout scope stripped per sequencing).

Screenshots (approved by Teknium pre-merge; harness renders without app theme vars — in the Desktop the section inherits Gateways-settings styling):

Changes (all apps/desktop/)

  • src/store/managed-updates.ts (new): per-connection state machine — idle → updating → updated | partial | refused | failed; receipt + restored-scope capture; in-flight dedupe (repeat click joins the running promise); the managed-update-in-progress busy envelope handled BOTH as a refused result and as a thrown IPC error, so a busy gate renders as calm "in progress", never a scary failure.
  • src/app/settings/managed-updates-section.tsx (new): one row per kind: 'ssh' connection (label, user@host, status Pill via the standard tone tokens), Update → connections.updateManaged, progress line, terminal receipt line (Receipt <id8> · outcome · pre → post · stopReason), restored/unrestored profile lines with per-profile failure reasons. Renders nothing when there are no SSH sources or the main process lacks the bridge (older backend — fail-closed).
  • src/store/managed-updates.test.ts (new): 9 tests (success+receipt, join-on-repeat, partial restore-failed, busy refusal, thrown busy envelope, non-busy refusal, stop-reason fallback, missing-bridge fail-closed, busy matcher).

Stripped vs #93042's unit: rollout waves, canary cohorts, fleet-updates store surface, i18n beyond en (entangled with the deferred scope — follows if/when that lands).

Validation

Result
tsc clean
Store suite 9/9; touched suites green
eslint clean
Rendered proof the two screenshots above, driven through a mocked bridge to real store states

Advances #91277 Phase 4 (final UI piece). Credit: @andrexibiza (#93042 renderer design).

Infographic

Managed updates UI

Slim renderer UI for the managed SSH remote update engine (#95942),
adapted from #93042's renderer unit with the deferred canary/rollout
scope stripped. Adds a per-connection store (idle/updating/terminal
states, receipt, managed-update-in-progress busy envelope) and a
'Managed updates' section on the Gateways settings page with an Update
button, progress line, and correlated receipt per registered
Desktop-managed SSH connection. Fails closed when the Electron main
lacks connections.updateManaged.
@github-actions

github-actions Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

૮ >ﻌ< ა ci review

ran on 15a4b96 — feat(desktop): Managed updates section drives per-connection

⚠️ Warnings

OSV vulnerability scan · View job

6 known vulnerabilities found in pinned dependencies.

How to fix:

Review the findings in the Security tab. Update the affected dependencies if a patched version is available.


debug info

CI timings

CI timings · View report · View job

Wall time 2m2s vs 3m55s (-48.1%). 4 job(s) slower, 1 faster, 1 unchanged.

  • JS & TS checks / JS & TS checks: +9.0s
  • OSV scan / Emit review status: +6.0s
  • Detect affected areas: +2.0s
  • Check no committed infographics / check-no-committed-infographics: -1.0s
  • All required checks pass: +1.0s

@alt-glitch alt-glitch added type/feature New feature or request comp/desktop Electron desktop app (apps/desktop/*) backend/ssh SSH remote execution P3 Low — cosmetic, nice to have labels Aug 27, 2026
@teknium1
teknium1 merged commit bc4eea7 into main Aug 27, 2026
31 checks passed
@teknium1
teknium1 deleted the feat/managed-update-ui branch August 27, 2026 04:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend/ssh SSH remote execution comp/desktop Electron desktop app (apps/desktop/*) P3 Low — cosmetic, nice to have type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants