Skip to content

Releases: JEschete/FFXIV_Completionist_Browser_App

v1.0.10 Issue Rollup

Choose a tag to compare

@JEschete JEschete released this 24 Jun 02:07
4af2061

What's Changed

Full Changelog: v1.0.9...v1.0.10

v1.0.9 Features and Issue Fixes abound

Choose a tag to compare

@JEschete JEschete released this 01 Jun 05:39
4f5519e

Changelog

v1.0.9 — 2026-06-01

Overview and Progress Insights

  • Added a recent activity feed on Overview grouped by Today, This Week, and Older, including a scroll container for larger histories.
  • Added an Overview contribution heatmap with active-day intensity, current streak, and longest streak metrics.
  • Added shareable progress cards at /share-cards with style/layout/size controls and PNG export.
  • Added weekly "top sheets improved" insights on share cards using net-done progression tracking.

What's New and Ingest Comparison

  • Added a dedicated What's New page at /whats-new listing rows newly introduced by the latest workbook ingest.
  • Added stable-identity ingest diff matching (section+label, label, hash, position) to reduce false-positive additions when rows move.
  • Added persisted pre-rebuild workbook snapshot fallback so latest-vs-previous ingest comparison still works when schema rebuild resets ingest_runs.
  • Added an Overview What's New toast that clears after review while preserving the underlying What's New page data.

Deconflict and Review Workflow

  • Added a Data Integrity Monitor to deconflict reports with critical/warning alerts (for example abrupt value-drop detection).
  • Clarified deconflict review semantics for done (accept After), excluded (revert Before), and todo (leave/reopen unresolved).
  • Added per-character review counters (unresolved, accepted, reverted, total) on the deconflict page.
  • Added explicit bulk-action scope (unresolved only vs all review items) and clear success/no-op feedback messaging.

Tracking and UX Enhancements

  • Added watchlist pin/unpin flows with dedicated watchlist UI.
  • Added row-note support with persistence and row-level integration.
  • Added persistent multi-state sheet filtering and improved completion behavior controls.
  • Added 100% completion marking/filtering improvements across navigation surfaces.
  • Improved global search behavior and desynthesis value precision handling.

Characters and Gameplay

  • Added character rename support and related character-management quality-of-life updates.
  • New characters now apply starting class defaults more consistently.
  • Added built-in minigames hub/routes (/minigames) with 2048, Snake, Slide 15, Breakout, and Bomb Flip.

Closed Issues Coverage

  • #50 Shareable progress cards: added /share-cards with style/layout/size controls and PNG export.
  • #48 Data integrity monitor: added integrity alerting on deconflict reports with critical and warning surfacing.
  • #46 Row notes and reminders: added row-level note persistence and UI integration.
  • #45 Personal watchlist: added pin/unpin flows and a dedicated watchlist page.
  • #44 Rename characters without losing progress: added rename flows with progress-sidecar continuity.
  • #43 Completed chains should not appear in overview chains in progress: overview chain lists now omit fully completed chains.
  • #42 Search is not global: global search coverage improved across sheets, sections, and menu paths.
  • #41 Desynthesis allow 2 decimal places: desynthesis value handling now supports two-decimal precision.
  • #40 Mobile page slightly zoomed in: mobile viewport handling and responsive behavior were adjusted for proper first-load scale.
  • #39 Sidebar independent scrollbar: sidebar scrolling behavior was separated from the main content flow.
  • #38 Gathering logs messed up on desktop import: gathering-log bucket/type mapping and filtering were hardened in desktop import.
  • #37 Filter/Mark 100% completion: completion-state filtering and 100% handling were added across navigation views.
  • #36 Persistent filter mode: sheet filter mode now persists between page transitions/sessions.

v1.0.8 Desktop App Import Improvements, CI/CD, Better Matching

Choose a tag to compare

@JEschete JEschete released this 25 May 16:04

Does this need a fresh Workbook Ingest to Rebuild Database: YES

v1.0.8 — 2026-05-24

Between-Run Progress Reports

  • Added persistent progress baseline/report support under data/logs/progress_reports with timestamped reports plus latest.json and progress_baseline.json.
  • Added automatic between-run transition reports during startup/ingest reconciliation and import transitions.
  • Added a new Progress Reports page with per-character filtering, unresolved review counts, and advanced added/removed/orphaned detail views.
  • Added report review resolution actions (done, excluded, todo) in the web UI, including apply-and-save behavior for report-backed row changes.
  • Added an on-demand report API endpoint at /api/progress/between-run-report for generating and optionally persisting snapshot diffs.

Import and Data Hardening

  • Added import transition guard behavior: initial imports with no prior explicit progress now skip transition report generation and reset the baseline.
  • Added clear-existing import handling that resets the baseline instead of producing noisy transition reports.
  • Import run summaries now include existing explicit progress counts, optional history artifacts, unmatched report paths, and progress report paths.
  • Lodestone JSON import now syncs Classes-Jobs level rows from class_job payload data with merge modes (keep-highest default, overwrite optional).
  • Hardened progress write paths with immediate transaction acquisition and rollback-safe sidecar write-through for row state updates and override clears.
  • Deleting a character now also removes rollup rows and cleans up/invalidate related sidecar files.

