Skip to content

Improve DX via Makefile additions and fixes#20

Merged
corv89 merged 10 commits intomainfrom
dev
Oct 25, 2025
Merged

Improve DX via Makefile additions and fixes#20
corv89 merged 10 commits intomainfrom
dev

Conversation

@corv89
Copy link
Copy Markdown
Owner

@corv89 corv89 commented Oct 25, 2025

No description provided.

- Add executor-aware tool names/descriptions in mcp_server.py
  - Tool names now include executor label (e.g., sandbox_prod_minimal)
  - Descriptions include remote host information
- Pass SSH agent env vars when generating Claude config in cli.py
  - MCP install now passes SSH_AUTH_SOCK and SSH_AGENT_PID to server
- Update docs and tests to reflect single-tool-per-profile model
  - MCP server exposes one generic command tool per profile
  - Tests verify executor label integration and tool naming
- Extend SSHExecutor and config models with known_hosts / strict_host_key
  - Add known_hosts and strict_host_key fields to SSHExecutorConfig
  - Implement host key validation in SSHExecutor
  - Default strict_host_key=True for security
- Persist new options in TOML I/O and guard executor creation
  - Config save/load handles known_hosts and strict_host_key
  - Path expansion for known_hosts file
- Cover host-key behavior in docs and unit tests
  - Document host key verification in configuration.md
  - Add tests for config round-trip with host key settings
  - Add SSH executor tests for host key validation
- Promote pydantic>=2 to a core dependency in pyproject.toml
  - Move pydantic from optional to required dependencies
  - Ensures config models always available
- Fold asyncssh into the mcp extra
  - asyncssh now part of [mcp] optional dependencies
  - Remote execution requires [mcp] or [remote] extra
- Update lockfile and formatting fixes
  - Regenerate uv.lock with new dependencies
  - Fix trailing whitespace in docs
- Add type ignore comments for dynamic module attribute assignments
- Add type annotation for _SimpleType __init__ kwargs parameter
- Suppress attr-defined errors for mcp module monkeypatching
- Add noqa comments for E402 (module imports after setup code)

Resolves remaining 12 basedpyright errors from CI.
- Add pytest.importorskip for optional dependencies (mcp, pydantic)
- Add complete dummy MCP server stubs (InitializationOptions, ServerCapabilities, stdio_server)
- Fix mock fixtures to include executor=None attribute
- Add _tool_cache to dummy server
- Skip tests requiring real MCP server when using mocks
- Add noqa comments for E402 (imports after pytest.importorskip)

All tests now pass: 97 passed, 48 skipped
Replace static skipif decorators with runtime skip checks.
Tests now skip if _tool_cache is empty (dummy server) rather than
trying to detect if real MCP SDK is installed.

This fixes failures in CI where real MCP is installed but the
mocks still result in empty tool cache.
@corv89 corv89 self-assigned this Oct 25, 2025
@corv89 corv89 added the enhancement New feature or request label Oct 25, 2025
@codecov-commenter
Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@corv89 corv89 merged commit a8611ed into main Oct 25, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants