Bug Fixes
- Gemini image routing (#273) —
gemini-3.1-flash-image-previewadded toantigravityimage provider registry; was falling through to chat handler instead of Gemini image handler. - Ollama Cloud model listing (#276) —
ollama-cloudadded toPROVIDER_MODELS_CONFIG; listing models fromapi.ollama.comwas returning 400. - Missing apiKey error clarity (#277) — Models route now returns
400with a clear message when no API key is configured, instead of a generic401 Unauthorized.
Security
- TLS validation re-enabled —
mitm/server.ts:rejectUnauthorizednow defaults totrue. Opt-out viaMITM_DISABLE_TLS_VERIFY=1. - Path traversal hardening —
safePath()/safeProfilePath()/safeLogPath()helpers added acrossbackupService.ts,db/backup.ts,codex-profiles/route.ts,mitm/server.ts. - Prototype pollution fix —
usageHistory.tsmaps useObject.create(null)+hasOwnPropertyguards. - dompurify ^3.3.2 — Resolves CVE-2026-0540 (XSS).
- GitHub Actions:
permissions: contents: readadded globally toci.yml.
CI
- Lock file sync —
@swc/helpers: "^0.5.19"override added;package-lock.jsonregenerated. Fixesnpm cifailures in CI and Docker builds. - npm-publish: skip if version exists — Exits cleanly with warning on E403 (duplicate publish).
- npm-publish:
npm installinstead ofnpm ci— Prevents failure on tag lock file drift. - Lint:
cursor.tsany-budget —isToolBoundaryAbortparam:any→unknown.