From fb5525fc2234a246dfdfc9e0d7ed73c824cbd8a6 Mon Sep 17 00:00:00 2001 From: Mark Jaquith Date: Fri, 11 Sep 2026 16:36:18 -0400 Subject: fix: opencode v2 lifecycle reporting (#3757) * fix: support opencode v2 lifecycle reporting * fix: repair Japanese docs * fix: ignore payload-less OpenCode events * fix: harden opencode v2 integration install and reporting Follow-ups on top of the V2 lifecycle support: - create `cli.json` when OpenCode has no V1 TUI preferences (`tui.json` or `kv.json`) to migrate, instead of only registering into an existing file - settle stalled socket attempts with a plain connect timer, and resend the latest lifecycle state after a failed delivery so the pane cannot get stuck - resolve the OpenCode state directory from `XDG_STATE_HOME` - remove the managed `herdr-opencode` directory on uninstall - document failed executions reporting `blocked`, keep the integration test environment independent of an inherited `XDG_STATE_HOME`, and simplify `reconcileBlockers` to reassign its map --------- Co-authored-by: Jonathan Liebig --- src/integration/actions.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/integration/actions.rs') diff --git a/src/integration/actions.rs b/src/integration/actions.rs index 24d1f9e3..e8b3ab63 100644 --- a/src/integration/actions.rs +++ b/src/integration/actions.rs @@ -144,7 +144,7 @@ fn install_target_inner(target: crate::api::schema::IntegrationTarget) -> io::Re } crate::api::schema::IntegrationTarget::Opencode => { let installed = install_opencode()?; - vec![ + let mut messages = vec![ format!( "installed opencode integration plugin to {}", installed.plugin_path.display() @@ -157,7 +157,14 @@ fn install_target_inner(target: crate::api::schema::IntegrationTarget) -> io::Re "ensured opencode tui plugin config at {}", installed.tui_config_path.display() ), - ] + ]; + if installed.cli_config_path.is_none() { + messages.push( + "to enable OpenCode V2, start opencode2 once, then reinstall this integration" + .to_string(), + ); + } + messages } crate::api::schema::IntegrationTarget::Kilo => { let installed = install_kilo()?; -- cgit v1.2.3