Skip to content

chore: prepare 0.6.16 release - #705

Merged
hardbyte merged 12 commits into
release/0.6.6from
brian/prepare-0.6.16
Nov 9, 2026
Merged

hardbyte merged 12 commits into
release/0.6.6from
brian/prepare-0.6.16

Conversation

@hardbyte

@hardbyte hardbyte commented Nov 9, 2026

Copy link
Copy Markdown
Owner

Bumps the Rust and Python packages from 0.6.15 to 0.6.16 and publishes the 0.6.16 release notes, written for operators upgrading from 0.6.15. The release contains #647 (bounded-time rescue drain of abandoned claims), #700 (batch insert gives way instead of deadlocking with per-row producers), #702 (new-lane provisioning order, #692), #675 (durable operator maintenance.prune halt), #701 (claim batch index check and SET-only migrator grants) and #698 (get_job during prune).

The 0.6.15 → 0.6.16 upgrade guide, assembled from those PRs, is rewritten as one sequence: ordered upgrade steps (migrate, grants, roll binaries, fence older leaders), a section per change, and a single roll-back section. Notable operator points: three repeatable patches re-apply or install on a 0.6.15 database; the prune halt needs runtime and operator grants before it can be relied on; a large abandoned-claim backlog now drains in minutes, so its retries become due at about the drain rate. The README guide row, lifecycle-hooks.md (hook drops during a large drain) and configuration.md (zero rescue-pass settings) are aligned with the code. CHANGELOG and docs are flowed onto single lines, because the release workflow publishes the CHANGELOG section as the GitHub release body.

Testing

cargo check --workspace --locked passes, cargo metadata --locked passes for awa-python, and cargo fmt --check is clean. Version bump and docs only.

Turn the unreleased entries into the 0.6.16 section for operators upgrading from 0.6.15: a lead paragraph, the upgrade steps for the three schema patches and the prune control grants, the rolling-upgrade caveats for new queue lanes and 0.6.15 leaders, and the batch insert limits under Changed.
The guide was assembled from several changes' sections. It now has one list of upgrade steps covering the three schema patches and the prune control grants in order, a section per change, and a single roll back section. The batch insert section says the lane lock is held until the transaction ends, notes the subtransaction cache limit, and the 0.6.15 guide points to the fix. The README row lists all of 0.6.16.
Bring in the bounded rescue drain and fold its entries into the 0.6.16 section: the lead paragraph, a retry-burst upgrade note, a rescue and heartbeats group under Fixed, the leader hold and hook drops under Changed, and the new knobs and metrics under Added.
The rescue section now comes first among the changes, says when rescued jobs become due (2^attempt seconds plus jitter, so at about the drain rate) and that slow Rescued hooks drop events past 1,024 outstanding. The upgrade steps and roll back section mention the leader's rescue rate, the lifecycle hooks page notes the drain, the README row lists the drain, and the configuration table describes zero for either pass setting as the code does: one batch per rescue interval with no early passes.
@hardbyte hardbyte added the full-ci Run the full CI matrix (Python build+test, E2E) on this PR label Nov 9, 2026
@coderabbitai

coderabbitai Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 17a01d2a-5d49-42e0-9759-ece90e40b8ad

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-09T06:26:48.971439Z 86121e9 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 86121e9f27

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/lifecycle-hooks.md Resolved
…lease notes

The troubleshooting note on transient admin reads now says that a read of one job which finds nothing reads once more in a new snapshot, so a failed job that prune moved is no longer reported missing.

The claim batch index note in the migrations guide said released 0.6 binaries neither use nor build the index; 0.6.15 does both, so it now names binaries before 0.6.15.

The test plan lists the bounded rescue drain, the durable prune halt and the batch insert and new-lane deadlock tests, and the lock-order model now covers new-lane provisioning.
…ecture overview

The recovery model now says that queue-storage rescue runs as passes of short 500-attempt batches, bounded by rescue_pass_budget and rescue_pass_max_rows and re-armed a second later while a backlog remains, with stale-heartbeat acceleration gated on runtime evidence.

The reclamation section points at the maintenance.prune control: a halted leader stops admitting rotation, prune and housekeeping while enqueue, dispatch, promotion and rescue continue.
--scope, --mode, --reason and --halt had no help text. They now say which values are supported, that the reason is stored and shown by status, and where to find the halt UUID.
…r spec

AwaStorageLockOrder collapsed a lane's queue_lanes row and provisioning lock into its enqueue lock, so it could not see the #692 deadlock between a QueueStorage process and a SQL producer that are both first to use a lane. It now models both: ProvisionLanePlan takes the row, then the provisioning lock, then the enqueue lock, as every producer does, and the main config stays deadlock-free (245,414 distinct states). AwaStorageLockOrderOldLaneProvisioningDeadlock.cfg keeps the earlier QueueStorage order and trips NoDeadlock in 5 steps.

The TLC suite now runs that witness and the existing old striped-claim witness, which was documented but not run.

MAPPING.md points the rescue actions at the batch entry points and records why bounded rescue passes, the stale-heartbeat owner-evidence gate, try-lock heartbeats and the prune halt leave every modelled invariant unchanged, and why batch insert contention, fresh-snapshot point reads and the claim batch index stay outside the models.
@hardbyte
hardbyte merged commit 111a00d into release/0.6.6 Nov 9, 2026
34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

full-ci Run the full CI matrix (Python build+test, E2E) on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant