From 59337a9f9f5bc6b4552de8a79ede54a1ee55f236 Mon Sep 17 00:00:00 2001 From: Mohammad Rajabi Date: Tue, 29 Sep 2026 17:13:33 +0330 Subject: [PATCH] hermes: release authorization and recovery fixes as 0.0.21 --- bun.lock | 2 +- plugins/hermes-agent/README.md | 2 +- plugins/hermes-agent/RELEASE.md | 2 +- plugins/hermes-agent/package.json | 2 +- plugins/hermes-agent/plugin/inline/cli.py | 2 +- .../hermes-agent/plugin/inline/plugin.yaml | 2 +- .../hermes-agent/tests/adapter-python.test.ts | 20 +++++++++---------- plugins/hermes-agent/tests/install.test.ts | 6 +++--- .../tests/package-artifact.test.ts | 2 +- 9 files changed, 20 insertions(+), 20 deletions(-) diff --git a/bun.lock b/bun.lock index d79230e07..1b8d95d05 100644 --- a/bun.lock +++ b/bun.lock @@ -226,7 +226,7 @@ }, "plugins/hermes-agent": { "name": "@inline-chat/hermes-agent-adapter", - "version": "0.0.20", + "version": "0.0.21", "bin": { "inline-hermes": "dist/install.js", }, diff --git a/plugins/hermes-agent/README.md b/plugins/hermes-agent/README.md index 73165a7e9..8b28bce63 100644 --- a/plugins/hermes-agent/README.md +++ b/plugins/hermes-agent/README.md @@ -156,7 +156,7 @@ uv run ./hermes plugins list --plain --no-bundled Expected local output includes: ```text -enabled user 0.0.20 inline-platform +enabled user 0.0.21 inline-platform ``` ## Update Or Reinstall diff --git a/plugins/hermes-agent/RELEASE.md b/plugins/hermes-agent/RELEASE.md index 75feaba76..634dae6c9 100644 --- a/plugins/hermes-agent/RELEASE.md +++ b/plugins/hermes-agent/RELEASE.md @@ -130,7 +130,7 @@ the trusted-publishing workflow through the repository wrapper: ```sh cd .. -bun run release:npm hermes-agent --version 0.0.20 --tag latest +bun run release:npm hermes-agent --version 0.0.21 --tag latest npm view @inline-chat/hermes-agent-adapter version npm view @inline-chat/hermes-agent-adapter dist-tags --json ``` diff --git a/plugins/hermes-agent/package.json b/plugins/hermes-agent/package.json index 2714cc4ac..ad9e34e20 100644 --- a/plugins/hermes-agent/package.json +++ b/plugins/hermes-agent/package.json @@ -1,6 +1,6 @@ { "name": "@inline-chat/hermes-agent-adapter", - "version": "0.0.20", + "version": "0.0.21", "description": "Hermes Agent platform adapter for Inline, with a native Python plugin and bundled Inline realtime sidecar.", "license": "Apache-2.0", "type": "module", diff --git a/plugins/hermes-agent/plugin/inline/cli.py b/plugins/hermes-agent/plugin/inline/cli.py index ffef0a1d1..232c0dca5 100644 --- a/plugins/hermes-agent/plugin/inline/cli.py +++ b/plugins/hermes-agent/plugin/inline/cli.py @@ -27,7 +27,7 @@ _MAX_TOKEN_BYTES = 16 * 1024 _MAX_PROBE_RESPONSE_BYTES = 64 * 1024 _MACHINE_SETUP_PROTOCOL_VERSION = 1 -_PROBE_USER_AGENT = "inline-hermes-agent-adapter/0.0.20" +_PROBE_USER_AGENT = "inline-hermes-agent-adapter/0.0.21" _ENV_REFERENCE_RE = re.compile(r"^\$\{([A-Za-z_][A-Za-z0-9_]*)\}$") diff --git a/plugins/hermes-agent/plugin/inline/plugin.yaml b/plugins/hermes-agent/plugin/inline/plugin.yaml index d323489c5..22ac81800 100644 --- a/plugins/hermes-agent/plugin/inline/plugin.yaml +++ b/plugins/hermes-agent/plugin/inline/plugin.yaml @@ -3,7 +3,7 @@ label: Inline kind: platform provides_tools: - inline -version: 0.0.20 +version: 0.0.21 requires_hermes: ">=0.21.3" description: > Inline platform adapter for Hermes Agent. The adapter runs as a native diff --git a/plugins/hermes-agent/tests/adapter-python.test.ts b/plugins/hermes-agent/tests/adapter-python.test.ts index 0975c7a9e..35ac3e988 100644 --- a/plugins/hermes-agent/tests/adapter-python.test.ts +++ b/plugins/hermes-agent/tests/adapter-python.test.ts @@ -420,7 +420,7 @@ version_text = _inline_version_text({ "skills": {"state": "synced", "count": 2}, }) assert "Inline Hermes plugin" in version_text -assert "Plugin version: 0.0.20" in version_text +assert "Plugin version: 0.0.21" in version_text assert "Hermes version: 0.18.2" in version_text assert "Installed or updated at:" in version_text assert "commands 10 published" in version_text @@ -435,7 +435,7 @@ with tempfile.TemporaryDirectory(prefix="inline-hermes-catalog-metadata-") as tm legacy_dir.mkdir(parents=True) catalog_dir.mkdir(parents=True) (legacy_dir / "plugin.yaml").write_text("version: 0.0.1\n", encoding="utf-8") - (catalog_dir / "plugin.yaml").write_text("version: 0.0.20\n", encoding="utf-8") + (catalog_dir / "plugin.yaml").write_text("version: 0.0.21\n", encoding="utf-8") saved_adapter_file = inline_adapter_module.__file__ saved_cli_file = inline_cli.__file__ saved_catalog_home = os.environ.get("HERMES_HOME") @@ -444,13 +444,13 @@ with tempfile.TemporaryDirectory(prefix="inline-hermes-catalog-metadata-") as tm inline_adapter_module.__file__ = str(catalog_dir / "adapter.py") inline_cli.__file__ = str(catalog_dir / "cli.py") os.environ["HERMES_HOME"] = str(catalog_home) - assert inline_adapter_module._installed_inline_plugin_version() == "0.0.20" - assert inline_cli._plugin_version() == "0.0.20" + assert inline_adapter_module._installed_inline_plugin_version() == "0.0.21" + assert inline_cli._plugin_version() == "0.0.21" # Distinct directory timestamps ensure the test catches the legacy path. Path.lstat = lambda self: types.SimpleNamespace(st_ctime=100 if self == catalog_dir else 200) assert inline_adapter_module._inline_install_timestamp() == "1970-01-01T00:01:40Z" catalog_text = _inline_version_text() - assert "Plugin version: 0.0.20" in catalog_text + assert "Plugin version: 0.0.21" in catalog_text assert "1970-01-01T00:01:40Z" in catalog_text assert "Plugin version: 0.0.1\n" not in catalog_text finally: @@ -1223,7 +1223,7 @@ assert json.loads(machine_output) == { "ok": True, "action": "inline.setup", "setupProtocolVersion": 1, - "pluginVersion": "0.0.20", + "pluginVersion": "0.0.21", "configured": True, "access": "allowlist", "ownerUserId": "42", @@ -1273,7 +1273,7 @@ probe_output = probe_stdout.getvalue() assert machine_token not in probe_output probe_payload = json.loads(probe_output) assert probe_payload["setupProtocolVersion"] == 1 -assert probe_payload["pluginVersion"] == "0.0.20" +assert probe_payload["pluginVersion"] == "0.0.21" assert probe_payload["ready"] is True assert probe_payload["runtimeUsable"] is True assert probe_payload["node"]["ok"] is True @@ -1288,7 +1288,7 @@ credential_request = probe_requests[0] assert credential_request.full_url == "https://api.inline.chat/v1/getMe" assert credential_request.get_method() == "GET" assert credential_request.get_header("Authorization") == f"Bearer {machine_token}" -assert credential_request.get_header("User-agent") == "inline-hermes-agent-adapter/0.0.20" +assert credential_request.get_header("User-agent") == "inline-hermes-agent-adapter/0.0.21" assert all(call[0][-2:] != ["auth", "me"] for call in probe_calls) setup_saved_env.clear() @@ -1321,7 +1321,7 @@ assert config_probe_payload["probe"]["ok"] is True assert len(config_probe_requests) == 1 assert config_probe_requests[0].full_url == "https://inline.example/v1/getMe" assert config_probe_requests[0].get_header("Authorization") == "Bearer yaml-config-secret" -assert config_probe_requests[0].get_header("User-agent") == "inline-hermes-agent-adapter/0.0.20" +assert config_probe_requests[0].get_header("User-agent") == "inline-hermes-agent-adapter/0.0.21" assert "yaml-config-secret" not in config_probe_stdout.getvalue() setup_saved_env.clear() @@ -1702,7 +1702,7 @@ async def assert_bot_command_sync(): thread_id=None, ) assert handled is True - assert "Plugin version: 0.0.20" in sent[-1][1] + assert "Plugin version: 0.0.21" in sent[-1][1] assert "Last catalog sync:" in sent[-1][1] fallback = InlineAdapter(PlatformConfig(extra={**base_extra, "token": "path token"})) diff --git a/plugins/hermes-agent/tests/install.test.ts b/plugins/hermes-agent/tests/install.test.ts index 0a60ab214..6118d0053 100644 --- a/plugins/hermes-agent/tests/install.test.ts +++ b/plugins/hermes-agent/tests/install.test.ts @@ -69,9 +69,9 @@ describe("inline-hermes installer", () => { const versions = log.mock.calls.map((call) => String(call[0])) expect(versions).toEqual([ - "@inline-chat/hermes-agent-adapter@0.0.20", - "@inline-chat/hermes-agent-adapter@0.0.20", - "@inline-chat/hermes-agent-adapter@0.0.20", + "@inline-chat/hermes-agent-adapter@0.0.21", + "@inline-chat/hermes-agent-adapter@0.0.21", + "@inline-chat/hermes-agent-adapter@0.0.21", ]) }) diff --git a/plugins/hermes-agent/tests/package-artifact.test.ts b/plugins/hermes-agent/tests/package-artifact.test.ts index 3c32d7ed1..28e74f891 100644 --- a/plugins/hermes-agent/tests/package-artifact.test.ts +++ b/plugins/hermes-agent/tests/package-artifact.test.ts @@ -195,7 +195,7 @@ describe("packed artifact", () => { encoding: "utf8", stdio: ["ignore", "pipe", "pipe"], }).trim() - expect(version).toBe("@inline-chat/hermes-agent-adapter@0.0.20") + expect(version).toBe("@inline-chat/hermes-agent-adapter@0.0.21") const install = execFileSync(bin, ["install", "--hermes-home", hermesHome, "--force", "--json"], { cwd: packageRoot,