--- title: "1.26.0 — Advisory chat moderation and hosted sign-in recovery" description: "Chat now preserves flagged messages with moderation scores and reasons for clients to hide or reveal. Hosted login, registration and contact pages gain bounded challenges, explicit recovery guidance and fresh form tokens. Chat consumers must update display handling and coordinate writer upgrades." date: "2026-09-13" tags: ["release"] canonical: "https://django-mojo.sitesmojo.com/changelog/1-26-0/" --- Chat now preserves flagged messages with moderation scores and reasons for clients to hide or reveal. Hosted login, registration and contact pages gain bounded challenges, explicit recovery guidance and fresh form tokens. Chat consumers must update display handling and coordinate writer upgrades. ### Breaking - Chat language moderation now saves messages at every severity instead of rejecting classifier blocks. Clients must handle `masked` messages and moderation scores before enabling the new writers; authorized responses retain the original body. ### Added - Chat sends, edits, history and realtime events include moderation decisions, scores and reason codes. Numeric scores are authoritative; `null` means legacy or unscored. - Hosted login, registration and contact pages offer Continue or a keyboard, pointer and touch accessible slider, with shared retry limits and explicit cookie, connection and operator recovery guidance. - Hosted forms acquire a fresh, scoped, single-use bouncer token for each protected submission, including retries and phone registration. ### Fixed - Hosted challenges confirm the returned pass cookie and recheck current restrictions before navigating. Wrong answers and ordinary browser failures do not train bot signatures or increase device risk. - Password-reset links work on the first click when session storage is unavailable. - Decoys selected by hosted screening reject locally without submitting credentials; explicit scanner honeypots retain their existing behavior. ### Upgrade notes - Apply the chat migration. Existing messages remain unscored; no history backfill runs. - Deploy compatible chat display and notification handling before enabling advisory posting. Hide message previews whenever the corresponding body is hidden. - Drain all old chat writers before starting scored writers. Mixed writer versions are unsupported because old edits can leave stale scores and reasons. - Before an application rollback, stop writers and use the new schema to set stored moderation scores to `null` and reasons to `[]`. Retain the additive schema, then start the old application. - Existing blocked devices and frozen sessions still require operator review. Completing a hosted challenge does not remove those restrictions.