Releases: JEschete/FFXIV_Completionist_Browser_App
Releases · JEschete/FFXIV_Completionist_Browser_App
Release list
v1.0.10 Issue Rollup
v1.0.9 Features and Issue Fixes abound
Changelog
v1.0.9 — 2026-06-01
Overview and Progress Insights
- Added a recent activity feed on Overview grouped by
Today,This Week, andOlder, 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-cardswith 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-newlisting 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), andtodo(leave/reopen unresolved). - Added per-character review counters (unresolved, accepted, reverted, total) on the deconflict page.
- Added explicit bulk-action scope (
unresolved onlyvsall 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-cardswith 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
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_reportswith timestamped reports pluslatest.jsonandprogress_baseline.json. - Added automatic between-run transition reports during startup/ingest reconciliation and import transitions.
- Added a new
Progress Reportspage 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-reportfor 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-Jobslevel rows fromclass_jobpayload data with merge modes (keep-highestdefault,overwriteoptional). - 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 GuideunderFishing 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.ymlwith:ruff checklinting (plus advisory format check),pytest+ coverage reporting,- OS/Python matrix coverage (
ubuntu-latestandwindows-latest; Python3.10and3.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
v1.0.7 — 2026-05-23
Desktop App Import
- Merged inline Desktop App custom metadata (
overall.custom+ top-levelcustom) into source indexing so custom entries no longer fail asid_not_in_source_indexwhen metadata exists incompletion.json. - Added positional mapping support for numeric buckets in
Classes-JobsandDesynthesis, including nested bucket paths such ascharacter/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
tasklistfallback. - 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
v1.0.6 - Themes Bug fixes and more! 2026-05-22
Desktop App Import
- Added full progress import support from the Desktop App
completion.jsonflow. - 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 fromapp/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:
Charactersnow appears beforeChains, andCreditsnow appears to the right ofSettings. - Fixed submenu parenting during ingest using menu hyperlink targets so
Companion RankandCompanion Skillsstay underChar. 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.
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
Attempts to fix level 100 bug with lodestone probing.
v1.0.3 Server GUI Edition
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
.xlsxinstead of dropping it inSpreadsheet/. 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.pyregeneratesassets/icon.icofromassets/icon.pngat every installer build, so swapping the app icon is a one-file change.updater.pyis dependency-free (stdlib only) and reusable outside the GUI.- Inno Setup script (FFXIVTracker.iss) is checked in;
python build_installer.pyis 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
Merge pull request #31 from JEschete/releases updated git ignore