|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project are documented here. The format follows |
| 4 | +[Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versioning is |
| 5 | +[SemVer](https://semver.org/) with a `0.x` experimental prefix. Evidence links |
| 6 | +point to files in this repository (`docs/`) so the trail is auditable offline. |
| 7 | + |
| 8 | +## [0.1.1] — 2026-09-20 |
| 9 | + |
| 10 | +### Fixed |
| 11 | + |
| 12 | +- **Preserve user-modified `dlssg_sm86.ini` across reinstall and uninstall** |
| 13 | + (release-acceptance review P1). Reinstall now keeps an externally modified |
| 14 | + INI instead of overwriting it after warning (the manifest records an |
| 15 | + `ini_user_managed` flag that persists across upgrades); uninstall no longer |
| 16 | + overwrites an in-place user file with the pre-existing backup — the original |
| 17 | + config is saved beside it as `dlssg_sm86.ini.pre-existing`. |
| 18 | + Regression tests: `tests/test_review3.py`. |
| 19 | +- Single-source package version (`pyproject.toml` now reads |
| 20 | + `dlss_combo.__version__`); `--version` previously could disagree with the |
| 21 | + built artifact. |
| 22 | + |
| 23 | +### Changed |
| 24 | + |
| 25 | +- **Release process gate**: the release workflow now runs the offline test |
| 26 | + suite **and** the review repro audit **and** a functional smoke test of the |
| 27 | + *packaged binary* (install → doctor → uninstall against a fabricated kit), |
| 28 | + on both Windows and Linux — no longer a `--version`-only check. |
| 29 | +- **Linux binary glibc floor**: built on `ubuntu-22.04` (was `ubuntu-latest`); |
| 30 | + the whole-binary GLIBC symbol floor is measured per build and ships in the |
| 31 | + zip's `build-info.txt` (v0.1.1 measured **GLIBC_2.14**, down from 2.38 in |
| 32 | + v0.1.0). Other distros remain unverified; glibc >= 2.17 is the conservative |
| 33 | + recommendation. |
| 34 | +- **Release page**: marked **pre-release** (matches the developer-preview |
| 35 | + stage); notes are English-first with Windows as the main download and Linux |
| 36 | + labelled experimental; each zip now contains `QUICKSTART.txt`, `LICENSE` |
| 37 | + and `build-info.txt` (source commit, build time, measured glibc floor). |
| 38 | +- **Linux/Proton guidance** (README + release notes): locate the game via |
| 39 | + Steam → *Browse local files* instead of assuming a fixed prefix layout; |
| 40 | + `WINEDLLOVERRIDES`/`PROTON_*` launch options are labelled community |
| 41 | + convention, not verified with this toolkit, with a pointer to Valve's |
| 42 | + Proton config docs. |
| 43 | +- Unsigned-binary wording is neutral: verify SHA256, decide about security |
| 44 | + warnings yourself; no instruction to bypass protections. |
| 45 | + |
| 46 | +## [0.1.0] — 2026-09-20 |
| 47 | + |
| 48 | +### Added |
| 49 | + |
| 50 | +- Initial public toolkit: `fetch` / `install` / `uninstall` / `doctor` CLI |
| 51 | + coordinating [DLSS5-Swapper](https://github.com/rakanki911/DLSS5-Swapper) |
| 52 | + (DLSS 5 image layer) with |
| 53 | + [dlssg_for_sm86](https://github.com/sdli1995/dlssg_for_sm86) (frame |
| 54 | + generation on RTX 20/30); SHA256-verified kit downloads pinned to an |
| 55 | + upstream commit; manifest-driven install/rollback/uninstall; bilingual docs. |
| 56 | +- First release binaries for Windows x64 and Linux x64 via GitHub Actions. |
| 57 | + |
| 58 | +### Security / file-safety (from the 2026-09-20 project review, all fixed here) |
| 59 | + |
| 60 | +- Manifest validation before any destructive step: known schema version, |
| 61 | + allow-listed filenames only, relative paths, no `..`/absolute/symlink |
| 62 | + escapes, backups confined to `.dlss-combo/` (review A). |
| 63 | +- Hash-based ownership: files whose current hash no longer matches the install |
| 64 | + record are treated as third-party and never touched (review B). |
| 65 | +- Pre-existing user INI backed up (`pre-existing`, distinct from tool-history |
| 66 | + backups) and restored on uninstall (review C). |
| 67 | +- Every required kit file must carry a well-formed matching SHA256; cache hits |
| 68 | + re-verify with automatic refetch; Swapper binary hash-checked before launch |
| 69 | + and refused if a ZIP (review D, J). |
| 70 | +- Atomic disk writes everywhere (temp file + replace), rollback restores |
| 71 | + deleted files and cleans partial temp files (review E). |
| 72 | +- Kit fetch is transactional per file; per-runtime commit records; Swapper |
| 73 | + metadata survives refreshes (review F). |
| 74 | +- Doctor accuracy: newest-log/newest-event route parsing, strict booleans, |
| 75 | + empty ReShade folders no longer reported as an installed image layer, |
| 76 | + non-zero exit on detected problems (review G). |
| 77 | +- Proxy order follows the upstream tool-class recommendation |
| 78 | + (`version → winmm → dbghelp → dinput8` before the riskier `d3d12`/`dxgi`), |
| 79 | + `--proxy` pins a name explicitly (review H). |
| 80 | +- `--arch` no longer skips driver checks; `310.1 + 6x` rejected per upstream |
| 81 | + limits (review I). |
| 82 | + |
| 83 | +The nine reproduced problem behaviors are pinned by |
| 84 | +`docs/reviews/2026-09-20-repro.py` (all report fixed) and migrated into |
| 85 | +regression tests (`tests/test_review2.py`). |
| 86 | + |
| 87 | +[0.1.1]: https://github.com/ztwzeroo/DLSS5-FrameGen/releases/tag/v0.1.1 |
| 88 | +[0.1.0]: https://github.com/ztwzeroo/DLSS5-FrameGen/releases/tag/v0.1.0 |
0 commit comments