Skip to content

Commit 143457d

Browse files
committed
docs: CHANGELOG (keep-a-changelog) and iteration devlog with evidence links
1 parent 83e3ba6 commit 143457d

3 files changed

Lines changed: 167 additions & 1 deletion

File tree

‎CHANGELOG.md‎

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
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

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<a href="https://github.com/ztwzeroo/DLSS5-FrameGen/issues/new?template=game-test.yml"><img src="https://img.shields.io/badge/Share-a_game_test-354a30?style=for-the-badge&amp;labelColor=263021" alt="Share a game test"></a>
2424
</p>
2525

26-
[Compatibility](#will-it-work-with-my-setup) · [FAQ](#frequently-asked-questions) · [Known issues](docs/STATUS.md) · [Contribute](CONTRIBUTING.md)
26+
[Compatibility](#will-it-work-with-my-setup) · [FAQ](#frequently-asked-questions) · [Known issues](docs/STATUS.md) · [Contribute](CONTRIBUTING.md) · [Changelog](CHANGELOG.md) · [Dev log](docs/devlog/2026-09-20.md)
2727

2828
*Prebuilt Windows EXE and Linux binaries ship on the [Releases](../../releases) page — or run from source with Python 3.10+. No upstream DLLs are bundled; components are fetched and checksum-verified at install time.*
2929

‎docs/devlog/2026-09-20.md‎

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# 开发日志 / 迭代记录 · 2026-09-20
2+
3+
本文件是项目当日全部迭代的留痕索引:每一轮的输入、决策、产出与证据都在仓库内可查。
4+
英文改动清单见 [CHANGELOG.md](../../CHANGELOG.md);各阶段详档在 `docs/` 下。
5+
6+
## 迭代时间线
7+
8+
### 第 0 轮 · 调研与选型
9+
10+
- **输入**:全网调研 dlssg_for_sm86 / DLSS Unlocked / OptiScaler / DLSS5-Swapper 四个项目
11+
(star、机制、上游文档),结论:dlssg_for_sm86 是插帧核心,DLSS5-Swapper 补 DLSS 5 画质,
12+
两者可分层组合;瓶颈是基础帧率(≥55–60 再开 4X)。
13+
- **决策**:不做渲染算法,做**安装编排器**(冲突规则、校验、还原、诊断)。
14+
15+
### 第 1 轮 · 构建(superpowers 全流程)
16+
17+
- 流程:brainstorming → [设计 spec](../superpowers/specs/2026-09-20-dlss-combo-design.md) →
18+
[实施计划](../superpowers/plans/2026-09-20-dlss-combo.md)(12 任务)→ TDD 红绿循环 → 验证。
19+
- **产出**:`dlss-combo` Python CLI(fetch/install/uninstall/doctor),81 测试,
20+
真实网络探针验证下载链路(上游 commit 固定 + SHA256)。
21+
- **已知诚实缺口(当时声明)**:`--launch-swapper`、驱动 ≥R580 检查未实现。
22+
23+
### 第 2 轮 · 自查审查 + 实测
24+
25+
- 环境无法派审查子代理(reasoning-level-missing)→ 按同模板**内联严格自查**。
26+
- **发现并修复**:重装删除范围未限定(manifest 可被外部编辑)、回滚不还原已删代理;
27+
补齐两个已声明缺口(驱动检查、`--launch-swapper`)。
28+
- **实测**:真实全量 fetch(413MB),文件字节数与 GitHub API 元数据逐字节一致;
29+
真实 kit 安装/篡改检测/卸载演练通过。
30+
31+
### 第 3 轮 · 外部项目审查(A–J,九项可复现缺陷)
32+
33+
- 详档:[2026-09-20-project-review.md](../reviews/2026-09-20-project-review.md);
34+
复现脚本:[2026-09-20-repro.py](../reviews/2026-09-20-repro.py)。
35+
- **修复**:manifest 路径/schema 验证(A)、哈希所有权(B)、预存 INI 备份还原(C)、
36+
校验强度与缓存/启动前校验(D/J)、原子写与回滚(E)、kit 事务性与分运行库 commit(F)、
37+
doctor 准确性(G)、代理顺序按上游工具类优先 + `--proxy`(H)、能力组合检查(I)。
38+
- 测试夹具改为**真实哈希**(审查指出原夹具把漏洞固定成了通过)。
39+
- 107 测试 + 复现脚本 9/9 observed=false;Windows CI 当场抓到两个 cp1252 编码缺陷(已修)。
40+
41+
### 第 4 轮 · 发布 v0.1.0(Windows EXE + Linux)
42+
43+
- 首页重设计(英文主导 + 中文独立入口)来自另一会话的工作,
44+
含 [相关项目首页对照研究](../reviews/2026-09-20-github-homepage-benchmark.md)。
45+
- 变基整合时发现并修正两次 ours/theirs 取反失误(重设计版与修复版 repro 均从正确来源恢复)。
46+
- OAuth token 缺 `workflow` scope → 改 SSH 推送。
47+
- **产出**:[v0.1.0 Release](https://github.com/ztwzeroo/DLSS5-FrameGen/releases/tag/v0.1.0),
48+
CI 六平台(Win/Linux/mac × Py3.10/3.13)全绿。
49+
50+
### 第 5 轮 · 发布验收审查 → v0.1.1
51+
52+
- 详档:[2026-09-20-release-v0.1.0-review.md](../reviews/2026-09-20-release-v0.1.0-review.md)。
53+
- **P1 修复**:外部修改的 INI 在重装/卸载中保留(`ini_user_managed` 持久标记 +
54+
原配置另存副本),回归测试 `tests/test_review3.py`。
55+
- **P2 落实**:Linux 构建切 ubuntu-22.04 并按**全文件符号扫描**实测 GLIBC 下限
56+
(2.14,防"只看外层启动器"漏报);Proton 指引改"浏览本地文件" + 环境变量标注未实测;
57+
发布门槛加入复现审计与**打包产物** install/doctor/uninstall 烟雾测试(曾拦下
58+
Windows 路径分隔符缺陷);pre-release 标记、英文优先说明、zip 附 QUICKSTART/LICENSE/build-info、
59+
签名中性表述、版本号单源。
60+
- **产出**:[v0.1.1 Release](https://github.com/ztwzeroo/DLSS5-FrameGen/releases/tag/v0.1.1)
61+
(110 测试,两平台烟雾测试通过,SHA256 校验实测)。
62+
63+
## 尚未验证的事项(如实)
64+
65+
- Windows + RTX 20/30 真机:游戏内加载代理、DLSS-G 后端激活、画质层生效、
66+
FPS/延迟/画质测量——文件编排层之外的全部验收层级。
67+
- Linux 多发行版启动、Proton 各版本下 `PROTON_*` 环境变量行为。
68+
- 构建工具链版本未固定;二进制未签名。
69+
70+
## 文档地图
71+
72+
| 文档 | 内容 |
73+
|---|---|
74+
| [CHANGELOG.md](../../CHANGELOG.md) | 版本级改动清单(英文) |
75+
| [../superpowers/specs/](../superpowers/specs/) | 设计 spec |
76+
| [../superpowers/plans/](../superpowers/plans/) | 实施计划 |
77+
| [../reviews/](../reviews/) | 两轮外部审查 + 复现脚本 + 首页对照研究 |
78+
| [../STATUS.md](../STATUS.md) | 当前状态与已知边界 |

0 commit comments

Comments
 (0)