disinto/tests
Claude 620515634a
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
fix: issue_claim race — verify assignee after PATCH to prevent duplicate work (#830)
Forgejo's assignees PATCH is last-write-wins, so two dev agents polling
concurrently could both observe .assignee == null at the pre-check, both
PATCH, and the loser would silently "succeed" and proceed to implement
the same issue — colliding at the PR/branch stage.

Re-read the assignee after the PATCH and bail out if it isn't self.
Label writes are moved AFTER this verification so a losing claim leaves
no stray in-progress label to roll back.

Adds tests/lib-issue-claim.bats covering the three paths:
  - happy path (single agent, re-read confirms self)
  - lost race (re-read shows another agent — returns 1, no labels added)
  - pre-check skip (initial GET already shows another agent)

Prerequisite for the LLAMA_BOTS parametric refactor that will run N
dev containers against the same project.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 08:35:18 +00:00
..
disinto-init-nomad.bats fix: add bats coverage for --backend <value> space-separated form (#825) 2026-04-16 08:06:51 +00:00
lib-hvault.bats fix: [nomad-prep] P4 — scaffold lib/hvault.sh (HashiCorp Vault helper module) (#799) 2026-04-15 21:15:44 +00:00
lib-issue-claim.bats fix: issue_claim race — verify assignee after PATCH to prevent duplicate work (#830) 2026-04-16 08:35:18 +00:00
mock-forgejo.py fix: mock-forgejo path parsing bug + non-fatal cron in smoke-init (#586) 2026-04-10 15:08:43 +00:00
smoke-credentials.sh fix: fix: stop baking credentials into git remote URLs — use clean URLs + existing credential helper everywhere (#604) 2026-04-10 17:04:10 +00:00
smoke-init.sh fix: [nomad-prep] P7 — make disinto init idempotent + add --dry-run (#800) 2026-04-15 22:37:22 +00:00
smoke-load-secret.sh fix: reorder test boilerplate to avoid duplicate-detection false positive 2026-04-15 19:18:39 +00:00