v0.1.0
RustBox CI / rustbox (push) Canceled after 0s

This commit is contained in:
Mateusz Gruszczyński committed 2026-10-30 17:22:17 +01:00
1 parent 0421994fe6
commit 425ea7449b
138 files changed
+5705 -1012

No files matched your search

+24
View File
@@ -1,5 +1,29 @@
# RustBox changelog
### 0.1.0
- Cleaned the final release gate for Rust 1.99 Clippy with `-D warnings`: refactored persistent session creation into a typed input struct and fixed all reported collapsible conditionals, redundant closures, needless borrows/question marks, test layout and collection checks without disabling Clippy globally.
- Fixed fresh user-database provisioning so only SQLite user migrations `V001`-`V046` are applied; session migration `V047` is now exclusively owned by the configured session-store backend and MySQL SQL can no longer be executed against a user SQLite database.
- Removed the obsolete Refinery migration path/dependency and its `refinery_schema_history` bridge; RustBox now has one canonical user-database migration runner.
- Removed unused test-only session removal helpers that emitted `dead_code` warnings during `cargo test`.
- Strengthened `scripts/build-release.sh` to require formatting, locked tests, Clippy with `-D warnings`, and a locked release build before producing a release binary.
- Removed production-build warning noise from the multi-dialect query catalogs without disabling warnings crate-wide; test-only session/SMTP helpers are now compiled only under `cfg(test)`.
- Fixed cached-message row decoding after the query-catalog refactor: message list queries now project the exact `CachedMessage` column order (`flags`, `size`, `has_attachments`, `snippet`, `reaction`) across SQLite/MySQL/PostgreSQL.
- Fixed Rust `macro_rules!` query hygiene errors by passing dynamic SQL fragments and parameter indexes explicitly into SQLite query macros instead of capturing caller-local variables.
- Fixed the `libsqlite3-sys` Cargo links conflict by using `rusqlite` for SQLite session persistence and limiting `sqlx` to MySQL/PostgreSQL drivers.
- Refactored all executable Rust SQL into a centralized dialect tree at `src/queries/{sqlite,mysql,pgsql}/queries.rs`; application modules no longer embed SQL statements.
- Added persistent sessions that survive process restarts; SQLite under `data_dir/rustbox.sqlite` is the default with no extra configuration.
- Added MySQL and PostgreSQL session-database backends plus independently configurable Redis sessions with direct or Sentinel master discovery.
- Added cluster mode validation and shared-session reads so authenticated traffic can move between nodes when a shared SQL/Redis backend is used.
- Encrypts persisted IMAP/SMTP session credentials with AES-256-GCM; single-node SQLite auto-creates `data_dir/session.key`, while shared/cluster stores require an explicit common key.
- Centralized the complete SQL query catalog by dialect under `src/queries/{sqlite,mysql,pgsql}/queries.rs`; session queries use the same tree. Flattened migrations directly under `migrations/{sqlite,mysql,pgsql}/`; SQLite user migrations remain `V001`-`V046` and sessions use `V047__sessions.sql` across SQL dialects.
- Bumped the application/source release to `0.1.0`.
### 0.0.7
- Added `allow-downloads` to the sandboxed HTML message reader so user-initiated downloads are no longer blocked by Chromium sandbox policy.
- Added GitHub-, GitLab-, Discord-, Slack-, Reddit- and Notion-inspired predefined interface styles with light/dark palettes.
- Added a release contract that verifies every predefined interface style is visible in the application selector, has a JavaScript profile and CSS palette, and is accepted by backend/config validation.
- Bumped the application/source release to `0.0.7`.
### 0.0.6
- Allowed links in rendered HTML messages to open in a new tab from the sandboxed reader while keeping the opened page outside the message sandbox.
- Added eight predefined color presets: Emerald, Lime, Sky, Navy, Plum, Magenta, Copper, and Sand.