Repository navigation
Enriquecer a Central com Herdr, forjas e Taiga e publicar pelo orq daemon orq #4 - #3
Conversation
…lo orq daemon orq #4
|
Revisão adversarial r1 da US orq #4 no SHA Sério — propriedade dos tokens, Menor — force após auth, Menor — códigos de credencial, O que tentei e não quebrou: cinco MRs reais GitLab/GitHub deram estados corretos (mesclada/pronta/draft/conflito); SQLite travado por 17 s gerou Relatório completo e evidências: |
…autenticação orq #4
|
Revisão adversarial r2 da US orq #4 no SHA Confirmei pessoalmente as três correções da r1:
Aceito a decisão extra de não sobrescrever valor alheio: os nomes próprios evitam a colisão com a skill manual. Testei ao vivo a preservação, a retomada quando a chave fica vazia, a atualização do token próprio e a republicação quando desaparece. SIGTERM preservou um valor escrito por outra fonte imediatamente antes de encerrar, e limpou o próprio em outro ensaio. Com Herdr falso, publicação recusada não registrou propriedade; limpeza recusada manteve o registro e a segunda tentativa funcionou. Menor no delta: Relatório e evidências: |
US #4 — Enriquecedores e daemon
Story: https://agile.basis.com.br/project/orq/us/4
Estado vivo na Central e o daemon que o publica.
internal/enriquecer) com cache no SQLite (migration0002_enriquecimento.sql:cache,suspensao,token_publicado) e TTL por fonte:herdr api snapshot(session.snapshot: os registros deagent listmais panes sem agente e tokens de pane/workspace numa chamada só). Pane que sumiu =ausente.glab api --hostname <host> projects/<path%2F>/merge_requests/<iid>egh api repos/<o>/<r>/pulls/<n>, normalizado paradraft|aberta|pronta|mesclada|fechada. Mudança de estado vai paramr.estadoe gera evento no diário.taiga story get --output json→ título, status, url.binario_ausente,autenticacao,nao_encontrado,tempo_esgotado,falha_comando,resposta_invalida), e o snapshot mostra o último valor bom junto com oerro. Erro de autenticação suspende a ferramenta por 30 min (ou até--forcar), sem login.ORQ_<X>_BIN,$HERDR_BIN_PATH, diretórios conhecidos; o PATH nunca entra.versao: 1(tudo aditivo;estadoda MR já estava declarado):herdrno coordenador e na US,taigana US,atualizado_em/errona MR efontesna raiz.docs/snapshot.mdatualizado.orq atualizar [--fonte herdr|mr|taiga] [--forcar]: atualização única, que também confere os tokens.orq daemon: um por diretório de estado (flock emdaemon.lock; o segundo sai comdaemon_ativo, exit 4), em primeiro plano. Tick do Herdr, TTLs remotos eevents.subscribeno socket do Herdr (pane.agent_status_changeddos panes das ondas abertas mais o ciclo de vida de pane). Emevents_lost, reassina e reconcilia. Sai limpo com SIGTERM/SIGINT e limpa os tokens.--source orq):orqno pane do coordenador (⚠ 1 Wait·2 Exec·1 Rev·1 pend, até 80 caracteres) emrs_prontasno workspace (!32 skills#29, com+Nquando não cabe). Conferidos a cada tick contra os tokens que o Herdr devolve; republicados quando somem e limpos quando deixam de valer. Só vão para pane/workspace que existe.Testes
gofmt -l .vazio,go vet ./...ego test -race ./...verdes. Binários falsos deherdr/glab/gh/taiga(scripts em diretório temporário, apontados porORQ_*_BIN, que capturam o argv) cobrem a normalização de MR, TTL e cache, o erro que preserva o valor bom, a suspensão por autenticação, o pane ausente, a publicação/conferência/limpeza de tokens, o resumo ≤ 80 e o daemon único. Um servidor NDJSON falso cobre assinatura, evento, recusa eevents_lost→ reassinatura e reconciliação no daemon.Validação ao vivo no relatório da rodada: o daemon rodou com
env -i(PATH mínimo) contra o Herdr real; publicou o token, republicou 5 s depois de limpo à mão e, por evento, ~0,3 s depois deblocked; marcouorq#1eskills#29comomesclada, trouxe a USorq/4do Taiga e limpou o token ao receber SIGTERM.