Skip to content

feat: auto-update system for Conductor#17

Merged
jrob5756 merged 5 commits intomainfrom
feature/release-management
Mar 4, 2026
Merged

feat: auto-update system for Conductor#17
jrob5756 merged 5 commits intomainfrom
feature/release-management

Conversation

@jrob5756
Copy link
Copy Markdown
Collaborator

@jrob5756 jrob5756 commented Mar 4, 2026

Summary

Implements a complete auto-update lifecycle for Conductor, enabling automated releases, passive update notifications, and one-command upgrades.

Changes

Epic 1: GitHub Release Workflow

  • New .github/workflows/release.yml — tag-triggered CI/CD workflow that runs quality gates (lint, typecheck, test) and creates GitHub Releases with build artifacts on v* tag pushes
  • Supports pre-release tags (e.g., v0.2.0-beta.1)

Epic 2: Update Check Module

  • New src/conductor/cli/update.py — core update-check logic:
    • get_cache_path(), read_cache(), write_cache() — 24h cache at ~/.conductor/update-check.json
    • fetch_latest_version() — GitHub API with 2s timeout, silent failure
    • parse_version(), has_prerelease(), is_newer() — semver comparison with pre-release support
    • check_for_update_hint() — TTY-only, non-silent one-line hint
    • run_update() — version-pinned uv tool install --force upgrade
  • New tests/test_cli/test_update.py — comprehensive tests for all functions

Epic 3: CLI Integration

  • Modified src/conductor/cli/app.pyconductor update command + update hint in main() callback
  • Guards: TTY-only, non-silent, skips when subcommand is update

Epic 4: Documentation & Skill Updates

  • Updated AGENTS.md, .claude/skills/conductor/SKILL.md, .claude/skills/conductor/references/execution.md
  • Added conductor update to common commands, quick reference, and execution docs

Design

  • Zero new dependencies — uses urllib.request (stdlib) and tuple version comparison
  • Non-intrusive — 2s network timeout, 24h cache, TTY-only hints, respects --silent
  • Version-pinned installs — upgrades pin to exact release tag (e.g., git+...@v0.3.0)

Plan

See docs/projects/releases/release-management.plan.md for full solution design.

Jason Robert and others added 5 commits March 3, 2026 18:49
Add planning documents for the auto-update system:
- release-management.brainstorm.md: initial design notes covering
  tag-triggered releases, update checks, and conductor update command
- release-management.plan.md: detailed solution design with architecture,
  data flow, security considerations, and phased implementation plan
- Add .github/workflows/release.yml with tag-triggered release pipeline
- Workflow runs lint, typecheck, and test quality gates before release
- Pre-release tags (containing hyphen) produce pre-release GitHub Releases
- Build artifacts (.whl, .tar.gz) attached via gh release create --generate-notes
- Concurrency group cancels in-progress runs for same tag ref
- Update Epic 1 status to DONE in plan document

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add src/conductor/cli/update.py with full update-check logic:
  get_cache_path, read_cache, write_cache (24-hour TTL),
  fetch_latest_version (GitHub releases API, 2s timeout),
  parse_version, has_prerelease, is_newer (semver + pre-release),
  check_for_update_hint (TTY/silent/subcommand guards),
  run_update (uv tool install --force git+...@{tag_name})
- Add 46 comprehensive tests in tests/test_cli/test_update.py
- Update plan document: Epic 2 status DONE, acceptance criteria checked

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add check_for_update_hint() call in main() callback guarded by TTY,
  non-SILENT verbosity, and subcommand != 'update' with deferred import
- Add conductor update command (@app.command()) with error handling
- Add 7 CLI-level tests: TestUpdateCommand (3) and TestUpdateHintCLI (4)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add update.py to AGENTS.md cli/ architecture bullet list
- Verify AGENTS.md Common Commands includes conductor update
- Verify SKILL.md Quick Reference includes conductor update
- Verify execution.md has conductor update reference section

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jrob5756 jrob5756 merged commit 2d75d00 into main Mar 4, 2026
7 checks passed
@jrob5756 jrob5756 deleted the feature/release-management branch March 4, 2026 00:28
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