[Bug] Plan modifications with ctrl+g are not passed to Claude

Status Fixed / completed
Maintainer reply None cached
Activity 14 comments · opened Nov 2, 2025 · closed Jan 26, 2026

Bug Description
I see that I can press Ctrl G to modify a plan now, which seems to be a new feature. However, the plan that was passed to Claude was the one before my modifications. I specifically checked with him when I saw that he's not doing what he was supposed to do. If he sees the changes of the plan and he didn't see them, he received the plan that he gave to me. So, it appears that modifications are not being passed to it.

Just to make sure, I did try it again at another ticket the same way and I asked the Claude what does it see in a specific section of the plan that it is doing and he saw the outdated value so the plan doesn't get saved or updated even though the interface does show the green check mark. I did not yet successfully use this edit plan feature.

Environment Info

  • Platform: darwin
  • Terminal: iTerm.app
  • Version: 2.0.31
  • Feedback ID: 411376bf-9aec-45c5-857e-f506642aa5e9

Errors

[{"error":"AbortError: The operation was aborted.\n    at unknown\n    at abortChildProcess (node:child_process:935:42)\n    at onAbortListener2 (node:child_process:35:24)\n    at abort (unknown)\n    at <anonymous> (/$bunfs/root/claude:3638:2045)","timestamp":"2025-11-02T14:30:19.660Z"},{"error":"Error: Request was aborted.\n    at makeRequest (/$bunfs/root/claude:526:3850)\n    at processTicksAndRejections (native:7:39)","timestamp":"2025-11-02T14:31:01.097Z"},{"error":"Error: Request was aborted.\n    at hpR (/$bunfs/root/claude:2603:31929)\n    at _U0 (/$bunfs/root/claude:3404:10660)\n    at processTicksAndRejections (native:7:39)","timestamp":"2025-11-02T14:32:32.644Z"},{"error":"Error: Request was aborted.\n    at makeRequest (/$bunfs/root/claude:526:3850)\n    at processTicksAndRejections (native:7:39)","timestamp":"2025-11-02T14:34:12.523Z"}]

View original on GitHub ↗

14 Comments

github-actions[bot] · 10 months ago

Found 1 possible duplicate issue:

  1. https://github.com/anthropics/claude-code/issues/9355

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

mimkorn · 10 months ago

The found possible duplicate is not a duplicate because my changes are synced back to the claude code, be it when I use it for my prompt or even for this plan — I did see modifications being propagated to the claude code interface after I closed editor, it's just that claude didn't see it changed.

JokerRun · 9 months ago

+1

alex-on-java · 9 months ago

It is still the issue

juanibiapina · 9 months ago

Editing a plan never worked for me either.

alex-on-java · 9 months ago

I don't know whether this will be useful to maintainers, but I asked Claude Code to fix this issue inside the minified source code of Claude Code (version 2.0.50). Here is its report:

---

Fix: ExitPlanMode Edited Plans Not Reaching Claude API

Note: Variable names in this document are human-readable approximations. The actual decompiled code uses minified names.

The Bug

When editing a plan via Ctrl+G before approval:

  • UI showed edited plan ✓
  • User approved ✓
  • Claude received original unedited plan

Root Cause

The userModified flag tracking plan edits wasn't properly threaded through the system:

  1. UI component tracked edits correctly (state variable set to true on Ctrl+G)
  2. UI passed the flag to permission system
  3. Permission system ignored it and recalculated based on inputsEquivalent method
  4. Plan tools lack inputsEquivalent, so flag defaulted to false
  5. Tool received userModified: false even when plan was edited
  6. Tool result included plan unconditionally (or not at all)

The Fix

Thread the userModified flag through the entire flow and conditionally include edited plans.

1. UI Component: Pass userModified flag

File: cli.js:~361244

  function approvalHandler(choice) {
      let updatedInput = {
          plan: currentPlan,
+         userModified: wasModified
      };

2. Permission System: Respect UI's flag

File: cli.js:393934

- let userModified = tool.inputsEquivalent ? !tool.inputsEquivalent(originalInput, updatedInput) : false;
+ let userModified = updatedInput.userModified ?? (tool.inputsEquivalent ? !tool.inputsEquivalent(originalInput, updatedInput) : false);
  resolve({
      behavior: "allow",
      updatedInput: updatedInput,
      userModified: userModified
  })

3. Tool: Forward flag to result

File: cli.js:~360983

  return {
      data: {
          plan: planText,
          isAgent: isAgentMode,
+         userModified: context.userModified
      }
  }

4. Tool Result: Conditionally include plan

File: cli.js:360987-361007

- mapToolResultToToolResultBlockParam({isAgent, plan}, toolUseId) {
+ mapToolResultToToolResultBlockParam({isAgent, plan, userModified}, toolUseId) {
      if (isAgent) return {
          type: "tool_result",
-         content: 'User has approved the plan...',
+         content: userModified ? `User has approved the plan...
+
+## Approved Plan:
+${plan}` : 'User has approved the plan...',
          tool_use_id: toolUseId
      };
      return {
          type: "tool_result",
-         content: "User has approved your plan...",
+         content: userModified ? `User has approved your plan...
+
+## Approved Plan:
+${plan}` : "User has approved your plan...",
          tool_use_id: toolUseId
      }
  }

Result

Claude now receives edited plans only when user actually modified them:

  • Without Ctrl+G edit: Generic approval message (preserves original API behavior)
  • With Ctrl+G edit: Approval message includes edited plan content
alex-on-java · 9 months ago

<img width="1026" height="265" alt="Image" src="https://github.com/user-attachments/assets/6d70aacd-33b9-4bf6-8b33-43858eedb549" />

alex-on-java · 9 months ago

No sure about ctrl+g, but I could manage to update the file with the plan (just editing separately ~/.claude/plans/squishy-zooming-starfish.md) and it worked out: Claude Code has executed the update plan without noticing :D

jeremydonahue · 9 months ago

Just another voice to say that ctrl+g to edit the plan does not actually work (using version 2.0.57).

alexwalpole · 8 months ago

I am also having this issue

hr-hristov · 8 months ago

+1

github-actions[bot] · 7 months ago

This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.

mimkorn · 7 months ago

I tested it now and it seems that it was fixed in the meantime, because it works now. CLosing.

github-actions[bot] · 6 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.