feat(cli): migrate queue/* commands to control protocol (C6.6 of v0.4… #14
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Protocol Drift | |
| # Fails fast if the in-tree `animus-plugin-protocol` crate diverges from the | |
| # published `launchapp-dev/animus-protocol` crate. Plugin authors depend on | |
| # the published crate, so any in-tree-only addition that hasn't yet shipped | |
| # as a standalone release means plugins built against the published crate | |
| # can send wire shapes the in-tree host won't understand — or vice versa. | |
| # | |
| # The job clones the standalone repo at the pinned tag, exports the path to | |
| # its `animus-plugin-protocol/src/lib.rs`, and runs the | |
| # `crates/orchestrator-plugin-host/tests/protocol_drift.rs` integration test. | |
| # That test parses both crates with `syn`, extracts their public surface, | |
| # and panics if anything diverges that isn't on its `expected_in_tree_only` | |
| # allowlist. | |
| on: | |
| pull_request: | |
| push: | |
| branches: [main] | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: protocol-drift-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| drift: | |
| name: protocol drift check | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| env: | |
| CARGO_TERM_COLOR: always | |
| # Pinned tag for the published animus-plugin-protocol crate. Bump this | |
| # when a new standalone release ships; the in-tree crate is expected | |
| # to match the surface at this tag (modulo entries the test's | |
| # `expected_in_tree_only` allowlist documents as pending-release). | |
| STANDALONE_TAG: v0.1.1 | |
| steps: | |
| - name: Checkout ao-cli (in-tree protocol) | |
| uses: actions/checkout@v4 | |
| with: | |
| path: ao-cli | |
| - name: Checkout animus-protocol (standalone) | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: launchapp-dev/animus-protocol | |
| ref: ${{ env.STANDALONE_TAG }} | |
| path: animus-protocol | |
| - name: Verify standalone lib.rs is present | |
| run: | | |
| set -euo pipefail | |
| STANDALONE_LIB="$GITHUB_WORKSPACE/animus-protocol/animus-plugin-protocol/src/lib.rs" | |
| if [ ! -f "$STANDALONE_LIB" ]; then | |
| echo "::error::standalone animus-plugin-protocol/src/lib.rs not found at $STANDALONE_LIB" | |
| exit 1 | |
| fi | |
| echo "Resolved standalone lib.rs at $STANDALONE_LIB" | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache Cargo build artifacts | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: ao-cli | |
| - name: Run protocol drift test | |
| working-directory: ao-cli | |
| env: | |
| ANIMUS_STANDALONE_PROTOCOL_PATH: ${{ github.workspace }}/animus-protocol/animus-plugin-protocol/src/lib.rs | |
| run: | | |
| cargo test --locked -p orchestrator-plugin-host --test protocol_drift -- --nocapture |