Updates
Change proposals — review, approve, and merge diffs from feature branches.
Updates (also called change proposals) are the core review mechanism in Strayl. Every time the AI agent finishes a task or you run st push from the CLI, a change proposal is created — a reviewable diff of a feature branch against dev.
You can find them in Manage → Updates.
What is a change proposal?
A change proposal represents a git feature branch that has been proposed for merging into dev. It includes:
- A title and description (auto-generated by the AI or provided by you)
- The diff of every file modified on the branch
- Metadata: which chat session created it, stack position, author, date
- A status: open, accepted, denied, or needs restack
Statuses
| Status | Meaning |
|---|---|
| Open | Proposed and waiting for review |
| Accepted | Approved — branch merged into dev |
| Denied | Rejected — branch was not merged |
| Needs restack | Has conflicts with dev — must be resolved before merging |
Viewing changes
Open Manage → Updates. You'll see a list of all change proposals for the project, newest first.
Each row shows:
- Title and the chat session it came from
- Stack position (order in the queue)
- Time ago
- Status badge (for accepted/denied) or action buttons (for open changes)
- Additions/deletions count
Click any row to open the detail view with the full file-by-file diff.
The diff view
The detail view shows:
- Added lines in green
- Removed lines in red
- Unchanged lines in gray
- File sections that can be collapsed/expanded
Each file is shown in a collapsible block with a header indicating whether it was added, modified, or deleted.
Approving a change
If you are the project owner or administrator:
- Open the change in Manage → Updates
- Review the diff
- Click Accept (or press
Enter) — the feature branch is merged intodev
After merging, the change status becomes Accepted and dev is updated.
Note: A change with Needs restack status cannot be accepted until the conflict is resolved. Use
st change <id> restackfrom the CLI, or ask the AI agent to rebase the branch.
Denying a change
- Open the change or find it in the list
- Click Deny (or press
Backspace) — the branch is not merged and the status becomes Denied
Stacked changes
Changes have a stack position — the order they will be applied onto dev. If a change earlier in the stack is modified or denied, later changes may need to be restacked because their base has changed.
The needs_restack status can appear for three reasons:
| Reason | Meaning |
|---|---|
conflict | File-level merge conflict with the current dev |
blocked | A change earlier in the stack is blocking this one |
main_moved | The main branch has moved ahead of this change's base |
Keyboard shortcuts (in detail view)
| Key | Action |
|---|---|
Enter | Accept change |
Backspace | Deny change |