Workbook Ingest and Structure Hardening

  • Added pre-ingest baseline snapshot capture when required tables are present, with graceful fallback when snapshot capture is unavailable.
  • Schema rebuild now restores latest per-row progress deterministically via windowed ranking, with compatibility fallback for older/partial schemas.
  • Improved submenu parent resolution to avoid ambiguous shared cross-links during hierarchy inference.
  • Added explicit content parent override support (including Fish Guide under Fishing Logs).

UI and Navigation Data Improvements

  • Added row-type aware export rows to support richer report comparisons and review-item actions.
  • Added trackable rollup helpers for virtual content group aggregation, including label-prefix grouping support for Hunting Logs.

CI and Test Coverage

  • Added GitHub Actions CI workflow in .github/workflows/ci.yml with:
    • ruff check linting (plus advisory format check),
    • pytest + coverage reporting,
    • OS/Python matrix coverage (ubuntu-latest and windows-latest; Python 3.10 and 3.13).
  • Expanded regression coverage across between-run reporting, import transition guards, DB rollups/helpers, ingest helpers, scraper/parser paths, and web routes.

v1.0.7 Major Memory Fix

Choose a tag to compare

@JEschete JEschete released this 24 May 00:16

v1.0.7 — 2026-05-23

Desktop App Import

  • Merged inline Desktop App custom metadata (overall.custom + top-level custom) into source indexing so custom entries no longer fail as id_not_in_source_index when metadata exists in completion.json.
  • Added positional mapping support for numeric buckets in Classes-Jobs and Desynthesis, including nested bucket paths such as character/character/classes-jobs.
  • Numeric completion values now preserve their real values instead of being clamped to 100 during decode.
  • Value-row imports now apply through cap-aware value writes, preserving row caps (for example desynthesis rows up to 770) instead of forcing 100.

Workbook Ingest and Diagnostics

  • Added optional ingest memory checkpoints (--mem-log) to report process RSS throughout workbook processing.
  • Added Server Manager GUI support for ingest memory logging with a persistent checkbox in Settings.
  • Ingest runs launched from the GUI now write per-run logs to data/logs/ingest_*.log.
  • Improved Windows memory reporting reliability with explicit process-memory probing and a tasklist fallback.
  • Reduced peak ingest memory on very wide sheets by replacing broad row scans with targeted row-index reads and bounded menu-column scans.
  • Improved workbook memory lifecycle handling with explicit close/finally cleanup to release resources sooner.

UI and Rendering

  • Fixed settings page cap-input alignment behavior and bumped stylesheet cache version so CSS updates apply immediately.
  • Fixed template rendering crash when non-value rows do not include value_cap.
  • Crafting divider rows such as 91-100, 81-90, and (See Shared Craft Log) now ingest as section rows (not empty checkbox rows), preventing blank dash rows in crafting logs.

v1.0.6 Themes Bug fixes and more

Choose a tag to compare

@JEschete JEschete released this 22 May 18:00

v1.0.6 - Themes Bug fixes and more! 2026-05-22

Desktop App Import

  • Added full progress import support from the Desktop App completion.json flow.
  • Import runtime now scales with completion size and account history depth; larger profiles can take noticeably longer, so users should wait for the monitor to finish.
  • Import monitor messaging now clearly reports applied rows, already-set rows, unmatched candidate counts, skipped known-untracked entries, and unmatched report output location.
  • Typical successful completion output looks like:
[23:04:43] Desktop import complete: applied=30813, already_set=0, unmatched_candidates=126
[23:04:43] Unmatched reasons: not_found_in_workbook=126
[23:04:43] Skipped 15 known-untracked desktop entries
[23:04:43] Saved unmatched report to D:\Dev\FFXIVTracker\data\lodestone_probe\unmatched\9a09b011d5c148369a9fe3dc1278b0a9.json
[23:04:43] Desktop import job completed
[done] applied=30813, matched=29073/29214, unmatched=126

