Skip to content

v0.7.3 - 20/05/2026

Choose a tag to compare

@nduckmink nduckmink released this 20 May 09:35
· 50 commits to main since this release

AI resubmit race, bulk-approve ORM pollution, stuck-running sweep

  • fix(ai-review): pass revision_round through arq job. Worker reloads
    the draft right before writing its verdict and drops the result if
    the round has bumped — closes the race where a slow L3/L4 worker
    could overwrite a newer resubmit's verdict with stale checks for
    the previous content.
  • fix(wiki-drafts): bulk_approve now expires touched ORM objects on
    savepoint rollback. SAVEPOINT only reverts the DB; in-memory
    attribute mutations (page.version += 1, draft.status='approved')
    stay on the identity-map instance and would otherwise leak into
    the next iteration of the loop.
  • feat(worker): sweep_stuck_ai_review_cron runs every 10 minutes and
    resets drafts stuck in ai_check_status='running' for >2×job_timeout
    (min 30 min). Catches the SIGKILL/OOM case the in-process
    try/except can't cover.
  • fix(wiki-service): approve_draft scope_id parse now catches
    TypeError too and re-validates with isinstance, matching the
    defensive parse in wiki_drafts._can_review_draft.