Changelog
0.0.1
This is a preliminary list; I’ll continue adding items as they come to mind.
Changes
The app has been split into the following folders:
- app – Tauri backend
- web – Svelte/Vite frontend
- tools – Anything related to CI/release, either consumed by GitHub Actions or run manually
App
-
Logic refactor:
All core logic has been moved into appropriate modules, including:- Creating system tray / handling events
- Window event handling
- Handling events from the web frontend
- Database calls
- Access to the shell
- Spawning background workers and packet-sniffing/processing
-
Database migrator:
- At startup, the app applies all scripts from the
migrations
folder - Scripts must follow the format
[1-9*]_desc.sql
- At startup, the app applies all scripts from the
-
Settings management:
- On startup, the app will always create default settings from
settings.template.json
if no settings file is present - All previously hardcoded API URLs have been moved into the settings file
- On startup, the app will always create default settings from
-
Tauri updater wrapper (DEV):
- Provides a wrapper around the Tauri updater plugin
- Allows simulating downloads for testing for now
-
build.rs
- Applies Windows-specific manifest attributes only in production builds
-
Feature flags:
- Introduced develop and production features
- develop → allows use of fake services regardless of debug/release mode
- production → applies Windows attributes to the binary
-
Integration tests:
- Currently, there is only one integration test for the database
- Ensures that on a fresh app install, the database is set up correctly
Web
- Loading spinner:
- When the app starts, the web frontend makes a
load()
call - Tauri ensures that all assets are loaded and checks for active updates
- Tailored messages are shown based on the update state
- When the app starts, the web frontend makes a
Release
Windows
-
Set up a self-signed certificate
Run the PowerShell script:./tools/new-self-certificate.ps1
-
Create .secrets.json with the following content:
{ "WINDOWS_CERTIFICATE_PASSWORD": <>, "TAURI_SIGNING_PRIVATE_KEY_PASSWORD": <> }
-
Build the project
Run
./tools/build.ps1
Linux
Simply run cargo tauri build
Roadmap
Trackers
- Merge the various trackers into a single state management system.
- Once merged, figure out how to properly modularize them.
- Current trackers to merge:
entity_tracker.rs
id_tracker.rs
party_tracker.rs
status_tracker.rs
Configuration
- Replace hardcoded URLs with environment variables using
dotenv
.
Packet Recorder (DEV)
- Simple module to record all packets to file for development/debugging.
- Features to consider: -- Rotate files on zone change or other events
Backend Processing
- Evaluate party/raid stats (e.g., percentages) on the backend instead of the web frontend.
- Currently, the web frontend processes data by scanning entities and aggregating results.
- Moving computation to the backend will:
- Reduce frontend complexity (improve performance?)
Misc
- Merge
Entity
&EntityType
to enum-based polymorphism i.e tagged union - Merge
Entity
&EncounterEntity
hashmaps - Save boss hp log to db immediately
- Migrate DB to DuckDB