refactor(plugins): SPI workspace-only e remoção de menus legados
Remove GuiManager e pitiupi.models.Menus; atualiza chat/screencast, docs e testes (ConfigLoader, TcpConnectionManager). Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
7c8a476253
commit
42e70af48b
33 files changed
+104
-444
No files matched your search
@@ -1,34 +1,15 @@
|
||||
# Menus, peer actions e transportes
|
||||
# Menus e ações na lista (histórico)
|
||||
|
||||
## Interface atual (shell v1)
|
||||
Na v1 atual, plugins **não** registram menus na barra superior nem submenus legados por categoria.
|
||||
|
||||
Plugins de referência **não** dependem da barra de menus superior para o fluxo principal:
|
||||
## Como expor ações hoje
|
||||
|
||||
- **Galeria** na aba **Plugins** abre cada extensão em aba própria (fechável com ×).
|
||||
- **Peer actions** na lista **Usuários nesta rede** (clique em um peer ou em **Todos**) agrupam ações de todos os plugins instalados.
|
||||
- Dentro da aba do plugin, **`PluginRoutingPanel`** padroniza destino (sala geral vs IP), forma de envio (multicast UDP, UDP unicast, TCP) e texto de ajuda.
|
||||
1. **Galeria Plugins** — abre a aba central do plugin.
|
||||
2. **Lista lateral** — clique em um peer ou em **Todos** → menu com **peer actions** registradas por cada plugin (`PeerActionBroker`).
|
||||
3. **`PluginWorkspace.openOrFocusTab`** — dentro do handler da peer action ou após carregar o painel.
|
||||
|
||||
Ver [04_inicializacao_e_gui.md](04_inicializacao_e_gui.md) e [09_sistema_de_plugins.md](09_sistema_de_plugins.md).
|
||||
## Catálogo `menuCategory`
|
||||
|
||||
## MenuCategory (legado)
|
||||
O campo `menuCategory` em [`plugins.registry.json`](../../plugins.registry.json) (`Social`, `Jogos`, `Streaming`) serve apenas ao script `./scripts/pitiupi.sh` para filtrar build/run — não cria menus Swing.
|
||||
|
||||
Enum em `pitiupi.models.Menus.MenuCategory` (`Jogos`, `Social`, `Streaming`) ainda aparece no **catálogo** (`menuCategory` em `plugins.registry.json`) e em plugins antigos que chamam `GuiManager.createMenu(...)`.
|
||||
|
||||
Novos plugins devem preferir `PluginWorkspace` + peer actions. O menu da shell expõe apenas **Ajuda → Sobre**.
|
||||
|
||||
## Unicast vs multicast na aplicação
|
||||
|
||||
| Modo | API típica | Semântica |
|
||||
| --- | --- | --- |
|
||||
| Multicast | `MessageDispatcher` / `SocketUDP.sendMulticast` | Todos no grupo na porta configurada |
|
||||
| Unicast UDP | envio para IP de um peer | Um destinatário, sem estabelecer TCP |
|
||||
| TCP | `ConnectionManager` / `SocketTCP` | Canal com framing 4+N bytes |
|
||||
|
||||
Detalhes de rede: [05_udp_multicast.md](05_udp_multicast.md), [06_tcp_conexoes.md](06_tcp_conexoes.md).
|
||||
|
||||
## Referência de código
|
||||
|
||||
- Chat e screencast: peer actions em `ChatPlugin` e `ScreenCastPlugin`.
|
||||
- Envio unificado: `pitiupi.application.messaging.MessageDispatcher` e `TransportMode`.
|
||||
|
||||
O antigo plugin **mpChat** foi unificado no módulo `plugins/chat` (mensagens `LegacyMpChatMessage` para compatibilidade TCP privado). Ver [11_plugins_referencia.md](11_plugins_referencia.md) e decisão D19 no [decision-register.md](../decision-register.md).
|
||||
Referência de plugins: [11_plugins_referencia.md](11_plugins_referencia.md).
|
||||
Reference in new issue
Block a user