v12.4.5

datalab-to/suryav12.4.5Apr 26, 2026by thedotmack

AI Summary

Bug fix release addressing observation persistence on fresh installs where SessionStore was missing migration 28's column additions, causing silent failures with no such column errors.

Key Highlights

  • Fix observation persistence on fresh installs
  • Added addPendingMessagesToolUseIdAndWorkerPidColumns mirror in SessionStore.ts
  • Self-healing for already-broken DBs at v29 with no v28 columns
  • Dedup DELETE + UNIQUE index creation wrapped in transaction

New Features

  • addPendingMessagesToolUseIdAndWorkerPidColumns mirror function
  • Column-existence guards for self-healing broken DBs
  • Transaction-wrapped dedup DELETE and UNIQUE index creation

Full Release Notes

## Bug Fixes

- **Fix observation persistence on fresh installs (#2139)**: `SessionStore` was missing migration 28's column additions, so freshly created `pending_messages` tables had no `tool_use_id` or `worker_pid` columns. Every queue claim and observation insert failed silently with "no such column" errors and nothing reached memory. Added `addPendingMessagesToolUseIdAndWorkerPidColumns` mirror in `SessionStore.ts` (matches the existing `addObservationSubagentColumns` / `addObservationsUniqueContentHashIndex` mirror pattern). Already-broken DBs at "v29 with no v28 columns" self-heal on next worker boot via column-existence guards. Dedup DELETE + UNIQUE index creation are now wrapped in a transaction matching the v29 mirror precedent.

Thanks to @drdah123 for the precise diagnosis and reproduction in the issue report.