• v0.3.0 7ae8d32841

    v0.3.0 Stable

    rwachters released this 2026-05-02 22:32:30 +00:00 | 656 commits to master since this release

    Chatbot v0.3.0

    What is new in plain terms

    • A completely new worker module has been added to handle MCP tool execution, running as a separate process that communicates with the server via WebSocket.
    • Workers now have full authentication with JWT-based registration and login, including service tokens and challenge-response security.
    • MCP tool execution has been moved from client to server worker — the client no longer executes MCP tools directly.
    • A new worker management UI lets you view, update, and delete registered workers from settings.
    • The settings screen has been redesigned with a collapsible sidebar and organized pages.
    • Workers can now be deployed via Docker with auto-start support after initial setup.

    User-facing improvements

    New worker module for MCP tool execution

    • Added a new worker/ module that runs as a standalone process handling all MCP tool calls.
    • Workers connect to the server via WebSocket for bidirectional communication.
    • Each worker has a public UID for external identification.
    • Workers support layered configuration (defaults → secrets → runtime).

    Worker authentication system

    • Workers can now register with the server and receive authentication credentials.
    • JWT-based authentication with separate audiences for users and workers.
    • Service token authentication with challenge-response security.
    • Workers must complete a session handshake before becoming operational.

    Worker management UI

    • Added a worker management section in settings to view all registered workers.
    • Workers can be updated (display name, configuration) and deleted from the UI.
    • Added a worker selection dropdown in the MCP server dialog to choose which worker handles tool execution.
    • Display name resolution is now delegated to the worker setup flow.

    Settings screen redesign

    • Complete overhaul of the settings UI with a collapsible sidebar navigation.
    • Settings are organized into pages for better structure.
    • Added generation-based content control in the topbar for better streaming behavior.

    MCP runtime improvements

    • MCP runtime status is now refreshed automatically after server operations.
    • Client runtime has auto-stop functionality when not in use.
    • Worker runtime properly closes and cleans up MCP resources on shutdown.

    Self-hosting and deployment improvements

    • Added Docker support for the worker module.
    • Workers can be configured to auto-start after initial setup.
    • Added server URL resolution logic for worker setup.
    • Worker configuration is now secured with layered approach (secrets separated from defaults).

    Security and reliability

    • JWT authentication now uses separate audiences for users and workers.
    • Worker configuration is restructured and secured with proper separation of sensitive data.
    • Session handshake completion is now enforced before workers can process requests.
    • Local MCP server API resources have been removed (client-side execution deprecated).

    Build and packaging

    • Worker module has its own Gradle build configuration.
    • Build and application defaults are properly configured for the worker.
    • All tests continue to pass across the application.

    Docs and project housekeeping

    • Expanded onboarding and project documentation.
    • Reorganized documentation files for better structure.
    • Cleaned up local IDE configuration files.

    Commit-backed changelog (checked from commit descriptions)

    Feature commits

    • 1c31178c feat(deploy): add docker support for worker
    • 822c2a0d feat(worker): support auto-start after setup
    • 254feb0b feat(worker-management): add worker management ui and logic
    • b0836afe feat(worker): add worker update and delete endpoints
    • 351c9371 feat(settings): add collapsible sidebar
    • c79f2a2b feat(settings): redesign ui with sidebar and pages
    • 6533614b feat(mcp): refresh runtime status after server ops
    • cec04fea feat(worker-setup): delegate display name resolution
    • 9cd6d857 feat(worker): add display name to identity config
    • 78b7f744 feat(worker-selection-ui): add worker selection dropdown to mcp server dialog
    • 2cca1d1f refactor(worker config): restructure and secure configuration
    • df0062fb fix(worker): enforce session handshake completion
    • 89a33ac9 feat(mcp): move local mcp tool execution to server worker
    • 601dfc7c feat(worker): add MCP server configuration sync commands
    • 546e766c feat(worker): bootstrap assigned mcp server configurations
    • 14c61f1b feat(worker): consolidate mcp tool calls in runtime service
    • 60340ff6 feat(worker): add worker runtime close and mcp cleanup
    • bd4d24b3 feat(mcp): add client runtime control and auto-stop
    • 8feca0fe feat(mcp-runtime-control): implement worker-local mcp runtime control
    • afafe40a feat(mcp-runtime): implement worker local mcp runtime tool discovery
    • 631bbfc8 feat(mcp): implement local mcp runtime control
    • 8c175f51 feat(worker): implement mcp server control commands
    • cc4a78a9 feat(mcp): implement worker-backed runtime control
    • 10aa4788 feat(mcp): add local mcp runtime control architecture
    • ce4aa308 feat(mcp-server): migrate config to server-side persistence
    • 961630fb feat(mcp): migrate local mcp server config to server
    • 62016ecb feat(worker): add server-side websocket message processing
    • 8ebfe11b feat(auth): add worker uid to service jwt and context
    • 91e5453e feat(worker-protocol): implement worker-side message processing
    • d65602ce feat(worker-protocol): add worker websocket protocol definitions
    • a579cb46 feat: add worker setup flow and layered configuration
    • 872df1cd feat(worker): add initial worker setup flow
    • 250260d6 feat(worker-setup): add initial worker setup flow
    • 7e84f775 feat(worker-config): implement layered configuration system
    • f5b3ec87 feat(worker): add public uid for external identification
    • a807c1f5 feat(worker): add main process and auth setup
    • 3e1312ce feat(worker): add runtime for token lifecycle management
    • e29d28ad feat(worker-cli): add command-line argument parsing
    • 63e112f5 feat(worker): add runtime configuration loading
    • 191ca918 feat(worker-auth): add worker authentication manager
    • 32a76b53 feat(auth): add worker authentication api client
    • 2f95cac9 feat(worker-auth): add service token store
    • a9067b0b feat(auth): add worker challenge signer
    • 613be9a6 feat(worker): add worker service authentication
    • f4386214 feat(auth): add worker registration and authentication
    • 74fdf85d feat(worker-registration): add api endpoint
    • 8f4253e3 feat(auth): add worker service token authentication
    • d10b156a feat(auth): implement worker jwt authentication
    • 8c05a72f feat(worker-auth): add worker registration and authentication
    • bb278d8d feat(worker-auth): add worker identity and auth dao
    • 548fd6b7 feat(worker): add worker registration and authentication tables
    • 47557c1b feat(worker-auth): add challenge data model
    • b500bfd5 feat(worker): add worker registration models and database table
    • 051a3ff8 feat(auth): introduce separate jwt audiences for users and workers

    Fixes

    • cbed5f95 fix(topbar): add generation-based content control
    • 67209814 chore(git): clean up local ide config
    • d20cb0ab refactor(worker): migrate session registration to connection start
    • 2c86ae83 fix(test): close test container after each test
    • b934191e fix(auth): use correct access token expiration

    Build/docs/chore

    • e3b5cdda docs(readme): expand onboarding and project docs
    • 10e707a1 docs(structure): reorganize documentation files
    • fb39f071 chore(worker): configure build and application defaults
    • 72f2e980 chore: add log4j2 configuration for worker
    • e84d2dbd refactor(worker): improve unique constraint error handling
    • 1a2a2854 refactor(worker): separate entity and dto models

    Refactoring (architectural changes)

    • 9932f37e refactor: remove deprecated local mcp server api resources
    • 55f15fd5 refactor(mcp): remove local server execution logic
    • edcd7412 refactor(mcp-runtime): move local mcp tool execution to server worker
    • 30f4e66c refactor: remove local mcp tool execution
    • 86a6c2c0 refactor: remove local mcp tool call mediation
    • c8ae0043 refactor(worker-protocol): split mcp runtime command mappings
    • 7f17e843 refactor(mcp): rename worker-prefixed mcp components
    • f7de5efe refactor(local mcp server): remove local database persistence
    • 4f78f827 refactor(worker): use string uid and secrets json config

    Merged pull requests in this range

    • #208 Merge pull request #208 (a5459cdc)
    • #207 Merge pull request #207 (0e8f0c0e)
    • #206 Merge pull request #206 (2e603f23)
    • #205 Merge pull request #205 (9ece432b)
    • #204 Merge pull request #204 (afddd8dd)
    • #203 Merge pull request #203 (4beacf52)
    • #202 Merge pull request #202 (219b7b27)
    • #201 Merge pull request #201 (ccf2447a)
    • #200 Merge pull request #200 (6f719866)
    • #199 Merge pull request #199 (597b2aa9)
    • #198 Merge pull request #198 (7900ab55)
    • #197 Merge pull request #197 (0fec65ec)
    • #196 Add local MCP runtime control architecture (b9da7ef5)
    • #195 Merge pull request #195 (b71f7965)
    • #194 Merge pull request #194 (77ec0ca9)
    • #193 Add server-side message processing (d3344b71)
    • #192 Merge pull request #192 (7ba1b97f)
    • #191 Add worker side message processing (cab80c3b)
    • #190 Merge pull request #190 (693a438b)
    • #189 Merge pull request #189 (3944a148)
    • #188 Add worker registration and authentication (b091aa2e)
    • https://github.com/Torvian-eu/chatbot/compare/v0.2.0...v0.3.0
    • If the tag is not created yet: https://github.com/Torvian-eu/chatbot/compare/v0.2.0...main
    Downloads