Skip to main content

SCHEMA

Constant SCHEMA 

Source
pub const SCHEMA: u32 = 3;
Expand description

On-disk format for a question. Bumped when a field’s meaning changes, or - as with Question::thread and now Question::answer_timeout - when a new field is added that a much older magi has no notion of at all.

The web UI is written against this shape by hand - there is no shared schema between the front end and this struct - so a field that changes meaning without a bump here is a UI that lies silently.

A file is refused only when its own schema is greater than this one - see [read_path] - never merely different: #[serde(default)] on every field added since 1 is what makes an older file’s absence of thread mean “no conversation yet” rather than “unreadable”, and a strict equality check would turn every bump into an upgrade that breaks reading yesterday’s question files.