Skip to content

Restore container templates, Docker client, and UI improvements#190

Merged
tylergraydev merged 5 commits intomainfrom
feature/restore-container-templates
Apr 8, 2026
Merged

Restore container templates, Docker client, and UI improvements#190
tylergraydev merged 5 commits intomainfrom
feature/restore-container-templates

Conversation

@tylergraydev
Copy link
Copy Markdown
Owner

Summary

  • Restore and implement container templates system with builtin templates (Node, Python, Rust, ML, Full-Stack, Base) including default named volumes and Dockerfile build support
  • Implement Docker client service with container lifecycle management (create, start, stop, restart, remove, rebuild, logs)
  • Improve container UI: template cards, port mapping editor, container actions with rebuild support, and loading spinners
  • Add KNOWN_BUGS.md for tracking known issues (MCP stdout protocol violations)

Test plan

  • Verify container templates page renders all builtin templates
  • Test creating a container from a template with custom name and port mappings
  • Test container lifecycle actions (start, stop, restart, rebuild, remove)
  • Verify volume names are generated based on user's container name
  • Check port mapping editor validates inputs correctly

🤖 Generated with Claude Code

Tyler Gray and others added 5 commits April 8, 2026 12:33
Restores the full container management implementation that was accidentally
stubbed out in commit 473846f. Re-wires the Docker client (Bollard),
container CRUD, template system, and frontend store with real invoke calls.

Key changes:
- Restore containers.rs with full Docker lifecycle, template creation, and project-container junction
- Restore docker/client.rs with Bollard-based container management and interactive shell support
- Restore containerLibrary.svelte.ts store with real Tauri invoke calls and status polling
- Restore container.ts types (ContainerTemplate, CreateContainerRequest, etc.)
- Wire up docker/templates.rs and docker/devcontainer.rs modules
- Register shell commands (start_container_shell, send_shell_input, resize_shell)
- Add spinner/loading indicator to ContainerActions during operations
- Add action status message to ContainerCard (e.g. "Pulling image & creating container...")
- Add click-to-open detail view on container cards
- Add copy-to-clipboard docker exec commands in container detail overview
- Add DB migration to fix is_favorite column type mismatch
- Remove xterm dependency (was causing Vite cache issues)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Templates with a dockerfile field (e.g. Claude Code + Node.js) now
build a custom image on first start instead of just pulling the base
image. This ensures Claude Code CLI is actually installed in the
container as the template describes.

- Add build_from_dockerfile() to DockerClientManager using Bollard build API
- Add tar crate for creating Dockerfile tar archives
- Wire build step into start_container_cmd when container has dockerfile
- Fix spinner not animating by moving animate-spin to wrapper div

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds default named volumes to all builtin templates, generates
user-specific volume names on container creation, and improves
the templates page with rebuild actions and port mapping editor.
Also adds KNOWN_BUGS.md for tracking known issues.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add missing RefreshCcw icon mock and update TemplateCard test
to match new clickable card behavior (button was removed).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Prevents broken tests from reaching CI by running vitest
before every push, aborting if any tests fail.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@tylergraydev tylergraydev merged commit 48c112c into main Apr 8, 2026
11 checks passed
@tylergraydev tylergraydev deleted the feature/restore-container-templates branch April 8, 2026 21:03
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.

1 participant