Skip to content

fix(composer): normalize Claude NBSP padding in the shared verdict - #2092

Closed
haroarthur wants to merge 3 commits into
kunchenguid:mainfrom
haroarthur:fm/contribute-composer-nbsp-upstream
Closed

haroarthur wants to merge 3 commits into
kunchenguid:mainfrom
haroarthur:fm/contribute-composer-nbsp-upstream

Conversation

@haroarthur

@haroarthur haroarthur commented Aug 10, 2026 •

Copy link
Copy Markdown
Contributor

Intent

This contribution consolidates, rather than supersedes, #2029. Claude renders its empty composer as ❯ followed by U+00A0. POSIX [:space:] does not trim that byte, so the shared composer classifier can misread an idle composer as pending on tmux, Herdr, Orca, and bordered cmux. Normalize only the observed U+00A0 at the shared verdict boundary, preserving real-text and dead-shell verdicts.

The false pending verdict caused a measured 10h31m away-mode wedge. The incident chronology belongs here rather than in regression-test comments.

What Changed

  • Normalize U+00A0 in both content and plain_content before the existing trim.
  • Preserve Kun's cmux U+00A0 special case from fix(cmux): classify borderless Claude composers #2029 unchanged.
  • Add focused LC_ALL=C regressions for idle NBSP padding, a real draft after the pad, isolated ZWJ content, plain-content fallback, dead-shell safety, and one Herdr incident fixture.
  • Avoid whole-Zs folding, zero-width deletion, arrays, global scratch state, and new public wrappers.

Validation

Raised through no-mistakes (cross-fork). The change and its focused regression tests are clean. The mandatory checks - the full test suite and the pinned ShellCheck 0.11.0 lint - run on this repository's CI and are the authoritative gate. They have not executed yet: the workflow is pending maintainer approval. The required checks are therefore not yet green; they run once approved. (Correcting an earlier draft that implied full validation had completed - it had not.)

Pipeline

Updates from git push no-mistakes

@haroarthur haroarthur changed the title fix(composer): recognize NBSP-padded Claude prompts as idle fix(composer): normalize Claude NBSP padding in the shared verdict Aug 10, 2026
@haroarthur
haroarthur force-pushed the fm/contribute-composer-nbsp-upstream branch from b5d494d to d1dc339 Compare August 11, 2026 02:02
@haroarthur

Copy link
Copy Markdown
Contributor Author

Closing as superseded by #2102, which is merged and fully fixes the ❯ + U+00A0 idle-composer misclassification (normalizing all Unicode whitespace before the shared verdict, with a cross-backend matrix test). This branch is now based on #2102's merge commit and no longer carries the fix. Thanks!

@haroarthur haroarthur closed this Aug 11, 2026
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