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

dcdpr / jp / 23995111517
67%

Build:
DEFAULT BRANCH: main
Ran 05 Apr 2026 05:35AM UTC
Jobs 1
Files 257
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 Apr 2026 05:30AM UTC coverage: 64.078% (-0.1%) from 64.188%
23995111517

push

github

web-flow
refactor(llm): Introduce typed `EventPart` (#514)

Replace `ConversationEvent` inside `Event::Part` with a purpose-built
`EventPart` enum (`Message`, `Reasoning`, `Structured`,
`ToolCall(ToolCallPart)`), implementing RFD 012. This decouples the
streaming transport layer from the persistence layer.

Previously, every streaming chunk allocated a full `ConversationEvent`
with a timestamp and metadata map, even though most of the type went
unused during streaming. The `EventBuilder` also had to silently ignore
five `EventKind` variants (`ChatRequest`, `TurnStart`, etc.) that are
invalid in a streaming context.

`EventBuilder` moves from `jp_conversation` into `jp_llm`, where it
belongs — translating streaming `EventPart`s into persistence
`ConversationEvent`s on `Flush`. Its `handle_part` signature changes to
`(usize, EventPart, Map<String, Value>)`. The persistence layer
(`ConversationEvent`, `ConversationStream`) is unchanged.

`ToolCallRequestAggregator` is removed. Providers now emit
`ToolCallPart::Start { id, name }` when a tool call begins, and
`ToolCallPart::ArgumentChunk(json)` for each argument delta. The
`EventBuilder` accumulates these into a complete `ToolCallRequest` on
`Flush`. `AggregationError` is removed from the public `jp_llm` API.

Factory methods on `Event` (`message`, `reasoning`, `structured`,
`tool_call_start`, `tool_call_args`) reduce construction boilerplate
across all providers and tests. Flush metadata is changed from
`IndexMap<String, Value>` to `Map<String, Value>` for consistency.

RFD 012 is marked as Implemented.

---------

Signed-off-by: Jean Mertz <git@jeanmertz.com>

305 of 373 new or added lines in 15 files covered. (81.77%)

23 existing lines in 5 files now uncovered.

19827 of 30942 relevant lines covered (64.08%)

142.04 hits per line

Uncovered Changes

Lines Coverage ∆ File
12
79.55
27.93% crates/jp_llm/src/event.rs
12
82.32
crates/jp_llm/src/event_builder.rs
6
5.47
-0.22% crates/jp_cli/src/cmd/conversation/edit.rs
6
89.52
1.32% crates/jp_llm/src/provider/llamacpp.rs
6
72.73
-0.44% crates/jp_llm/src/provider/mock.rs
6
0.0
0.0% crates/jp_task/src/task/title_generator.rs
5
73.08
-0.89% crates/jp_cli/src/cmd/query/turn/coordinator.rs
5
85.33
-1.14% crates/jp_llm/src/provider/anthropic.rs
5
0.0
0.0% crates/jp_llm/src/stream/chain.rs
2
86.21
-0.28% crates/jp_llm/src/provider/google.rs
2
84.73
0.71% crates/jp_llm/src/test.rs
1
81.04
-0.48% crates/jp_llm/src/provider/ollama.rs

Coverage Regressions

Lines Coverage ∆ File
12
61.97
-5.63% crates/jp_conversation/src/event.rs
7
85.33
-1.14% crates/jp_llm/src/provider/anthropic.rs
2
86.21
-0.28% crates/jp_llm/src/provider/google.rs
1
89.52
1.32% crates/jp_llm/src/provider/llamacpp.rs
1
0.0
0.0% crates/jp_llm/src/stream/chain.rs
Jobs
ID Job ID Ran Files Coverage
1 23995111517.1 05 Apr 2026 05:35AM UTC 257
64.08
GitHub Action Run
Source Files on build 23995111517
  • Tree
  • List 257
  • Changed 20
  • Source Changed 19
  • Coverage Changed 19
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #23995111517
  • 0af019aa on github
  • Prev Build on main (#23977385715)
  • Next Build on main (#23997650460)
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