oxios 0.3.0

Oxios Agent OS — Agent Operating System powered by oxi-sdk
# MCP Client Tests — Findings

## Summary

Added 15 unit tests to `/Volumes/MERCURY/PROJECTS/oxios/crates/oxios-kernel/src/mcp/client.rs`. All tests pass.

## What was done

The file `client.rs` had zero tests. A `#[cfg(test)] mod tests` block was added at the bottom of the file with tests covering structural correctness of the `McpClient` without requiring a real MCP server subprocess.

## Tests Added

| # | Test Name | What it verifies |
|---|-----------|------------------|
| 1 | `test_client_construction` | Client is created with correct server config |
| 2 | `test_client_with_timeout` | Builder pattern sets timeout correctly |
| 3 | `test_client_with_timeout_short` | Very short timeout (50ms) doesn't panic |
| 4 | `test_client_debug_format` | Debug output contains server name and struct name |
| 5 | `test_client_debug_different_servers` | Two different servers produce distinct debug output |
| 6 | `test_is_initialized_false_on_new` | New client reports `is_initialized() == false` |
| 7 | `test_is_initialized_after_failed_init` | Failed `initialize()` leaves client not initialized |
| 8 | `test_shutdown_when_not_running` | `shutdown()` succeeds gracefully without prior `initialize()` |
| 9 | `test_shutdown_idempotent` | Calling `shutdown()` twice doesn't panic |
| 10 | `test_client_server_config_passed_through` | Args, env, name, command preserved through construction |
| 11 | `test_client_server_method` | `server()` method returns reference to stored config |
| 12 | `test_server_info_none_on_new_client` | `server_info()` returns `None` before initialization |
| 13 | `test_initialize_already_initialized_skipped` | Double init doesn't panic |
| 14 | `test_client_default_timeout_is_30_seconds` | Default construction works (30s timeout implicit) |
| 15 | `test_shutdown_clears_initialized_flag` | After shutdown, `is_initialized()` is false |

## Verification

```
$ cargo check -p oxios-kernel  # ✓ Compiles clean (1 pre-existing warning)

$ cargo test -p oxios-kernel --lib mcp::client
running 15 tests
test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 426 filtered out
```

## Design Notes

- All tests are **unit tests** — they don't spawn child processes or need network access.
- Tests focus on the **structural correctness** of `McpClient`: construction, configuration, default state, idempotent operations, and graceful handling of edge cases.
- The existing tests in `mcp/mod.rs` already cover some integration-level scenarios (e.g., `test_mcp_client_non_existent_command`, `test_mcp_client_shutdown_no_panic`). The new tests in `client.rs` are complementary and more exhaustive for the client-specific API surface.
- For **functional/integration tests** requiring a real JSON-RPC echo server, the existing `#[ignore]` test `test_jsonrpc_echo_server` in `mod.rs` can be used as a starting point.