Skip to content

Conversation

@imbenrabi
Copy link
Contributor

PR Summary: Bug Fixes and Improvements
🐛 Bug Fixes
Critical:
ServerOrchestrator: Fixed fire-and-forget async in constructor - added ensureReady() method for proper initialization tracking
Resource leaks: Added cleanup callbacks to ClientResourceCache and fixed stop() in both transports to properly close sessions
Double notifications: Fixed enableToolsets sending redundant notifications
Security/Correctness:
Header case sensitivity: PermissionResolver now handles headers case-insensitively per RFC 7230
Meta-tools in STATIC mode: enable_toolset/disable_toolset now correctly only register in DYNAMIC mode
ExposurePolicy enforcement: Permission-based servers now sanitize and warn about ignored policy options
Other:
Fixed validateToolsetModules to allow toolsets with only direct tools (no modules)
Fixed silent failures in permission bundle creation - now logs warnings and throws on total failure
Added error logging to previously swallowed catch blocks
Fixed moduleLoaders typing from Record<string, any> to Record<string, ModuleLoader>
📝 Documentation
Updated README meta-tools section to clarify DYNAMIC vs STATIC availability
Fixed incorrect server: → createServer: in static startup examples
Enhanced exposurePolicy documentation for permission-based servers
🔧 Maintenance
Upgraded vite ^5.3.1 → ^7.2.4 (fixes esbuild vulnerability)
Updated tests to match new behavior

@imbenrabi imbenrabi merged commit 47c9258 into main Nov 28, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants