Glitchpad

27. Configuration, Persistence, and Diagnostics

Configuration, Persistence, and Diagnostics requirements from the authoritative Glitchpad Technical Specification.

The v0.1.4 preference schema contains theme, editor font family and size, line wrapping, tab width, Markdown default mode, and explicit language overrides. It contains no account, synchronization, workspace, telemetry, remote-resource, plugin, or recent-file setting.

Preferences are schema-versioned JSON in the platform application-config directory. Writes are atomic. A migration is deterministic and covered by fixtures; an unreadable future schema is preserved and reported instead of overwritten.

Recovery records and bounded renderer caches live in application-private data/cache directories. Recovery survives abnormal termination and expires after seven days. Regenerable caches are disposable, revision-keyed, quota-bound, and cleared by the user or automatically after expiry. No database is used.

Structured logs include timestamp, level, stable event ID, platform, component, duration, byte count, and stable error code. They exclude content, editor text, passwords, full paths, raw Android URIs, EXIF values, and recovery payloads. Release logs default to information level with bounded rolling retention.

The About/Environment surface shows product version, specification version, platform, architecture, WebView version, Rust core version, renderer versions, capability status, build commit, and license links. An explicit diagnostic export lets the user preview redacted logs and environment facts before saving a local bundle.