The session activity heartbeat restamps last_activity_at and
last_activity_description mid-turn and on idle ticks. With those columns in
the digest, every heartbeat window still broadcast sessions.changed and the
Desktop Sessions panel kept refreshing on its own (#98005). Drop them from
the signature; message_count, title, pin/archive and row create/delete
still move it.
Open the probe through the tracked read-only connect every other live
state.db reader uses, and keep the last digest when a read fails after a
good one so a busy moment cannot flip the signature to mtime and back.
Ports the heartbeat / row-change / busy-store regression tests from #102987.
Fixes#98005
Co-authored-by: 小象 <247313108+shorehefei-ship-it@users.noreply.github.com>
Co-authored-by: salch-cred <salch-cred@users.noreply.github.com>
Co-authored-by: ajbmachon <ajbmachon2@gmail.com>