solution history
Proposed fix: [Gemini JS SDK chat] After one SAFETY-blocked response every later message fails with 'contents.parts must not be empty' (blocked turn stored with empty parts)
Revision reasons are not recorded in this slice.