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

dcdpr / jp / 25394478219
65%

Build:
DEFAULT BRANCH: main
Ran 05 May 2026 06:27PM UTC
Jobs 1
Files 299
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

05 May 2026 06:23PM UTC coverage: 64.676% (+0.4%) from 64.291%
25394478219

push

github

web-flow
feat(cli, render): Role-aware turn headers and unified rendering pipeline (#599)

Replace the plain `---` HR separator between turns with labeled
role-boundary headers. Every turn boundary now shows who is speaking
next: `── alice ──…` for the user (using the `author` field stamped on
the `ChatRequest`, falling back to `user`) and `── jp (anthropic/…) ──…`
for the assistant (using `assistant.name` + the resolved model id).

The new `TurnView` type (`render/turn_view.rs`) owns the chat and
structured sub-renderers and tracks per-turn assistant-header state.
Both `TurnRenderer` (replay, `jp conversation print`) and
`TurnCoordinator` (live streaming) now route their rendering through a
`TurnView`, so role attribution, content-kind transitions, and
structured-output dispatch are consistent across both flows.

On the tool-execution side, the parallel `pending_tool_calls` cache and
three-tuple `streaming_perm_results` stash are replaced by a
`PendingTools` scratchpad and a `build_execution_plan` function that
derives an ordered `ExecutionPlan` by walking the conversation stream.
`Action::ExecuteTools` no longer carries the call list — the shell
derives it from the stream, making "the stream is the source of truth"
hold at the API level rather than by convention.

Three bugs are fixed in the same pass:

- **Resume signal**: picking `Continue` while the LLM stream is still
alive mapped to `InterruptAction::Resume`, but the handler was returning
`LoopAction::Break`, dropping the live `SelectAll` and forcing a
redundant HTTP request. Now returns `LoopAction::Continue`.

- **Sparse plan indices**: when an unavailable tool appeared before an
approved tool in the same turn, the approved executor received plan
index 1 while the internal `results` Vec had length 1, causing an
index-out-of-bounds panic. Fixed by re-basing plan indices to contiguous
local positions inside `execute_with_prompting` and pairing each
response back with its original plan index on output.

... (continued)

272 of 324 new or added lines in 10 files covered. (83.95%)

4 existing lines in 4 files now uncovered.

24862 of 38441 relevant lines covered (64.68%)

214.16 hits per line

Uncovered Changes

Lines Coverage ∆ File
38
65.41
1.45% crates/jp_cli/src/cmd/query/turn_loop.rs
9
29.38
0.34% crates/jp_cli/src/cmd/query.rs
4
80.71
8.28% crates/jp_cli/src/cmd/query/turn/coordinator.rs
1
51.57
4.87% crates/jp_cli/src/cmd/query/tool/coordinator.rs

Coverage Regressions

Lines Coverage ∆ File
1
29.38
0.34% crates/jp_cli/src/cmd/query.rs
1
51.57
4.87% crates/jp_cli/src/cmd/query/tool/coordinator.rs
1
80.71
8.28% crates/jp_cli/src/cmd/query/turn/coordinator.rs
1
65.41
1.45% crates/jp_cli/src/cmd/query/turn_loop.rs
Jobs
ID Job ID Ran Files Coverage
1 25394478219.1 05 May 2026 06:27PM UTC 299
64.68
GitHub Action Run
Source Files on build 25394478219
  • Tree
  • List 299
  • Changed 10
  • Source Changed 8
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25394478219
  • a2d5a653 on github
  • Prev Build on main (#25392492630)
  • Next Build on main (#25421450629)
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