RustBox 0.1.2 release manifest Storage model: - database_backend = sqlite | mysql | pgsql selects the full application database - session_backend = database stores sessions in the same database - session_backend = redis uses Redis or Redis Sentinel for sessions Database baselines: - migrations/sqlite/schema.sql: complete SQLite schema, baseline version 46 - migrations/mysql/schema.sql: complete MySQL schema, baseline version 46 - migrations/pgsql/schema.sql: complete PostgreSQL schema, baseline version 46 - each schema includes global sessions and isolated account-data tables - historical SQLite V001-V046 files are intentionally squashed out of this release - next migration number for every SQL engine: V047 Cluster storage rules (0.1.2): - SQL mailbox metadata/body cache is shared by the configured MySQL/PostgreSQL backend - data_dir must be shared between nodes for filesystem-backed draft attachments - cluster_shared_data_dir=true is required as an explicit deployment acknowledgement - built-in Tantivy must be disabled in cluster mode (search_index_backend=disabled) - OpenPGP must be disabled in cluster mode (pgp_enabled=false) - legacy db.sqlite files remain migration-only; they are not the active database on MySQL/PostgreSQL Compatibility: - legacy RustBox 0.1.0 per-user SQLite databases at user_version 46 are imported on first access - imported source DBs are retained as db.sqlite.pre-0.1.1.bak - older legacy schemas must first be upgraded with RustBox 0.1.0 Tests/source cleanup: - tests/fixtures/account-session-expired.json is retained because Rust tests include it - stale tests/*.py and tests/theme_fixture.html are not part of the release tree Oxi tracking: - UPSTREAM_BASE stores the consumed Oxi revision - backend source changes are mapped into the flat RustBox tree - upstream backend/migrations and backend/tests are review-only and never auto-imported - frontend changes are reviewed and manually ported to src/web/ - scripts/finish-upstream.sh requires explicit acknowledgement for changed RustBox-owned upstream areas before advancing UPSTREAM_BASE