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

dcdpr / jp / 23997650460
67%

Build:
DEFAULT BRANCH: main
Ran 05 Apr 2026 08:25AM 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 08:21AM UTC coverage: 63.999% (-0.08%) from 64.078%
23997650460

push

github

web-flow
refactor(storage, conversation): Store base config separately (#515)

Previously, `events.json` packed the conversation's base config as a
synthetic first element — a `ConfigDelta` containing the full
`AppConfig`. This made the file difficult to inspect: opening it in an
editor meant scrolling past hundreds of lines of config JSON before
reaching actual conversation events.

The base config is now stored in a separate `base_config.json` file,
written once at conversation creation time and never overwritten.
`events.json` contains only `InternalEvent` entries (config deltas and
conversation events), with no synthetic leading element.

The custom `Serialize`/`Deserialize` impls on `ConversationStream` are
removed in favour of explicit `from_parts`/`to_parts` methods used by
the storage layer. `InternalEvent` is demoted from `pub` to `pub(crate)`
since nothing outside `jp_conversation` references it.

The `compat` module's `deserialize_config_delta` is renamed to
`deserialize_partial_config` and now operates directly on
`PartialAppConfig`. A new `deserialize_config_delta` in `stream.rs`
delegates to it for the timestamp + delta extraction pattern used when
deserializing individual `ConfigDelta` stream events.

Backward compatibility is handled transparently in the load path: if
`base_config.json` is absent, the loader falls back to extracting the
base config from the first element of `events.json`. On the next
persist, `base_config.json` is written and `events.json` is rewritten
without the leading config entry.

Implements RFD 054.

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

82 of 126 new or added lines in 6 files covered. (65.08%)

15 existing lines in 3 files now uncovered.

19843 of 31005 relevant lines covered (64.0%)

201.48 hits per line

Uncovered Changes

Lines Coverage ∆ File
22
76.64
-1.83% crates/jp_conversation/src/stream.rs
18
47.97
-10.03% crates/jp_storage/src/load.rs
4
91.18
-3.33% crates/jp_storage/src/validate.rs

Coverage Regressions

Lines Coverage ∆ File
8
47.97
-10.03% crates/jp_storage/src/load.rs
4
72.9
-0.43% crates/jp_storage/src/lib.rs
3
76.64
-1.83% crates/jp_conversation/src/stream.rs
Jobs
ID Job ID Ran Files Coverage
1 23997650460.1 05 Apr 2026 08:25AM UTC 257
64.0
GitHub Action Run
Source Files on build 23997650460
  • Tree
  • List 257
  • Changed 6
  • Source Changed 6
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #23997650460
  • 05ea9e7f on github
  • Prev Build on main (#23995111517)
  • Next Build on main (#24001655073)
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