You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A parity audit against the TypeScript branch found three gaps.
The doctor passed on an instance table without
`completed_idempotency_keys`, so an operator who installed the gem and
skipped the migration learned about it from a worker crash rather than
from `solid_objects doctor`. The TypeScript doctor verifies its whole
migration list, so it already caught the equivalent. Without the column
in `EXPECTED_COLUMNS` the new test fails with `Expected true to not be
truthy`.
The dead path wrote the instance row for every dead message, including
one that carried no key. `remember_key` now returns first, which matches
what the TypeScript repository does and removes a write per dead
message. The complete and reject paths fold the column into an update
they already perform.
The changelog described neither the migration an application must run
nor `SolidObjects::SchemaBootstrap`.
A test proves two keyed messages in one activation pass are both
remembered, because the executor reads the locked instance row rather
than a claim-time copy.
Validation: bundle exec rake, plus the full suite on PostgreSQL 16,
mysql2, and trilogy. 783 runs, 0 failures on each.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
0 commit comments