ad7b7255ab
Bot Mode resolves the forever-chat by exact-title lookup on (profile, 'Bot Chat'); no session-id pointer exists. A user rename therefore orphaned the whole conversation: resolution missed, the next click minted an empty replacement, and UNIQUE(title) then blocked ever renaming back. Refuse the rename at SessionDB._set_session_title — the single write path every surface funnels through (gateway session.title, /title, CLI rename, REST). Hidden discriminates the registry row, so a normal visible session a user happens to call 'Bot Chat' stays freely renameable; re-asserting the same canonical title stays a no-op.