aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG.md
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-04-23 16:09:59 -0500
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-04-23 16:09:59 -0500
commit96a6ba196c72e955c3db822d93da38fce8cd7045 (patch)
tree3fcc40e939bd609c4cb7b84f05e85875dde64fc6 /CHANGELOG.md
parent6b9f0876cfbf6f8c723c86ec941ee70933aa883f (diff)
Fix VFS rmdir, prefix/launch issues, add version + beta channel
- VFS: add mo2_rmdir + OverwriteManager::removeDirectory so Wrye Bash shutil.rmtree stops failing with WinError 267 (issue #47). - FileRenamer: case-insensitive fallback via new resolvePathCaseInsensitive walks each path component; bulk hide in Conflict tab no longer dies with a misleading "Input/output error" when DirectoryEntry normalised parent dir case (issue #54). formatSystemMessage stops aliasing Windows error code 5 to errno 5 (EIO). - Versioning: FLUORINE_VERSION_* + fluorine_build_info.h generated from CMake; Linux createVersionInfo returns Fluorine's version. About dialog shows Fluorine version + MO2 engine + commit. Beta builds stamp "<semver>B<yyyymmddhhmm>" (issue #51). - CI: ci.yml determines channel from ref (v* tags = stable, main = beta), publishes a rolling `beta` GitHub release whose body carries a machine-parseable fluorine-meta block (timestamp, commit) for the in-app updater. - Updater: new FluorineUpdater polls GitHub API on startup, compares against embedded metadata, notifies on new release without auto-install. Channel toggle piggybacks on the existing "beta versions" checkbox. - Bethesda plugins: determineMyGamesPath no longer creates Documents/My Games/<GameName> for every possible title at plugin load; only games with a detected install path get their dirs created (issue #55). - Starfield: dataDirectory() on Linux now points at <game>/Data instead of My Games/Starfield/Data so the single FUSE mount lands where SFSE loads plugins; My Games Data becomes a secondary symlinked mapping (issue #56). - Prefix resolution: prefer Fluorine config, then explicit fluorine/prefix_path, then legacy Settings/* keys (with a warning) so auto-detected Heroic/Bottles prefixes can't silently override a user- configured Fluorine prefix (issue #52). compatDataPathFromPrefix no longer hands Proton the wrong parent dir for plain wine prefixes. - xrandr: ensureXrandrInstalled back-fills the helper for existing SLR installs, prefix init runs it before wineboot, SLR wrap exposes xrandr-bin via --filesystem= and prepends PATH inside the container (issue #49). - Process tracking: drop the wineserver-as-last-resort fallback that made MO2 hang on Proton's session manager after game exit. Rescan the prefix for matching game executables instead (covers reparented launcher children like f4se_loader → Fallout4.exe). Unlock button now kills wineserver for the prefix (SIGTERM then SIGKILL on timeout). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md42
1 files changed, 42 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..b92e886
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,42 @@
+# Fluorine Manager — Changelog
+
+All notable user-facing changes to Fluorine Manager land here. Versioning
+follows SemVer (MAJOR.MINOR.PATCH). Two distribution channels:
+
+- **stable** — tagged `v*` releases. Each tag cuts a normal GitHub release.
+- **beta** — rolling release under the `beta` tag. Every push to `main` that
+ builds successfully replaces the assets on that one release — no new tag
+ per build. Beta builds embed a `B<timestamp>` suffix in their version
+ string (e.g. `0.1.4B202604231800`) and a commit hash, so the in-app
+ updater can tell whether the build you're running already matches the
+ current rolling release.
+
+## [Unreleased]
+
+### Added
+- In-app self-update checker with channel toggle (stable / beta) in
+ Settings → General. Runs on startup (when "Check for updates" is on) and
+ surfaces new releases without auto-installing.
+- Fluorine version is now distinct from the embedded MO2 engine version.
+ About dialog shows `Fluorine Manager <version>` with the MO2 engine
+ version and build commit on the revision line.
+- CI publishes a rolling `beta` GitHub release on each push to `main`,
+ including a machine-parseable `fluorine-meta` block (timestamp, commit)
+ that the updater reads to detect matching builds.
+- FUSE VFS now handles `rmdir`, unblocking tools like Wrye Bash that tear
+ down temp directories inside the virtual Data folder.
+
+### Fixed
+- Bulk hide from Conflict tab (#54) no longer fails with a misleading
+ "Input/output error" when the DirectoryEntry tree has lowercased a
+ parent directory. `FileRenamer` now resolves case mismatches against the
+ real filesystem before giving up, and the rename path surfaces the
+ actual errno text instead of conflating the Windows error code 5 with
+ errno 5 (EIO).
+- Wrye Bash `NotADirectoryError: [WinError 267]` during Data-folder
+ initialization (#47). Rooted in the missing FUSE `rmdir` op.
+
+## [0.1.3]
+
+- First versioned Fluorine Manager release (baseline pre-CHANGELOG).
+ See git history for earlier work.