Sincronização de Eventos App-Server
Use esta skill para manter a integração do app-server do CodexMonitor precisa conforme o Codex CLI instalado evolui.
Fonte Canônica
Comece com:
docs/app-server-events.md
Trate esse arquivo como o runbook canônico e atualize-o quando o comportamento mudar.
Fluxo de Trabalho
-
Confirme a baseline upstream:
- Registre
codex --versione gere esquemas experimentais em um diretório temporário novo. Use o executável selecionado como o alvo de compatibilidade. - Se
../Codexexistir, registre seu hash checked-out sem fazer fetch ou prune. Um checkout irmão é opcional.
- Registre
-
Compare métodos de notificação:
- Diferencie o conjunto de métodos de notificação v2 do Codex contra o roteamento do CodexMonitor em
src/utils/appServerEvents.tsesrc/features/app/hooks/useAppServerEvents.ts. - Atualize as seções
Eventos SuportadoseEventos Ausentesemdocs/app-server-events.md.
- Diferencie o conjunto de métodos de notificação v2 do Codex contra o roteamento do CodexMonitor em
-
Compare métodos de solicitação:
- Diferencie os conjuntos de solicitações cliente/servidor v2 do Codex contra o tratamento de entrada e saída do CodexMonitor.
- Atualize as seções
Solicitações Suportadas,Solicitações de Cliente AusenteseSolicitações de Servidor.
-
Investigue desvio de esquema quando as listas parecerem inalteradas:
- Inspecione os esquemas JSON gerados; se estiver usando fonte upstream, inspecione
codex-rs/app-server-protocol/src/protocol/v2/. - Compare as bordas de parser e normalização em
src/utils/appServerEvents.ts,src/features/app/hooks/useAppServerEvents.tsesrc/features/threads/utils/threadNormalize.ts.
- Inspecione os esquemas JSON gerados; se estiver usando fonte upstream, inspecione
-
Implemente suporte quando solicitado:
- Adicione suporte para método/tipo nas bordas de parser primeiro.
- Roteie no hook de eventos do app.
- Atualize os reducers de thread/item e renderização apenas se necessário.
- Mantenha a paridade app/daemon e evite lógica duplicada.
-
Valide:
- Execute
python3 scripts/check-codex-protocol.py --schema-dir <diretório-gerado>(Python jsonschema é necessário). - Execute testes direcionados para os arquivos modificados.
- Execute
npm run typecheck. - Execute
npm run testpara alterações de comportamento no frontend. - Execute
cd src-tauri && cargo checkpara alterações no backend.
- Execute
Arquivos Chave
- Roteamento/tipos:
src/utils/appServerEvents.ts - Roteador de eventos:
src/features/app/hooks/useAppServerEvents.ts - Composição de handlers:
src/features/threads/hooks/useThreadEventHandlers.ts - Handlers de item/turno:
src/features/threads/hooks/useThreadItemEvents.ts,src/features/threads/hooks/useThreadTurnEvents.ts - Normalização:
src/features/threads/utils/threadNormalize.ts - Estado:
src/features/threads/hooks/useThreadsReducer.ts - Solicitações de saída:
src/services/tauri.ts,src-tauri/src/shared/codex_core.rs - RPC do Daemon:
src-tauri/src/bin/codex_monitor_daemon/rpc.rserpc/*
Referências
- Conjunto de comandos rápidos:
references/quick-commands.md - Runbook canônico:
docs/app-server-events.md
Expectativas de Saída
Quando for solicitada uma auditoria ou atualização:
- Relate deltas concretos de métodos suportados e ausentes.
- Cite os arquivos exatos que precisam de edição.
- Atualize
docs/app-server-events.mdna mesma alteração quando o comportamento mudar. - Destaque explicitamente a não suporte deliberada (por exemplo, métodos obsoletos).