Skip to content

fix(loop)!: drop --all for Claude Code parity; persist no longer rolls back peer updates (0.7.4) - #23

Merged
jkrandom-sudo merged 1 commit into
mainfrom
fix/remove-all-flag
Aug 2, 2026
Merged

fix(loop)!: drop --all for Claude Code parity; persist no longer rolls back peer updates (0.7.4)#23
jkrandom-sudo merged 1 commit into
mainfrom
fix/remove-all-flag

Conversation

@jkrandom-sudo

Copy link
Copy Markdown
Owner

Summary

Fixes the issues from the v0.7.3 field test report (TEST_REPORT.md, 66 cases):

  • Remove --all entirely (report problems 1–3): Claude Code's /loop has no cross-session equivalent — its jobs are strictly per-session — so instead of fixing --all's broken cross-process semantics, all subcommands and both LLM tools are now purely session-scoped. Another session's tasks are invisible to list and report "No task <id> in this session" for cancel/pause/resume. The cross-session refusal-message and [s:xxxx] tag doc mismatches disappear with the feature.
  • Persist merge direction (report problem 4): an untouched (non-dirty) in-memory task no longer overwrites a newer disk version during persist() — only ids this instance actually modified win the merge. Two OpenCode processes sharing one tasks.json can no longer roll back each other's updates (e.g. a peer's set_fixed/pause being reverted).
  • README: removed stale upgrade/history narratives; documents current behavior only.

Test plan

  • npm test — 176/176 (all --all cases re-pinned to session-only semantics; new store merge-direction test)
  • Real OpenCode E2E with two opencode serve processes on one project:
    • B's list does not show A's task; B's cancel <A task> refused without --all hint; A's task intact
    • A paused its task, then B created a task (B persists) — A's paused state not rolled back
    • Bare /loop stop cancels only the current session; /loop help contains no --all

🤖 Generated with Claude Code

…s back peer updates (0.7.4)

Claude Code's /loop has no cross-session flag — its jobs are strictly
per-session — so this removes --all entirely instead of fixing its
cross-process semantics (TEST_REPORT F-02/F-06/F-11/F-13, I-07/08/09):

- scheduler/tools: list/cancel/pause/resume/stop/stop-all only ever see
  the current session; another session's tasks report "No task <id> in
  this session"; the `all` tool argument is gone; help/README updated.
- store: cancelAll removed (no callers left).
- store persist merge fix: an untouched (non-dirty) in-memory task no
  longer overwrites a newer disk version — only ids this instance
  actually modified win the merge, so two processes can no longer roll
  back each other's updates (TEST_REPORT problem 4).
- README: dropped stale upgrade/history narratives; documents current
  behavior only.

Verified with two real opencode serve processes sharing one project:
cross-session tasks are invisible and unmanageable, bare stop stays
session-local, and a peer's persist no longer reverts a pause.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@jkrandom-sudo
jkrandom-sudo merged commit 4f723f4 into main Aug 2, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant