feat: runner follow-ups — bootstrap role + latest-version resolution #4
No reviewers
Labels
No labels
attention
blocked
blocker:ci-red
blocker:conflict
blocker:drill-pending
blocker:unrequested
bug
claimed
documentation
enhancement
epic
merge-next
needs-ruling
needs-triage
offsite
post-merge
ready
release
scope:bootstrap
scope:coolify
scope:db
scope:docs
scope:drill
scope:installer
scope:labels
scope:platform
scope:runner
scope:users
stale
state:addressing
state:bots-reviewing
state:building
state:needs-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: heavy-duty/rig#4
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/runner-bootstrap-role"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Two follow-ups to #3 (the first commit was pushed to that branch minutes after it merged, so both ride this PR):
rig bootstrap runner— a third bootstrap role alongsidecontrol-plane|workload. It defaults--ts-tagtotag:ciand refusestag:server(exit 2, validated before the root check): a runner executes repo-controlled code, and advertising the server tag would extend every grant your servers hold to that code. The pairing rhymes with the existing shape:bootstrap control-plane→coolify install,bootstrap runner→runner install.runner install --versionbecomes optional — omitted, rig resolves the latestactions/runnerrelease at install time by following thereleases/latestredirect (no API call, no rate limit, no JSON parsing on a dependency-free box; result validated against a digits-and-dots pattern before use):This is safe here, and only here, because the runner self-updates regardless of what you install — the install-time version is a starting point, not a contract.
coolify installdeliberately keeps its mandatory pin: Coolify never self-updates (AUTOUPDATE=false), so its version is a verified API surface.--versionremains for deterministic, auditable installs. The plan addendum indocs/plans/2026-07-11-runner-install.mdrecords both changes.Testing
bash test/cli.sh: 27 passed, 0 failed (thetag:serverrefusal, therunnerrole parsing through to the non-root refusal,--version needs a valuereplacing the retired version-required check).shellcheck: clean at default severity.2.335.1today.🤖 Generated with Claude Code