Obrigado pelo review. Vou separar o que aceito, o que preciso explicar melhor e o que vou mudar.
O que aceito sem discussão
- Ciclo de vida: fechar a aba realmente não mata o servidor quando o navegador já estava aberto. Hoje ele encerra quando o processo de navegador iniciado pelo Fenestra termina, ou após 4 horas ociosas. Isso é frágil e mal explicado. Vou adicionar um comando explícito de parada e reduzir/documentar o timeout.
- Update check: você tem razão. Checagem automática sem consentimento e aba abrindo sozinha é comportamento invasivo, mesmo sem telemetria. Vou tornar isso opt-in, desligado por padrão;
--check-updatecontinua manual. - Associação
.html: é opcional, mas o risco que você descreveu existe. Um HTML baixado que precise de origem pode expor a pasta local. Vou deixar isso explícito e estudar uma confirmação/limite para pastas que não parecem build. - Duplicação .NET + Go: é dívida real. O motivo histórico foi tamanho (120 KB vs ~7 MB) e não exigir SDK no Windows, mas manter duas bases custa mais do que economiza. Vou avaliar unificar no Go.
- SmartScreen/Gatekeeper e o “kit de montagem” no macOS: são atritos reais. Assinatura/notarização não são gratuitas; a documentação precisa ser mais honesta sobre isso.
O que preciso corrigir na crítica
- HTML comum não sobe servidor: o Fenestra abre
file://quando a página não precisa de origem. O servidor só entra para módulos ES, caminhos absolutos,fetchou service worker. - Para quem já está no terminal,
python3 -m http.serverresolve. O público que justifica a ferramenta é outro: abrir um build pelo gerenciador de arquivos, um artefato de CI, um projeto recebido por ZIP — e ter porta estável, fallback de SPA e confinamento de caminhos, que ohttp.servernão tem. - Chamar de “phone home” é justo no consentimento; nos dados, não: a requisição é um GET estático, sem identificador, sem projeto, sem uso.
O que vou fazer
- Update check opt-in e aba só depois do consentimento.
--stope timeout menor, com documentação clara.- Aviso e limite no handler
.html. - Avaliar um único código Go para os três sistemas.
- Deixar as limitações ainda mais visíveis, incluindo o público-alvo real.
Se você testar a próxima versão, quero saber se esses pontos ficaram menos defensáveis. Obrigado por perder tempo com o projeto.
O review acerta em três pontos que eu mudaria de verdade: update check opt-in, ciclo de vida explícito e unificação da stack. O resto é debate legítimo de escopo: para quem já vive no terminal, a ferramenta é redundante; para quem não vive, ela resolve um atrito real.