Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions docs/app/api-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -308,9 +308,17 @@ GET /api/merge-queue
]
```

#### Approve Entry <!-- LAST_UPDATED: 2026-03-27 -->
#### Approve Entry <!-- LAST_UPDATED: 2026-04-02 -->

In Play mode, approval triggers an immediate GitHub merge. In Pause mode, the entry is approved but merges on flush. If the GitHub merge fails transiently, the entry reverts to Approved and will be retried automatically on the next poll cycle.
In Play mode, approval triggers an immediate GitHub merge. In Pause mode, the entry is approved but merges on flush.

Before executing the merge, CI status is checked:
- **CI passing** — merge proceeds immediately
- **CI pending** — merge is deferred; retried automatically on the next poll cycle
- **CI failing** — entry moves to "request changes" with feedback listing the failed checks
- **No CI configured** — merge proceeds

If the GitHub merge fails transiently (not CI-related), the entry reverts to Approved and will be retried automatically on the next poll cycle.

```http
POST /api/merge-queue/:id/approve
Expand Down
7 changes: 6 additions & 1 deletion docs/app/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,12 @@ Tasks is built as a modular Rust monorepo with a React web frontend. This docume
5. **Session** bridges events between agent and server
6. **Merge Queue** receives completed work for review
7. **Human** approves/rejects in merge queue
8. **Merger** lands approved changes; transient GitHub API failures revert the entry to Approved for automatic retry on the next poll cycle
8. **Merger** checks CI status before executing merge:
- CI passing → merge proceeds
- CI pending → deferred to next poll cycle
- CI failing → entry reverts to "request changes" with feedback about failed checks
- No CI configured → merge proceeds
- Transient GitHub API failures → entry reverts to Approved and retried on next poll cycle

### Event System

Expand Down