Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Changelog

0.0.1

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
  • 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
  • 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

update

Release

Windows

  1. Set up a self-signed certificate
    Run the PowerShell script:

    ./tools/new-self-certificate.ps1
    
    
  2. Create .secrets.json with the following content:

    {
        "WINDOWS_CERTIFICATE_PASSWORD": <>,
        "TAURI_SIGNING_PRIVATE_KEY_PASSWORD": <>
    }
    
  3. 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