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

+22 -8
View File
@@ -1,10 +1,10 @@
RustBox 0.0.6 source release
RustBox 0.1.0 source release
Runtime/source model:
- one root Cargo package
- src/ Rust application code
- src/web/ RustBox-owned embedded browser UI
- migrations/ SQLite migrations
- migrations/ dialect-separated SQLite/MySQL/PostgreSQL migrations
- no TypeScript/React/Next.js/Node.js/Bun build
- ManageSieve TLS/STARTTLS/explicit insecure transport option
- native systemd packaging
@@ -19,7 +19,19 @@ Oxi tracking:
- Oxi frontend changes are reviewed and manually ported to src/web/
- docs/UI.md documents the browser UI/build conventions
Current 0.0.6 release additions:
Current 0.1.0 release additions:
- persistent restart-safe sessions; SQLite under data_dir is the zero-config default
- optional MySQL/PostgreSQL session databases
- optional Redis sessions with direct URL or Redis Sentinel master discovery/failover lookup
- shared-session validation for load-balanced cluster traffic and cross-node revocation
- AES-256-GCM encryption for persisted IMAP/SMTP session credentials
- all executable Rust SQL centralized under src/queries/{sqlite,mysql,pgsql}/queries.rs, including sessions
- cached-message query projections are kept in a strict 16-column contract matching Rust row decoding
- flat migrations under migrations/{sqlite,mysql,pgsql}; SQLite user schema uses V001-V046 and sessions use V047 per SQL dialect
- user provisioning uses only the canonical SQLite V001-V046 runner; session V047 is selected separately by the configured session backend and Refinery is no longer used
- allowed downloads explicitly from the sandboxed HTML message reader while retaining popup isolation
- added GitHub-, GitLab-, Discord-, Slack-, Reddit- and Notion-inspired interface styles in light and dark variants
- added release contracts that require every predefined interface style to be visible in the selector, backed by CSS and accepted by backend/config validation
- attachment left-click defaults to safe in-app preview for supported types
- attachment right-click exposes explicit Preview and Download actions
- oversized preview attempts offer direct download instead of ending with a warning
@@ -34,7 +46,7 @@ Current 0.0.6 release additions:
- Gmail-, Proton-, Zoho- and Outlook-inspired interface profiles plus Minimal
- expanded Polish localization, including scoped dialog/settings text and common attributes
- JavaScript source split into functional `src/web/js/` modules and assembled by Cargo build.rs
- Interface style selector expanded to RustBox custom, Roundcube Classic/Larry/Elastic, Clean, Graphite, High contrast, Gmail-, Proton-, Zoho-, Outlook-inspired and Minimal
- Interface style selector includes RustBox custom, Roundcube Classic/Larry/Elastic, Clean, Graphite, High contrast, Gmail/Proton/Zoho/Outlook/Fastmail/Apple Mail/Yahoo/HEY/GitHub/GitLab/Discord/Slack/Reddit/Notion-inspired profiles, Nord and Minimal
- legacy Compact/Balanced/Comfortable/Reading appearance cards removed
- persisted special folders and mailbox behavior preferences
- bulk IMAP actions, copy/move, folder mark-all-read/empty, message-to-folder drag/drop
@@ -46,7 +58,7 @@ Current 0.0.6 release additions:
- expanded contacts with multiple e-mails/phones/addresses, vCard profile fields, duplicate merge and validated PNG/JPEG/WebP photos
- calendar Month/Week/Day/Agenda views, richer event metadata and ICS import/export
- search-index status/rebuild, IMAP reconnect diagnostics and live cross-browser session revoke UI
- 45 contiguous SQLite migrations wired sequentially; V042 adds per-user trusted senders, V043 saved responses, V044 interface skins and V045 saved-response format
- 46 contiguous SQLite user migrations wired sequentially as V001-V046; V047 is reserved for the separate session store in each SQL dialect
- safe Undo for resolvable IMAP MOVE actions and select-all across complete cached search results
- exact-token thread matching and expanded keyboard selection/navigation shortcuts
- in-app attachment preview, clipboard CID image paste and upload progress
@@ -62,10 +74,12 @@ Current 0.0.6 release additions:
- corrected Settings header/content grid for short panels and scroll-safe navigation
Validation note:
- JavaScript, JSON, TOML, SVG, shell syntax, UI selector/icon integrity and SQLite migrations were validated in the release environment.
- A full cargo build/test was not executed in this environment because cargo/rustc are not installed; run ./dev.sh or cargo test on a Rust toolchain host before deployment.
- 56 Python release/runtime/query-layout contract tests passed, including fresh SQLite user migrations, separate SQLite session migration, session restart persistence, query-catalog parity and warning-hygiene contracts.
- The assembled browser JavaScript bundle passed `node --check`; shell scripts passed `bash -n`; JSON/TOML/Python sources and Cargo.lock parsed successfully.
- `scripts/build-release.sh` now enforces `cargo fmt --check`, `cargo test --locked`, `cargo clippy --all-targets -- -D warnings`, and `cargo build --release --locked`.
- A full Rust gate could not be executed in this environment because cargo/rustc are unavailable; the release script and CI must pass on the toolchain host before deployment.
0.0.6 additions:
0.1.0 additions:
- mobile reader action and attachment fixes
- WebSocket heartbeat, reconnect backoff, watchdog, resync, dedupe and fallback polling
- reliable live new-message refresh and unread reconciliation