Skip to content

Refina a tela inicial e o Sobre, atualiza dependências e adota o oxlint [skip release] - #43

Closed
paulocarinhena wants to merge 3 commits into
mainfrom
feat/tela-inicial-sobre-oxlint
Closed

paulocarinhena wants to merge 3 commits into
mainfrom
feat/tela-inicial-sobre-oxlint

Conversation

@paulocarinhena

Copy link
Copy Markdown
Contributor

Resumo

Tela inicial

  • A linha inteira do repositório abre ao clicar (antes só o nome); botões e menu da linha continuam independentes.
  • A coluna de status mostra o último commit (mensagem + há quanto tempo) em vez de repetir "Em dia com origin/main".
  • Ações aparecem no hover sobrepostas ao fim da linha, sem reservar coluna vazia; pílula de destaque no hover, como nas outras listas.
  • Pastas: contador em selo, linha divisória e cabeçalho fixo durante a rolagem.
  • Painel esquerdo: seção Abertos recentemente (3 últimos, com estado e tempo), marca sem subtítulo, e rodapé com a conta desenhada como HEAD de um ramo que mostra o último commit de cada repositório nos últimos 60 dias; Mensagens, Configurações e Sobre viraram ícones na linha da conta.

Sobre

Refeita como um repositório git: histórico em grafo com o app como HEAD; atualizações desenhadas como origin/main (ramo laranja para versão nova, preenchido em azul durante o download, verde quando pronto); cartão no formato git log -1 com o hash real do build (__BUILD_COMMIT__); links para repositório, novidades, licença e issues.

Dependências

electron 45.3.2, vite 8.3.8, tailwind 4.3.5, lucide-react 1.73, zustand 5.1, @vitejs/plugin-react 6.3 e tipos do React. npm audit: 0 vulnerabilidades.

Lint

  • oxlint (npm run lint, .oxlintrc.json) com React, TypeScript, jsx-a11y, import e unicorn.
  • Passo Lint no gitweb-build.yml: erros bloqueiam, avisos (121 hoje) só aparecem no log.
  • Corrige os 15 erros da primeira rodada (imports/variáveis sem uso, regex → startsWith, spreads desnecessários); 3 exceções intencionais marcadas com justificativa.

Release

O título leva [skip release] de propósito: o merge não publica versão. O release fica para quando for decidido.

Verificação

  • npm run typecheck, npm run lint (0 erros), npm test (337 testes) e npm run build passando.
  • Telas conferidas no app em modo dev. O estado de download do Sobre só ocorre na versão instalada e não foi visto rodando.

🤖 Generated with Claude Code

paulocarinhena and others added 3 commits November 14, 2026 16:43
…nt [skip release]

Tela inicial: a linha inteira do repositório abre ao clicar; a coluna de
status mostra o último commit e há quanto tempo; ações aparecem no hover sem
reservar espaço; pastas com contador em selo, linha divisória e cabeçalho fixo.
Painel esquerdo: seção "Abertos recentemente", marca sem subtítulo e rodapé com
a conta como HEAD de um ramo que mostra a atividade dos repositórios, com
mensagens, configurações e sobre como ícones.

Sobre: refeita como um repositório git — histórico em grafo, o app como HEAD,
atualizações como origin/main (fork, pull e fast-forward), cartão no formato
git log -1 com o hash real do build e links do projeto.

Dependências: electron 45.3.2, vite 8.3.8, tailwind 4.3.5, lucide, zustand,
plugin-react e tipos do React. npm audit sem vulnerabilidades.

Lint: oxlint com React, TypeScript, jsx-a11y, import e unicorn; erros bloqueiam
no CI, avisos ficam no log. Corrige os 15 erros da primeira rodada.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Correções de verdade:
- Diálogos: o fundo só fecha quando o clique cai nele mesmo, sem
  stopPropagation no painel (13 diálogos).
- Separadores de menu viram <hr>; menus e tablist ganham tabIndex={-1};
  o menu de contexto de conflito fica no botão focável (abre pelo teclado).
- ChatAvatar: prop role -> speaker (era lida como papel ARIA).
- Erros relançados levam { cause }; imagem usa addEventListener.
- Refs de "valor mais recente" passam a ser gravadas em useLayoutEffect.
- Paginação de Histórico e PRs: reset no render e página derivada, sem efeito.
- Combobox e DiffViewer: reset por mudança decidido no render.
- AiSettingsForm: efeito depende só do provedor ativo.
- RepoInsights mede a largura no hover; RefChips não chama mais a variável de ref.
- ChangesView: dependência que faltava no efeito de seleção.

Exceções justificadas na linha (padrões intencionais): carregamentos via IPC,
reset de formulário ao abrir diálogo, medição de DOM, gráfico explorável por
teclado, autofocus do campo de nova branch e concatenações que despistam
scanners de segredos.

Config: exceções de ul/li para listbox/option iguais às do jsx-a11y
recomendado; regras exclusivas do React Compiler desligadas (o projeto não o usa).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… do diff, Configurações e Colaboradores [skip release]

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@paulocarinhena

Copy link
Copy Markdown
Contributor Author

Substituído por #44 (dependências), #45 (lint) e #46 (interface), que separam este trabalho por tipo e já estão na main.

@paulocarinhena
paulocarinhena deleted the feat/tela-inicial-sobre-oxlint branch November 14, 2026 20:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant