All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- TTS Provider Abstraction -- Extracted TTSProvider interface and added OpenAI-compatible TTS provider for local text-to-speech.
- FileSessionStore Persistence -- Session state survives process restart via file-based session store.
- Cross-CLI Config Sync --
npm run syncmerges the evokore-mcp entry into each CLI's config with canonical git root resolution. - Tool Discovery Tiering -- Discovery profiles (
coding,research,voice,legacy-full,legacy-dynamic), opt-intools/listcursor pagination, and opt-in schema-deferredtools/list+describe_toolbootstrap path.
- Updated CLAUDE.md and developer docs with v3.1 conventions.
- Version bump from 3.0.0 to 3.1.0.
- Operator UX Hardening -- Purpose gate, session replay, evidence capture, tilldone, and damage control hooks.
- Voice & Continuity Follow-Through -- VoiceSidecar standalone process and session continuity manifest.
- StreamableHTTP Server Transport -- HTTP server for MCP over HTTP with SSE streaming.
- OAuth Bearer Token Auth --
OAuthProviderwith Bearer token validation and JWKS key rotation for HTTP transport. - Plugin System --
PluginManagerwith hot-reload support for custom tool providers. - Webhook Event System -- HMAC-SHA256 signed events with fire-and-forget delivery and security hardening.
- Multi-Tenant Session Isolation -- Per-session state isolation with configurable TTL.
- Skill Ecosystem Validation -- Sandbox security audit and skill ecosystem validation suite.
SessionIsolationintoHttpServerwith LRU eviction.OAuthProviderintoHttpServeras authentication middleware.WebhookManagerintoPluginManagerwith plugin event hooks.- Per-session RBAC into
HttpServerfor multi-tenant role isolation. - Per-session rate limiting into
HttpServerwith token buckets.
- Made proxy boot async so the MCP handshake completes immediately without waiting for child server boot.
- Updated documentation for v3.0 features.
- v3.0.0 release tag.
- npm package metadata.
- Integration tests for v3.0 features.
- Test Runner Migration -- Migrated tests from chained scripts to vitest with parallel execution, watch mode, and structured output.
- MCP SDK Feature Adoption -- Added tool annotations (
readOnlyHint,destructiveHint, etc.), server instructions, and HTTP client transport support. - MCP Resources & Prompts -- Implemented
resources/listandprompts/listwith real content including server status, config, and skill-backed prompts. - Skill Hot-Reload -- Added
refresh_skillstool and optional filesystem watcher for live skill index updates. - Rate Limiting -- Configurable per-server and per-tool rate limits using token bucket algorithm.
- Session Dashboard -- Zero-dependency local web dashboard for session replay and evidence timeline viewing.
- HITL Approval UI -- Interactive web interface for viewing and managing pending HITL approval tokens.
- Repo Audit Hook -- Optional pre-session hook that warns about branch drift and stale worktrees.
- Skill Versioning -- Optional
version,requires, andconflictsfields in skill frontmatter with dependency validation. - Remote Skill Registry --
fetch_skilltool for installing skills from remote URLs and registry support. - Skill Execution Sandbox --
execute_skilltool for running code blocks from skills with output capture and timeout. - Supabase Integration -- Supabase MCP server as a proxied child with tiered permissions.
- RBAC Permissions -- Role-based permission model with
admin,developer, andreadonlyroles.
- Build Hygiene -- Removed tracked compiled artifacts from
src/, updated.gitignore. - CI Updates -- Windows runtime tests run through vitest.
npm testnow runsvitest runinstead of chainednodecommands. CI workflows using the old command pattern need updating.- Test files use vitest globals (
test(),describe()). Running them directly withnodeno longer works.
- Update any CI scripts that run individual test files with
node test-*.jsto usenpx vitest run test-*.js. - Set
EVOKORE_ROLEenv var to activate RBAC (optional, flat permissions still work). - Set
EVOKORE_SKILL_WATCHER=trueto enable auto-refresh (optional). - Set
EVOKORE_REPO_AUDIT_HOOK=trueto enable pre-session repo audit (optional).