fix(ploeg): keep edited but unpublished writer work from counting as done #159

Merged
ryangr0 merged 2 commits from ryangr0/ploeg-acp-unpublished-edits into development 2026-10-03 10:09:00 +00:00 AGit
Owner

A writer that changed files and published nothing completed its Work
Item. resolveOutcome maps a clean exit with no pull request to
no_change_needed, and the ACP adapter itself reports no_change_needed
when no edit tool call completed, so an agent that edited through a
shell command looked like it had nothing to do. BuildMutatedWithoutPR,
which would have marked the run stuck, was never called.

The worker now records the commit a writer starts from and, when the
writer's outcome resolves to no_change_needed, compares the checkout
with it: uncommitted changes (git status, honouring .gitignore) or
commits on any local branch that are not on a remote end the Run stuck
with the paths and commits named. An unchanged checkout still completes.
The check sees edits from any tool, so BuildMutatedWithoutPR and the
changedFiles helper only it used are removed.

Applies to every writer harness, not only ACP: a no_change_needed writer whose clone has non-ignored changes or unpushed commits ends stuck. Skills and scratch live outside the clone, so they do not trigger it. BuildMutatedWithoutPR (never called) is removed. Same-defect variant not covered: a clean exit with an existing PR still reports pr_updated even if nothing new was pushed.

Verified with mise run verify on the pinned toolchain (all gates passed).

Ticket: https://vikunja.webgrip.dev/tasks/1737

🤖 Generated with Claude Code

A writer that changed files and published nothing completed its Work Item. resolveOutcome maps a clean exit with no pull request to no_change_needed, and the ACP adapter itself reports no_change_needed when no edit tool call completed, so an agent that edited through a shell command looked like it had nothing to do. BuildMutatedWithoutPR, which would have marked the run stuck, was never called. The worker now records the commit a writer starts from and, when the writer's outcome resolves to no_change_needed, compares the checkout with it: uncommitted changes (git status, honouring .gitignore) or commits on any local branch that are not on a remote end the Run stuck with the paths and commits named. An unchanged checkout still completes. The check sees edits from any tool, so BuildMutatedWithoutPR and the changedFiles helper only it used are removed. Applies to every writer harness, not only ACP: a no_change_needed writer whose clone has non-ignored changes or unpushed commits ends stuck. Skills and scratch live outside the clone, so they do not trigger it. BuildMutatedWithoutPR (never called) is removed. Same-defect variant not covered: a clean exit with an existing PR still reports pr_updated even if nothing new was pushed. Verified with `mise run verify` on the pinned toolchain (all gates passed). Ticket: https://vikunja.webgrip.dev/tasks/1737 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(ploeg): keep edited but unpublished writer work from counting as done
Some checks failed
[Workflow] On Pull Request / release-policy (pull_request) Failing after 18s
[Workflow] On Pull Request / checks (pull_request) Successful in 6m11s
[Workflow] On Pull Request / warnings (pull_request) Successful in 0s
656ec92fc4
A writer that changed files and published nothing completed its Work
Item. resolveOutcome maps a clean exit with no pull request to
no_change_needed, and the ACP adapter itself reports no_change_needed
when no edit tool call completed, so an agent that edited through a
shell command looked like it had nothing to do. BuildMutatedWithoutPR,
which would have marked the run stuck, was never called.

The worker now records the commit a writer starts from and, when the
writer's outcome resolves to no_change_needed, compares the checkout
with it: uncommitted changes (git status, honouring .gitignore) or
commits on any local branch that are not on a remote end the Run stuck
with the paths and commits named. An unchanged checkout still completes.
The check sees edits from any tool, so BuildMutatedWithoutPR and the
changedFiles helper only it used are removed.

VIK-1737

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merge branch 'development' into ploeg-acp-unpublished-edits
Some checks failed
[Workflow] On Pull Request / release-policy (pull_request) Successful in 23s
[Workflow] On Pull Request / checks (pull_request) Has been cancelled
[Workflow] On Pull Request / warnings (pull_request) Has been cancelled
ff5f7baabf
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
ryangr0 merged commit f11abde4ce into development 2026-10-03 10:09:00 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
webgrip/unfold!159
No description provided.