Skip to content

Landing

Landing merges a branch into the default branch with a merge commit, made by the server. A branch’s head lands once:

  • its required checks have run on that head and passed;
  • the review agent has reviewed that head (a fresh push isn’t ready just because nothing has said no yet);
  • no reviewer’s request for changes stands;
  • and no blocking thread is open. Nits never block.
Terminal window
wrktr land # land now if it's ready; otherwise say what's missing (exit 1)
wrktr land --when-ready # the server lands it, as you, as soon as it's ready
wrktr land --cancel # stop waiting to land it

With --when-ready nothing has to keep running on your machine: the server watches the branch and lands it when the checks, the review and the threads allow it.

Run from the branch’s worktree, land refuses uncommitted changes and a head the daemon hasn’t pushed yet, so nothing you have locally is left out.

  • Behind: the branch doesn’t contain the default branch’s latest commit. The daemon merges the default branch in as it moves; once it has, the merge can’t conflict. If that merge conflicted, .wrktr/BEHIND.md says so.
  • Moved: the branch has a head other than the one you meant to land. Nothing lands, so no commit is left out.
  • Experiment or closed: turn it off, or reopen it.

--force lands even though checks, threads or the review say it isn’t ready. Use it only on purpose.

The landing shows on the project’s home with the branch’s description. If the project has environments, its on: "land" ones deploy it, and the deploy comes back to the branch. wrktr env wait dev waits for it: exit 0 once dev has it live and its site serves it (with the url), 1 if it didn’t go out or isn’t served, 2 if dev isn’t set up. wrktr status (and the branch page) shows where the landing is deployed, and every run that shipped it:

dev live at https://dev.example.com (run #4) · serving
production not yet: run #3 (125fa7d) is live, from before it
shipped dev #4 live · serving