sloop-daemon 0.5.0

Agentic coding scheduler — a daemon that runs background coding agents autonomously in isolated git worktrees
Documentation
name: Publish crates.io

on:
  workflow_call:
    inputs:
      plan:
        required: true
        type: string

permissions:
  contents: read

jobs:
  cargo-publish:
    runs-on: ubuntu-22.04
    steps:
      - name: Check out repository
        uses: actions/checkout@v6
        with:
          persist-credentials: false
      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable
      - name: Publish crate
        shell: bash
        env:
          CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_TOKEN }}
        run: |
          set -euo pipefail

          version="$(
            cargo metadata --no-deps --format-version=1 |
              jq -r '.packages[] | select(.name == "sloop-daemon") | .version'
          )"
          test -n "$version"

          status="$(
            curl --silent --show-error \
              --header "User-Agent: sloop release workflow (https://github.com/hamish-mackie/sloop)" \
              --output "$RUNNER_TEMP/crates-io-response.json" \
              --write-out '%{http_code}' \
              "https://crates.io/api/v1/crates/sloop-daemon/$version"
          )"

          case "$status" in
            200)
              echo "sloop-daemon $version is already published"
              ;;
            404)
              cargo publish --locked -p sloop-daemon
              ;;
            *)
              cat "$RUNNER_TEMP/crates-io-response.json"
              exit 1
              ;;
          esac