fix(server): preserve automatic settlement timestamps (#9254)

Server-side auto-settlement stamped settledAt with the sweep time, so old threads looked newly settled on every startup and sorted wrong in the Settled shelf.

The reactor now carries the thread's last user/turn activity through the internal auto-settle command and the decider persists it as settledAt, while updatedAt stays the command time. Migration 046 repairs projection_threads.settled_at for identifiable past sweeps without touching the event log. Web and mobile sort and label settled rows through a shared client-runtime resolver.

Refs #9057. Pairs with #9081.

Made with GPT-5.6 Sol in T3 Code through the Codex harness; follow-up and merge by Claude Fable 5 in Claude Code.

Co-authored-by: eimexdev <eimexdev@users.noreply.github.com>
2971ec3209eimexdev committed on 9/3/2026, 12:19:44 AM· committed by GitHubparent15fea6c
22 files changedLine totals unavailable