Skip to content

feat(fleet): set and show a keep deadline from the dashboard - #169

Merged
outofcoffee merged 3 commits into
mainfrom
dashboard-keep
Sep 6, 2026
Merged

feat(fleet): set and show a keep deadline from the dashboard#169
outofcoffee merged 3 commits into
mainfrom
dashboard-keep

Conversation

@outofcoffee

Copy link
Copy Markdown
Collaborator

Set a keep (retention deadline) on a remote environment from the fleet dashboard, and show that deadline on the node's tile, detail screen, and metrics output.

Summary

  • Adds a k key to the fleet dashboard (grid and detail view) that prompts for a duration and sets a keep on the selected remote environment, reporting the deadline the control plane set.
  • Adds a Keeper capability interface to the fleet, implemented only by the remote node, and runs the keep through the existing per-node action machinery (tile spinner, one action per node, an immediate re-read on completion).
  • The stats reply now carries retainUntil while the retention deadline is in the future, and a retain until line shows beside the last-active figure in the shared metrics render, so the dashboard tile, fleet metrics and remote metrics word it the same.
  • Keep is remote-only: a local daemon has no idle sweep, so the key is not offered for it.

Implementation details

  • The "is it still active" judgement sits in the stats Lambda once, not in the client: the control plane includes the deadline only while it is a time in the future, so a client or environment predating the field simply omits the line.
  • The prompt is its own confirmation (no second one) and opens pre-filled with 4h. An entry that does not parse as a positive duration leaves the prompt open and shows the parse reason. A keep in flight is not abortable, unlike a cold cloud wake — a keep is one fast signed call, a wake has no deadline of its own.

@outofcoffee outofcoffee added the enhancement New feature or request label Sep 6, 2026
Word the since-last-work figure as "active" rather than "last active"
across the tile, detail, one-shot metrics, status views, and routing, and
show a kept environment's deadline as a relative figure after it on the same
line ("active  2m 5s ago  keep for 2h") instead of an absolute "retain
until" timestamp. The json format keeps the absolute field for consumers.
@outofcoffee
outofcoffee merged commit c37e104 into main Sep 6, 2026
3 checks passed
@outofcoffee
outofcoffee deleted the dashboard-keep branch September 6, 2026 17:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant