1 parent
ecc201ef50
commit
698e3c4a1b
124 files changed
+4593
-2721
No files matched your search
@@ -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
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user