# threadmail-app-dioxus

## Scope

The Dioxus desktop frontend for ThreadMail and the application's binary entry
point. It boots the app (load config, kick off account syncs), runs a dispatcher
that executes each effect concurrently and feeds completion messages back into
the `threadmail-app-logic` reducer held in a signal, and renders the resulting
state. All state transitions, effects, and domain rules live in the lower crates;
this crate contributes only the UI and the runtime that drives them.

## Structure

- `main.rs` — binary entry point: boot, the effect dispatcher, and the reducer loop.
- `logging.rs` — tracing init (stderr + daily-rotating file logs) and the panic hook that persists crash reports.
- `ui/` — the Dioxus component tree:
  - `mod.rs` — root component and shared UI wiring.
  - `sidebar.rs` — account/conversation sidebar.
  - `list.rs` — conversation list view.
  - `chat.rs` — conversation (chat) view and composer.
  - `forms.rs` — reusable form inputs.
  - `settings.rs` — the unified settings page (left App/Account tab column) and the Account tab body.
  - `app_settings.rs` — the App tab body (software update, diagnostics).
  - `update_banner.rs` — the "new version available" banner and its actions.
- `wix/main.wxs` — WiX definition for the Windows `.msi`, generated by `dist`; paired with the `[package.metadata.wix]` GUIDs in `Cargo.toml`.
