From fbb1e54fe6f2d82bb9939d4e0c47db9dee874f4d Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 15 Sep 2026 17:53:01 -0400 Subject: [PATCH] fix(pi): standardize on name when installing/updating --- bt-daemon/src/lib.rs | 4 ++-- bt-daemon/src/setup.rs | 26 +++++++++++--------------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/bt-daemon/src/lib.rs b/bt-daemon/src/lib.rs index 20ff3e2..90e8d99 100644 --- a/bt-daemon/src/lib.rs +++ b/bt-daemon/src/lib.rs @@ -963,7 +963,7 @@ fn managed_run_args( RunSource::Pi => { let extension = match std::env::var_os("BT_TRACE_PI_PLUGIN_SPEC") { Some(extension) => extension, - None => OsString::from(crate::setup::pi_plugin_spec()?), + None => OsString::from(crate::setup::pi_plugin_spec()), }; Ok(vec![OsString::from("-e"), extension]) } @@ -2032,7 +2032,7 @@ mod tests { managed_run_args(RunSource::Pi, &test_run_hook_command()).unwrap(), vec![ OsString::from("-e"), - OsString::from(crate::setup::pi_plugin_spec().unwrap()), + OsString::from(crate::setup::pi_plugin_spec()), ] ); } diff --git a/bt-daemon/src/setup.rs b/bt-daemon/src/setup.rs index f7c9303..6877995 100644 --- a/bt-daemon/src/setup.rs +++ b/bt-daemon/src/setup.rs @@ -22,7 +22,6 @@ const OPENCODE_PACKAGE: &str = "@braintrust/trace-opencode"; const PI_PACKAGE: &str = "@braintrust/pi-extension"; const OPENCODE_PACKAGE_MANIFEST: &str = include_str!("../../src/plugins/opencode/content/package.json"); -const PI_PACKAGE_MANIFEST: &str = include_str!("../../src/plugins/pi/content/package.json"); const ANTIGRAVITY_PLUGIN: &str = "braintrust-antigravity-tracing"; const LEGACY_CLAUDE_TRACING_ENV_KEYS: [&str; 2] = ["BRAINTRUST_CC_PROJECT", "BRAINTRUST_CC_DEBUG"]; #[cfg(unix)] @@ -53,11 +52,8 @@ fn opencode_plugin_spec() -> anyhow::Result { npm_major_spec(OPENCODE_PACKAGE, OPENCODE_PACKAGE_MANIFEST) } -pub(crate) fn pi_plugin_spec() -> anyhow::Result { - Ok(format!( - "npm:{}", - npm_major_spec(PI_PACKAGE, PI_PACKAGE_MANIFEST)? - )) +pub(crate) fn pi_plugin_spec() -> String { + format!("npm:{PI_PACKAGE}") } fn version_is_older(installed: &str, expected: &str) -> bool { @@ -139,10 +135,10 @@ fn pi_update_required() -> bool { return false; } let installed = String::from_utf8_lossy(&output.stdout); + let expected = pi_plugin_spec(); installed.lines().any(|line| { let plugin = line.trim(); - plugin.starts_with("npm:@braintrust/pi-extension") - && Some(plugin) != pi_plugin_spec().ok().as_deref() + plugin.starts_with(&expected) && plugin != expected }) } @@ -673,18 +669,18 @@ fn disable_opencode() -> anyhow::Result<()> { } fn setup_pi(runner: &mut impl CommandRunner) -> anyhow::Result<()> { - let plugin = pi_plugin_spec()?; + let plugin = pi_plugin_spec(); runner.run("pi", &["install", &plugin]) } fn disable_pi(runner: &mut impl CommandRunner) -> anyhow::Result<()> { - let plugin = pi_plugin_spec()?; + let plugin = pi_plugin_spec(); runner.run("pi", &["uninstall", &plugin]) } fn update_pi(runner: &mut impl CommandRunner) -> anyhow::Result<()> { - let package = format!("npm:{PI_PACKAGE}"); - runner.run("pi", &["update", &package]) + let plugin = pi_plugin_spec(); + runner.run("pi", &["update", &plugin]) } fn antigravity_home(config_dir: &Path) -> anyhow::Result<&Path> { @@ -1333,12 +1329,12 @@ mod tests { } #[test] - fn pi_installs_the_published_extension_range() { + fn pi_installs_the_latest_published_extension() { let mut runner = FakeRunner::new([]); setup_pi(&mut runner).unwrap(); - assert!(runner.called(&format!("pi install {}", pi_plugin_spec().unwrap()))); + assert!(runner.called("pi install npm:@braintrust/pi-extension")); } #[test] @@ -1672,7 +1668,7 @@ mod tests { let mut pi = FakeRunner::new([]); disable_pi(&mut pi).unwrap(); - assert!(pi.called(&format!("pi uninstall {}", pi_plugin_spec().unwrap()))); + assert!(pi.called("pi uninstall npm:@braintrust/pi-extension")); } #[test]