Releases: valksor/go-assern
Releases · valksor/go-assern
Release list
nightly
v0.2.0
Full Changelog: v0.1.0...v0.2.0
Changelog
- 98e7445 Add CLI reload command and SIGHUP signal handling Adds user-facing commands for triggering configuration reloads: - cmd: Add reload command for runtime config refresh - cmd: Add runReload() to detect running instance and send reload - cmd: Pass WorkDir and ProjectName to aggregator options - transport/stdio: Handle SIGHUP signal for reload triggering - transport/stdio: Log reload results on signal completion
- eab17ba Add MCP client for querying running instances Adds a client package for connecting to running Assern instances via Unix socket: - Client: TCP/Unix socket connection with JSON-RPC protocol - Initialize: MCP handshake implementation with timeout handling - ListTools: Query available tools from running instance - QueryTools: Convenience function for full connection lifecycle - Comprehensive test coverage including parallel tests, timeout handling, and error cases
- 1cae1da Add MCP protocol tests for socket server Adds comprehensive tests for MCP protocol over Unix socket: - TestServer_MCPInitialize: Test initialize handshake flow - TestServer_MCPListTools: Test tools/list request - TestServer_MCPCallTool: Test tool invocation with arguments - TestServer_MCPPing: Test ping/pong notification round-trip
- a50cc20 Add configuration comparison infrastructure for hot-reload Adds config diffing to detect changes for reload: - config/compare: Add ConfigDiff struct for tracking changes - config/compare: Add DiffConfigs() to compare server configurations - config/compare: Add Equal() methods for ServerConfig, OAuthConfig, RetryConfig - config/compare: Add comprehensive test coverage for comparison logic
- 4382173 Add generic registry implementation to aggregator package
- 761d523 Add health monitoring and retry system with exponential backoff Adds health tracking for servers and configurable retry mechanism for resilience: - health: Add HealthTracker with configurable failure threshold (default 3) - health: Track consecutive failures, last success/failure times, total calls - health: Add Status(), IsHealthy(), Stats(), AllStats() methods with mutex protection - retry: Add WithRetry() with exponential backoff and configurable parameters - retry: Add RetryableError wrapper and IsRetryable() for explicit retry control - retry: Add MaxRetriesExceededError for exhausted retries - aggregator: Integrate health tracker into Aggregator lifecycle - aggregator: Apply retry logic to tool handler creation - errors: Add ErrInvalidPrefixedName and ErrInvalidPrefixedURI constants
- 878c6af Add import alias checking to build system Adds automated detection of unnecessary import aliases: - .github/alias.sh: Script to detect aliased imports where no conflict exists - Makefile: Add check-alias target integrated into quality target
- 4fe1a7f Add instance sharing package for cascade prevention
- 0cc06e8 Add internal/cli package for interactive MCP server management Adds CLI package for managing MCP servers with interactive prompts: - internal/cli/formatters: Add display formatting with scope grouping - internal/cli/mcp_manager: Add CRUD operations for MCP servers - internal/cli/mcp_prompts: Add interactive survey-based prompts - internal/cli/validators: Add input validation utilities - internal/cli: Add comprehensive test coverage
- 5a7f2d7 Add reload functionality to aggregator Adds hot-reload capability for updating configuration without restart: - aggregator: Store WorkDir and ProjectName for config reloading - aggregator: Add Reload() method to refresh configuration from disk - aggregator: Add ReloadResult struct for operation reporting - aggregator: Add stopServer() to cleanly remove servers - aggregator: Add addServerToolsToMCPServer() for reload tool registration - aggregator: Add reloadMu to prevent concurrent reload operations - aggregator: Add comprehensive reload tests
- bc65bde Add reload support to instance socket protocol Adds reload command to instance communication protocol: - instance/socket: Add aggregator parameter to NewServer() - instance/socket: Handle assern/reload internal command - instance/socket: Add sendInternalError() for error responses - instance/client: Add Reload() function for triggering reloads - instance/client: Add ReloadResult struct for response handling - instance: Add reload_test.go with comprehensive tests - instance: Update all test files for NewServer signature change
- a62ec90 Add retry configuration and HTTP connection pooling Adds retry configuration support and HTTP connection pooling for improved performance: - config: Add RetryConfig struct with MaxAttempts, InitialDelay, MaxDelay, BackoffFactor - config: Add DefaultRetryConfig() function and Clone() method - config: Add Aliases field to Settings for tool name aliases - aggregator: Add shared HTTP transport with connection pooling (100 max idle, 90s idle timeout) - aggregator: Add shared HTTP client with 30s timeout - dependencies: Update go-toolkit to v0.0.0-20260122005202-beb49eaa0c9e - dependencies: Add survey/v2 for interactive CLI selection - dependencies: Add terminal-related packages (go-colorable, go-isatty, ansi)
- 5d731e2 Add socket session management for MCP protocol Adds session management for socket-based MCP connections: - internal/instance/session.go: Add socketSession implementing server.ClientSession - internal/instance/session_test.go: Add tests for session lifecycle and state - internal/instance/socket.go: Replace stdioServer with custom message handling - internal/instance/socket.go: Add session registration and notification handling - internal/instance/socket.go: Add writeJSONResponse and writeErrorResponse helpers
- b4370f1 Add tool aliases, CLI disambiguation, and performance optimizations Adds tool aliasing system, CLI colon notation, and caching for better performance: - cmd: Add Execute() with colon notation support (e.g., list:servers) - cmd: Integrate go-toolkit disambiguate for interactive command selection - tools: Add alias management (SetAliases, AddAlias, RemoveAlias, ResolveAlias) - tools: Improve ParsePrefixedName() to return errors instead of empty strings - registry: Add double-checked locking cache to generic registry - registry: Invalidate cache on mutations for consistency - resources: Add proper error handling for ParsePrefixedURI() - prompts: Add proper error handling for ParsePrefixedPromptName() - instance: Add buffer pool (256KB) for proxy I/O operations - instance: Replace time-based session IDs with atomic counter - transport: Make ParseLogLevel() case-insensitive - aggregator: Add benchmark_test.go with 8 benchmark functions - aggregator: Add registry_test.go with 16 registry cache tests
- 25e3228 Document hot-reload configuration feature Adds documentation for the new reload capability: - README: Add hot-reload to features list - README: Add assern reload command reference - docs/configuration: Add comprehensive hot-reload section - docs/configuration: Document reload methods (CLI and SIGHUP) - docs/configuration: Explain reload behavior for server changes - docs/configuration: Document client reconnection requirements
- cee02f5 Document instance sharing feature
- d77d190 Document instance-aware list command [skip ci] Updates documentation for the instance-aware list feature: - README: Add assern list --fresh command reference - README: Update list command description to mention running instance behavior - concepts: Add "CLI Commands Using Instance Sharing" section - concepts: Document --fresh flag behavior and fallback logic
- 4ef3e26 Document interactive MCP server management Updates documentation to promote interactive CLI over manual config: - README: Add MCP management command reference and examples - docs/configuration: Document interactive vs manual configuration - docs/quickstart: Add quickstart guide for interactive CLI
- ba4b4c1 Enhance CLI with improved logging and force initialization
- e9a1a23 Enhance error handling and validation in aggregator package
- b2b083b Integrate MCP management commands into CLI Adds interactive subcommands for managing MCP server configurations: - cmd: Add mcp add command for interactive server creation - cmd: Add mcp edit command for updating existing servers - cmd: Add mcp delete command with multi-select support - cmd: Add mcp list command for displaying configured servers - cmd: Replace custom version command with cli.NewVersionCommand
- 55dc9c8 Integrate instance sharing into list command Adds instance-aware tool discovery to the list command: - Add --fresh flag to force fresh discovery (ignore running instance) - Detect and query running instances via socket when available - Fall back to full aggregator startup when no instance running - Add tryListFromInstance() for socket-based queries with debug logging - Refactor existing logic into runListFresh() helper - Display project name and "(from running instance)" indicator for cached results
- 9344946 Integrate instance sharing into serve command
- def1639 Modernize aggregator package with toolkit integration
- df892df Remove deprecated internal/project and internal/version p...
v0.1.0
Full Changelog: https://github.com/valksor/go-assern/commits/v0.1.0
Changelog
- 825f194 Adds Docker support for containerized deployment [skip ci]
- 7c1a817 Adds GitHub Actions workflows [skip ci]
- cbc7828 Adds MCP resources and prompts support with registry
- e6368de Adds OAuth 2.0 configuration structures
- a4e2499 Adds OAuth transport implementation
- f0520e6 Adds TOON format implementation
- fdc870c Adds build and development tooling
- 9926913 Adds config merge and CLI integration
- 516f4f2 Adds config merge support for OAuth and headers
- eb65de6 Adds config structures for transport and output format
- 2156f3f Adds installation script and documentation deployment
- caa1062 Adds integration tests and test utilities
- 584a6dc Adds multi-transport and TOON documentation [skip ci]
- 3eb6668 Adds multi-transport configuration structures
- 94a70bf Adds multi-transport implementation
- e3c617b Adds project auto-detection from directory name
- 6453ead Adds project documentation [skip ci]
- 2af7a09 Adds project metadata and legal documents
- 26e3e99 Adds test coverage for config and aggregator
- 8bff449 Adds toon-go dependency
- b993f7c Enhances release process and adds funding info
- 2ccec78 Fixes:
assern listwith empty config - f2f7422 Implements MCP aggregator core
- 04c0d24 Makes test non-parallel
- d98c187 Marks some tests as not parallel
- 2b035fe Updates CLI with enhanced output and context handling
- 17e8edc Updates aggregator with full MCP protocol support
- 005c45c Updates documentation with OAuth and authentication [skip ci]
- 401b46c Updates documentation with full MCP protocol and Docker
- 3cf7731 init
- 99dd725 trigger build