You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
bug(claude): a word-wrapped [Image #N] pill makes every image prompt fail as absorption-timeout #1113
The recorded composer at that instant (trace/screen/tail-samples.jsonl, seq 21):
❯ Lets figure out why this is happening wiht opencode [Image
#1]
Root cause
imagePlaceholderCount (src/shared/claude/pasteConfirm.ts) matches /\[Image #\d+\]/ against the raw composer text. The TUI word-wraps the
composer to the pane width, and [Image #1] has exactly one internal space —
the only place a word wrap can break it. When the pill straddles the wrap
column the count never rises, pollClaudeImagesAbsorbed polls for its full 5 s,
and delivery returns absorption-timeout with retrySafe: false.
Counted over every frame in the bundle:
frames
literal match
whitespace-normalized
seq 21–23 (the failing send)
0
1
seq 51–59 (the send that worked)
1–2
1–2
Same pane, same session, same width, ten minutes apart. The only difference is
where the space fell — which is why this looks intermittent instead of broken.
The text half of the same protocol, pasteAbsorbedVia, already compares against normalizeWhitespace(screen). That is exactly why wrapped text sends never had
this problem. The image path never got the same treatment.
Blast radius
Every prompt with an attachment, on any pane narrow enough for the pill to wrap. retrySafe: false is correct given the failure (orphaned pills cannot be rolled
back), so the user has to clear the agent's composer by hand before sending again.
Activity