Loop hardening from a real migration: safety, reliability, and model-output tolerance - #101
Merged
Merged
Conversation
Um segundo prazo de espera antes de desistir; sem idle, a dispatch falha e o worktree meio-criado é removido, em vez de perder o prompt em silêncio. Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit 5042073)
Um overlay de máquina escrito para liberar .github/pr-intent.yaml substituiu o selfEditPaths inteiro e apagou, em silêncio, o congelamento de packages/** que o projeto adicionou cinco dias depois (agentskit-os #6238, F5). Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit d25e864)
…ontra linear.entryState (default Backlog) não pode estar em linear.states; antes as issues nasciam em states[0], que É a fila — o gate humano não existia. Agora levam as labels da fila, o projeto que ela drena e --parent <épico>. Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit 42be4b4)
String vira lista de um item e lista vazia vira lacuna (prdGaps decide), em vez de a rodada inteira falhar na validação — glm-5.3 respondia assim. Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit 42ffe3f)
…o prazo do planner por issue Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit ae5be3e)
… o loop nunca digita nele O nudge de ociosidade caía num diálogo cujo default é "Allow once" — o Enter aprovava justamente o comando que a config do agente marca como perigoso. Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit ca320b9)
…rios, do CHANGELOG e dos testes Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit 45c9fa3)
… operador Contrato, entrevista, architect, votos e decompose rodavam o modelo em project.root. Agora rodam num worktree desanexado de origin/<base> do próprio harness, buscado e resetado antes do uso; fetch falho falha o estágio. Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit d204a0a)
Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit 13867ef)
…coava 'no layers configured' Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit 9b17b01)
…it stash selfEditPaths é gate de revisão, não lista de 'nunca editar'. O stash é compartilhado por todos os worktrees do repo. Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit 84ae6fb)
Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit fddaa67)
…erdido Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit 2d2ea62)
…entativas espaçadas Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit 1f0e81a)
… recebe só o ponteiro Colar ~44 KB numa TUI falhava de forma determinística conforme o conteúdo (agent_session_ownership_unknown), e nenhum retry resolvia. Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit ce52fe6)
…o branch local do operador Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit 254b728)
…quem mergeou Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit c227f4c)
…meça Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit c258505)
…t-objections Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit 70d516a)
…rcadores, bloco json ou último JSON válido Eval na entrevista: 5/5 modelos parseiam (antes 2/5). Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit ee8daf0)
…ooldown até o reset, terminal antigo fechado Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit 507b67c)
…a 0.18.0 Co-Authored-By: Claude <noreply@anthropic.com>
…ela, com reenvio Co-Authored-By: Claude <noreply@anthropic.com>
…PR retido por caminho protegido Co-Authored-By: Claude <noreply@anthropic.com>
…fix rounds; persistente conta, teto 2× Co-Authored-By: Claude <noreply@anthropic.com>
…vg; manifesto e referência regerados Co-Authored-By: Claude <noreply@anthropic.com>
…ed and moved back on every deliver pass
… when it is the clean base branch
…ver dispatches it
Member
Author
|
ak-verify run |
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.
Summary
Fixes found by running the keep-pushing loop on a real multi-week repository migration (monorepo split into product repositories), with a single non-default provider at first and then a mixed one. Every item below was observed in that run and is covered by a test; the full list is under
[Unreleased]inCHANGELOG.md.Safety
origin/<baseBranch>, not the operator's checkout, which can be on any branch at any age.origin/<baseBranch>fetched at dispatch, not the operator's stale local branch.git stashis forbidden (the stash is shared by every worktree).selfEditPaths,secretFilePatterns,requiredChecks) accumulate across config layers and shrink only by!entry.--accept-objectionscarries them into decompose.loop approve <issue> --head <sha> --by <you>: an attestation bound to that commit, recorded in the event log; deliberately not a PR label, which a worker holding the same credentials could add itself.Reliability
.ak-loop/brief.md) with a one-line pointer; typing tens of kilobytes into an agent TUI failed deterministically on content.--to-idvialinear.people; merged issues shedblocked/needs-info; the merge record says who merged.decompose --createfiles the reviewed list, inlinear.entryState(outside the queue), in the queue's project, with its labels, under--parent.loop planhas its own time budget (worker.plan.stageTimeoutMs).observation: unsupported), delivery of the brief is confirmed on screen and re-sent when the keystrokes were dropped.maxFixRounds; persisting findings do; 2× is a hard ceiling.returnState.project.repo(outside), files it withlinear.outsideLabel, and the queue never dispatches it.Verification
Rebased onto
main(0.18.0) by cherry-picking the 21 commits; one was dropped becausemainalready carries the same fix (#88,--to-idclaims), and one release-manifest bump was superseded by 0.18.0..ak-harness/verification.jsonrun directly on this branch: all exit 0.ak-verify) is pending a human: after the previous run completed, a new one needsak-harness plan approved --by human, which the author of this PR will not do on its own behalf. Merge after that run isCOMPLETE.GitHub Actions does not run on this account at the moment (billing), so there is no CI signal on this PR.
Breaking: planned issues gain
outside; the queue excludeslinear.outsideLabel(defaultoutside-loop). Gate lists accumulate across layers;approve-designrequires--accept-objectionswhen votes carry objections; decompose files issues inlinear.entryState(defaultBacklog), which must not be one oflinear.states.