Files
pitiupi/docs/decision-register.md
Gabriel Felipe Souza SantosandCursor 8338936251 docs: reescreve o manual e registra o JAR instalado no catálogo
O texto explica o núcleo, a rede e o tutorial do ping como o código está hoje. Instalar ou remover um JAR atualiza plugins.registry.json para o próximo run não perder o plugin.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-04 14:14:18 -03:00

3.5 KiB

Registro de decisões — Pitiupi

Decisões que o código atual segue. O detalhe está nos capítulos ligados.

ID Decisão Motivação Onde ler
D1 Grupo multicast 224.0.0.3 Endereço fixo para descoberta e broadcast na LAN da sala rede.md
D2 Mesma porta UDP e TCP por instância Configurada no login; simplifica o firewall em laboratório comecar.md
D3 Heartbeat via UDP multicast Presença sem conexão TCP permanente com todos os peers rede.md
D4 Timeout de peer cerca de 15 s sem heartbeat Remover usuários inativos da lista rede.md
D5 Framing TCP: int tamanho + bytes Delimitar mensagens num fluxo de bytes rede.md
D6 Mensagens Serializable em byte[] O transporte não depende dos campos; o plugin define o tipo rede.md
D7 Plugins via JAR + SPI Carregar uma classe nova sem recompilar o núcleo plugins.md
D8 Classloader por JAR Isolar classes e desserializar com PluginObjectInputStream plugins.md
D9 Plugins em PITIUPI_HOME/plugins Dados de execução em .pitiupi/ na raiz do clone. PITIUPI_HOME pode apontar outro diretório comecar.md
D10 Erros com ErrorCode Mensagens em português na janela; PitiupiException no domínio nucleo.md
D11 Reinício após instalar ou remover JAR A lista de plugins é lida na subida usar.md
D16 UI em abas, sem JFrame de plugin O painel fica na MainShellFrame; galeria e peer actions abrem a aba nucleo-para-plugins.md
D17 Goodbye e timeout de presença GoodbyeMessage em multicast ao fechar; timeout de cerca de 15 s rede.md
D18 Peer actions e convites PeerActionBroker e SessionInviteMessage na shell plugins.md
D19 Chat num único módulo plugins/chat cobre sala, um IP e TCP privado plugins.md
D20 Peer actions de todos os plugins no popup A lista agrupa ações em submenu por plugin, não só da aba aberta nucleo-para-plugins.md
D21 onShellTabClosed Fechar a aba avisa o plugin para parar timer ou captura nucleo-para-plugins.md
D22 PeerIpv4 na interface No Windows o endereço pode vir mapeado em IPv6 ou com sufixo de zona rede.md
D23 Sem selo numérico na lista O recebimento aparece na aba do plugin. O núcleo guarda foco de atividade, a lista não desenha badge plugins.md
D24 SessionNoticeMessage Início e fim de uma atividade (por exemplo o fim do compartilhamento de tela) plugins.md
D25 Nome novo no heartbeat já existente A lista do colega atualiza o User quando o userName muda rede.md
D26 Troca de porta sai da sala Goodbye na porta antiga, lista local zerada, anúncio na porta nova rede.md
D27 TTL padrão 1, de 1 a 32 1 permanece na sub-rede local rede.md
D28 Saída Automático, Cabo ou Wi-Fi Multicast, IP exibido e TCP de saída usam a interface escolhida rede.md
D29 TCP com prazo de 5 s fora da thread da janela O aviso aparece só enquanto não há socket aberto para aquele IP rede.md
D30 eth* continua cabo, inclusive no WSL A placa Wi-Fi do Windows não existe no Linux do WSL. Tratar todo eth como Wi-Fi quebraria o Ubuntu nativo rede.md