# edfloreshz/tasks architecture

> Architecture diagram of the GitHub repository edfloreshz/tasks, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/edfloreshz/tasks
- Repository: https://github.com/edfloreshz/tasks

## Overview

Tasks is a COSMIC desktop task manager. Users navigate lists, create and edit tasks (including subtasks and details), and manage favorites, reminders, search, and trash; local task data is persisted by the store. The app also exposes settings and account-backed provider synchronization. Sampled source confirms app routing, search reads, trash operations, and sync/store behavior; other feature links are shown only where wiring is established by the documented feature structure, with unsampled details kept at module level.

Main entry points: [`src/app.rs`](https://github.com/edfloreshz/tasks/blob/main/src/app.rs) (App router), [`src/shared/store/store.rs`](https://github.com/edfloreshz/tasks/blob/main/src/shared/store/store.rs) (Store API), [`src/shared/providers/sync.rs`](https://github.com/edfloreshz/tasks/blob/main/src/shared/providers/sync.rs) (Provider sync), [`src/features/lists`](https://github.com/edfloreshz/tasks/tree/main/src/features/lists) (Lists)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["App interface"]
  node_app["App router<br/>[app.rs]"]
  node_navigation["Navigation"]
  node_dialogs["Dialogs<br/>[dialog.rs]"]
  node_settings["Settings"]
end

subgraph group_work["Task workflows"]
  node_lists["Lists"]
  node_task_content["Task content<br/>[content.rs]"]
  node_task_details["Task details<br/>[details.rs]"]
  node_favorites["Favorites"]
  node_search["Task search<br/>[search.rs]"]
  node_reminders["Reminders"]
  node_trash["Trash<br/>[trash.rs]"]
end

subgraph group_persistence["Local persistence"]
  node_store["Store API<br/>[store.rs]"]
  node_file_data[("RON data files")]
end

subgraph group_integrations["Accounts and sync"]
  node_accounts_ui["Accounts UI"]
  node_provider_sync["Provider sync<br/>[sync.rs]"]
  node_provider_adapters["Provider adapters"]
end

node_user(("Desktop user"))
node_accounts_service["Accounts service"]
node_remote_providers["Remote task services"]

node_user -->|"uses"| node_app
node_app -->|"routes through"| node_navigation
node_app -->|"dispatches"| node_dialogs
node_app -->|"routes list actions"| node_lists
node_app -->|"routes favorites"| node_favorites
node_app -->|"routes trash"| node_trash
node_app -->|"routes details"| node_task_details
node_app -->|"renders search"| node_search
node_app -->|"routes accounts"| node_accounts_ui
node_app -->|"shows settings"| node_settings
node_lists -->|"renders tasks"| node_task_content
node_task_content -->|"reads and writes"| node_store
node_search -->|"loads lists and tasks"| node_store
node_app -->|"loads task details"| node_store
node_trash -->|"reads and mutates"| node_store
node_accounts_ui -.->|"manages accounts"| node_accounts_service
node_provider_sync -->|"lists enabled accounts"| node_accounts_service
node_provider_sync -->|"syncs tasks"| node_provider_adapters
node_provider_adapters -->|"requests remote data"| node_remote_providers
node_provider_sync -->|"pulls and pushes"| node_store
node_store -->|"serializes and reads"| node_file_data

click node_app "https://github.com/edfloreshz/tasks/blob/main/src/app.rs"
click node_navigation "https://github.com/edfloreshz/tasks/tree/main/src/shared/navigation"
click node_dialogs "https://github.com/edfloreshz/tasks/blob/main/src/shared/dialogs/dialog.rs"
click node_settings "https://github.com/edfloreshz/tasks/tree/main/src/features/settings"
click node_lists "https://github.com/edfloreshz/tasks/tree/main/src/features/lists"
click node_task_content "https://github.com/edfloreshz/tasks/blob/main/src/features/lists/content.rs"
click node_task_details "https://github.com/edfloreshz/tasks/blob/main/src/features/tasks/details.rs"
click node_favorites "https://github.com/edfloreshz/tasks/tree/main/src/features/favorites"
click node_search "https://github.com/edfloreshz/tasks/blob/main/src/features/search/search.rs"
click node_reminders "https://github.com/edfloreshz/tasks/tree/main/src/features/reminders"
click node_trash "https://github.com/edfloreshz/tasks/blob/main/src/features/trash/trash.rs"
click node_accounts_ui "https://github.com/edfloreshz/tasks/tree/main/src/features/accounts"
click node_provider_sync "https://github.com/edfloreshz/tasks/blob/main/src/shared/providers/sync.rs"
click node_provider_adapters "https://github.com/edfloreshz/tasks/tree/main/src/shared/providers"
click node_store "https://github.com/edfloreshz/tasks/blob/main/src/shared/store/store.rs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_navigation,node_dialogs,node_settings,node_user toneBlue
class node_lists,node_task_content,node_task_details,node_favorites,node_search,node_reminders,node_trash toneAmber
class node_store,node_file_data toneMint
class node_accounts_ui,node_provider_sync,node_provider_adapters,node_remote_providers toneRose
class node_accounts_service toneIndigo
```

## Components

### App interface

- [App router](https://github.com/edfloreshz/tasks/blob/main/src/app.rs): `src/app.rs`
- [Navigation](https://github.com/edfloreshz/tasks/tree/main/src/shared/navigation): `src/shared/navigation`
- [Dialogs](https://github.com/edfloreshz/tasks/blob/main/src/shared/dialogs/dialog.rs): `src/shared/dialogs/dialog.rs`
- [Settings](https://github.com/edfloreshz/tasks/tree/main/src/features/settings): `src/features/settings`

### Task workflows

- [Lists](https://github.com/edfloreshz/tasks/tree/main/src/features/lists): `src/features/lists`
- [Task content](https://github.com/edfloreshz/tasks/blob/main/src/features/lists/content.rs): `src/features/lists/content.rs`
- [Task details](https://github.com/edfloreshz/tasks/blob/main/src/features/tasks/details.rs): `src/features/tasks/details.rs`
- [Favorites](https://github.com/edfloreshz/tasks/tree/main/src/features/favorites): `src/features/favorites`
- [Task search](https://github.com/edfloreshz/tasks/blob/main/src/features/search/search.rs): `src/features/search/search.rs`
- [Reminders](https://github.com/edfloreshz/tasks/tree/main/src/features/reminders): `src/features/reminders`
- [Trash](https://github.com/edfloreshz/tasks/blob/main/src/features/trash/trash.rs): `src/features/trash/trash.rs`

### Local persistence

- [Store API](https://github.com/edfloreshz/tasks/blob/main/src/shared/store/store.rs): `src/shared/store/store.rs`
- **RON data files**

### Accounts and sync

- [Accounts UI](https://github.com/edfloreshz/tasks/tree/main/src/features/accounts): `src/features/accounts`
- [Provider sync](https://github.com/edfloreshz/tasks/blob/main/src/shared/providers/sync.rs): `src/shared/providers/sync.rs`
- [Provider adapters](https://github.com/edfloreshz/tasks/tree/main/src/shared/providers): `src/shared/providers`

### Other components

- **Desktop user**
- **Accounts service**
- **Remote task services**

## Connections

- Desktop user → App router: uses
- App router → Navigation: routes through
- App router → Dialogs: dispatches
- App router → Lists: routes list actions
- App router → Favorites: routes favorites
- App router → Trash: routes trash
- App router → Task details: routes details
- App router → Task search: renders search
- App router → Accounts UI: routes accounts
- App router → Settings: shows settings
- Lists → Task content: renders tasks
- Task content → Store API: reads and writes
- Task search → Store API: loads lists and tasks
- App router → Store API: loads task details
- Trash → Store API: reads and mutates
- Accounts UI → Accounts service: manages accounts
- Provider sync → Accounts service: lists enabled accounts
- Provider sync → Provider adapters: syncs tasks
- Provider adapters → Remote task services: requests remote data
- Provider sync → Store API: pulls and pushes
- Store API → RON data files: serializes and reads
