Repository navigation
Criar o esqueleto da CLI orq com store SQLite orq #3 - #1
Conversation
|
Revisão qa-adversarial r1 da US orq #3 sobre CI do SHA conferido: run 38146201232,
O que tentei e não quebrou: 240 snapshots simultâneos em bancos novos; duas escritas com 300 snapshots preservaram 80 números/eventos e snapshots coerentes; disputa de onda reverteu a perdedora; snapshot durante escrita leu o último commit sem bloquear; refs ambíguas, Pn, --forcar, no-ops, normalização de MRs/IaC e rejeição de versão futura funcionaram. A dependência que exige done não trava Relatório completo entregue ao coordenador em |
|
Revisão qa-adversarial r2 da US orq #3 sobre
O que tentei e não quebrou: espera curta e timeout real do flock (15 s), liberação após morte do detentor, rollback da onda/status/eventos e snapshot durante escrita lendo apenas o último commit sem bloqueio. CI do SHA conferido: success, unit executou gofmt, vet e test -race. Build, vet, test -race -count=1 e gofmt também passaram localmente. Relatório completo: |
Story: https://agile.basis.com.br/project/orq/us/3
O que entra
orq(Go, cobra) com o estado da Central de US num SQLite (modernc.org/sqlite, sem cgo, WAL,busy_timeoutde 15 s, escrita sempre emBEGIN IMMEDIATE). Banco em$ORQ_STATE_DIR/central.db, padrão$XDG_STATE_HOME/orq/ou~/.local/state/orq/. Migrations embutidas, versionadas porPRAGMA user_version.coordenador,onda,us(chaveprojeto/ref),dependencia,mr(comestadonulo, previsto para a US Criar o orq tui, o workspace Central e o plugin do Herdr orq #5 #4),pendencia(P1, P2… por US, nunca reaproveitado) eevento(toda escrita grava o seu na mesma transação).coord registrar|list,onda criar|ver|list|proxima|encerrar,us status,mr add|rm,pend add|resolver|list,diario,snapshot(JSON versionado, contrato emdocs/snapshot.md) eversion.{"error":{"code","cause","recovery"}},--output json|text(JSON fora de terminal), como na taiga-cli.AGENTS.md,README.mdcom instalação e o contrato dos comandos, CI comgofmt -l,go vetego test -race.Decisões a conferir
donenuma US quer dizer "chegou ao limite da autorização da onda" (plano aprovado, MR pronta ou mesclada). Dependência e ordem estrita só liberam a próxima com a anterior emdone;onda proximadevolve a autorização e o texto do limite para quem despacha.--ordempadrãolivree--atepadrãomr-pronta. Em ordem estrita, uma US só pode depender de outra anterior.TG-312sem projeto: vale a única US com essa ref; havendo várias, a da onda aberta do coordenador corrente e, depois, a do projeto padrão dele. O resto éref_ambigua.orq diario(o nomeorq eventofica livre para o hook do Herdr da US #5).Testes
onda proxima(ordem estrita, livre, dependência, autorização, onda encerrada/concluída), dos ids de pendência e da resolução de ref ambígua.BEGIN IMMEDIATEo teste falha comSQLITE_BUSY.docs/snapshot.md.Fora do escopo: chamadas a herdr/glab/taiga, daemon, TUI e plugin (US #4 e #5).