6 Commits
Author SHA1 Message Date
Haozhe Wu b6ef866247 chore(deps): bump weasyprint to 70.0 and js-yaml to 4.3.2 in the lock files
Dependabot #37 (js-yaml, high) and #38/#39 (weasyprint SSRF, medium).
weasyprint 70.0 declares exactly the same requirements as 69.0, so both
hash locks change by the pin and its two hashes only. Every js-yaml
dependent in the desktop lock asks for ^4.1.0, so 4.3.2 satisfies them
without touching package.json.
2026-09-11 21:18:25 +08:00
Haozhe Wu 1fc13af8d5 build(deps): patch the seven open npm advisories in the two lock files
All seven Dependabot alerts on this repo, all transitive, all development scope:

  frontend/package-lock.json
    browserslist              4.28.6 -> 4.28.8   (patched 4.28.7, HIGH)
      crash / prototype write via untrusted browserslist-stats.json
    postcss-selector-parser    6.1.2 -> 6.1.4    (patched 6.1.3, LOW)
      denial of service through uncontrolled AST recursion
      two nested copies, under postcss-nested and tailwindcss

  desktop/electron/package-lock.json
    fast-uri                   3.1.5 -> 3.1.7    (patched 3.1.6, HIGH x4)
      host confusion via percent-encoded scheme normalization; SSRF via
      malformed IPv6 normalization; SSRF via repeated hostname percent-decoding;
      host confusion via skipped IDN canonicalization
    @xmldom/xmldom            0.8.13 -> 0.8.15   (patched 0.8.15, MEDIUM)
      XML fragment injection via invalid EntityReference.nodeName

Every parent range already admitted the patched version (autoprefixer wants
browserslist ^4.28.6, postcss-nested/tailwindcss want ^6.1.1 and ^6.1.2, ajv
wants fast-uri ^3.0.1, plist wants @xmldom/xmldom ^0.8.8), so `npm update` on
the named packages was enough and no package.json or override was needed. Both
lock files carry only these bumps plus the transitive tail browserslist pulls
with it (caniuse-lite, electron-to-chromium, node-releases, baseline-browser-
mapping, update-browserslist-db).

The third root copy of postcss-selector-parser stays at 6.0.10: @tailwindcss/
typography pins that exact version, and 6.0.10 sits outside the advisory's
>= 6.1.0, < 6.1.3 range, so it is not affected.

Verified after installing both locks: frontend `npm run build` clean and 617
vitest tests pass; desktop `npm run build`, test-locales (parity verified),
test-backend-resolution, and test-packaging-preparation all pass.
2026-09-04 15:00:31 +08:00
Haozhe Wu bc846ebaef fix(desktop): stabilize Windows packaging inputs
Signed-off-by: Haozhe Wu <haozhe_wu@connect.hku.hk>
2026-08-15 04:42:05 +08:00
Haozhe Wu 281c87755f build(deps): patch Electron transitive vulnerabilities
Signed-off-by: Haozhe Wu <haozhe_wu@connect.hku.hk>
2026-08-09 22:56:37 +08:00
QCYTSN f5cb88cf49 feat(desktop): add Windows runtime and NSIS packaging
Signed-off-by: QCYTSN <2558348385@qq.com>
2026-08-08 19:55:12 +08:00
Gao Fengkai 832b2c9efd feat(desktop): add Electron shell lifecycle (#923)
* feat(desktop): add Electron shell lifecycle

Signed-off-by: QCYTSN <2558348385@qq.com>

* docs(desktop): document shell security boundary

Signed-off-by: QCYTSN <2558348385@qq.com>

* fix(desktop): address shell lifecycle review

Signed-off-by: QCYTSN <2558348385@qq.com>

* fix(desktop): constrain backend executable resolution

Signed-off-by: QCYTSN <2558348385@qq.com>

---------

Signed-off-by: QCYTSN <2558348385@qq.com>
2026-08-08 16:23:26 +08:00