claude-code - 💡(How to fix) Fix [BUG] Write/Edit tools truncate to previous file size when overwriting existing files (Windows desktop / virtiofs)

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

Any content beyond byte N is silently dropped — no error, no warning, no indication that data was lost

Error Messages/Logs

Fix Action

Fix / Workaround

✗ Not OneDrive (folder isn't synced) ✗ Not Malwarebytes (excluded, no change) ✗ Not Windows Defender (excluded, no change) ✗ Not the CRLF line-ending bug from the recent patch (files are LF-only) ✗ Not specific to Edit tool (Write tool has the same behaviour) ✗ Not a permissions issue (bash can write the same files fine) ✗ Persists across Cowork reinstall and machine restart

Workaround: Use bash/Python via the mcp__workspace__bash tool for all file edits — those writes go through a different code path (Linux sandbox → virtiofs) and work correctly.

RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

Environment:

Cowork desktop app on Windows 11 (reinstalled today — version: please run claude --version and add it here) Folder: C:\Users\JVVco\GTI\Website\Build\ (local, NOT OneDrive-synced) Files: HTML, all LF (Unix) line endings, no CRLF anywhere Antivirus: Malwarebytes Premium + Windows Defender (both have folder added to exclusions — no change in behaviour)

Bug: Write and Edit tools overwriting existing files truncate the new content to the file's previous byte length. The first part of new content is written correctly; everything beyond the old byte boundary is silently dropped. Minimal repro (3 lines, ~30 seconds):

Use the Write tool to create a new file in the affected folder (e.g. test.txt with 340 bytes of content) → succeeds, file is correct size Use the Write tool to overwrite the same file with longer content (e.g. ~1100 bytes) → file stays at 340 bytes, content is the first 340 bytes of new content, rest is dropped python3 -c "open('test.txt', 'wb').write(b'X'*1000)" via bash → works correctly, file is 1000 bytes

Symptom in practice: HTML pages lose their closing </footer></body></html> whenever an Edit modifies the file with content larger than its current size. The truncation happens silently — the tool reports success. What rules out:

✗ Not OneDrive (folder isn't synced) ✗ Not Malwarebytes (excluded, no change) ✗ Not Windows Defender (excluded, no change) ✗ Not the CRLF line-ending bug from the recent patch (files are LF-only) ✗ Not specific to Edit tool (Write tool has the same behaviour) ✗ Not a permissions issue (bash can write the same files fine) ✗ Persists across Cowork reinstall and machine restart

Workaround: Use bash/Python via the mcp__workspace__bash tool for all file edits — those writes go through a different code path (Linux sandbox → virtiofs) and work correctly.

What Should Happen?

Expected behaviour When the Write or Edit tool overwrites an existing file:

The tool reports success only when the file on disk has been fully written The new file size matches the size of the content the tool was instructed to write The file ends with the last character of the new content (no silent truncation) All structural elements that depend on full content being present (e.g. closing tags in HTML files, end-of-file markers) survive the write The behaviour matches what open(path, 'wb').write(content) does from a Python script in the workspace bash sandbox writing to the same file

Actual behaviour When the Write or Edit tool overwrites an existing file:

The tool reports success The new file size is identical to the file's size before the write — regardless of how much new content was meant to be written The file contains the first N bytes of the new content, where N = the previous file size Any content beyond byte N is silently dropped — no error, no warning, no indication that data was lost Common visible symptom: HTML files lose </footer></body></html> after any edit that adds content, leaving the page malformed but still loadable enough that the breakage isn't immediately obvious in a browser

Severity High — corrupts user data silently, requires manual recovery, no clear in-tool signal that anything went wrong.

Error Messages/Logs

Steps to Reproduce

<html> <body> <!--StartFragment--><h3 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold">Steps to Reproduce</h3> <p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><strong>Setup:</strong> Open Cowork desktop on Windows. Have any local folder available for testing (e.g. <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">C:\repro\</code>).</p> <p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><strong>Step 1 — Create a new file via Write tool</strong> (this part works):</p> <p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Use the Write tool with:</p> <ul class="[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"> <li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>file_path:</strong> <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">C:\repro\test.txt</code></li> <li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>content:</strong> A short string, e.g. <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">"Initial content - exactly 340 characters long. " * 7</code> (pad to ~340 bytes)</li> </ul> <p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Then via bash sandbox, confirm:</p> <div role="group" aria-label="bash code" tabindex="0" class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100"><div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right"><div class="absolute right-0 h-8 px-2 items-center inline-flex z-10"><button class="inline-flex items-center justify-center relative isolate shrink-0 can-focus select-none disabled:pointer-events-none disabled:opacity-50 disabled:shadow-none disabled:drop-shadow-none border-transparent transition font-base duration-300 ease-[cubic-bezier(0.165,0.85,0.45,1)] h-8 w-8 rounded-md backdrop-blur-md _fill_10ocf_9 _ghost_10ocf_96" type="button" aria-label="Copy to clipboard" data-state="closed"><div class="relative"><div class="transition-all opacity-100 scale-100" style="width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="transition-all opacity-100 scale-100" aria-hidden="true" style="flex-shrink: 0;"><path d="M12.5 3A1.5 1.5 0 0 1 14 4.5V6h1.5A1.5 1.5 0 0 1 17 7.5v8a1.5 1.5 0 0 1-1.5 1.5h-8A1.5 1.5 0 0 1 6 15.5V14H4.5A1.5 1.5 0 0 1 3 12.5v-8A1.5 1.5 0 0 1 4.5 3zm1.5 9.5a1.5 1.5 0 0 1-1.5 1.5H7v1.5a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-8a.5.5 0 0 0-.5-.5H14zM4.5 4a.5.5 0 0 0-.5.5v8a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-8a.5.5 0 0 0-.5-.5z"></path></svg></div><div class="absolute inset-0 flex items-center justify-center"><div class="transition-all opacity-0 scale-50" style="width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="transition-all opacity-0 scale-50" aria-hidden="true" style="flex-shrink: 0;"><path d="M15.188 5.11a.5.5 0 0 1 .752.626l-.056.084-7.5 9a.5.5 0 0 1-.738.033l-3.5-3.5-.064-.078a.501.501 0 0 1 .693-.693l.078.064 3.113 3.113 7.15-8.58z"></path></svg></div></div></div></button></div></div><div class="text-text-500 font-small p-3.5 pb-0">bash</div><div class="overflow-x-auto"><pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5" style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono);"><code class="language-bash" style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono); white-space: pre;"><span><span class="token token" style="color: rgb(0, 81, 194);">ls</span><span> -la /sessions/</span><span class="token token" style="color: rgb(20, 24, 31);">&lt;</span><span>session</span><span class="token token" style="color: rgb(20, 24, 31);">&gt;</span><span>/mnt/repro/test.txt </span></span><span><span></span><span class="token token" style="color: rgb(110, 118, 135);"># Expected: file exists, size matches written content (~340 bytes)</span></span></code></pre></div></div> <p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><strong>Step 2 — Overwrite the same file via Write tool with LARGER content:</strong></p> <p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Use the Write tool with:</p> <ul class="[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"> <li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>file_path:</strong> <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">C:\repro\test.txt</code> (same path)</li> <li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>content:</strong> A much longer string, e.g. ~1,100 bytes of distinct content ending with a clearly identifiable marker like <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">"END MARKER"</code></li> </ul> <p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><strong>Step 3 — Inspect the result via bash:</strong></p> <div role="group" aria-label="bash code" tabindex="0" class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100"><div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right"><div class="absolute right-0 h-8 px-2 items-center inline-flex z-10"><button class="inline-flex items-center justify-center relative isolate shrink-0 can-focus select-none disabled:pointer-events-none disabled:opacity-50 disabled:shadow-none disabled:drop-shadow-none border-transparent transition font-base duration-300 ease-[cubic-bezier(0.165,0.85,0.45,1)] h-8 w-8 rounded-md backdrop-blur-md _fill_10ocf_9 _ghost_10ocf_96" type="button" aria-label="Copy to clipboard" data-state="closed"><div class="relative"><div class="transition-all opacity-100 scale-100" style="width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="transition-all opacity-100 scale-100" aria-hidden="true" style="flex-shrink: 0;"><path d="M12.5 3A1.5 1.5 0 0 1 14 4.5V6h1.5A1.5 1.5 0 0 1 17 7.5v8a1.5 1.5 0 0 1-1.5 1.5h-8A1.5 1.5 0 0 1 6 15.5V14H4.5A1.5 1.5 0 0 1 3 12.5v-8A1.5 1.5 0 0 1 4.5 3zm1.5 9.5a1.5 1.5 0 0 1-1.5 1.5H7v1.5a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-8a.5.5 0 0 0-.5-.5H14zM4.5 4a.5.5 0 0 0-.5.5v8a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-8a.5.5 0 0 0-.5-.5z"></path></svg></div><div class="absolute inset-0 flex items-center justify-center"><div class="transition-all opacity-0 scale-50" style="width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="transition-all opacity-0 scale-50" aria-hidden="true" style="flex-shrink: 0;"><path d="M15.188 5.11a.5.5 0 0 1 .752.626l-.056.084-7.5 9a.5.5 0 0 1-.738.033l-3.5-3.5-.064-.078a.501.501 0 0 1 .693-.693l.078.064 3.113 3.113 7.15-8.58z"></path></svg></div></div></div></button></div></div><div class="text-text-500 font-small p-3.5 pb-0">bash</div><div class="overflow-x-auto"><pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5" style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono);"><code class="language-bash" style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono); white-space: pre;"><span><span class="token token" style="color: rgb(0, 81, 194);">stat</span><span> -c%s /sessions/</span><span class="token token" style="color: rgb(20, 24, 31);">&lt;</span><span>session</span><span class="token token" style="color: rgb(20, 24, 31);">&gt;</span><span>/mnt/repro/test.txt </span></span><span><span></span><span class="token token" style="color: rgb(110, 118, 135);"># Expected (correct behaviour): ~1100 bytes</span><span> </span></span><span><span></span><span class="token token" style="color: rgb(110, 118, 135);"># Actual (bug): 340 bytes — same as step 1</span><span> </span></span><span> </span><span><span></span><span class="token token" style="color: rgb(0, 81, 194);">tail</span><span> -c </span><span class="token token" style="color: rgb(0, 128, 128);">100</span><span> /sessions/</span><span class="token token" style="color: rgb(20, 24, 31);">&lt;</span><span>session</span><span class="token token" style="color: rgb(20, 24, 31);">&gt;</span><span>/mnt/repro/test.txt </span></span><span><span></span><span class="token token" style="color: rgb(110, 118, 135);"># Expected: ends with "END MARKER"</span><span> </span></span><span><span></span><span class="token token" style="color: rgb(110, 118, 135);"># Actual: ends mid-content somewhere around byte 340, no END MARKER</span></span></code></pre></div></div> <p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><strong>Step 4 — Confirm bash writes work to the same file:</strong></p> <div role="group" aria-label="bash code" tabindex="0" class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100"><div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right"><div class="absolute right-0 h-8 px-2 items-center inline-flex z-10"><button class="inline-flex items-center justify-center relative isolate shrink-0 can-focus select-none disabled:pointer-events-none disabled:opacity-50 disabled:shadow-none disabled:drop-shadow-none border-transparent transition font-base duration-300 ease-[cubic-bezier(0.165,0.85,0.45,1)] h-8 w-8 rounded-md backdrop-blur-md _fill_10ocf_9 _ghost_10ocf_96" type="button" aria-label="Copy to clipboard" data-state="closed"><div class="relative"><div class="transition-all opacity-100 scale-100" style="width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="transition-all opacity-100 scale-100" aria-hidden="true" style="flex-shrink: 0;"><path d="M12.5 3A1.5 1.5 0 0 1 14 4.5V6h1.5A1.5 1.5 0 0 1 17 7.5v8a1.5 1.5 0 0 1-1.5 1.5h-8A1.5 1.5 0 0 1 6 15.5V14H4.5A1.5 1.5 0 0 1 3 12.5v-8A1.5 1.5 0 0 1 4.5 3zm1.5 9.5a1.5 1.5 0 0 1-1.5 1.5H7v1.5a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-8a.5.5 0 0 0-.5-.5H14zM4.5 4a.5.5 0 0 0-.5.5v8a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-8a.5.5 0 0 0-.5-.5z"></path></svg></div><div class="absolute inset-0 flex items-center justify-center"><div class="transition-all opacity-0 scale-50" style="width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="transition-all opacity-0 scale-50" aria-hidden="true" style="flex-shrink: 0;"><path d="M15.188 5.11a.5.5 0 0 1 .752.626l-.056.084-7.5 9a.5.5 0 0 1-.738.033l-3.5-3.5-.064-.078a.501.501 0 0 1 .693-.693l.078.064 3.113 3.113 7.15-8.58z"></path></svg></div></div></div></button></div></div><div class="text-text-500 font-small p-3.5 pb-0">bash</div><div class="overflow-x-auto"><pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5" style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono);"><code class="language-bash" style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono); white-space: pre;"><span><span>python3 -c </span><span class="token token" style="color: rgb(0, 128, 0);">"open('/sessions/&lt;session&gt;/mnt/repro/test.txt', 'wb').write(b'X' * 2000)"</span><span> </span></span><span><span></span><span class="token token" style="color: rgb(0, 81, 194);">stat</span><span> -c%s /sessions/</span><span class="token token" style="color: rgb(20, 24, 31);">&lt;</span><span>session</span><span class="token token" style="color: rgb(20, 24, 31);">&gt;</span><span>/mnt/repro/test.txt </span></span><span><span></span><span class="token token" style="color: rgb(110, 118, 135);"># Expected and actual: 2000 bytes — bash overwrite works correctly</span></span></code></pre></div></div> <p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><strong>Step 5 — Repeat step 2 (Write tool overwrite) on the now-2000-byte file:</strong></p> <p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Use the Write tool to overwrite with a short string (e.g. 500 bytes of new content).</p> <p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Inspect:</p> <div role="group" aria-label="bash code" tabindex="0" class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100"><div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right"><div class="absolute right-0 h-8 px-2 items-center inline-flex z-10"><button class="inline-flex items-center justify-center relative isolate shrink-0 can-focus select-none disabled:pointer-events-none disabled:opacity-50 disabled:shadow-none disabled:drop-shadow-none border-transparent transition font-base duration-300 ease-[cubic-bezier(0.165,0.85,0.45,1)] h-8 w-8 rounded-md backdrop-blur-md _fill_10ocf_9 _ghost_10ocf_96" type="button" aria-label="Copy to clipboard" data-state="closed"><div class="relative"><div class="transition-all opacity-100 scale-100" style="width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="transition-all opacity-100 scale-100" aria-hidden="true" style="flex-shrink: 0;"><path d="M12.5 3A1.5 1.5 0 0 1 14 4.5V6h1.5A1.5 1.5 0 0 1 17 7.5v8a1.5 1.5 0 0 1-1.5 1.5h-8A1.5 1.5 0 0 1 6 15.5V14H4.5A1.5 1.5 0 0 1 3 12.5v-8A1.5 1.5 0 0 1 4.5 3zm1.5 9.5a1.5 1.5 0 0 1-1.5 1.5H7v1.5a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-8a.5.5 0 0 0-.5-.5H14zM4.5 4a.5.5 0 0 0-.5.5v8a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-8a.5.5 0 0 0-.5-.5z"></path></svg></div><div class="absolute inset-0 flex items-center justify-center"><div class="transition-all opacity-0 scale-50" style="width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="transition-all opacity-0 scale-50" aria-hidden="true" style="flex-shrink: 0;"><path d="M15.188 5.11a.5.5 0 0 1 .752.626l-.056.084-7.5 9a.5.5 0 0 1-.738.033l-3.5-3.5-.064-.078a.501.501 0 0 1 .693-.693l.078.064 3.113 3.113 7.15-8.58z"></path></svg></div></div></div></button></div></div><div class="text-text-500 font-small p-3.5 pb-0">bash</div><div class="overflow-x-auto"><pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5" style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono);"><code class="language-bash" style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono); white-space: pre;"><span><span class="token token" style="color: rgb(0, 81, 194);">stat</span><span> -c%s /sessions/</span><span class="token token" style="color: rgb(20, 24, 31);">&lt;</span><span>session</span><span class="token token" style="color: rgb(20, 24, 31);">&gt;</span><span>/mnt/repro/test.txt </span></span><span><span></span><span class="token token" style="color: rgb(110, 118, 135);"># This part might be interesting — if the bug truncates DOWN as well as UP,</span><span> </span></span><span><span></span><span class="token token" style="color: rgb(110, 118, 135);"># the file will be 2000 bytes with old X-padding still present after the new content,</span><span> </span></span><span><span></span><span class="token token" style="color: rgb(110, 118, 135);"># OR it'll be 500 bytes correctly (which would tell you the bug is one-direction only).</span></span></code></pre></div></div> <hr class="border-border-200 border-t-0.5 my-3 mx-1.5"> <h3 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold">What each step proves</h3> <div class="overflow-x-auto w-full px-2 mb-6"> Step | What it isolates -- | -- 1 | Write to new path works → the folder, mount, and permissions are fine 2–3 | Write to existing path truncates → the bug is in the overwrite path specifically 4 | Bash bypass works → the issue is in the Cowork desktop write handler, not the file system 5 | Tests whether truncation is bidirectional (just to nail down the failure mode) </div> <p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><strong>Real-world impact:</strong> Each subsequent edit a user makes on the same file is capped at whatever the file's smallest historical size was — so files only get shorter, never longer, through Cowork-side edits. That's why HTML files lose their closing tags after the first append-style edit.</p><!--EndFragment--> </body> </html>

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

No response

Claude Code Version

2.1.149 (Claude Code

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

No response

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING