Let the agent set the merge commit title, defaulting to the task title
This commit is contained in:
+4
-4
@@ -120,6 +120,7 @@ The Go server hosts an MCP server attached to every agent session.
|
||||
- `blocking: true` means the agent should end its turn; `false` means it continues with unblocked work.
|
||||
- The human's answer arrives as a structured next turn.
|
||||
- `thread_id` continues an existing inbox thread.
|
||||
- `set_merge_title(title)`: the title of the squash commit the task becomes (see "Merge cycle").
|
||||
- `request_review(scope, concerns[], profile?)`
|
||||
- `export_context(purpose)` → a handoff bundle (see "Handoff bundles").
|
||||
- `spawn_stages(stages[])` and `collect(stage_ids[])` for just-in-time fan-out and fan-in (see "Workflows").
|
||||
@@ -337,7 +338,7 @@ A task can go through many merge cycles before completion. Merges happen only at
|
||||
- Author: the human who confirmed the merge.
|
||||
- Co-author trailers: other humans who participated in the task since the last merge cycle (resolved inbox items, messaged agents, triggered forks).
|
||||
- No agent attribution.
|
||||
- Message: drafted by an agent from the task's turn summaries since the last merge; the human edits before confirming.
|
||||
- Message: the task's merge title, which starts as the task title and which the agent updates with `set_merge_title` as the work evolves; merging the default branch in asks it to check the title.
|
||||
4. Attach a git note to the squash commit (see "History").
|
||||
5. Push the default branch and the notes ref. If rejected because the remote moved, fetch and repeat from step 2.
|
||||
6. Reset the task branch to the new default-branch head. Required because squash commits make agent commits non-ancestors of the default branch; without the reset, later cycles accumulate spurious conflicts. Pre-squash history (the per-turn commits) remains available via snapshot refs.
|
||||
@@ -484,9 +485,8 @@ Record transcripts from the spike as the seed of the contract test suite.
|
||||
- **Not done:** snapshots, timeline scrubbing, terminals, file browser, previews.
|
||||
- **M3 — Second vendor and review.** Codex adapter with the same interface coverage, review profiles, review triggers, visual review output, cross-vendor review.
|
||||
- **M4 — Merging and history.** Full merge cycle with squash, authorship and co-author trailers, drafted commit messages, merge-resolution stage, git notes, task completion and archive, archive search, GitHub Issues integration.
|
||||
- **Done:** Merge and Discard replace "Complete task". Merge squashes the worktree, uncommitted files included, into one commit on the default branch, authored by the merging user, and fast-forwards the project checkout; it doesn't push, and it refuses on conflicts or while a turn is running.
|
||||
- **Next:** the squash commit message, which is the task title for now. Decided: a one-shot `claude -p` run in the task's worktree writes a one-line summary from the branch's log and diff stat, so Merge becomes a background job that reports back with a `task.merged` event or an error.
|
||||
- **Not done:** co-author trailers, merge-resolution stage, git notes, push, repeated merge cycles, archive search, GitHub Issues.
|
||||
- **Done:** Merge and Discard replace "Complete task". Merge squashes the worktree, uncommitted files included, into one commit on the default branch, authored by the merging user, and fast-forwards the project checkout; it doesn't push, and it refuses while a turn is running. Merge first has the agent merge the default branch in (also available alone as "Merge main in"), then squashes when that turn ends. The squash commit's title is the task's merge title: the task title until the agent sets another with the `set_merge_title` MCP tool, which the merge-in prompt asks it to do when the current title no longer describes the branch.
|
||||
- **Not done:** co-author trailers, human editing of the drafted message before confirming, merge-resolution stage, git notes, push, repeated merge cycles, archive search, GitHub Issues.
|
||||
- **M5 — Workflows.** Workflow definitions and storage, stages, gates, bounded loops, plan artifact, eval stages, task intake, mid-task swapping.
|
||||
- **M6 — Fan-out.** `export_context` and handoff bundles, same-vendor forks, cross-vendor handoffs, fork-and-compare, just-in-time fan-out with limits.
|
||||
- **M7 — Inbox triage.**
|
||||
|
||||
Reference in New Issue
Block a user