Skip to content

Releases: aronpc/ai-traffic-lights

v0.7.1 — auto-download de atualizações (AppImage)

Choose a tag to compare

@aronpc aronpc released this 14 Jul 01:53

Changed

  • Auto-download de atualizações (AppImage). O electron-updater agora baixa a
    nova versão automaticamente em segundo plano assim que a detecta
    (autoDownload = true) — antes ficava aguardando o usuário clicar em "↓". O
    indicador mostra o progresso (%) e, ao concluir, "↻ reiniciar" (1 clique para
    instalar; ou instala sozinho no próximo encerramento, via autoInstallOnAppQuit).

Fixed

  • Log do erro quando o electron-updater não carrega. O catch silencioso em
    setupAutoUpdater agora registra o motivo ([auto-update] require electron-updater falhou: ...). Antes, o bug de empacotamento da v0.6.8 (módulo ausente do
    app.asar) era invisível e a app caía no fallback "abrir release" sem nenhuma
    pista. A v0.7.0+ já empacota o módulo corretamente.

v0.7.0 — macOS install support + Claude lazy fetch

Choose a tag to compare

@aronpc aronpc released this 14 Jul 01:35

Added

  • Suporte a macOS (Apple Silicon). O app agora detecta sessões de agentes de IA
    no macOS (sem /proc): usa ps/osascript para listar processos e seus
    argumentos/ambiente, e AppleScript (System Events) para focar a aba do
    terminal. Lançamento de agentes em Terminal.app, Ghostty e Warp (URL
    scheme warp://launch/...), com scan de launchers em /Applications e
    ~/Applications. Tudo guardado por process.platform === 'darwin' — em Linux o
    fluxo via /proc existente permanece idêntico. (PR #30, Brayann Barbosa)
  • Installer dedicado para macOS (install_macos.sh), espelho do install.sh
    Linux. Build publica dmg + zip (arm64) no electron-builder.
  • Terminais adicionais suportados e entrypoint padronizado de agentes de IA
    na documentação — hooks de shell compatíveis com macOS e Linux, com parsing robusto
    do nome do processo.

Changed

  • Consumo do Claude agora é lazy (coleta sob demanda). O loop de fundo (60s)
    deixou de bater na API /api/oauth/usage do Claude — a chamada só acontece quando
    você vai olhar o uso: ao abrir/expandir o overlay, ao revelar a janela
    (tray/atalho), no botão e no boot (1 chamada). Essa API divide um limite
    agregado com o /status do próprio Claude Code, então consultá-la a cada 60 s
    alimentava o 429 e a barra de % do Claude sumia. Agora o app fica fora desse
    balde na maior parte do tempo; entre gatilhos, mostra o último % conhecido (ou o
    plano-só, sem inventar número). O cache de 5 min evita repetir a chamada a cada
    abrir/fechar. GLM/Codex/Antigravity seguem no loop normal (não sofrem esse limite).
    (PR #29)
  • Idioma base da documentação/comentários: PT-BR → EN (PR #30).

Fixed

  • Erro de sintaxe na configuração do build target do package.json corrigido
    (PR #30).
  • Build Linux quebrava com o bloco mac adicionado no PR #30: o arch: ["arm64"]
    dentro de mac fazia o electron-builder 26.x rejeitar o schema
    (configuration.mac should be one of these: null) e o npm run dist falhava — o
    CI não pegava porque só roda npm test, não o build. Removido o arch do config;
    o arch do build macOS passa a ser o do host (ou via CLI --arch arm64).
  • saveBounds() não roda mais no macOS (bounds não se aplicam do mesmo modo).

v0.6.8 — consumo do Claude (Team/429/overage) + botão force ⟳

Choose a tag to compare

@aronpc aronpc released this 10 Jul 15:37

Destaques

O foco desta versão foi o consumo/uso do Claude no overlay, que havia parado de aparecer em contas Team, e novas funcionalidades ao redor disso.

✨ Novidades

  • Botão "atualizar uso agora" (⟳) no header do overlay — força a recoleta na hora. Seguro: respeita o cooldown do rate limit (fica apagado com tooltip "aguarde Xmin" e não bate na API durante o 429).
  • Tile "Extra" (overage) — para contas com crédito extra medido em dinheiro (extra_usage), mostra o % e o valor gasto/limite (ex.: $50.4/$50.0), respeitando moeda e casas decimais.

🔧 Correções

  • Consumo do Claude sumia do overlay em contas não-Max (Team, tier default_raven): o plano não era reconhecido e o tile desaparecia. Agora o plano é resolvido pelas credenciais (tier real default_claude_max_5x), com fallback para Team/Pro/Enterprise.
  • Rate limit (429) travava o %: o app rebatia na mesma janela e re-escalava a punição. Agora há cooldown persistido + backoff exponencial (Retry-After × 1.5^fails, teto 1 h) + cache de 5 min — o endpoint é compartilhado com o próprio Claude Code, então bater de volta só piorava.
  • GLM/z.ai mensal aparecia 2×: a mesma conta chegando por 2 credenciais com resetAt diferindo ~1 ms não colapsava. A dedup agora normaliza o resetAt para segundos.

⚙️ Também

  • Overlay caía para trás ao clicar fora no Mutter/XWayland — reafirma alwaysOnTop no blur (contribuição de @gabrielscordeiro, #28).

Testes: 188 passando. Instalação: veja o install.sh no README ou baixe a AppImage/​.deb abaixo.

v0.6.7 — Wayland alwaysOnTop (XWayland) + ícone dock

Choose a tag to compare

@aronpc aronpc released this 09 Jul 21:17

🐛 Fixed

  • Overlay ficava atrás das janelas no Wayland. O GNOME/Wayland nativo ignora alwaysOnTop (restrição do protocolo). Agora o app roda em XWayland (--ozone-platform=x11): em X11 puro é no-op; em Wayland cai em XWayland, onde above funciona. (em X11 validado que continua igual — ABOVE presente, sem regressão)
  • Raise explícito no toggle/reveal (win.moveTop() ao mostrar) — robustez onde alwaysOnTop oscila.
  • Ícone no dock em alguns DEs — o install.sh agora instala o ícone hicolor em 256 e 512 (alguns procuram 256 antes).

AppImages já instaladas se auto-atualizam pra esta versão.

v0.6.6 — revelar overlay + install.sh

Choose a tag to compare

@aronpc aronpc released this 09 Jul 20:35

✨ Added

  • "Trazer à frente quando oculto" (aba Notificações das Preferências) — checkboxes que fazem o overlay voltar à tela (sem roubar foco) quando oculto, disparado por: agente vermelho, cota resetada, ou nova versão disponível.
  • install.sh — instala o latest da AppImage numa linha: curl -fsSL https://raw.githubusercontent.com/aronpc/ai-traffic-lights/main/install.sh | bash (ícone + .desktop + --uninstall).

🔧 Changed

  • Aba Notificações compactada (checkboxes em 2 colunas) + altura da janela 770px pra não rolar.
  • READMEs: instalação AppImage agora usa o install.sh; removido o hardcode de versão (v0.6.0).

AppImages já instaladas se auto-atualizam pra esta versão ("↓ vX" → "↻ reiniciar").

v0.6.5 — auto-update via AppImage (fix)

Choose a tag to compare

@aronpc aronpc released this 09 Jul 19:25

🐛 Fixed

  • Auto-update via AppImage finalmente funciona. Nunca tinha chegado a funcionar por dois motivos:
    1. electron-updater estava em devDependencies → o electron-builder não o empacota → MODULE_NOT_FOUND na AppImage → autoUpdater ficava null → sempre caía em "abrir release". Movido para dependencies.
    2. detectInstallMethod só checava process.env.APPIMAGE, que o Electron 43 perde no re-exec do sandbox → nunca detectava a AppImage. Agora detecta também pelo execPath (/tmp/.mount_<nome>) e recupera o caminho do .AppImage (cascata: env → execPath → Exec= do .desktop → busca), re-exportando em process.env.APPIMAGE.

A partir desta versão, AppImages detectam updates no boot + a cada 1h, e o botão "↓ vX" aparece (baixa) → "↻ reiniciar" instala de verdade.

v0.6.4 — z.ai fix + app icon

Choose a tag to compare

@aronpc aronpc released this 09 Jul 18:57

🐛 Fixed

  • GLM/z.ai aparecia duplicado. A mesma conta z.ai podia chegar canônica (1 conta → glm-month, plan GLM Pro) e sufixada (multi-conta → glm-month:hash, plan GLM Pro (z.ai)) conforme o nº de contas oscilava entre ticks. Como o plan diferia, a chave de dedup não colapsava → coexistiam → "z.ai 2×" (até 4 linhas: 2× Mês + 2× 5h). Agora o label de provedor é normalizado na dedup → 1 linha por janela.

✨ Added

  • Ícone do app. Overlay + Preferências agora definem icon (build/icon.png, 512px) e o ícone passou a ser empacotado na AppImage/deb. Junto ao .desktop (Icon= + StartupWMClass casando o WM_CLASS real), resolve o "app sem ícone" no dock/menu/alt-tab.

Atualização automática disponível via AppImage (electron-updater) — clique em "Verificar atualizações" no tray.

v0.6.3

Choose a tag to compare

@aronpc aronpc released this 09 Jul 18:17

Fixed

  • Overlay and Preferences no longer render transparent (invisible) in the AppImage. --disable-dev-shm-usage was being added via appendSwitch in main.js, which runs AFTER Chromium already initialized its sandbox and shared-memory — too late. Without shared memory, compositing failed and the windows stayed fully transparent (only the tray showed). Moved to build.linux.executableArgs (and scripts.start) so it reaches Chromium on the command line before initialization, like --no-sandbox.

v0.6.2

Choose a tag to compare

@aronpc aronpc released this 09 Jul 17:27

Fixed

  • Usage label now always shows "Provider(Plan) window". The 2nd line of the same plan (e.g. the GLM z.ai "Tokens" limit) used to appear without its provider, looking like a different agent. Each line is now autonomous and always renders Provider(Plan) + the clean window — Claude(Max 5×) 5h, z.ai(Pro) Mês, Codex(Plus) 7d.

v0.6.1

Choose a tag to compare

@aronpc aronpc released this 09 Jul 16:19

Fixed

  • detectReset: falso-positivo ao estender o resetAt. Se a API avançava o resetAt para um horário futuro antes do tempo (extensão de janela) enquanto a cota seguia esgotada, o aviso de "cota resetou" disparava sem ter resetado de verdade. A transição agora exige que o relógio passe do reset anterior (now >= resetAt).
  • detectReset: duplicata de id não duplica o aviso. Duas entradas com o mesmo id numa coleta poderiam disparar duas notificações; agora há dedupe por id dentro do tick.