feat(topology): master topology, runner map, agent teams (61 agents) - #937
Conversation
Master TOPOLOGY.md documenting 6 nodes, all services, DNS subdomains. 19 GitHub Actions workflows mapped to runners with failover strategy. 11 agent teams with 61 agents defined in agent-teams.yaml. Agent registry expanded with full team assignments. Updated CLAUDE.md with topology and runner strategy sections. Cloudflare wrangler config with KV namespace for runner routing. Includes submodule pointer updates from git submodule init/update. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (6)
📝 WalkthroughWalkthroughThis pull request expands system documentation and configuration by introducing comprehensive topology and runner strategy documentation, adding topology metadata to the agent registry, establishing a new agent-teams configuration file, updating deployment configurations, and refreshing multiple submodule pointers across the system. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~30 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
…d E2B MCP agent SECURITY: Revert hardcoded Cloudflare account_id and KV namespace ID to placeholder values — these should come from env vars or wrangler login. Also fixes: - PostgREST port 3000 annotated as container-internal (via Kong at 8000) - Grafana port corrected to 3002 (actual host port) - TensorZero node_affinity fixed to [kvm4-1, z890], team to infra - tts.pmoves.ai DNS route corrected to Z890 (GPU-bound service) - Added pmoves_e2b_mcp_server to agent registry - Clarified external team count (0 agents, 7 human contributors) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 13
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.claude/CLAUDE.md:
- Around line 515-516: Update the CI Runners list in .claude/CLAUDE.md to match
the canonical runner names from the source configs
(pmoves/configs/agent-teams.yaml and pmoves/config/agent_registry.yaml): replace
cloudstartup, kvm4, kvm2 with ai-lab, vps (or self-hosted where appropriate),
and keep ubuntu-latest; ensure the sentence mentioning routing via Cloudflare
Worker (`deploy/cloudflare/worker.js`) remains accurate and that the list
reflects the current live service map per the file's maintenance guideline.
In @.claude/context/runner-topology.md:
- Around line 18-20: Add a language label to the two fenced code blocks that
currently have no language identifier; update the block that contains "Internet
→ Cloudflare DNS → KVM2 (nginx/SSL) → KVM4-1 (API) or KVM4-2 (data)" and the
block that contains "GitHub event → CF Worker (analyzes files) → ai-lab (GPU) /
vps (Docker) / ubuntu-latest (light)" to use a language tag (e.g., add ```text)
so markdownlint MD040 is satisfied.
In `@Pmoves-cipher`:
- Line 1: The Pmoves-cipher submodule pointer references a non-existent commit
(873abb1bc17d9a78c0c9875926740ea760e2d70a); fix it by updating the Pmoves-cipher
submodule entry to point at a valid, pushed commit in that repository: inspect
the Pmoves-cipher repo to find the intended commit or branch tip, update the
submodule reference (the submodule named Pmoves-cipher) to that valid commit,
and commit the updated gitlink in the superproject so the pointer resolves for
others; ensure the referenced commit hash actually exists in the Pmoves-cipher
remote before pushing the change.
In `@PMOVES-tensorzero`:
- Line 1: The repo contains a gitlink for the submodule PMOVES-tensorzero
(commit 6b1bc23f540899764a9fcbc32ad85b4e24dbae47) but .gitmodules is missing an
entry; add a .gitmodules section for the submodule named "PMOVES-tensorzero"
with path = PMOVES-tensorzero, url =
https://github.com/POWERFULMOVES/PMOVES-tensorzero.git and branch =
PMOVES.AI-Edition-Hardened, commit and push the updated .gitmodules, then run
git submodule sync && git submodule update --init --recursive to ensure the
working tree and index are consistent.
In `@PMOVES-Ultimate-TTS-Studio`:
- Line 1: The PR points the PMOVES-Ultimate-TTS-Studio submodule at commit
26ca5a2acd238a21d5242a72fba3dbd24c5996d5 which does not exist in the submodule
repo and will break checkouts; fix by either pushing that missing commit to the
PMOVES-Ultimate-TTS-Studio repository (so the hash becomes available), or update
the submodule reference in the parent repo to a valid existing commit (e.g.,
using git submodule set-commit/checkout to a known-good commit and committing
the updated gitlink), then push the parent repo branch so the submodule pointer
matches an existing commit.
In `@pmoves/config/agent_registry.yaml`:
- Around line 319-323: The topology block for the agent in agent_registry.yaml
(fields topology, node_affinity, team, ci_runner, compose_profile) conflicts
with definitions in pmoves/configs/agent-teams.yaml (notably the tensorzero team
placement and sandbox runner/affinity expectations); update the canonical entry
in agent_registry.yaml to match the team-map values: set the team, node_affinity
and ci_runner to the values defined in agent-teams.yaml for the same agent
(remove or set compose_profile appropriately) so agent_registry.yaml remains the
single source of truth and resolves the drift with agent-teams.yaml.
In `@pmoves/configs/agent-teams.yaml`:
- Line 2: Remove the hardcoded total "61" from the comment string "Groups 61
agents into functional teams with node affinity and runner assignments." and any
other occurrences (e.g., the other comment at line 161) and replace with
count-neutral wording that defers to the registry as the source of truth (for
example "Groups agents into functional teams with node affinity and runner
assignments; agent count is defined in pmoves/config/agent_registry.yaml").
Update both occurrences and ensure the comment references
pmoves/config/agent_registry.yaml as the canonical source rather than embedding
a numeric total.
- Line 74: The Grafana port comment in the agent-teams config currently reads
"Port 3000" (the line with "- grafana # Port 3000 — Dashboards");
update that annotation to "Port 3002" to match the master topology documented in
TOPOLOGY.md (line 53), and verify any other grafana port references in this file
match the topology to keep operator-facing docs consistent.
- Around line 133-140: The team list in pmoves/configs/agent-teams.yaml (entries
like e2b_danger_room, e2b_desktop, e2b_spells, danger_infra, surf, agentgym,
agentgym_rl) has diverged from the canonical agent definitions in
pmoves/config/agent_registry.yaml; update the sandbox roster so each agent maps
to exactly one team per the registry (replace or remove agentgym and agentgym_rl
and add the registry-backed team e.g. pmoves_e2b_mcp_server where appropriate),
and make the same corrections for the other block mentioned (lines around
161-176) so both lists exactly match the registry entries.
In `@pmoves/docs/operations/TOPOLOGY.md`:
- Line 15: Update the KVM4-1 row in TOPOLOGY.md so its runner label column
matches the runner mapping used in this PR: include both `self-hosted, vps,
kvm4, production` and the additional labels `self-hosted, cloudstartup, staging`
(e.g., combine or list both sets for KVM4-1). Edit the table row that contains
the identifier "KVM4-1" to add the missing `cloudstartup` and `staging` labels
to the existing labels, and then re-check the runner mapping in the PR to ensure
the doc now exactly mirrors the labels used by the KVM4-1 runner mapping.
- Line 51: The NATS health endpoint in the TOPOLOGY table is malformed
(`http://:8222/varz`); update the URL to a valid host form such as using a
placeholder or localhost (e.g., `http://localhost:8222/varz` or
`http://<nats-host>:8222/varz`) so the NATS row (label "NATS" and the ports
`4222 / 9222 (WS)`) shows a correct, actionable health endpoint.
In `@pmoves/docs/operations/WORKFLOW_RUNNER_MAP.md`:
- Line 34: Update the abbreviated runner labels in the WORKFLOW_RUNNER_MAP table
row for "**Self-Hosted Builds**" (and the similar entries around the later block
covering lines 72–77) to match the actual workflow label sets used by the
referenced workflows (e.g. replace `ai-lab, gpu` and `self-hosted, Linux, X64`
with the full sets `self-hosted, Linux, X64, ai-lab, gpu` and replace
`cloudstartup, staging` with `self-hosted, cloudstartup, staging`), ensure the
`self-hosted-builds.yml` workflow name and any other workflow names in the same
table show the full comma-separated labels, and keep the wording consistent so
ops/triage use the exact labels used in the workflows.
- Around line 68-78: The fenced code block showing the workflow map is missing a
language identifier which triggers markdownlint MD040; update the opening fence
for that block (the triple backticks immediately before "Push to main") to
include a language tag such as text (i.e. change ``` to ```text) so the block is
explicitly marked as plain text—no other content changes required.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: ddc10461-84c4-41cd-b8b3-3c917a85fd4f
📒 Files selected for processing (29)
.claude/CLAUDE.md.claude/context/runner-topology.mdPMOVES-BotZ-gatewayPMOVES-Danger-infraPMOVES-E2B-Danger-RoomPMOVES-E2B-Danger-Room-DesktopPMOVES-E2b-SpellsPMOVES-HeadscalePMOVES-MAI-UIPMOVES-Pinokio-Ultimate-TTS-StudioPMOVES-PipecatPMOVES-TailscalePMOVES-Ultimate-TTS-StudioPMOVES-llama-throughput-labPMOVES-supabasePMOVES-surfPMOVES-tensorzeroPMOVES-transcribe-and-fetchPmoves-AgentGym-RLPmoves-Health-wgerPmoves-cipherPmoves-hyperdimensionsdeploy/cloudflare/wrangler.tomlpmoves-e2b-mcp-serverpmoves/config/agent_registry.yamlpmoves/configs/agent-teams.yamlpmoves/docs/operations/TOPOLOGY.mdpmoves/docs/operations/WORKFLOW_RUNNER_MAP.mdpmoves/integrations/archon
…unner labels, count-neutral comments Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Summary
TOPOLOGY.mddocumenting 6 nodes, all services, DNS subdomains, and network routesagent-teams.yamlCLAUDE.mdwith topology and runner strategy sectionsgit submodule init/updateFiles Changed
pmoves/docs/operations/TOPOLOGY.md— master topology document (new)pmoves/docs/operations/WORKFLOW_RUNNER_MAP.md— runner mapping (new)pmoves/configs/agent-teams.yaml— 11 teams, 61 agents (new)pmoves/config/agent_registry.yaml— expanded agent registry.claude/context/runner-topology.md— condensed topology context (new).claude/CLAUDE.md— topology section additionsdeploy/cloudflare/wrangler.toml— KV namespace configTest plan
yamllint agent-teams.yaml agent_registry.yaml)npx wrangler deploy --dry-run)🤖 Generated with Claude Code
Summary by CodeRabbit
Documentation
New Features
Chores