Repository navigation
Consolidar relay: recuperação de atores, Gamescope EIS, diagnósticos, watchdog, testes e documentação - #21
Merged
Conversation
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.
Objetivo e origem
Consolidar toda a diferença publicável da pasta original de trabalho em relação à
origin/main@9ee7ef5(PR #19 já integrado): 72 arquivos, +5.514/−127 linhas, 13 commits. A branch reúne os commits de Gamescope/ação/recuperação já existentes e 44 arquivos incluídos no commit final328c1fe, abrangendo os 22 novos arquivos de código/testes/documentos antes não rastreados.Atenção à sobreposição: este PR inclui integralmente as alterações do PR #20 (ainda aberto), acrescidas da auditoria de edge cases, evolução do ring, instrumentação, watchdog e documentação. Não integrar os dois PRs independentemente sem reconciliar o mesmo histórico; este PR é o consolidado contra
main. Não realizar merge automático.Matriz de alterações, impacto e benefício
relay/gamescope_eis.py,relay/synth_input.py,relay/cli.py,scripts/gamescope-eis-session.sh,relay_capture.confydotoolpermanece alternativa explícitarelay/writeback.py,relay/relay.py,relay/sendwatch.py,relay/safety.py035Fdispatcher e0437/0438/0AF4carrier+merge, barreira síncrona da tecla antes de0439(8 B obrigatórios), proteção do callback de desconexão emsendall, tratamento conservador de janelas de escrita e credenciais em RECV de loginagent/relay_hook_linux.jsoverlapsRecvRingbloqueia escritas TX sobre ring RX registrado, inclusive_fix0; eventosBP-TELEMETRYde arme/desarme/falha/latência agregadarelay/actors.py,relay/wire_feed.py,relay/packets.py,relay/runtime.pyring_epoch, pré-imagens e snapshots;09FD/09FF/0229/043F/0983protegidos por validação e proveniência.0229não compara GID cifrado com GID plaintext; CP1252 com validação de nomes; exceção estreita para nome vazio em09FFquando há leitura fresca comprovada; velocidade0..2000;actor-delay=0.30srelay/console.py,relay/cli.py,relay/runtime.py,relay/wire_feed.pyACTOR-RECOVERYdetalha motivos, polling, leituras, validações e evidência;RECV-BOUNDARYrastreia fronteiras após09FFapenas no map server;verbose=falsetorna terminal conciso sem eliminar JSONLRECV-BOUNDARYsão dados privados de sessãorun.sh,scripts/watch-uaro-stop.py,scripts/audit-game-stop-signals.shT/t; após 3 s de STOP, revalida nome/estado e envia no máximo umSIGCONTpor episódio; auditoria opt-in comsudo -ndekill/tgkill/tkillpara um PIDresearch/recv_cipher/{recv_probe.py,run_probe.sh,ring_correlator.py,actor_adapter.py,ring_watch.js,write_trace.js,audit_coverage.py,audit_write_trace.py,validate_0229.py,sample_telemetry.py}ActorDecrypt, rastreamento opcional de escrita, comparações de proveniência, auditorias e sampler somente leitura a intervalos solicitados de 1 msresearch/movement_035f/*,.gitignore,research/recv_cipher/.gitignoretests/test_edge_*.pye novostests/test_{0229_provenance,043f_recovery,0983_recovery,actor_dynamic_ring,console_verbose,empty_actor_name,scramble_rx_guard,uaro_stop_watchdog,validate_0229}.py, além de testes de pesquisaREADME.md,docs/{README,ARCHITECTURE,OPERATIONS,RESEARCH_STATUS,CIPHER_INVESTIGATION,DYNAMIC_ACTOR_RING}.md,research/recv_cipher/{README,STATE,HANDOFF}.mditemuse-input-key=F2,actor-delay=0.30, modo conciso), comandos corretos dorun.sh, inventário, evidências, resultados negativos e riscosEvidência live PASSIVA (logs existentes, nenhum experimento novo)
Período analisado: 20/10/2026, 18:37:05–19:30:47 BRT, cliente ativo desde 16:00, relay desde 18:37 e OpenKore ativo desde 19/10. Os arquivos fonte principais tinham mtime anterior ao início do relay, compatível com carregamento dessa versão, sem prova byte a byte.
relay_log.jsonl,ACTOR-RECOVERY:09FD: 1.030 recuperados / 6 perdidos09FF: 1.001 / 150983: 948 / 75043F: 241 / 180229: 91 / 1correlation-mismatch, 7overwritten-before-verification, 4ring-not-found, 1timeout-no-valid-copy.No mesmo período, o console do
OpenKore-upstreamcontinha 724 linhas relativas a skills, 346 a ataques, 195 a movimento, 85 a itens/storage e 45 com padrões de aviso/erro; 0 correspondências com os padrões de desconexão ou ID desconhecido após 18:37. Essas contagens são de linhas classificadas por regex, não de ações distintas ou garantia de aceitação pelo servidor. No relay também ocorreram 391SENDCALL stale-drop, 217THIS-CONTEXT stale, 70THIS-CONTEXT suspect, para revisão de ciclo de vida; não tratar drops conservadores automaticamente como falha fatal.Limites: não houve reinício, nova instrumentação, envio de comandos ou verificação independente da semântica de todos os buffs/flags. Logs crus, GIDs e credenciais não fazem parte deste PR.
Validação offline (sobre a branch consolidada)
bash scripts/test-offline.sh: PASS (37 scripts)python3 scripts/validate-research.py: PASSpython3 scripts/validate-codex.py: PASSpython3 research/recv_cipher/test_ring_correlator.py: PASSpython3 research/recv_cipher/test_audit_write_trace.py: PASSbash -nem launchers/sondas Shell: PASSnode --checkno agente e JS de sonda: PASSpython3 -m compileall -q relay tests research/recv_cipher scripts: PASSgit diff --check: PASSRiscos e pendências para revisão humana
0983(75) e043F(18); validar buff/status/sitting, proveniência, eventual falsa correspondência e semânticaopt1/opt2/optionantes de dizer que está integralmente resolvido.actor-delay=300mspode aumentar backlog e não impede sobrescrita antes da leitura; a estabilidade de 96,6% é restrita à janela medida.SIGCONTpode deixar cifra/sessão dessincronizadas;auditctlexige privilégios, tem filtros limitados e pode necessitar limpeza manual após encerramento abrupto.sample_telemetry.pyretém frames completos do ring em RAM (até 512×16KiB por padrão) apesar de docstring sugerir que não os armazena; não publicar os frames.audit_coverage.pyconta por enquanto apenas09FD/09FF/0229.Decisão solicitada: revisar este PR consolidado como candidato único a
main; coordenar com o PR #20 sobreposto. Sem merge automático.