Skip to content

v0.17.0

@dberry37388 dberry37388 tagged this 03 Jul 15:01
* chore(release): scaffold v0.16.1 changelog entry

Placeholder for the v0.16.1 release wrap-up. Sections will be filled in
once all component PRs land on this branch.

* fix(compact): replace unbounded quarantine pluck with correlated subquery

discoverEligibleRuns() plucked the full quarantined-run-id set into
memory and built an unbounded whereNotIn() from it. Replace with a
whereNotExists correlated subquery so the exclusion runs entirely in
SQL. Scoped to discovery only — no leasing/sealing/graduation change.

Closes #339

* test(relay): cover swarm:relay --type=audit lane isolation

--type=audit alone was untested — only --type=step, --type=bogus, and
the no-flag (both-lanes) case were covered. Adds a test asserting the
audit lane drains while the durable lane stays untouched, mirroring
the existing --type=step asymmetric-drain test.

Closes #338

* docs(agents): correct laravel/ai version reference to ^0.8 (#344)

* docs(contributing): document composer hooks:install setup step (#345)

* perf(audit): batch outbox retry/dead-letter writes with per-row fallback (#346)

Replace per-row UPDATE statements in DatabaseAuditOutbox::drain() with
two batched upsert() calls (failed vs. dead-lettered), each falling back
to independent per-row writes if the atomic batch statement throws. This
preserves the pre-batching failure isolation (one malformed row no longer
fails the whole group) while cutting write round-trips during a sustained
sink outage.

* test(audit): cover mixed failed+dead-lettered batch in one drain() call (review F1) (#347)

Neither of the batching regression tests added for the retry/dead-letter
write refactor exercised both writeFailedGroup() and writeDeadLetterGroup()
running in the same drain() call. Adds a test that forces one entry to stay
failed and another to reach dead_letter within one call, proving the two
independent upsert() calls don't interfere.

* chore(release): v0.16.1 (#348)

* docs(changelog): fill in v0.16.1 release wrap-up

* docs(upgrading): v0.16.1 upgrade notes
Assets 2
Loading