diff --git a/.cursor/skills/agent-pool/SKILL.md b/.cursor/skills/agent-pool/SKILL.md index 477ddd46..381e27b2 100644 --- a/.cursor/skills/agent-pool/SKILL.md +++ b/.cursor/skills/agent-pool/SKILL.md @@ -11,7 +11,7 @@ description: >- # Agent pool — operação do supervisor remoto -O pool mantém até **5 Cursor Cloud Agents** (configurável, máx 8) rodando `work-issue` sobre Issues `ready` elegíveis para autonomia. O supervisor é **determinístico** (não é um agente): workflow **`.github/workflows/agent-pool.yml`** (tick stateless a cada 10 min + a cada merge em `main` + sob dispatch) rodando `scripts/agent-pool.mjs`. Arquitetura e elegibilidade: `docs/plans/agent-pool-orchestrator.md`. +O pool mantém até **5 Cursor Cloud Agents** (configurável, máx 12) rodando `work-issue` sobre Issues `ready` elegíveis para autonomia. O supervisor é **determinístico** (não é um agente): workflow **`.github/workflows/agent-pool.yml`** (tick stateless a cada 10 min + a cada merge em `main` + sob dispatch) rodando `scripts/agent-pool.mjs`. Arquitetura e elegibilidade: `docs/plans/agent-pool-orchestrator.md`. **O pool NUNCA deploya** — deploy gated fica em `ci.yml` após merge em `main`. @@ -112,4 +112,4 @@ Os wrappers disparam `gh workflow run agent-pool.yml -f action=…`; acompanhe c ## Se algo quebrar - `tick` vermelho no Actions: ler o log do job — gh sem `actions:write` (permissões do workflow), `CURSOR_API_KEY` ausente/errada, ou API da Cursor fora. O tick seguinte re-tenta; nada fica em estado intermediário perigoso (claim revertido em falha de spawn). -- "You’ve reached the limit" no spawn: arquivar agents antigos em cursor.com/agents (cap do plano: 8 simultâneos no Pro; o pool usa ≤5 para deixar margem a humanos). +- "You’ve reached the limit" no spawn: arquivar agents antigos em cursor.com/agents (cap do plano Cursor; o pool hard-clamp é 12 e o default é 5 — margem a humanos e a outros agents). diff --git a/docs/CHANGELOG-AGENTS.md b/docs/CHANGELOG-AGENTS.md index f78fc0cc..3b06b438 100644 --- a/docs/CHANGELOG-AGENTS.md +++ b/docs/CHANGELOG-AGENTS.md @@ -4,6 +4,8 @@ Conteúdo movido do `AGENTS.md` em 2026-07-30 (fatiamento do paradigma de agente --- +**Recently resolved (2026-08-02):** **Agent pool hard max → 12** — `POOL_HARD_MAX_SLOTS` de 8 → 12 (`scripts/lib/agent-pool-state.mjs`); default continua 5. Skill `agent-pool` alinhada. + **Recently resolved (2026-08-01):** **B102** (Issue #129) — crash na busca do bottom drawer (focus/digitação): `TooltipProvider` do layout `(app)` envolvia só `{children}` e o drawer (irmão do scrollport) renderizava hits `priority:alta` via `CampaignHoverTooltip` sem provider. Fix: provider envolve `CampaignAppScrollChrome`; pins unit focus→suggest e type→search. Plano: [`crash-busca-bottom-drawer.md`](docs/plans/crash-busca-bottom-drawer.md). **Recently resolved (2026-08-01):** **Pool pin `fast=false`** — `resolvePoolModel` agora envia `fast=false` em todo spawn cuja família Cloud anuncia o param (`composer-2.5`, `grok-4.5`, …). Antes o supervisor pedia só `{ id: "composer-2.5" }`; a API Create-Agent resolve o default da variante (`fast=true`) e o usage dashboard mostrava `composer-2.5-fast` em todos os workers do pool. Skills `model-selection` / `agent-pool` + plano do orquestrador atualizados. diff --git a/docs/plans/agent-pool-orchestrator.md b/docs/plans/agent-pool-orchestrator.md index 57719820..6d089d4e 100644 --- a/docs/plans/agent-pool-orchestrator.md +++ b/docs/plans/agent-pool-orchestrator.md @@ -474,10 +474,11 @@ EXPIRED`, com `git.branches[].prUrl`. SSE stream existe mas não é necessária Webhooks v1: "coming soon" — o trigger `pull_request` closed do GHA cobre o evento de merge. 3. **Validação de modelos:** `GET /v1/models` retorna ids, aliases e `params` aceitos (ex.: `composer-2` + `fast`). O mapeamento repo→API é codificado na Fase 0/2. -4. **Limites de concorrência:** plano Pro = **8 agentes simultâneos** (staff Cursor, forum +4. **Limites de concorrência:** plano Pro historicamente = **8 agentes simultâneos** (staff Cursor, forum 2026-04-16); múltiplos agentes no mesmo repo são permitidos; bug de agentes fantasma no contador corrigido em 2026-06-17 — remediação: arquivar em cursor.com/agents (o tick já - arquiva terminais). Cap 5 deixa 3 slots para humanos. + arquiva terminais). Soft default do pool = 5; hard clamp `POOL_HARD_MAX_SLOTS` = **12** + (2026-08-02) — spawn falha fechado se o plano Cursor estiver abaixo. Fonte: . 5. **Branches por worker:** o agente Cloud trabalha em branch própria gerada a partir de `startingRef` (`workOnCurrentBranch: false`, default) — exatamente o modelo `agent/-` diff --git a/scripts/lib/agent-pool-state.mjs b/scripts/lib/agent-pool-state.mjs index 36e52b30..08bbf5d4 100644 --- a/scripts/lib/agent-pool-state.mjs +++ b/scripts/lib/agent-pool-state.mjs @@ -18,9 +18,9 @@ export const POOL_VARIABLE_NAMES = { } export const POOL_DEFAULT_MAX_SLOTS = 5 -// Cursor Pro allows 8 concurrent cloud agents (plan §14); the pool leaves the -// remaining slots for human sessions. -export const POOL_HARD_MAX_SLOTS = 8 +// Operator ceiling for POOL_MAX_SLOTS (parsePoolConfig clamps into 1..this). +// Cursor plan concurrency can be lower — spawn fails closed with the API limit. +export const POOL_HARD_MAX_SLOTS = 12 /** * @param {Record} [vars] raw `gh api` variable map