Themes, Settings, and UI Polish

  • Added a dedicated Settings page with persistent theme controls.
  • Added theme and scheme selection (default, dark, light) sourced from app/themes/*.json.
  • Added server-side theme catalog loading and validation with graceful fallback behavior.
  • Added first-paint theme-aware background/text injection to reduce wrong-theme flashes on navigation.
  • Added shared chrome tokens (sidebar-top, sidebar-bottom, chrome-top, chrome-bottom) and applied them to the sidebar plus top-right controls so those regions now follow active theme values.
  • Updated theme ordering in the Settings dropdown to: FF by numeric order, then Pokemon by generation acronym order (RBY, GSC, RSE, DPPL), then non-FF themes.
  • Added Vagrant Story palette tuning for both light and dark schemes based on visual references.
  • Updated topbar quick-link order: Characters now appears before Chains, and Credits now appears to the right of Settings.
  • Fixed submenu parenting during ingest using menu hyperlink targets so Companion Rank and Companion Skills stay under Char. Menu - Companion (and future ingests keep this structure).
  • Added a Lodestone language reminder in the probe workflow and docs to switch Lodestone to English before scraping/importing.

Issue Updates

  • #17 When downloading and launching a new installer from the GUI, the running GUI now closes before the installer starts to avoid locked-file and update-flow conflicts. Status: fixed. Test status: needs test.
  • #19 JSON import from file picker could fail while dropdown selection incorrectly took precedence in some flows. Import source precedence is now explicit and file-picker handling is corrected. Status: fixed. Test status: tested.
  • #12 Mobile sidebar flash on page load has been addressed with first-paint and hydration timing fixes to prevent visible panel flicker. Status: fixed. Test status: tested.
  • #18 Checklist sections are now collapsible with per-section toggles and persisted open/closed state for faster navigation on large sheets. Status: implemented. Test status: tested.
  • #21 Column sorting is now available on sheet tables, including toggle behavior for directional sorting and reset to original order. Status: implemented. Test status: tested.
  • #9 Bulk edit actions are now available on sheet tables for faster section-wide state updates (Done, To Do, Excluded), including guardrails for large updates. Status: implemented. Test status: tested.
  • #10 Undo and redo for progress changes are now available with multi-step history support for row edits, bulk actions, and import-driven changes. Status: implemented. Test status: tested.

v1.0.5 Matching mismatch fix.

Choose a tag to compare

@JEschete JEschete released this 21 May 05:52

Fixed special characters causing mismatches on the lodestone importer.
note remaining mismatches are from 7.5 content, the workbook needs to be updated to fix those.

v1.0.4 level 100 Bugfix

Choose a tag to compare

@JEschete JEschete released this 21 May 05:11

Attempts to fix level 100 bug with lodestone probing.

v1.0.3 Server GUI Edition

Choose a tag to compare

@JEschete JEschete released this 17 May 23:57

Server GUI Edition

First release with a proper desktop launcher. The text-menu launcher from v1.0.1 is still available via launch.cmd --cli, but the GUI is now the default experience on Windows.

New: PyQt6 desktop launcher

  • Server controls - Start / Stop server and Launch browser as one-click buttons; uvicorn is managed in-process, no second console window.
  • Live status indicators - Colored dot + label for both the web server (running / starting / stopped / error) and the SQLite database (ready / empty / error), polled every 800 ms.
  • Workbook ingest - File picker so you can point at any .xlsx instead of dropping it in Spreadsheet/. Ingest output streams into a log pane in real time.
  • Characters panel - Shows every character in the DB with their starting class. Auto-refreshes after each ingest; Open in browser deep-links to /characters.
  • Instructions dialog - Step-by-step walkthrough covering Discord workbook download → ingest → server start → Lodestone scrape → import, with troubleshooting tips. Links rewrite to your live server URL when it's running.
  • Built-in update check - Queries this repo's /releases/latest, compares against _version.py, and offers to download the installer asset with progress.
  • Open Discord button jumps straight to the FFXIV Completionist server.

New: Windows installer

build_installer.py produces a self-contained Inno Setup installer that bundles its own Python runtime - end users no longer need Python on their PATH. Desktop and Start Menu shortcuts launch the GUI via pythonw (no console window) and use the bundled icon.ico. A secondary (Text Menu) Start Menu entry preserves the old CLI workflow for power users.

Bug fixes

  • Server status now probes the actual bind host, not just loopback - fixes a regression where binding to a specific LAN IP (192.168.1.x) made the indicator stay gray even though the server was running.
  • Subprocess log output streams live instead of sitting in pipe buffers for minutes. Uses PYTHONUNBUFFERED, -u, and separate stdout/stderr channels so uvicorn's startup logs (which go to stderr) actually surface in the GUI.
  • Stopping the server no longer flashes a red "error" state - a user-initiated stop is correctly reported as gray "Not running".

For contributors

  • build_icons.py regenerates assets/icon.ico from assets/icon.png at every installer build, so swapping the app icon is a one-file change.
  • updater.py is dependency-free (stdlib only) and reusable outside the GUI.
  • Inno Setup script (FFXIVTracker.iss) is checked in; python build_installer.py is a one-command build.

Assets

  • FFXIVTracker-v1.0.2-Windows-Setup.exe - recommended. Self-contained installer with bundled Python.
  • FFXIVTracker-v1.0.2.zip - source bundle for users who already have Python 3.10+.

Initial Release

Choose a tag to compare

@JEschete JEschete released this 17 May 09:54
Merge pull request #31 from JEschete/releases


updated git ignore