Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Let channel agents inspect compute usage and request bounded resizing

Aberta
#414 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
12/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
typescript

Direção de pesquisa

Start with the manual HTTP resize path in services/compute, which switches between standard-1 and standard-4 via checkpoint, destroy, start, restore and reconnect, and with the idle-only resize operation it calls. Then look at packages/channel to see where an agent-facing tool would sit without adding provider-specific logic. Done means the agent can read current size and usage, a policy-allowed request is durably queued and applied between runs, and out-of-policy or repeated requests leave compute unchanged.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Follow-up to #216 and the services/compute pilot.

The pilot exposes manual HTTP resizing among standard-1 through standard-4. Resizing requires an idle channel and performs checkpoint → destroy → start → restore → reconnect. Agents currently have neither resource measurements nor a tool for requesting a different allocation.

Add an agent-facing capability to inspect the current allocation and request a supported size within an operator-defined policy. Keep provider-specific allocation and lifecycle operations in the compute adapter; packages/channel must remain runtime-neutral.

Acceptance:

  • Report current size and measured CPU, memory, and filesystem usage, with a sampling window and unavailable metrics identified. Include evidence of resource exhaustion when the runtime supplies it; a generic command failure alone is not a sizing measurement.
  • Let the operator configure allowed sizes, a maximum size, and a cooldown/attempt limit. Requests within that policy need no per-change approval. Reject unsupported or out-of-policy requests before changing compute.
  • Handle the active-run boundary explicitly. For the first implementation, durably queue a request and apply it after the requesting run ends and the channel is idle; do not call the current idle-only resize operation from a busy tool and report success. Report requested, pending, applied, and failed outcomes accurately, with idempotent request handling.
  • Use the existing checkpoint/restore path and process-quiescence rules. A failed checkpoint or restart must retain recoverable filesystem state and surface the failure rather than repeatedly requesting larger machines.
  • Make the resulting allocation and resize outcome visible to the next run. Preserve the channel identity and lanes, and keep pi authoritative for agent work.
  • Validate with a real resource-constrained workload: inspect the measurements, request an allowed larger size, restore the dirty lane, and continue the workload successfully. Also verify an out-of-policy request and a repeated request do not change compute.

This starts with measured, bounded requests and resizing between runs. Automatic cost optimization, live process migration, and a desktop sizing UI are separate work.

Linguagem predominante
TypeScript
Estrelas
1
Forks
0
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

  • Sem Dockerfile nem arquivo Docker Compose
  • Tem um modelo de pull request
  • Sem guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de githubnext/ace2

Todas as issues de githubnext/ace2

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.