Release

Suprnova v0.7.2: queue routing, hardened

v0.7.0 shipped queue routing - jobs declare a home queue, operators override it centrally with Queue::route, and workers drain specific queues with queue:work --queue=billing,default. The two releases since are the defect-fix pass from a full post-release review of that feature, plus a codegen fix worth calling out on its own.

Fixed

  • generate-types resolves nested prop structs without derives. 0.7.1's generator degraded any prop field whose type didn't derive InertiaProps/Data to unknown, so re-running it over a project with a committed types file replaced real interfaces with unknown and broke type-checking across the app. Plain structs defined anywhere in src/ now resolve to their real interfaces, transitively from the prop roots. routes.ts generation moved behind an opt-in --routes flag.
  • Chained jobs no longer lose their declared queue. A chain link captured a job's retry policy but not its Job::queue(), so a job that landed on its declared queue when pushed directly fell back to default when dispatched as part of a chain. The declared queue is now captured on the link and resolved exactly like a direct push - and chain payloads written before the fix decode unchanged.
  • Failed-job records carry the queue the job died on. The dead-letter path hardcoded default into every failure record, making routed-job failures invisible to an operator filtering by pool.
  • The upgrade note understated the jobs migration. On the database driver the 0.7.0 ALTER TABLE is required for every deployment - not just ones using --queue - and it must run before binaries roll.

Also in this release

The release tooling now bumps README version references atomically with the manifests, and connection routing is documented for what it is today: name resolution on lifecycle events, not driver selection.

Full details in the changelog. Upgrade by bumping the tag in your Cargo.toml:

suprnova = { git = "https://github.com/eas4ai/suprnova.git", tag = "v0.7.2" }

Comments 0