dsh-agy-link 0.4.84 → 0.4.86

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 CHANGED
@@ -1,5 +1,37 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.86 (2026-10-29)
4
+
5
+ ### English
6
+
7
+ - **Security(doctor): write the diagnostic report owner-only (dir 0700, file 0600).**
8
+ - `/agy doctor` wrote its (redacted) report with the default umask (typically 0644), so another local user could read config paths and any residual log text. The diagnostics dir is now `0700` and the report `0600`.
9
+ - **Docs(spec): add the spec index and the security-hardening invariants.**
10
+ - `.spec/README.md` indexes the project's truth sources; `.spec/security-hardening.md` records the MCP bridge / HTTP / doctor / media / parser security invariants and the exact test that guards each one, so future changes cannot silently relax them.
11
+
12
+ ### 中文
13
+
14
+ - **安全(doctor):诊断报告改为仅本人可读(目录 0700、文件 0600)。**
15
+ - `/agy doctor` 之前按默认 umask 写(通常 0644),同机其他用户可读到配置路径与残留日志。现目录 `0700`、报告 `0600`。
16
+ - **文档(spec):新增 spec 索引与安全不变式文档。**
17
+ - `.spec/README.md` 作为真相源索引;`.spec/security-hardening.md` 记录 MCP 桥接 / HTTP / doctor / media / parser 的安全不变式与对应测试,防止后续改动静默放宽。
18
+
19
+ **Full Changelog**: https://github.com/amlyczz/dsh-agy-link/compare/v0.4.85...v0.4.86
20
+
21
+ ## 0.4.85 (2026-10-29)
22
+
23
+ ### English
24
+
25
+ - **Security(doctor): redact `Authorization: Basic`, `Cookie` and `X-Api-Key` headers.**
26
+ - `redactLine()` only masked `Bearer …` tokens, so a doctor log line carrying `Authorization: Basic <base64>`, `Cookie:` / `Set-Cookie:`, or `X-Api-Key:` values landed in the report verbatim. All auth-carrying headers are now masked (`<name>: <redacted>`) while ordinary text is preserved. Adds a regression test.
27
+
28
+ ### 中文
29
+
30
+ - **安全(doctor):脱敏 `Authorization: Basic`、`Cookie`、`X-Api-Key` 等头。**
31
+ - `redactLine()` 此前只处理 `Bearer …`,因此 doctor 日志中 `Authorization: Basic <base64>`、`Cookie:`/`Set-Cookie:`、`X-Api-Key:` 的值会原样落入报告。现将这些携带凭据的头统一脱敏为 `<name>: <redacted>`,普通文本不变。补充回归测试。
32
+
33
+ **Full Changelog**: https://github.com/amlyczz/dsh-agy-link/compare/v0.4.84...v0.4.85
34
+
3
35
  ## 0.4.84 (2026-10-29)
4
36
 
5
37
  ### English
package/dist/index.js CHANGED
@@ -32413,6 +32413,7 @@ function redactLine(line) {
32413
32413
  out = out.replace(/\beyJ[A-Za-z0-9_-]{6,}\.[A-Za-z0-9_-]{6,}\.[A-Za-z0-9_-]{6,}\b/g, "<jwt-redacted>");
32414
32414
  out = out.replace(/\bsk-[A-Za-z0-9_-]{16,}\b/g, "<api-key-redacted>");
32415
32415
  out = out.replace(/\bGOCSPX-[A-Za-z0-9_-]{10,}\b/g, "<api-key-redacted>");
32416
+ out = out.replace(/\b((?:proxy-)?authorization|cookie|set-cookie|x-api-key)\s*:\s*[^\r\n]+/gi, "$1: <redacted>");
32416
32417
  out = out.replace(/\b(?:https?|socks[45]):\/\/[^\s/]*:[^\s/@]*@[^\s]+/gi, "<proxy-url-redacted>");
32417
32418
  return out;
32418
32419
  }
@@ -32447,9 +32448,15 @@ function writeDoctorReport(deps) {
32447
32448
  lines.push("```");
32448
32449
  lines.push("");
32449
32450
  const dir = join(stateDir(), "diagnostics");
32450
- mkdirSync(dir, { recursive: true });
32451
+ mkdirSync(dir, {
32452
+ recursive: true,
32453
+ mode: 448
32454
+ });
32451
32455
  const file = join(dir, "doctor-" + (/* @__PURE__ */ new Date()).toISOString().replace(/[^0-9]/g, "").slice(0, 14) + ".md");
32452
- writeFileSync(file, lines.join("\n"), "utf8");
32456
+ writeFileSync(file, lines.join("\n"), {
32457
+ encoding: "utf8",
32458
+ mode: 384
32459
+ });
32453
32460
  return file;
32454
32461
  }
32455
32462
  //#endregion
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-agy-link",
3
- "version": "0.4.84",
3
+ "version": "0.4.86",
4
4
  "description": "Google Antigravity (agy CLI) models for DeepSeek Harness — stream Gemini/Claude/GPT-OSS subscriptions into DSH with thinking, tool activity, token usage and in-GUI Google OAuth login.",
5
5
  "type": "module",
6
6
  "license": "MIT",