v0.19.0 — glab adapter + automatic worktree provisioning
Closes the two follow-ups from v0.18.0 (feature 004)
GitLab adapter shipped
bender sessions pr <session-id> on a gitlab.com remote now opens (or updates)
a merge request via the user's locally installed glab CLI. Parity with the
existing GitHub adapter:
- Same
Adapterinterface surface (Detect,AuthCheck,Push,OpenOrUpdate). - Same exit-code table (30/31/32/33).
- Same event emission (
pr_opened/pr_update_refused). - Same
--refuse-updateand--draftsemantics. - Push delegates to
git push -u origin <branch>:<branch>(glab itself is not
involved in push). - Snapshot-only PR status — no polling, same policy as v0.18.0.
state.json#pull_request.adapter now takes the live "glab" value in addition
to "gh". Self-hosted GitHub Enterprise and self-hosted GitLab are out of scope
for this release; the adapter interface remains open for future additions.
/ghu and /implement auto-provision a worktree
The embedded orchestrator skills (.claude/skills/ghu/SKILL.md,
.claude/skills/implement/SKILL.md) now call bender worktree create <session-id>
as their first action in every session. Every subsequent file write lands inside
the session worktree; the main working tree is untouched.
- No silent fall-back: if
benderv0.18.0+ is missing and the fallback script
is also unavailable, the skill aborts with an explicit upgrade message. - v2
state.json+worktree_createdevent emitted by the binary; the
orchestrator no longer hand-rolls either, eliminating a class of drift bugs. - Read-only skills (
/cry, pre-confirmation/plan,/tdd,/bender-bootstrap,
everybg-*) are explicitly not changed and a scope-guard integration
test enforces their absence of the provisioning block.
Upgrading
go install github.com/mayckol/ai-bender/cmd/bender@latest
cd path/to/your-project
bender init # idempotent; user-edited skills get *.proposed sidecarsLegacy v1 sessions continue to load unchanged and appear as legacy in
bender sessions list.
Fallback-script parity (Constitution VII)
.specify/extensions/worktree/scripts/{bash,powershell}/worktree.sh(+.ps1)
pr verb now routes gitlab.com remotes to the full glab flow symmetric to
the gh branch, with identical event and exit-code contracts.
Documentation
- New "After v0.19.0: a different way to start a project" section in the
README Quickstart area. - Dedicated Upgrade notes subsections for v0.19.0 and v0.18.0 alongside the
existing v0.17.0 note. /ghuand/implementslash-command descriptions explicitly reference the
worktree-provisioning step.
Tests
All 22 packages green on go test ./...:
internal/pr/glab_test.go— 7 FakeExec unit tests.tests/integration/gitlab_pr_test.go— end-to-end with a fake glab adapter.tests/integration/skills_initialisation_test.go— byte-for-byte sentinel
assertions overworkspace.Scaffold()-materialised defaults (both positive
for ghu / implement and negative for every read-only skill).
No new third-party Go dependencies.