Skip to content

Add release pipeline: launchd runtime, deploy scripts, release workflow - #4

Merged
selfcontained merged 1 commit into
mainfrom
feat/release-scripts
Mar 10, 2026
Merged

Add release pipeline: launchd runtime, deploy scripts, release workflow#4
selfcontained merged 1 commit into
mainfrom
feat/release-scripts

Conversation

@selfcontained

Copy link
Copy Markdown
Owner

Summary

  • bin/install-launchd — clones repo to ~/.dispatch/server/, builds, installs launchd service; --port flag for running on a custom port (e.g. --port 6767)
  • bin/uninstall-launchd — unloads and removes plist
  • bin/dispatch-deploy <tag|--latest> — deploys a verified tag to the server directory, reloads launchd, health checks; auto-rollback to previous tag on failure with detailed failure log at ~/.dispatch/logs/last-release-failure.log
  • bin/dispatch-release <patch|minor|major> — triggers GitHub Actions release workflow, waits, reads produced tag, calls dispatch-deploy; spawns diagnosis agent on workflow failure (not deploy failure, since Dispatch may be down then)
  • .github/workflows/release.yml — manual workflow_dispatch with version input; runs full CI, bumps both package.json files, commits, tags, pushes, creates GitHub Release
  • DISPATCH_PORT replaces PORT as primary env var (PORT kept as fallback)
  • docker-compose.yml — rename hostess-postgresdispatch-postgres (applied during migration, not automatically)
  • src/config.ts — reads DISPATCH_PORT first, updated hostess defaults to dispatch

Migration plan (after merge)

  1. bin/install-launchd --port 6767 — starts new launchd instance alongside existing tmux instance
  2. Verify on port 6767
  3. pg_dump from hostess-postgres
  4. Start dispatch-postgres on 5433, restore dump
  5. Update ~/.dispatch/server/.env DATABASE_URL to dispatch on 5433, reload launchd
  6. Stop hostess-postgres, move dispatch to 5432, reload
  7. Stop tmux instance whenever ready

Test plan

  • CI passes on this PR
  • bin/install-launchd --port 6767 starts successfully
  • Health check passes on 6767
  • Agent spawned from 6767 instance has full tool access

🤖 Generated with Claude Code

Runtime:
- Replace tmux with launchd as the process manager (auto-restart, survives
agent accidents, full shell environment via zsh -il wrapper)
- bin/install-launchd: clones repo to ~/.dispatch/server/, builds, generates
plist, supports --port flag for running multiple instances
- bin/uninstall-launchd: unloads and removes plist
Deployment:
- bin/dispatch-deploy <tag|--latest>: checks out verified tag in server dir,
builds, reloads launchd, health checks with auto-rollback on failure,
writes detailed failure log to ~/.dispatch/logs/last-release-failure.log
- bin/dispatch-release <patch|minor|major>: triggers GitHub Actions release
workflow, waits for completion, reads produced tag, calls dispatch-deploy;
spawns diagnosis agent on workflow failure
CI/Release workflow:
- .github/workflows/release.yml: manual workflow_dispatch with version input;
runs full CI, bumps version in both package.json files, commits, tags,
pushes, creates GitHub Release
Config/infra cleanup:
- DISPATCH_PORT replaces PORT as primary env var (PORT kept as fallback)
- docker-compose.yml: rename hostess-postgres -> dispatch-postgres
- .env.example: update to dispatch naming, remove hostess references
- src/config.ts: read DISPATCH_PORT first, update hostess defaults to dispatch
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@selfcontained
selfcontained merged commit d658f40 into mainMar 10, 2026
1 check passed
@selfcontained
selfcontained deleted the feat/release-scripts branch March 10, 2026 00:53
selfcontained added a commit that referenced this pull request Jul 8, 2026
…s, seed data
- Restyle feedback items as bordered cards with visual separation (#5)
- Clip long file paths from the left using direction:rtl so filenames stay visible (#1)
- Add framer-motion AnimatePresence expand/collapse on feedback item detail (#3)
- Dim file links not found in current diff with tooltip fallback (#2)
- Fix file navigation to only scroll when target file exists in diff (#2)
- Add review seed data with resolved/pending items and thread messages (#4)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for freeto 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

@selfcontained