Wayari takes one prompt and puts a crew of coding agents on it. They plan, build, verify and ship.
Then the work stops at one pull request, and the pull request waits for you.
Why stop there? The agents did the work and the checks passed, so they could merge it too.
01one act cannot be taken back
Wayari can do exactly one thing that cannot be undone, and that thing is a merge. Its code has a runner for merging and for no other irreversible act.
Deleting a branch, running a migration, deploying and force pushing are outside what Wayari does. An agent can ask for one of those. Asking is all it can do.
Wayari is built for one person running a fleet of agents on their own machine. On their repository, a bad merge costs them a weekend.
So nothing Wayari does reaches their trunk until they have said yes to it.
02an agent asks, and silence means no
An agent that wants something irreversible runs wayari request-act and waits. If nobody answers, the command exits with an error and tells the agent not to act.
A yes is spent the first time it is used, and it goes stale after a while.
A yes can also be tied to the exact words the person read. The act that runs is then the act they approved.
The rule in the code is short:
An irreversible act is never a permission. It is a request.
A test reads the source to make sure nothing in it grants a standing right to merge.
03the button merges what you read
When you press merge, Wayari asks GitHub to merge the commit you reviewed and nothing else. If the branch has moved since, GitHub refuses.
A push that lands between your read and your click cannot carry an unread commit into the trunk.
The press itself can only come from a person. It is made where the click is handled, and nothing an agent drives can reach that code.
04the merge grant, for the hours you sleep
Waiting for a person has a cost. A pull request that is ready at 2am would sit there until you wake up.
So 0.5.0 added the merge grant. You give it before bed, for channels you name, for a set number of hours:
wayari grant merge <channel> --hours 8
A grant lasts 8 hours at most. Inside it, Wayari merges one ready pull request a minute, and only when all of these hold:
- GitHub would merge it.
- The gate is green at the commit GitHub has at the head.
- Someone who did not write the change reviewed that same commit.
- No blocking finding stands.
- Nothing the goal asked for is missing from the diff.
- The behaviour diff is clean.
- Every channel it builds on has already merged.
A fact Wayari cannot read counts as a no. With no behaviour diff on record, nothing merges, because a missing check is not a clean one.
The grant is read again after the gate runs. A gate takes minutes, and you might have revoked the grant while it ran.
05what a grant never covers
A channel opened after the grant is never covered. You granted the work you knew about when you gave it.
An agent cannot give a grant. wayari grant refuses inside an agent's session, and agents are never offered it as a tool.
The changelog gives the reason in one line:
No agent's word is enough for eight hours of merges nobody watches.
A grant survives a restart of the daemon. wayari grant revoke ends one early.
06the morning page
In the morning, bare wayari grant is one page. It lists what merged, in the order it landed.
Anything left for you comes with the refusal that held it and the commands that move it on.
Everything the grant did not merge is still a pull request, gated and reviewed, waiting for you to read it.



