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

This commit is contained in:
Mateusz Gruszczyński committed 2026-10-31 00:37:16 +01:00
1 parent ecc201ef50
commit 698e3c4a1b
124 files changed
+4593 -2721

No files matched your search

+2 -2
View File
@@ -84,13 +84,13 @@ This file tracks the internal `0.0.4` baseline. The user-approved `docs/RUSTBOX_
- Account switch/remove/add workflow for multiple authenticated accounts in one browser session.
- Active-session list across browsers while the RustBox process is running, with creation/last-active timestamps, friendly browser/device labels, full User-Agent hover detail, individual revoke and revoke-all-others.
- Diagnostics panel exposing IMAP capabilities (including persistent custom-keyword support), authenticated SMTP connectivity, ManageSieve status, browser WebSocket state, local synchronization-cache timestamps/counts and live IMAP IDLE task/subscriber counts without returning server host names or credentials. Public liveness (`/api/health`) and local-storage readiness (`/api/ready`) endpoints are available for service supervision.
- Search-index diagnostics expose cached/indexed counts, with a rebuild operation from the local SQLite cache.
- Search-index diagnostics expose cached/indexed counts, with a rebuild operation from the configured account-data backend.
- IMAP reconnect control drops reusable request-path sessions and verifies a fresh authenticated connection.
- Graceful SIGTERM/Ctrl+C shutdown stops accepting new requests and aborts dedicated IMAP IDLE tasks before process exit.
### Personalization
- Persistent per-user display preferences in SQLite.
- Persistent per-user display preferences in the configured application database.
- Light/dark/system theme.
- Presets: sage, blue, teal, cyan, indigo, slate, graphite, amber, orange, violet, rose, red and custom.
- Custom accent, background, panel and text colors.
+22 -12
View File
@@ -6,19 +6,24 @@ RustBox uses a flat Cargo layout, while Oxi uses a `backend/` subtree. The sync
## Path mapping
Examples:
Automatically mapped examples:
```text
Oxi backend/Cargo.toml -> RustBox Cargo.toml
Oxi backend/Cargo.lock -> RustBox Cargo.lock
Oxi backend/rust-toolchain.toml -> RustBox rust-toolchain.toml
Oxi backend/src/... -> RustBox src/...
Oxi backend/migrations/... -> RustBox migrations/...
Oxi backend/tests/... -> RustBox tests/...
Oxi backend/examples/... -> RustBox examples/...
Oxi backend/docs/... -> RustBox docs/...
```
Review-only boundaries, never mapped automatically:
```text
Oxi backend/migrations/... -> review against RustBox migrations/...
Oxi backend/tests/... -> review/port as native Rust tests when useful
```
RustBox-owned `src/web/` has no automatic mapping from the Oxi frontend.
## Configure the upstream
@@ -28,7 +33,7 @@ A release archive does not contain `.git`. Initialize the RustBox repository onc
```bash
git init
git add .
git commit -m "RustBox 0.0.1 baseline"
git commit -m "RustBox 0.1.1 baseline"
./scripts/setup-upstream.sh
```
@@ -55,10 +60,11 @@ or inspect a specific Oxi ref:
The report separates:
1. Oxi `backend/` changes that can be mapped into RustBox;
2. Oxi `frontend/` changes that require a manual UI port;
3. other Oxi root-level changes that require manual review;
4. upstream commits since `UPSTREAM_BASE`.
1. Oxi backend changes that can be mapped automatically;
2. Oxi backend migrations/tests that require manual review;
3. Oxi frontend changes that require a manual UI port;
4. other Oxi root-level changes that require manual review;
5. upstream commits since `UPSTREAM_BASE`.
## Advance the consumed Oxi backend state
@@ -72,10 +78,10 @@ The operation:
2. fetches `upstream-oxi`;
3. verifies that the target descends from the recorded `UPSTREAM_BASE`;
4. creates a `sync/oxi-*` review branch;
5. generates the Oxi backend delta from `UPSTREAM_BASE` to the target;
5. generates the Oxi backend delta from `UPSTREAM_BASE` to the target, excluding `backend/migrations/` and `backend/tests/`;
6. rewrites only patch metadata so `backend/<path>` becomes `<path>`;
7. applies the mapped delta with Git three-way merge support;
8. does not import Oxi frontend sources;
8. does not import Oxi frontend sources, migrations, or tests;
9. records the target as a pending sync inside Git metadata;
10. deliberately leaves `UPSTREAM_BASE` unchanged until the maintainer finishes review.
@@ -87,12 +93,14 @@ After resolving backend conflicts and porting any relevant UI behavior, finish t
./scripts/finish-upstream.sh
```
If Oxi changed its frontend or root-level files, the finish step refuses to advance the baseline until you explicitly acknowledge those reviews:
If Oxi changed its frontend, root-level files, or the RustBox-owned upstream migration/test areas, the finish step refuses to advance the baseline until those reviews are explicitly acknowledged:
```bash
./scripts/finish-upstream.sh --ui-reviewed --root-reviewed
./scripts/finish-upstream.sh --ui-reviewed --root-reviewed --rustbox-owned-reviewed
```
`--rustbox-owned-reviewed` confirms that changes under Oxi `backend/migrations/` and `backend/tests/` were inspected and any relevant behavior was manually ported. Those files are never copied into RustBox automatically.
The finish step runs the RustBox release build gate and only then stages the new `UPSTREAM_BASE`. Review `git status` and commit the sync. `--skip-build` exists for exceptional local workflows, but CI should still run the full gate before merge.
If the sync is rejected, discard the review branch; the main branch and its `UPSTREAM_BASE` remain unchanged.
@@ -123,6 +131,8 @@ Oxi frontend source is never copied into RustBox. For a new Oxi feature that inc
These areas require explicit review and should not be replaced blindly by upstream changes:
- `migrations/` (RustBox owns the squashed baseline and future migration numbering);
- `tests/` (RustBox keeps native Rust/runtime fixtures rather than importing upstream Python contracts);
- `src/web/`;
- `src/ui.rs`;
- RustBox UI routing and same-origin behavior;