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

dcdpr / jp / 24400078632
67%

Build:
DEFAULT BRANCH: main
Ran 14 Apr 2026 12:59PM UTC
Jobs 1
Files 280
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

14 Apr 2026 12:54PM UTC coverage: 63.653% (-1.9%) from 65.514%
24400078632

push

github

web-flow
feat(plugin): Add command plugin system (RFD 072) (#521)

Introduces the command plugin infrastructure described in RFD 072.
Command plugins are standalone binaries (`jp-<name>`) that communicate
with JP over a JSON-lines protocol on stdin/stdout. JP handles workspace
discovery, config loading, and data access; plugins request these
services over the wire, making it possible to write a plugin in any
language.

Three new subcommands are added under `jp plugin`. `jp plugin list`
shows available and installed plugins from the registry alongside any
`jp-*` binaries found on `$PATH`. `jp plugin install <name>` downloads a
plugin from the registry, verifying its SHA-256 checksum before writing
to disk. `jp plugin update` refreshes the local registry cache and
reports whether installed plugins have newer versions available.

When a user runs an unknown subcommand `jp <name>`, JP resolves the
binary through three sources: the local install directory, the plugin
registry (auto-installing official plugins on first use), and `$PATH`.
Third-party and `$PATH`-discovered plugins prompt for approval before
running unless configured otherwise. Per-plugin execution policy is
controlled via a new `plugins` config section with a `run` field that
accepts `ask` (default for third-party), `unattended` (default for
official), and `deny`. Checksum pinning via
`plugins.command.<name>.checksum.value` prevents running a binary that
has changed since it was pinned.

The new `jp_plugin` crate provides the shared protocol types used by
both the host and plugin side: message types, registry structures, and
protocol constants. The first official plugin, `jp-path`, ships as a
reference implementation. It prints well-known JP directory paths from
the host's `init` message, useful in shell scripts and automation:

    jp path user-local
    jp path workspace
    jp path user-local --plugins=command

A new `plugins.yml` CI workflow builds multi-platform binaries, uploads
them to a rolli... (continued)

147 of 1210 new or added lines in 16 files covered. (12.15%)

6 existing lines in 3 files now uncovered.

21999 of 34561 relevant lines covered (63.65%)

218.82 hits per line

Uncovered Changes

Lines Coverage ∆ File
471
10.11
crates/jp_cli/src/cmd/plugin/dispatch.rs
153
12.57
crates/jp_cli/src/cmd/plugin/registry.rs
114
0.0
crates/internal/build-registry/src/main.rs
110
0.0
crates/plugins/command/path/src/main.rs
47
0.0
crates/jp_cli/src/cmd/plugin/install.rs
41
0.0
crates/jp_cli/src/cmd/plugin/list.rs
35
0.0
crates/jp_cli/src/cmd/plugin/update.rs
35
3.41
-0.31% crates/jp_cli/src/lib.rs
25
13.79
crates/jp_config/src/plugins/command.rs
11
10.91
-0.2% crates/jp_cli/src/cmd.rs
9
81.63
crates/jp_config/src/plugins.rs
6
0.0
crates/jp_cli/src/cmd/plugin.rs
6
73.91
crates/jp_plugin/src/registry.rs

Coverage Regressions

Lines Coverage ∆ File
4
3.41
-0.31% crates/jp_cli/src/lib.rs
1
10.91
-0.2% crates/jp_cli/src/cmd.rs
1
84.29
0.34% crates/jp_config/src/lib.rs
Jobs
ID Job ID Ran Files Coverage
1 24400078632.1 14 Apr 2026 12:59PM UTC 280
63.65
GitHub Action Run
Source Files on build 24400078632
  • Tree
  • List 280
  • Changed 5
  • Source Changed 5
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24400078632
  • 24b96d17 on github
  • Prev Build on main (#24393863802)
  • Next Build on main (#24452243916)
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