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
The 60-second liveness scan runs as one transaction per tick instead of one autocommitted write per candidate; its SQL is cube/listener-scoped and keyset-batched; migration 26 adds a partial covering index on activity_log(cube_id, created_at, id) WHERE visibility='direct'. Wake semantics are unchanged. This work is tracked in #371.
Roster reads (GET /api/cubes/:cube_id/drones, plain and since=) compute wake state for all drones in one set statement instead of one query per drone; payloads are unchanged field for field.
Activity append no longer sorts the expired-cursor ledger on every write; migration 27 adds an index on expired_activity_cursors(cube_id, created_at, entry_id) and the ledger trim is one indexed set delete. Cap and cursor-expiry semantics are unchanged.
Every runtime log line now carries a UTC ts field; no other log field changes.
Migrations 26 and 27 are additive indexes applied on first open. A store that has been opened by 3.2.2 (schema 27) is refused by 3.2.1 with MigrationCompatibilityError ("Database migrations do not exactly match this server version."); 3.2.1 does not open it. Back up before upgrading if you may need to return to 3.2.1.
This release changes no API shape and no request behaviour. The measured effect on live stall frequency will be recorded on #371 from the 3.2.2 runtime log after deployment.