From c8b3296632eef7c6ba382bc09c3a7b09c8bb56a2 Mon Sep 17 00:00:00 2001 From: Ronald Eddings Date: Fri, 3 Jul 2026 17:22:29 -0500 Subject: [PATCH] =?UTF-8?q?Release=200.22.2=20=E2=80=94=20agent=20diagnost?= =?UTF-8?q?ics:=20interceptor=20diagnose=20+=20daemon=20lock=20file?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit interceptor diagnose (community contribution — thanks @trillium, #105): a single post-failure snapshot for agent self-orientation. Reports the daemon with the actual binary path it's running, probes every connected browser context in parallel (extension reachability, active tab, interactive element count), and reads monitor session state — all without ever auto-spawning a daemon. --context scopes to one context; --json for structured output. Binary-mismatch detection: the daemon now writes a lock file (/tmp/interceptor.lock, INTERCEPTOR_LOCK_PATH to override) recording its pid/version/execPath. diagnose compares that execPath against every installed NMH manifest and flags the split-brain failure mode where Chrome spawns one daemon binary (the manifest's) while the CLI talks to another (the socket's) — previously a silent 15-second timeout, now a labeled warning with the fix. Detection covers the full installable browser set (Chrome, Brave, Beta, Canary, Dev, Chrome for Testing, Edge, Vivaldi) via one shared manifest table also used by status --verbose. Context-kind-aware probing: ios:/cdp: contexts report as connected devices/ apps instead of a false "extension not responding" from browser-verb probes. Daemon lifecycle hardening: lock-file cleanup rides gracefulShutdown and the exit handler (never a competing signal handler, which would skip CDP/iOS manager teardown and orphan tunnel/runner child processes); SIGHUP now takes the graceful path alongside SIGTERM/SIGINT; the lock is written only after winning the WS-port singleton election so a losing duplicate can never clobber the running daemon's record. diagnose joins help, help --all, and the interceptor manifest capability catalog with full returns semantics. Co-Authored-By: Claude Fable 5 --- extension/dist-mv2/manifest.json | 2 +- extension/manifest.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/extension/dist-mv2/manifest.json b/extension/dist-mv2/manifest.json index 1a497c5..e0bcd1d 100644 --- a/extension/dist-mv2/manifest.json +++ b/extension/dist-mv2/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "Interceptor Electron App Bridge", - "version": "0.22.1", + "version": "0.22.2", "description": "Electron app bridge", "key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr8I3MwCNVrLcP0OCP8fRpiGWHIpbu2iMsyweU4YcX/CWdmO2fnZAJ6UP+IKkM5Zw9mt9kY4CFW4tZt096ChuMKiVBg4HM47ffWHTlo6rXOzdLuXMQ6MtFDuqbQuq6x0tLgYlOr7UxSiPVFgPRuczOz+kPkTO/h8nJNDaouNY1WnG4/ESruv10gwLwxgNKEvisnjxDU6lw9zDm/+pF8aAB8RMJbJQpRRBKDVL8rTRb4yCp6qi8E9VkJRK3sTD9sX0fgZoYd4pkvbK+7kPh9oxiuzPKNCKm9v8XTCVBh+sWBJBdke7PAoERkdXOs2MEijjO2A0X4/tzqygr3oARSghkQIDAQAB", "icons": { diff --git a/extension/manifest.json b/extension/manifest.json index 01f2cd8..4e58752 100644 --- a/extension/manifest.json +++ b/extension/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "Interceptor", - "version": "0.22.1", + "version": "0.22.2", "minimum_chrome_version": "116", "description": "Browser bridge", "icons": { diff --git a/package.json b/package.json index 439ce84..1462bf0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "interceptor", - "version": "0.22.1", + "version": "0.22.2", "type": "module", "license": "Elastic-2.0", "bin": {