• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

umputun / fya
86%
master: 86%

Build:
Build:
LAST BUILD BRANCH: fix/transcript-select-prefix-match
DEFAULT BRANCH: master
Repo Added 24 May 2026 06:11PM UTC
Files 14
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH fix/bracketed-paste-injection
branch: fix/bracketed-paste-injection
CHANGE BRANCH
x
Reset
  • fix/bracketed-paste-injection
  • dependabot/github_actions/actions/checkout-7
  • feature/max-wpm-size-paste
  • fix/claude-tui-readiness
  • fix/fya-turn-completion
  • fix/gate-completion
  • fix/multiline-bracketed-paste
  • fix/stream-json-ralphex
  • fix/strip-undeliverable-control-chars
  • fix/transcript-select-prefix-match
  • fix/transient-timeout-marker
  • master
  • no-activity-timeout
  • refs/tags/v0.1.0
  • refs/tags/v0.1.1
  • refs/tags/v0.2.0
  • refs/tags/v0.2.1
  • refs/tags/v0.2.2
  • refs/tags/v0.2.3
  • refs/tags/v0.2.4
  • refs/tags/v0.2.5
  • refs/tags/v0.3.0
  • refs/tags/v0.3.1
  • refs/tags/v0.3.2
  • refs/tags/v0.3.3
  • refs/tags/v0.3.4
  • refs/tags/v0.3.5
  • resume-support
  • structured-output-schema-envelope
  • sync-subagents
  • trim-stream-trailing-colons

01 Jun 2026 04:57PM UTC coverage: 85.785%. Remained the same
26769479590

Pull #4

github

Rishi Khan
fix: use bracketed paste to inject multi-line paste-mode prompts as one message

In paste mode the injector replaced each internal newline with ESC+CR
(\x1b\r, Meta+Enter) to keep a multi-line prompt as a single Claude
message:

    body := strings.ReplaceAll(prompt, "\n", newlineWithoutSubmit)

Claude's TUI intermittently parses the ESC standalone and the following
CR as a submit, splitting one prompt into several message submissions.
This is reliably triggerable with large multi-line prompts, which exceed
the --max-wpm-size word threshold and therefore always go through paste
mode. When the prompt fragments, the turn never reaches a clean end_turn,
so a streaming consumer waiting on the terminal event stalls until its
own wall-clock timeout instead of completing.

Wrap the paste body in bracketed-paste markers (\x1b[200~ … \x1b[201~)
so the terminal/TUI buffers the entire block — embedded LF newlines
included — as one literal paste, then submit with a single trailing CR.
Embedded newlines can no longer be misread as submits regardless of TUI
timing.

Scope is paste mode only. Typed (rune-by-rune) mode still emits ESC+CR
for internal newlines; the fragmentation was not reproducible there, so
that path is left unchanged. Tests, the input newline-normalizer comment,
and ARCHITECTURE.md are updated to match.
Pull Request #4: fix: use bracketed paste to inject multi-line paste-mode prompts as one message

1 of 1 new or added line in 1 file covered. (100.0%)

1388 of 1618 relevant lines covered (85.78%)

13.85 hits per line

Relevant lines Covered
Build:
Build:
1618 RELEVANT LINES 1388 COVERED LINES
13.85 HITS PER LINE
Source Files on fix/bracketed-paste-injection
  • Tree
  • List 13
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
26769479590 fix/bracketed-paste-injection fix: use bracketed paste to inject multi-line paste-mode prompts as one message In paste mode the injector replaced each internal newline with ESC+CR (\x1b\r, Meta+Enter) to keep a multi-line prompt as a single Claude message: body := string... Pull #4 02 Jun 2026 07:05AM UTC Rishi Khan github
85.78
See All Builds (96)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc