Skip to content

feat(registry): workflow registry system — named registries, versioning, caching#97

Open
jrob5756 wants to merge 1 commit intomainfrom
feat/workflow-registry
Open

feat(registry): workflow registry system — named registries, versioning, caching#97
jrob5756 wants to merge 1 commit intomainfrom
feat/workflow-registry

Conversation

@jrob5756
Copy link
Copy Markdown
Collaborator

Summary

Introduces a configurable named-registry system for distributing and running shared workflows. Supersedes #88 and addresses #78.

Full design doc: docs/design/registry.md

What's new

  • Named registries — GitHub repos or local directories, configured in ~/.conductor/registries.toml
  • Registry CLIconductor registry {list,add,remove,set-default,update,show}
  • Run from registryconductor run qa-bot@official@1.2.3 (or just qa-bot for latest from default)
  • Explicit versioning — npm-style, backed by git tags for GitHub registries
  • Local caching~/.conductor/cache/registries/, explicit versions immutable, latest re-resolved on update
  • Index manifestindex.yaml at registry root lists workflows, descriptions, versions, and paths

What's removed

  • conductor init / conductor templates commands
  • src/conductor/cli/init.py and src/conductor/templates/ directory

Changes

New: src/conductor/registry/ (6 modules)

Module Purpose
config.py Pydantic models for registries.toml, load/save/add/remove helpers
resolver.py Parse name[@registry][@version], file-vs-registry detection
index.py Load/parse index.yaml from GitHub or local path
cache.py Local cache management, workflow + sibling file fetching
github.py GitHub raw file fetch, tag listing, directory enumeration
errors.py RegistryError extending ConductorError

Modified

  • src/conductor/cli/app.pyrun/resume/validate accept registry refs; registry subcommand wired in; init/templates removed
  • pyproject.toml — added httpx>=0.27.0
  • README, docs/cli-reference.md, conductor skill docs

Tests

  • 133 new tests across tests/test_registry/ (unit + integration) and tests/test_cli/test_registry_commands.py
  • All 1977 tests pass

Reference syntax

conductor run ./workflow.yaml          # local file (unchanged)
conductor run qa-bot                   # latest from default registry
conductor run qa-bot@team              # latest from named registry
conductor run qa-bot@team@1.2.3        # explicit version

Closes #78

Introduce a configurable named-registry system for distributing and
running shared workflows. Registries can be GitHub repos or local
directories, configured once in ~/.conductor/registries.toml and
referenced by short name.

- Add src/conductor/registry/ package (config, resolver, index, cache,
  github helpers, errors)
- Add `conductor registry` CLI subcommand group (list, add, remove,
  set-default, update, show)
- Modify run/resume/validate to accept registry refs
  (name[@registry][@Version]) in addition to local file paths
- Remove init/templates feature (init.py, templates/, test_init.py)
- Add httpx dependency for GitHub API fetching
- Add 133 new tests (unit + integration + CLI)
- Update README, cli-reference, design doc, and conductor skill

Supersedes PR #88.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

Feature: Workflow Template Registry

1 participant