ghprobe 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/README.en.md +625 -582
- package/README.md +613 -575
- package/bin/ghprobe.js +25 -2
- package/config.default.yaml +26 -2
- package/package.json +1 -1
- package/src/config.js +118 -7
- package/src/prober.js +23 -3
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,58 @@
|
|
|
5
5
|
格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),
|
|
6
6
|
版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
|
|
7
7
|
|
|
8
|
+
## [0.1.3] - 2026-10-12
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- **默认配置不再预置任何第三方代理域名**(`ghproxy.net` / `gh-proxy.com` 已从 `fallbacks` 移除):
|
|
13
|
+
本工具定位「无代理」,默认预置第三方代理既与该定位矛盾,也有法律风险。
|
|
14
|
+
默认兜底只保留公共 CDN `cdn.jsdelivr.net`;多候选与自带判据机制保留,用户可自行添加替身。
|
|
15
|
+
- README(中英)第 6 节、§3 边界、免责声明同步收紧:明确「不预置任何第三方代理 / 镜像域名」。
|
|
16
|
+
|
|
17
|
+
### Upgrade
|
|
18
|
+
|
|
19
|
+
- 三方合并会把新默认带给**没动过** `fallbacks` 的用户;动过的保留原值。
|
|
20
|
+
老用户配置里若残留 `ghproxy.net` / `gh-proxy.com`,`ghprobe config-diff` 可见,自行删除即可。
|
|
21
|
+
|
|
22
|
+
## [0.1.2] - 2026-10-11
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
|
|
26
|
+
- **配置升级机制(三方合并)**:解决「默认值的改进到不了老用户」——
|
|
27
|
+
用户配置是 `install` 时**整份复制**的、且优先于包内默认,所以默认文件里**已有键**的新值
|
|
28
|
+
永远不生效(数组是整体替换,不合并)。现在 `install` 会额外存一份**默认配置快照**
|
|
29
|
+
(`%LOCALAPPDATA%\ghprobe\config.default.snapshot.yaml`),`loadConfig` 做**三方合并**:
|
|
30
|
+
用户值 == 快照值 → 这个键他没动过 → 用**新默认**;否则保留用户值。
|
|
31
|
+
快照**只在缺失时创建、不随升级刷新**(一刷新基准就漂了,没改过的键会被误判成改过)。
|
|
32
|
+
新增 `ghprobe config-diff` 查看用户配置与当前默认的差异;`config-path` 一并打印快照路径。
|
|
33
|
+
⚠️ 0.1.2 之前装的用户没有快照,跑一次 `ghprobe install` 之后才会建立;在那之前用
|
|
34
|
+
`config-diff` 看差异、手动采纳。
|
|
35
|
+
- **兜底链支持多个候选,并挑当下能通的那个**:原来 `fallbacks` 每个主域名只能配一个替身,
|
|
36
|
+
而替身自己也会被封(实测同一时刻 `cdn.jsdelivr.net` 的 TCP 连得上、TLS 被掐)。
|
|
37
|
+
现在默认给三个:`cdn.jsdelivr.net`(jsDelivr 公共 CDN)、`ghproxy.net` / `gh-proxy.com`
|
|
38
|
+
(第三方 GitHub 代理,配置里已注明「请求会经过它们的服务器」,介意可删)。
|
|
39
|
+
- **替身可以自带探测判据**:`fallbacks` 新增完整写法
|
|
40
|
+
`- { domain, path, mustContain }`,判据写在配置里而不是代码里 ——
|
|
41
|
+
因为不同替身的 URL 形态不同(CDN 映射 `/gh/<user>/<repo>@<ref>/<path>` vs 代理 `/<完整原始 URL>`),
|
|
42
|
+
用户新增替身不需要改源码。归一化在 `loadConfig()` 里做,下游(`targetDomains` /
|
|
43
|
+
`neededFallbacks`)拿到的仍是 `{ 主域名: [替身域名...] }`,无需改动。
|
|
44
|
+
|
|
45
|
+
### Changed
|
|
46
|
+
|
|
47
|
+
- `config.default.yaml` 头部补了升级说明:`install` 会把默认配置**整份**复制成用户配置,
|
|
48
|
+
而用户配置优先 —— 所以**默认值里已有的键,升级后新默认不会自动生效**(新增的键不受影响)。
|
|
49
|
+
- README 第 6 节重写(原「关于为什么还会出现 cdn.jsdelivr.net」):说明兜底链要解决的是
|
|
50
|
+
**换 IP 修不了**的那层封锁、为什么需要多个候选、第三方代理的隐私代价、以及怎么自己加替身。
|
|
51
|
+
并修正了原文「`raw` 被封锁后这类文件没有替代入口」的自相矛盾说法。
|
|
52
|
+
|
|
53
|
+
### Fixed
|
|
54
|
+
|
|
55
|
+
- README **中文版**修正两条过时 FAQ:还在说「每个域名只写一条 IP」「Windows 对同一域名只认第一条」——
|
|
56
|
+
这两个说法在 0.1.0 就被实测推翻了(hosts 里同名多条会被解析器**全部返回**、curl / 浏览器
|
|
57
|
+
**逐个尝试**,所以备选是真兜底)。**英文版当时改了、中文版漏了**,两边现在一致。
|
|
58
|
+
- 单测 137 → **153**。
|
|
59
|
+
|
|
8
60
|
## [0.1.1] - 2026-10-11
|
|
9
61
|
|
|
10
62
|
线上实测驱动的三个修复。都是「工具看着在干活、实际把用户搞断网」那一类。
|
|
@@ -160,5 +212,6 @@
|
|
|
160
212
|
- 提权脚本以 UTF-8 BOM 落盘,杜绝编码解析歧义
|
|
161
213
|
- 写入前校验块标记存在,失败自动回滚;还原时只移除本工具自己的行
|
|
162
214
|
|
|
215
|
+
[0.1.2]: https://github.com/zmw-zmw/ghprobe/releases/tag/v0.1.2
|
|
163
216
|
[0.1.1]: https://github.com/zmw-zmw/ghprobe/releases/tag/v0.1.1
|
|
164
217
|
[0.1.0]: https://github.com/zmw-zmw/ghprobe/releases/tag/v0.1.0
|