Repository navigation
Tags
Tags
feat(cache): JSON-file tool cache when ChronDB is unavailable
ChronDB has no prebuilt library for some platforms (Windows:
`SetupFailed("No pre-built library available for this platform")`). The pool
then comes up disabled and the proxy silently loses its persistent tool cache:
every restart blocks the first tools/list on full discovery of all backends,
and lazy start/idle shutdown cannot serve tools without spawning everything.
`ToolCacheStore::with_file_fallback()` keeps one `<backend>.json` per backend
under `<config dir>/tool-cache/` when the database is unavailable. It is a
no-op when ChronDB works, and only `mcp serve` (stdio + HTTP) and `mcp reload`
opt in, so tests and CLI paths keep using the plain store. Same semantics as
the DB path: config-hash invalidation via `load_valid_backends`, delete on
reload eviction, listing for stale-entry cleanup. Writes go to a temp file and
are renamed so a crash never leaves a torn entry; backend names are reduced to
one safe path component.
Tests: round trip + stale hash rejected + delete; names cannot escape the dir.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix: clear clippy 1.99 double_must_use async-trait 0.1.91 stamps #[must_use] with no message onto every async trait method. Clippy 1.99 treats that as double_must_use because the pinned boxed future is already must_use, and CI on stable has been red since a9ebe8f. 0.1.92 stops emitting the attribute. The future stays must_use through its type, which is the fix the lint asks for. Workflow actions are pinned to full commit SHAs. rust-toolchain is the v1 commit on master, with toolchain: stable passed explicitly, because a SHA pin does not select the stable channel the way @stable did. Publish still uses CARGO_REGISTRY_TOKEN the same way. Dependabot checks github-actions and cargo weekly, each in one group. Signed-off-by: Avelino <31996+avelino@users.noreply.github.com>
how it work in mermaid Signed-off-by: Avelino <31996+avelino@users.noreply.github.com>
Add 'mcp-session-id' to headers list Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: Avelino <31996+avelino@users.noreply.github.com>
feat: add --only and --exclude to narrow the served catalog A proxy that publishes every backend is right for a human at a terminal and wrong for a model. Each tool costs context, and past a few hundred the client starts hiding tools behind a lookup step, so one answer becomes several round trips. An agent that only needs roam and github should not pay for the rest. Both flags take comma-separated server names on mcp serve. `--only` runs first, then `--exclude`. An unknown name gets logged as a warning instead of being dropped quietly, because a typo would serve a catalog missing a whole backend and that failure reads as "the model stopped using that tool". Version goes to 0.6.2. Signed-off-by: Avelino <31996+avelino@users.noreply.github.com>
pkg: upgrade deps Signed-off-by: Avelino <31996+avelino@users.noreply.github.com>
PreviousNext