Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
16c4b41
feat(mcp): centralize typed tool catalog
Lauritz-Timm Aug 7, 2026
2e2493d
feat(mcp): model supported protocol revisions
Lauritz-Timm Aug 6, 2026
a0ddfd1
feat(mcp): add revision-aware core service
Lauritz-Timm Aug 7, 2026
6f3ee55
fix(mcp): preserve legacy tool dispatch
Lauritz-Timm Aug 9, 2026
b4a5789
refactor(mcp): split tool registry handlers and tests
Lauritz-Timm Aug 12, 2026
7a68b4b
feat(store): add bounded exact topic reads
Lauritz-Timm Aug 7, 2026
e11e478
feat(mcp): expose bounded project context
Lauritz-Timm Aug 7, 2026
8b645da
test(mcp): cover project resource boundaries
Lauritz-Timm Aug 9, 2026
6c0af3e
feat(http): expose secure MCP on warm service
Lauritz-Timm Aug 7, 2026
f62bee3
feat(proxy): bridge stdio MCP to shared HTTP service
Lauritz-Timm Aug 7, 2026
32ff28a
docs(proxy): explain shared daemon tradeoffs
Lauritz-Timm Aug 7, 2026
abd84ec
fix(proxy): harden sessions and shutdown
Lauritz-Timm Aug 9, 2026
bf61c1b
test(proxy): accept typed sibling projection
Lauritz-Timm Aug 9, 2026
a1ad190
fix(proxy): recover stale MCP sessions
Lauritz-Timm Aug 9, 2026
9f7b04a
refactor(mcp): consolidate tool registration macro arms
Lauritz-Timm Aug 12, 2026
93a44d2
refactor(mcp): share capped line framing with HTTP proxy
Lauritz-Timm Aug 12, 2026
936c7a4
fix(proxy): remove obsolete framing import
Lauritz-Timm Aug 12, 2026
8b08e32
refactor(mcp): integrate typed outputs and shared handler policies
Lauritz-Timm Aug 12, 2026
90a56e1
refactor(mcp): unify HTTP and MCP memory semantics
Lauritz-Timm Aug 12, 2026
226ba3d
refactor(mcp): integrate evaluator into workspace
Lauritz-Timm Aug 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,21 @@ jobs:
- uses: Swatinem/rust-cache@v2
- run: cargo test --workspace

# Keep the frozen evaluator's contracts and executable scenario inventory
# checked independently of a candidate acceptance run. Provider scenarios
# remain in the separate candidate acceptance lane because this gate does
# not invoke a candidate or use host state/network services.
mcp-eval-contracts:
name: MCP evaluator contracts
needs: clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo test --locked -p icm-mcp-eval --no-fail-fast
- run: cargo run --locked -p icm-mcp-eval -- verify-design --suite-root crates/icm-mcp-eval

# Validates the fully-static musl binary shipped for old-glibc distros
# (issue #330: the glibc binaries need symbols newer than Debian Bookworm's
# glibc 2.36). Embeddings are dropped because `ort`/onnxruntime ships only
Expand Down
6 changes: 6 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ Créer une mémoire long-terme intelligente qui:

## Structure du workspace

> Note de maintenance : le workspace actuel comprend `crates/icm-core`,
> `crates/icm-store`, `crates/icm-mcp`, `crates/icm-cli`, et le harness de
> développement `crates/icm-mcp-eval`. Ce dernier contient les contrats MCP
> gelés et le runner hermétique ; voir son [README](crates/icm-mcp-eval/README.md).
> Les phases et chemins historiques ci-dessous décrivent l'ancien prototype.

```
icm/
├── Cargo.toml (workspace)
Expand Down
24 changes: 24 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,30 @@ cargo fmt --all --check && cargo clippy --workspace --all-targets -- -D warnings

---

## MCP evaluator changes

Changes to MCP behavior should be exercised through the workspace evaluator
when applicable. Keep synthetic fixtures, frozen contracts/goldens,
normalization, metrics, and isolation assertions in `crates/icm-mcp-eval`;
do not reimplement production protocol, framing, dispatch, or schemas there.
Ordinary MCP scenarios use the production `icm-mcp` service in-process, while
CLI, provider, proxy, HTTP, transport-edge, and process-isolation scenarios
must remain candidate-process tests.

Before opening a PR that changes the evaluator or MCP service, run:

```bash
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --locked --offline -p icm-mcp-eval
cargo run -p icm-mcp-eval --locked --offline -- verify-design \
--suite-root crates/icm-mcp-eval
```

Use a dedicated non-Git workspace for the two-root self-test. Never use real
user state, credentials, provider configuration, network services, or a fixed
port. See the evaluator README for candidate build and staging instructions.

## Questions?

- **Bug reports & features**: [Issues](../../issues)
Expand Down
Loading
Loading