Harden MCP agent integration and tests#17
Conversation
Classify known_hosts setup failures as SSH configuration errors and make the SSH push failure regression test independent of the user's SSH environment.
Use net.JoinHostPort when probing HTTP server test listeners so go vet accepts the helper for IPv6-safe address construction.
Avoid a close-and-rebind race in the in-use port case and retry the preferred-port assertion if the OS reallocates the probed free port before the test can use it.
Prevent an ambient OPENPASS_MCP_TOKEN from changing cmd and internal/mcp test behavior. This keeps local make test deterministic while preserving tests that explicitly set OPENPASS_MCP_TOKEN with t.Setenv.
danieljustus
left a comment
There was a problem hiding this comment.
Thanks for the contribution! The security fix and test improvements look
solid. Before merging, could you update docs/hermes-safe-adoption.md to
use generic placeholder names instead of 'Janusz'? This is public
project documentation and shouldn't reference a specific person's
personal workflow.
Use generic placeholder language in the Hermes/OpenClaw adoption guide so public documentation does not reference a specific personal workflow.
Remove personal and environment-specific examples from the agent adoption guidance. Use generic password-manager, provider, project, and vault-path placeholders so the public docs are not tied to a specific user workflow.
Hah, derp... sorry about that! Also got rid of some other me-specific stuff 🤤 |
No worries, happens to the best of us! Thanks for the cleanup and the solid PR overall. Appreciated 🙌 |
Summary
This PR hardens OpenPass' MCP/agent integration and test reliability:
run_command/execute_with_secrettool output, including stdout/stderr/error paths.OPENPASS_MCP_TOKENso localmake testremains deterministic in developer/agent shells.Verification
Run locally on WSL with Go 1.26.3:
Fresh pre-PR checks:
Independent pre-PR review verdict: PASS.
Reviewer notes:
upstream/main.upstream/mainreported no conflicts.OpenPassbinary; it is not part of this PR.Caveats / scope notes
rzyns/OpenPass:maintodanieljustus/OpenPass:main.