Problem
homeboy upgrade upgraded the controller from 0.299.0 to 0.299.2 and returned overall success, while the configured homeboy-lab runner remained on 0.299.0:
{
"new_version": "0.299.0",
"previous_version": "0.299.0",
"success": true,
"upgraded": false,
"recovery_commands": [
"homeboy runner exec homeboy-lab -- homeboy upgrade --no-restart",
"homeboy upgrade --force --upgrade-runner homeboy-lab"
]
}
The next Lab workflow failed first with daemon lease is not fresh. Recovery required a separate manual command:
homeboy runner refresh-homeboy homeboy-lab --ref v0.299.2 --reconnect
This reproduces the user-facing contract previously tracked in #5563 after its fix.
Context: browser verification for Automattic/blocks-engine#659.
Expected behavior
One homeboy upgrade invocation converges the controller, configured runner binary, and active runner daemon to the selected release before reporting success.
When a runner cannot converge, the top-level command reports a partial/failed state and performs the safe generated recovery itself when possible. Structured output distinguishes controller success from fleet convergence.
Acceptance criteria
homeboy upgrade upgrades each selected configured runner to the controller release.
- The active daemon is refreshed/reconnected before completion.
- Overall
success is false or partial when a selected runner reports upgraded: false.
- Before/after controller, configured runner, and active daemon identities are concise and explicit.
- A deterministic regression test covers the exact
success: true, upgraded: false child result.
AI assistance
Problem
homeboy upgradeupgraded the controller from0.299.0to0.299.2and returned overall success, while the configuredhomeboy-labrunner remained on0.299.0:{ "new_version": "0.299.0", "previous_version": "0.299.0", "success": true, "upgraded": false, "recovery_commands": [ "homeboy runner exec homeboy-lab -- homeboy upgrade --no-restart", "homeboy upgrade --force --upgrade-runner homeboy-lab" ] }The next Lab workflow failed first with
daemon lease is not fresh. Recovery required a separate manual command:This reproduces the user-facing contract previously tracked in #5563 after its fix.
Context: browser verification for Automattic/blocks-engine#659.
Expected behavior
One
homeboy upgradeinvocation converges the controller, configured runner binary, and active runner daemon to the selected release before reporting success.When a runner cannot converge, the top-level command reports a partial/failed state and performs the safe generated recovery itself when possible. Structured output distinguishes controller success from fleet convergence.
Acceptance criteria
homeboy upgradeupgrades each selected configured runner to the controller release.successis false or partial when a selected runner reportsupgraded: false.success: true,upgraded: falsechild result.AI assistance