Update local Claude settings with new tool permissions #6
release.yml
on: push
Web UI Gates
42s
Matrix: build
Publish GitHub release (tags only)
Annotations
3 errors and 1 warning
|
Web UI Gates
Process completed with exit code 1.
|
|
src/ci/workflow-gates.test.ts > web gui release workflow gates > documents multi-binary release artifact contract in README:
crates/orchestrator-web-server/web-ui/src/ci/workflow-gates.test.ts#L184
AssertionError: expected '# AO — Agent Orchestrator CLI\n\nRust…' to contain 'always builds release archives for `a…'
- Expected
+ Received
- always builds release archives for `ao`, `agent-runner`, `llm-cli-wrapper`
+ # AO — Agent Orchestrator CLI
+
+ Rust-only CLI for orchestrating AI agent workflows. Manages tasks, requirements, multi-phase workflows, and concurrent agent execution through a unified command-line interface.
+
+ ## Quick Start
+
+ ```bash
+ # Install (build from source)
+ cargo ao-bin-build-release
+
+ # Or run directly
+ cargo run -p orchestrator-cli -- --help
+
+ # Core commands
+ ao status # Project dashboard
+ ao task next # Get next task to work on
+ ao daemon start # Start background agent daemon
+ ao workflow run --task-id TASK-001 # Run workflow for a task
+ ```
+
+ ## Workspace Layout
+
+ 10-crate Rust workspace:
+
+ ```
+ crates/
+ ├── orchestrator-cli/ # Main `ao` binary (clap CLI, 24 top-level commands)
+ ├── orchestrator-core/ # Domain logic, state management, ServiceHub DI
+ ├── orchestrator-web-api/ # Web API business logic
+ ├── orchestrator-web-server/ # Axum web server + embedded static assets
+ ├── orchestrator-web-contracts/ # Shared web types
+ ├── protocol/ # Wire protocol types shared across all crates
+ ├── agent-runner/ # Standalone daemon managing LLM CLI processes via IPC
+ ├── llm-cli-wrapper/ # Abstraction over AI CLI tools (claude, codex, gemini, etc.)
+ └── oai-runner/ # OpenAI-compatible streaming API client
+ ```
+
+ ## Build & Test
+
+ ```bash
+ cargo ao-bin-check # Type-check all runtime binaries
+ cargo ao-bin-build # Build all runtime binaries (debug)
+ cargo ao-bin-build-release # Build all runtime binaries (release)
+ cargo test --workspace # Run all tests
+ cargo test -p <crate-name> # Run tests for a specific crate
+ ```
+
+ ## Build Footprint
+
+ Prefer narrow commands while iterating:
+
+ ```bash
+ cargo ao-bin-check
+ cargo test -p orchestrator-cli --test cli_smoke
+ ```
+
+ Workspace-wide debug and integration-test builds accumulate large `target/debug`
+ artifacts. The repo now uses leaner dev/test debuginfo settings to keep future
+ builds smaller, and includes a cleanup helper:
+
+ ```bash
+ scripts/cleanup-build-targets.sh --report
+ scripts/cleanup-build-targets.sh
+ scripts/cleanup-build-targets.sh --debug
+ scripts/cleanup-build-targets.sh --worktrees --days 7
+ ```
+
+ `ao git worktree prune` remains the right command for pruning managed git
+ worktree metadata; the cleanup script above only removes Rust build artifacts.
+
+ ## Command Overview
+
+ See `docs/reference/cli/index.md` for the full command tree with all flags.
+
+ | Group | Commands | Purpose |
+ |---|---|---|
+ | **Core** | `task`, `workflow`, `daemon`, `agent` | Task management, workflow execution, daemon lifecycle, agent runs |
+ | **Planning** | `vision`, `requirements`, `execute`, `architecture` | Project vision, requirements drafting, execution planning |
+ | **Operations** | `runner`, `output`, `errors`, `history` | Runner health, run output, error tracking, execution history |
+ | **Infrastructure** | `git`, `model`, `skill`, `mcp`, `web` | Git ops, model routing, skill packages, MCP server, web UI |
+ | **UX** | `status`, `setup`, `doctor`, `tui` | Dashboard, onboarding, diagnostics, terminal UI |
+ | **Review/QA** | `review`, `qa` | Review decisions, QA gate evaluation |
+
+ Global flags: `--json` (machine-readable output), `--project-root <PATH>` (override project root).
+
+ ## Self-Hosting Workflow
+
+ AO is built using AO. Task and requirement tracking is done through `ao` commands:
+
+ ```bash
+ ao requirements list # View requirements backlog
+ ao task prioritized # View prioritized tasks
+ ao task next # Get next task to work on
+ ao task status --id TASK-XXX --status in-progr
|
|
src/ci/workflow-gates.test.ts > web gui release workflow gates > fails closed in release workflow before publishing artifacts:
crates/orchestrator-web-server/web-ui/src/ci/workflow-gates.test.ts#L67
AssertionError: expected 'name: Release Binaries\n\non:\n push…' to match /publish:\s*\n[\s\S]*if:\s*starts…/tags\
- Expected:
/publish:\s*\n[\s\S]*if:\s*startsWith\(github\.ref,\s*'refs\/tags\/v'\)/
+ Received:
"name: Release Binaries
on:
push:
tags:
- \"v*\"
branches:
- \"version/**\"
workflow_dispatch:
inputs:
dry_run_note:
description: Optional context for manual non-publishing release validation.
required: false
type: string
permissions:
contents: read
jobs:
web-ui-gates:
name: Web UI Gates
runs-on: ubuntu-latest
timeout-minutes: 25
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: \"22.x\"
cache: npm
cache-dependency-path: crates/orchestrator-web-server/web-ui/package-lock.json
- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install web-ui dependencies
working-directory: crates/orchestrator-web-server/web-ui
run: npm ci
- name: Run web-ui tests
working-directory: crates/orchestrator-web-server/web-ui
run: npm run test
- name: Build web-ui bundle
working-directory: crates/orchestrator-web-server/web-ui
run: npm run build
- name: Run web-ui smoke E2E
id: smoke
working-directory: crates/orchestrator-web-server/web-ui
env:
SMOKE_ARTIFACT_DIR: ${{ github.workspace }}/crates/orchestrator-web-server/web-ui/.smoke-artifacts
run: npm run test:e2e:smoke
- name: Upload smoke diagnostics
if: failure()
uses: actions/upload-artifact@v4
with:
name: release-web-ui-smoke-failure-${{ github.run_id }}-${{ github.run_attempt }}
path: ${{ github.workspace }}/crates/orchestrator-web-server/web-ui/.smoke-artifacts
if-no-files-found: ignore
retention-days: 7
build:
name: Build (${{ matrix.target }})
runs-on: ${{ matrix.os }}
needs: web-ui-gates
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
archive_ext: tar.gz
- os: macos-15-intel
target: x86_64-apple-darwin
archive_ext: tar.gz
- os: macos-14
target: aarch64-apple-darwin
archive_ext: tar.gz
- os: windows-latest
target: x86_64-pc-windows-msvc
archive_ext: zip
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Build release binaries
shell: bash
run: |
cargo ao-bin-build-release --locked --target ${{ matrix.target }}
- name: Compute release version
id: version
shell: bash
run: |
if [[ \"${GITHUB_REF}\" == refs/tags/* ]]; then
VERSION=\"${GITHUB_REF_NAME}\"
else
BRANCH_SANITIZED=\"$(echo \"${GITHUB_REF_NAME}\" | sed -E 's/[^A-Za-z0-9._-]+/-/g; s/^-+//; s/-+$//')\"
if [[ -z \"${BRANCH_SANITIZED}\" ]]; then
BRANCH_SANITIZED=\"ref\"
fi
VERSION=\"${BRANCH_SANITIZED}-${GITHUB_SHA::7}\"
fi
echo \"value=${VERSION}\" >> \"${GITHUB_OUTPUT}\"
- name: Package artifact (unix)
if: runner.os != 'Windows'
shell: bash
env:
DRY_RUN_NOTE: ${{ github.event.inputs.dry_run_note || '' }}
run: |
set -euo pipefail
VERSION=\"${{ steps.version.outputs.value }}\"
TARGET=\"${{ matrix.target }}\"
STAGE_DIR=\"ao-${VERSION}-${TARGET}\"
mkdir -p \"${STAGE_DIR}\"
BINARIES=(ao agent-runner llm-cli-wrapper)
for binary in \"${BINARIES[@]}\"; do
cp \"target/${TARGET}/release/${binary}\" \"${STAGE_DI
|
|
Web UI Gates
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|