Skip to content

Add Docker-based script execution for Docker Compose#234

Merged
rockfordlhotka merged 7 commits intomainfrom
feature/docker-compose-deploy
Apr 2, 2026
Merged

Add Docker-based script execution for Docker Compose#234
rockfordlhotka merged 7 commits intomainfrom
feature/docker-compose-deploy

Conversation

@rockfordlhotka
Copy link
Copy Markdown
Member

@rockfordlhotka rockfordlhotka commented Apr 2, 2026

Summary

Enhances the Docker Compose deployment to be a fully functional local development environment, and fixes agent display name propagation across all frontends.

  • Configurable agent data volumeAGENT_DATA_PATH env var for bind-mounting agent data to a host directory
  • Docker-based script execution — new RockBot.Scripts.Docker project using Docker.DotNet to run ephemeral Python script containers via the Docker Engine API, with scripts-init service to pre-pull the Python image at startup
  • Script Manager provider selectionScripts:Provider config (Docker | Container) selects Docker vs Kubernetes handler at runtime
  • Introspection MCP server — Dockerfile and docker-compose service for set_agent_name/get_agent_name tools, with mcp.json seeded to point at compose-internal URL
  • Agent name change notifications — publishes AgentNameChanged to user.response when the file watcher detects a name change; all user proxy frontends (Blazor, CLI) update via IUserFrontend.OnAgentNameChangedAsync
  • Blazor UI name updates — browser tab title synced via JS interop; conversation history uses current display name for primary agent bubbles; AgentReply.AgentName uses display name
  • Helm fixRecreate strategy for mcp-todo deployment (RWO PVC deadlocks with RollingUpdate)

Closes #233

Test plan

  • dotnet build RockBot.slnx — zero errors
  • dotnet test RockBot.slnx — 857 passed, 0 failed
  • Docker Compose: docker compose up starts all services (rabbitmq, agent, blazor, scripts-manager, introspection-mcp)
  • Script execution works via Docker containers (python:3.12-slim)
  • Agent name change via set_agent_name MCP tool updates header, title, and chat bubbles
  • Conversation history bubbles reflect current display name after page reload
  • Deployed to K8s cluster via Helm upgrade

🤖 Generated with Claude Code

rockfordlhotka and others added 7 commits April 2, 2026 15:30
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Publishes AgentNameChanged to user.response when the file watcher
detects a change to agent-name.md. UserProxyService routes it to
IUserFrontend.OnAgentNameChangedAsync so all frontends (Blazor, CLI)
update their displayed name. Also uses display name in AgentReply.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…233)

Sync browser tab title via JS interop when agent name changes, since
PageTitle doesn't reliably re-render. Use current display name for
primary agent bubbles when loading conversation history.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
RollingUpdate deadlocks when the PVC is ReadWriteOnce because the new
pod cannot mount the volume while the old pod still holds it.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@rockfordlhotka rockfordlhotka merged commit 2157f46 into main Apr 2, 2026
1 check passed
@rockfordlhotka rockfordlhotka deleted the feature/docker-compose-deploy branch April 2, 2026 22:21
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.

Add Docker-based script execution for Docker Compose deployments

1 participant