Repository navigation
feat(sidebar): indicador de recursos do PC (CPU, memória, disco, swap) e consumo por projeto - #22
Merged
Merged
Conversation
…isco do PC e dos painéis Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…o no projeto pesado Linha com CPU, memória, disco e swap de cada PC (vermelho a partir de 90%), lista dos projetos que mais consomem ao clicar e aviso na linha do projeto que passa de metade da CPU ou um quarto da memória do PC. GLPI devswha#269. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… cache e PID reutilizado - PC remoto com ponte anterior responde 401/403 (a rota não é de ponte lá): vale como sem suporte; volta a perguntar quando o PC reconecta. - Painel sem shell_pid não repete pane.process_info a cada leitura (10 s). - O shell em cache confere também a hora de início, e um filho mais velho que o pai não entra na árvore (órfão do Windows com PID reaproveitado). - CPU depois de mais de 20 s sem leitura sai como desconhecida. - system/resources na lista de rotas aceitas do teste do proxy. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…afastadas As tabelas do PowerShell ficam 10–25 s uma da outra (cache, execução lenta, poll do cliente); com o corte de 20 s a CPU alternava para — justo com o PC pesado. Comentário ponytail sobre o 401 passageiro que deixa a linha parada. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ndarem Na CI as duas leituras ficavam a 4 ms reais uma da outra (o relógio do teste é falso) e a CPU do PC saía null. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gianlukamoraes
marked this pull request as ready for review
October 21, 2026 23:19
gianlukamoraes
added a commit
that referenced
this pull request
Oct 22, 2026
* feat(sidebar): memória e CPU de cada agente na lista Agentes Cada linha da lista Agentes abre a segunda linha com a memória do painel do agente (o shell e tudo abaixo dele, já medido pela rota de recursos do #22). Passando dos limites do projeto pesado (50% da CPU do PC ou um quarto da memória), ganha o triângulo, a CPU e o vermelho. A dica mostra CPU e memória sempre. GLPI devswha#280. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs(changelog): memória e CPU por agente Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs(changelog): link do PR #23 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(sidebar): CPU do agente limitada a 100%, número lido por leitor de tela e CSS sem desfazer regra - A soma dos processos do painel pode passar de 100%; o projeto já limitava. - O número desenhado fica aria-hidden e a frase "Este agente: CPU … · memória …" vai como texto oculto, para o leitor de tela não ler "1,2 GB" solto. - .resource-agent deixa de herdar a regra do .resource-heavy só para desfazê-la. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat(sidebar): linha do agente mostra a CPU sempre, não só quando pesa Escolha do Gianluka (opção b): "3% · 1,2 GB" em toda linha; o vermelho e o triângulo continuam só para o agente pesado. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Chamado GLPI devswha#269: "mostrar os indicadores de recursos de máquina, como CPU, Memória, Disco, SWAP. Pois às vezes a máquina trava e o usuário não sabe o motivo".
Implementa a opção 3 do mockup aprovado pelo Gianluka: https://vm-gianluka.tailce96ef.ts.net/shared/devda-recursos-mockup.html
Prints da implementação (demo, números fictícios): https://vm-gianluka.tailce96ef.ts.net/shared/devda-recursos-implementado.html
O que muda
titlemostra o usado e o total em GB.Server:
GET /api/system/resources[?panes=a,b]/api/machines/<id>/(proxy allowlist) e por/api/machines/local/. Responde só números e os pane IDs pedidos; os IDs são validados ([\w.:-], no máximo 200).os.cpus(). Memória e swap vêm de/proc/meminfono Linux (MemAvailable) e deos.totalmem/freememnas outras plataformas. Disco é ostatfsda home.pane.process_info(compane_id) dá oshell_pid, guardado em cache por painel; o herdr é consultado de novo só quando o pid some da tabela. Por painel soma-se a árvore de processos: CPU (delta de utime+stime) e RSS. Linux:/proc/*/stateVmRSS. Windows: um único PowerShell (Win32_PageFileUsage+Win32_Process, só números), com cache de 10 s, uma execução por vez e timeout de 10 s com SIGKILL. A primeira leitura depois do start espera o PowerShell (no máximo 10 s); daí em diante o valor antigo é servido enquanto renova. macOS: sem swap nem painéis.Testes
server/resources.test.ts: os parsers (meminfo,/proc/statcom parênteses no nome, saída do Windows), CPU por processo, árvore de processos, soma real da árvore deste processo no Linux, cache de 2 s, IDs inválidos e limite de 200, um PowerShell por vez (3 chamadas → 1 spawn), timeout (um comando travado volta em < 3 s), 401 sem token (também por/api/machines/local/), resposta sem nenhuma string além dos pane IDs, 405 para POST.src/lib/resources.test.ts: agrupamento por projeto, ordenação, limiar de "pesado", "fora dos projetos", formatação.bun run check fast: ok (typecheck, build, 2191 testes).Também no PR
site/demo/transport.tsresponde a rota com números fictícios, para a demo não dar 404.t(), por ser sigla; "Swap" entrou na lista de termos iguais de propósito doi18n.test.ts.design-system/: componente novoMachineResources(README + preview +bundle.css) eRosterRowatualizado.Limites conhecidos
ponytail:emprocessCpu).🤖 Generated with Claude Code