diff --git a/.agents/agent-workflow.yml b/.agents/agent-workflow.yml index 18ccd0e0..fd5a12ab 100644 --- a/.agents/agent-workflow.yml +++ b/.agents/agent-workflow.yml @@ -1,18 +1,5 @@ --- base_branch: master -merge_submission: - mode: direct -trusted_actions: - - actions/checkout - - actions/github-script - - actions/setup-node - - anthropics/claude-code-action - - browser-actions/setup-chrome - - coactions/setup-xvfb - - docker/setup-buildx-action - - ruby/setup-ruby - - shakacode/control-plane-flow - - shakacode/react_on_rails follow_up_prefix: 'Follow-up:' review_gate: n/a approval_exempt: n/a @@ -23,4 +10,19 @@ merge_ledger: n/a ci_parity_environment: n/a hosted_ci_trigger: n/a ci_change_detector: n/a +autonomous_merge: {} +merge_submission: + mode: direct +trusted_actions: +- actions/checkout +- actions/github-script +- actions/setup-node +- anthropics/claude-code-action +- browser-actions/setup-chrome +- coactions/setup-xvfb +- docker/setup-buildx-action +- ruby/setup-ruby +- shakacode/control-plane-flow +- shakacode/react_on_rails repo_prefix: RWRT + diff --git a/.agents/bin/README.md b/.agents/bin/README.md index d4d13511..c0694001 100644 --- a/.agents/bin/README.md +++ b/.agents/bin/README.md @@ -1,17 +1,17 @@ # Agent Workflow Scripts - - -Standard entry points that portable agent-workflow skills call. A script that -is absent means that capability is n/a in this repository. +Standard entry points that portable agent-workflow skills call, so a skill can +run `.agents/bin/` in any repo without knowing this repo's specific +commands. Each script is a thin, repo-owned wrapper. A script that is **absent** +means that capability is n/a here. | Script | Purpose | This repo runs | | --- | --- | --- | -| `setup` | Install dependencies | `bin/conductor-exec bin/setup --skip-server` | -| `validate` | Pre-push gate | `bin/conductor-exec bin/rubocop` | -| `test` | Run tests | `bin/conductor-exec bin/ci` | -| `lint` | Lint / format | `bin/conductor-exec yarn lint:eslint` | -| `build` | Build / type-check | generate React on Rails packs, build ReScript, then `bin/conductor-exec yarn build:test` | +| `setup` | Install dependencies | `exec bin/conductor-exec bin/setup --skip-server "$@"` | +| `validate` | Pre-push gate | `exec bin/conductor-exec bin/rubocop "$@"` | +| `test` | Run tests | `renderer_port="${RENDERER_PORT:-3800}" + if [[ -n "${RENDERER_PORT:-}" && -z "${RENDERER_URL:-}" ]]; then + export RENDERER_URL="http://localhost:$renderer_port" + fi + renderer_started=false + renderer_pid='' + cleanup_renderer() { + local status=$? + if [[ "$renderer_started" == true ]] && kill -0 "$renderer_pid" 2>/dev/null; then + kill "$renderer_pid" 2>/dev/null || true + wait "$renderer_pid" 2>/dev/null || true + fi + exit "$status" + } + trap cleanup_renderer EXIT + bin/conductor-exec bin/setup --skip-server + if nc -z localhost "$renderer_port" 2>/dev/null; then + echo "Reusing existing Node renderer on port $renderer_port." + else + bin/conductor-exec node renderer/node-renderer.js & + renderer_pid=$! + renderer_started=true + echo "Waiting for Node renderer (PID $renderer_pid) on port $renderer_port..." + for _ in $(seq 1 30); do + if ! kill -0 "$renderer_pid" 2>/dev/null; then + echo "Node renderer exited unexpectedly (see output above)." >&2 + exit 1 + fi + if nc -z localhost "$renderer_port" 2>/dev/null; then + break + fi + sleep 1 + done + if ! nc -z localhost "$renderer_port" 2>/dev/null; then + echo "Node renderer failed to start on port $renderer_port within 30 seconds (see output above)." >&2 + exit 1 + fi + fi + bin/conductor-exec bin/ci` | +| `lint` | Lint / format | `exec bin/conductor-exec yarn lint:eslint "$@"` | +| `build` | Build / type-check | `exec bin/conductor-exec yarn build:test "$@"` | | `docs` | Docs checks | n/a | | `ci-detect` | CI change detector | n/a |