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

dcdpr / jp / 24453328630
67%

Build:
DEFAULT BRANCH: main
Ran 15 Apr 2026 12:07PM UTC
Jobs 1
Files 281
Run time 1min
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

15 Apr 2026 12:01PM UTC coverage: 63.811% (+0.4%) from 63.389%
24453328630

push

github

web-flow
feat(md, cli): Fix streaming rendering and LLM output quirks (#553)

Several rendering correctness issues have been fixed together, as they
share the same underlying infrastructure in `jp_md`.

**Nested fenced code blocks**: The `Buffer` parser now tracks a `depth`
counter inside `InFencedCode`. When the LLM emits an inner fence opening
(backticks + language tag), depth increments and the line is emitted as
code content. A bare closing fence only closes the outer block when
depth reaches zero. This prevents inner fences from prematurely
terminating the outer code block.

**List streaming**: Lists were previously buffered in their entirety
until a blank line appeared, causing the stream to stall for the full
duration of list generation. The `Buffer` now flushes at each new
top-level item boundary, so individual list items appear as they arrive
from the LLM.

**Event fixups pipeline**: A new `EventFixup` trait and `FixupChain` sit
between the `Buffer` iterator and the `ChatRenderer`. Two fixups are
registered by default:

- `OrphanedFenceFixup`: detects when an LLM embeds backticks mid-line
(e.g. `text:```lang`) and converts the stray bare closing fence that
follows into a `Block` instead of a code block.
- `FenceEscalationFixup`: rewrites `FencedCodeStart`/`FencedCodeEnd`
events to use at least 5 backticks, so 3-backtick inner fences in the
output render as literal text rather than real fences.

**Streaming code block API**: `Formatter` now exposes `begin_code_block`
→ `CodeBlockState`, `render_code_line`, `render_code_fence`, and
`render_closing_fence`. The internal `SavedHighlightState`,
`CodeHighlighter`, and their methods are now private. `ChatRenderer` and
`ToolRenderer` are updated to use this API.

**Background bleeding fixes**: Inline code background no longer bleeds
to the terminal edge on line-fill (`\x1b[K`). The default background is
now re-asserted before each erase-to-EOL. Syntax- highlighted code
blocks written via `write_raw` now inheri... (continued)

297 of 321 new or added lines in 9 files covered. (92.52%)

22328 of 34991 relevant lines covered (63.81%)

247.05 hits per line

Uncovered Changes

Lines Coverage ∆ File
9
84.05
2.47% crates/jp_md/src/format.rs
8
88.41
crates/jp_md/src/buffer/fixup.rs
2
96.19
2.64% crates/jp_cli/src/render/chat.rs
2
79.89
-0.06% crates/jp_cli/src/render/tool.rs
2
87.83
1.02% crates/jp_md/src/writer.rs
1
96.98
0.68% crates/jp_md/src/buffer.rs
Jobs
ID Job ID Ran Files Coverage
1 24453328630.1 15 Apr 2026 12:07PM UTC 281
63.81
GitHub Action Run
Source Files on build 24453328630
  • Tree
  • List 281
  • Changed 10
  • Source Changed 9
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24453328630
  • 50448518 on github
  • Prev Build on main (#24452243916)
  • Next Build on main (#24466868242)
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