Commit Graph
18 Commits
Author SHA1 Message Date
Haozhe Wu 051aeb5509 refactor(providers): remove the Requesty built-in provider
Requesty (added in #474) is an OpenAI-compatible gateway whose capabilities
were a copy of OpenRouter's: same provider/model naming, same
extra_body.reasoning opt-in, no adapter code of its own. Built-in slots are
kept for providers with their own behaviour; a gateway that speaks an
existing wire format is configured through that provider, and #1532 (API
Route) is being closed on the same grounds.

Migration, identical request shape: LANGCHAIN_PROVIDER=openrouter,
OPENROUTER_BASE_URL=https://router.requesty.ai/v1, OPENROUTER_API_KEY=<the
Requesty key>. Past news and contributor credits in the READMEs are left
as history; the supported-provider lists drop it.
2026-09-21 20:35:37 +08:00
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
lorenzozanee 75bdf0c390 fix(desktop): correctly handle EPERM in updater shutdown checks
isProcessAlive treated every kill error as not alive, so EPERM
(process exists but no permission) was misclassified as exited.
This made shutdown evidence report backendExited and watchdogExited
true while the PID was still alive, allowing stopForUpdate to
succeed prematurely and risk installer launch while the backend
still held the loopback listener.

Distinguish EPERM (alive) from ESRCH (not alive) in both
backend-manager.ts and backend-watchdog.ts, matching Node.js
process.kill semantics.

Signed-off-by: lorenzozanee <wyz0707@proton.me>
2026-08-31 11:05:28 +08:00
Haozhe Wu 8a0e90b840 fix(desktop): preserve Windows process exit evidence
Signed-off-by: Haozhe Wu <haozhe_wu@connect.hku.hk>
2026-08-15 04:52:36 +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 3012fe98b2 fix(desktop): harden dormant update safety boundary
Signed-off-by: Haozhe Wu <haozhe_wu@connect.hku.hk>
2026-08-15 03:34:54 +08:00
QCYTSN d8723223e9 feat(desktop): add dormant update safety boundary
Signed-off-by: QCYTSN <2558348385@qq.com>
2026-08-14 22:45:18 +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
Haozhe Wu ef70301e67 fix(desktop): sync Windows dependency lock 2026-08-09 18:05:33 +08:00
Haozhe Wu 033b6536af fix(desktop): allow ModelScope credentials 2026-08-09 16:24:58 +08:00
QCYTSN adc3dc8101 fix(desktop): use a working Authenticode host
Signed-off-by: QCYTSN <2558348385@qq.com>
2026-08-08 19:55:12 +08:00
QCYTSN c3544dda5e fix(desktop): satisfy packaging CI gates
Signed-off-by: QCYTSN <2558348385@qq.com>
2026-08-08 19:55:12 +08:00
QCYTSN 32d312566c fix(desktop): validate packaged Windows lifecycle
Signed-off-by: QCYTSN <2558348385@qq.com>
2026-08-08 19:55:12 +08:00
QCYTSN 13b8e5993a fix(desktop): enforce packaging security gates
Signed-off-by: QCYTSN <2558348385@qq.com>
2026-08-08 19:55:12 +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
QCYTSN 2b1b499b42 feat(desktop): protect packaged credentials with safeStorage
Signed-off-by: QCYTSN <2558348385@qq.com>
2026-08-08 19:55:11 +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