Repository navigation
fix(lua-agent-builder): in a build session, version promote is an action request, not a release (1.17.1) - #30
Conversation
…ion request, not a release (1.17.1) confirm-deploy routed `lua version promote <N>` to request_release, which releases the session's files instead of putting version N back live. It now names request_action (command "version promote"), which the platform runs as one card with nothing rebuilt (LUA-1861). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
selcuk-lua
left a comment
There was a problem hiding this comment.
Code review — LOW risk
Narrow, well-targeted fix: lua version promote <N> in a build session is re-routed from request_release to request_action by dropping it from RELEASE_LABELS, so sessionDeployBlockReason now emits the action-request guidance (promote puts the existing version N back live, nothing rebuilt). The change is consistently mirrored across the vendored classifier note, build-session.md, docs/BUILD_SESSION.md, the CHANGELOG, and updated tests, and the tokenizer/confirm-deploy gate logic is untouched so non-session behavior is unchanged. The remaining nits are internal comments and one session-guard advisory path that still describe the old "promote is a release" behavior.
Minor
plugins/lua-agent-builder/lib/session-mode.mjs:16— The module header comment still says "lua deploy/lua version promotebecome a RELEASE … never a bare promote", contradicting the new routing. Update it to reflect thatversion promote <N>is now an action request.plugins/lua-agent-builder/lib/session-mode.mjs:243—approvalNote()still groupsversion.promotewithdeploy/push.auto_deployand appends "Making code live is a release: call request_release instead." Thetest/lib/session-mode.test.mjstest (deploy, promote and --auto-deploy at request_release) still pins this, so the session-guard warning now contradicts the confirm-deploy block and the docs for the same command. Moveversion.promoteto request_action wording and update the test.plugins/lua-agent-builder/mcp/lua-platform/dist/server.js:1— Regenerated minified bundle committed with the version bump; confirm it was produced by the standardnpm run buildand the diff is limited to the version string.
PR Risk Reviewer — automated senior review of fb8266d · risk: low · confidence: 0.86
What
In a live build session (
LUA_BUILD_SESSION=1),confirm-deployblockedlua version promote <N>and told Claude to callrequest_release. A release ships the session's files, so asking to go back to version N produced a release of the session's code, not version N (LUA-1861).The platform now runs
version promote <N>from a session as one approval card that puts the existing version N back live: nothing is rebuilt and the session's files don't change. This PR routes the command there:lib/session-mode.mjs:lua version promoteleavesRELEASE_LABELS, so the block namesrequest_actionwithcommand: "version promote".lib/session-commands.mjs: the vendored row's note matches the monorepo table ("Puts that version back live.").lib/knowledge/build-session.mdanddocs/BUILD_SESSION.mdsay the same.I checked the whole list against the platform's routes. Every other verb in
RELEASE_LABELS(lua deploy, the per-primitive deploys,lua persona production deploy,lua workflows deploy) is still a release on the server.version promotewas the only one on the wrong route.Nothing changes outside session mode.
Proof
lua version promote 14in a session was denied by this hook withDEPLOY_DENIED_SESSION … call mcp__lua-session__request_release. The same request throughrequest_actionproduced the right card: "Puts version 14 back live in place of version 15. Nothing is rebuilt; Changes the skill …; Your session's files don't change …". I declined it, and v15 is still live.main(3 failed) and pass with the fix. Full suite: 72 suites, 2546 tests passed.After merge
The session pod image pins the plugin. The pin bump goes on the lua-core-services staging follow-up, then image re-pins on staging and prod. The Job tier pins 1.12.0, which has no session mode, so it isn't affected.
🤖 Generated with Claude Code