Repository navigation
feat(light): abrir o Monky Light com duplo clique, sem linha de comando - #894
Merged
Merged
Conversation
Sem argumentos, o Light abre só com a bandeja: na primeira vez uma janela nativa (Win32 / NSAlert) pede o link de convite ou endereço, o apelido e a senha opcional; nas próximas conecta direto ao último servidor. A bandeja ganha `Trocar de servidor…`, que reabre a janela no mesmo processo. - Perfil próprio de aplicativo (%LOCALAPPDATA%\Monky Light\Profile ou ~/Library/Application Support/Monky Light/Profile), com MONKY_LIGHT_PROFILE para desenvolvimento e QA. - Só o endereço ws(s):// e o apelido vão para o perfil: um convite é reduzido ao endereço e a senha fica apenas em memória. - A janela confere o que o núcleo recusaria, e as recusas que ela resolve (AUTH_INVALID_PASSWORD, NICKNAME_ALREADY_EXISTS, NICKNAME_INVALID) a reabrem no campo certo, em vez de só um alerta. - Sem leitor de console, o núcleo não usa stdin/stdout e a falta deles não o encerra; no Windows o console criado pelo duplo clique é solto. - O fluxo é independente de plataforma (`runStandalone`) e tem teste próprio. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Parte da #658. Empilhado sobre o #893 (base
feat/light-functional): depois do merge do #893 eu faço rebase para amaine troco a base.Com isso o Light abre com duplo clique e conecta sem linha de comando.
Para quem usa
Trocar de servidor…na bandeja reabre a janela.Como funciona
runStandalone(independente de plataforma): decide entre reusar a conexão salva e abrir a janela, valida o que o núcleo recusaria e repete enquanto a bandeja pedir outro servidor ou o servidor recusar algo corrigível. Janela, alerta, perfil e núcleo entram como ganchos, então o fluxo é testado com dublês (monky-light-standalone-test).IsDialogMessage(Tab, Enter e Esc) e foco no campo do problema;NSAlertcom campos no macOS.%LOCALAPPDATA%\Monky Light\Profileou~/Library/Application Support/Monky Light/Profile;MONKY_LIGHT_PROFILEpermite usar uma pasta descartável em desenvolvimento e QA.server(ws(s)://) enickname. Um convite é reduzido ao endereço, porque a chave do servidor fica fixada no primeiro contato; a senha fica só em memória, como o README já determinava.HeadlessConfiguration::console = false: semConsoleControle sem stdout, os eventos vão só para a bandeja. Sem isso, o núcleo trataria a falta de leitor como motivo para sair (teste 27).GetConsoleProcessList == 1). O executável continua sendo de console, então o duplo clique ainda mostra um console por um instante. Passar para o subsistema GUI quebraria os cenários de console que já foram qualificados, por isso deixei de fora.Sem mudança de protocolo: não é
major.Testes (Windows x64, local)
npm run test:light:native: 36 aprovados, 4 ignorados por plataforma. Novomonky-light-standalone-test: primeira abertura, reuso, troca de servidor, recusa de senha e de apelido, cancelamento, perfil travado e regras do apelido em unidades UTF-16. Também perfil comserver/nicknamee item de menu só no modo aplicativo.npm run test:light:voice: 31 aprovados, 1 ignorado.MONKY_LIGHT_PROFILEdescartável e a janela preenchida via Win32:Ainda falta: a janela e o fluxo no macOS real, e o roteiro manual do
QA.md§6.31–6.39.🤖 Generated with Claude Code