Conductor uses Git tags for deployment, integrated with Edgit’s component versioning system:
Copy
# 1. Create a version tag for your componentedgit tag create my-prompt v1.0.0edgit push --tags# 2. Deploy to staging (mutable environment tag)edgit tag set my-prompt staging v1.0.0edgit push --tags --force# 3. After testing, promote to productionedgit tag set my-prompt production v1.0.0edgit push --tags --force
Version tags (v1.0.0) are immutable snapshots.
Environment tags (staging, production) are mutable pointers that can be moved between versions.
When tags are pushed, the workflow syncs component content to Cloudflare KV:
Copy
# Manual sync for testingedgit sync --tag components/prompts/extraction/staging --kv COMPONENTS_KV
This enables hot-swappable components - update a prompt without rebuilding your Worker:
Copy
# In your ensemble, reference by environment tagagents: - name: analyzer operation: think prompt: prompts/extraction@staging # Loaded from KV at runtime
1. Develop locally └─> pnpm run dev2. Create version tag └─> edgit tag create extraction v1.0.0 └─> edgit push --tags3. Deploy to staging └─> edgit tag set extraction staging v1.0.0 └─> edgit push --tags --force └─> GitHub Actions deploys to staging worker └─> Components synced to staging KV4. Test in staging └─> curl https://my-app-staging.workers.dev/api/v1/execute/...5. Promote to production └─> edgit tag set extraction production v1.0.0 └─> edgit push --tags --force └─> GitHub Actions deploys to production worker └─> Components synced to production KV6. Rollback if needed └─> edgit tag set extraction production v0.9.0 └─> edgit push --tags --force └─> Instant rollback (just moves the tag)
Tags follow the 4-level hierarchy: {prefix}/{type}/{name}/{slot}
prefix: components (hot-swappable) or logic (requires rebuild)
type: prompts, agents, schemas, etc.
name: Component name
slot: Version (v1.0.0) or environment (staging, production)
Examples:
Copy
components/prompts/extraction/v1.0.0 # Version tag (immutable)components/prompts/extraction/staging # Environment tag (mutable)logic/agents/analyzer/production # Logic requires rebuild
# See all versionsedgit tag list extraction# Output:# [email protected]# [email protected]# extraction@staging -> v1.0.0# extraction@production -> v1.0.0
Problem: Component works locally but not in productionFix: Ensure the component is registered and synced
Copy
# Register componentedgit register path/to/component.yaml# Create and push tagsedgit tag create my-component v1.0.0edgit tag set my-component production v1.0.0edgit push --tags --force
KV sync not working
Problem: Components not updating in KVFix: Check KV namespace binding
Copy
# Verify KV namespace existswrangler kv:namespace list# Check wrangler.toml has correct binding# binding = "COMPONENTS_KV"# id = "your-kv-id"
Validation script failing
Problem: CI fails with “unregistered component reference”Fix: Register the component before referencing it