Repository navigation
v0.1.1
Follow-ups from the first release (spec
docs/specs/2026-10-10-setu-0.1.1-design.md, issues #2–#10).
Manifests
- Raw single-binary releases: a
run.binarytarget may say
format = "binary"; the helper verifies the download and installs it
asbin/<version>/<exec>mode 0755 (execis one file name). The
sample manifests (Miniflux, hello-axum) use it.
Upgrading
- On a panel box:
install.sh --version 0.1.1with the original flags;
the installer restartssetuand the local agent only when the binary
changed. Re-runningsetu agent installis not needed.
Panel
-
Owners can delete an operator in Settings → Operators (#2). The
owner cannot delete themselves or the last owner; the deleted
operator's sessions end at once. -
The sites list carries each site's newest metric sample (one
query); Memory and Disk showused / limitwith the Limits tab's
bars (#3). -
The site overview links the app's admin page next to the domain,
from the manifest'sadmin_path(admin_urlonGET /sites/{id},
nullwhen the path is not absolute) (#4).
Agent
- Heartbeats measure each site's data directory (
du) at most every
ten minutes; memory and CPU are still read every beat. The helper's
unit showtakesdata_bytes: falseto skip the walk (#5).
Control plane
-
Nightly self-backup:
setu serverunspg_dump -Fcof its own
database into<data_dir>/backups/setu/, keeps seven, and Settings →
Panel shows the last successful one (GET /api/v1/panel/backup) (#9). -
Server token rotation:
POST /api/v1/servers/{id}/rotate-token(owner)
issues a single-use join token and marks the serverrejoining; the
old token keeps working untilsetu agent joinruns with the new one
(#8).setu agent joinre-joins without--control-plane(it reads
agent.toml), keeps the other settings and restarts the agent. -
GET /api/v1/apps/{id}/versions/{version}/promptslists a version's
prompt variables (name,label,secret; never a value). The update
dialog asks one labelled field per prompt instead ofNAME=value
lines (#7). -
A deleted site's jobs keep their rows (
jobs.site_idbecomes NULL,
migration0002), so the delete job endsdonewith its log in Jobs
and the runner no longer logsnot_foundafter a delete (#6).
Internal
- Workspace lints:
clippy::pedantic,unwrap_used,expect_usedas
warnings; CI runs clippy with--all-featuresand fails on any
warning (#10).