Files
orca/config/scripts
NeilandClaude Opus 5.5 ea7af2dd7c fix(ssh): prune superseded staged server builds when an update defers (#35881)
* fix(ssh): prune superseded staged server builds when an update defers

GC ran only after an activation, so a host whose updates kept deferring
over live terminals kept one staged orcad slot per release. Prune on
deferral too, keeping the active, previous, live-daemon and newly
staged builds.

Refs #34149

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(ssh): keep recently staged builds; route and harden the deferred-slot e2e

Desktops on different releases can share a host, so the deferral prune
keeps complete builds staged within three days instead of deleting a
peer's candidate and forcing it to re-upload. Windows hosts, which
cannot date their builds, keep them all.

Refs #34149

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(ssh): read a build's staging age as unknown when find cannot date it

A find without -mtime used to read as an old build and let the deferral
prune remove a peer's candidate. Report an error instead, which keeps
every candidate; a build without .install-complete reads as not recent.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* test(ssh): pin that an undatable staged build keeps every build

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* test(ssh): fold the deferred-slot e2e into the update-anyway spec

Keeps the routing table under its size limit and runs the check on the
same deferred-update sources. Also drop the unused readiness argument
from pruneSupersededOrcadCandidates.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(ssh): report GC as unfinished when it kept a recently staged build

Callers that memoize a clean pass would otherwise never prune the build
once it ages.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 16:55:04 -07:00
..