v1.0.1
sundowndev/phoneinfogav1.0.1Sep 6, 2026by wyuc
Upgrading?
AI Summary
A security and stability release that tightens defaults, including requiring Node 22.19+, hardening the URL guard in development, and fixing path traversal vulnerabilities in classroom persistence.
Key Highlights
- Classroom persistence fixed to prevent directory escape on write operations.
- Stored slide HTML is now sanitized to restrict formatting vocabulary.
- Outbound URL guard now runs in non-production builds.
- Redirects on provider requests are validated on every hop.
- Node 22.19 or newer is now required.
Breaking Changes
- Node 20.9 is no longer supported; 22.19+ is required.
- Client-supplied provider base URLs on loopback addresses are rejected outside production.
- Development persistence authenticator now fails closed in production.
- `POST /api/classroom` rejects scenes that do not satisfy the slide DSL.
New Features
- Fact-check skill added.
- Asynchronous `generate_video` function.
- Interactive-widget hints for `generate_scene`.
- PPT element references in Pro chat.
- Exa web-search provider support.
- `POST /preview` endpoint added.
- Machine-readable admission state on the render service.
- DeepSeek `deepseek-v4-flash-vision-exp` model support.
Full Release Notes
A security and stability release. If you run OpenMAIC 1.0.0, upgrade — and read the two configuration notes below before you do, because this release tightens two defaults. ## Security Four advisories are published with this release. Thank you to the reporters, who found and disclosed all four privately. - **Classroom persistence accepted a stage id that escaped the classrooms directory on write.** The read path already validated it; the write path did not. [GHSA-p2wh-m28m-c5xw](https://github.com/THU-MAIC/OpenMAIC/security/advisories/GHSA-p2wh-m28m-c5xw) — reported by [@skeletonsec](https://github.com/skeletonsec) - **Stored slide HTML was rendered without sanitization.** Content is now restricted to the formatting vocabulary the renderer produces, sanitized once at the persistence boundary rather than at each render sink. KaTeX snapshots keep their own policy, so formulas are unaffected. [GHSA-7rhf-2798-mvcj](https://github.com/THU-MAIC/OpenMAIC/security/advisories/GHSA-7rhf-2798-mvcj) — reported by [@skeletonsec](https://github.com/skeletonsec) - **The outbound URL guard ran only in production builds.** It now runs everywhere, and a repository-scanning test fails if a gated call site reappears. [GHSA-9m7h-vh2h-rc3w](https://github.com/THU-MAIC/OpenMAIC/security/advisories/GHSA-9m7h-vh2h-rc3w) — reported by [@uziii2208](https://github.com/uziii2208) - **Redirects on provider requests were followed without re-validation.** Every hop is now re-checked, and credential headers are dropped on a cross-origin hop. [GHSA-725p-44hx-v52c](https://github.com/THU-MAIC/OpenMAIC/security/advisories/GHSA-725p-44hx-v52c) — reported by [@skeletonsec](https://github.com/skeletonsec) Also in this release: dependency bumps for disclosed advisories, bounded skill-zip inflation, a bounded `import_pptx` parse, and a development persistence authenticator that now refuses to serve under `NODE_ENV=production`. ## Before you upgrade - **Node 22.19 or newer is now required** (was 20.9). - **Pointing at a local model server?** A client-supplied provider base URL on a loopback or private address — a local Ollama or Lemonade endpoint entered in Settings — is now rejected outside production builds too. Set `ALLOW_LOCAL_NETWORKS=true` to keep using it. Production deployments already behaved this way; development builds did not. - **Running the development persistence authenticator in production?** It now fails closed. Set `PERSISTENCE_ALLOW_INSECURE_DEV_AUTH=true` if your deployment is on a trusted network, and plan to replace it — it provides no user isolation. - **Calling `POST /api/classroom` directly?** It now rejects scenes that do not satisfy the slide DSL, and stage ids outside `[A-Za-z0-9_-]`. ## Also in 1.0.1 A fact-check skill, asynchronous `generate_video`, interactive-widget hints for `generate_scene`, PPT element references in Pro chat, an Exa web-search provider, a `POST /preview` endpoint and machine-readable admission state on the render service, double-click text insertion on the canvas, and `deepseek-v4-flash-vision-exp` in the DeepSeek catalog — plus faster classroom loading and around two dozen fixes across the agent runtime, generation, providers, media, and the importer. See the full [CHANGELOG for 1.0.1](https://github.com/THU-MAIC/OpenMAIC/blob/main/CHANGELOG.md#101---2026-09-06).
Related Repositories
ollama/ollama★ 184,236
Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.
fatedier/frp★ 110,064
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
infiniflow/ragflow★ 92,631
RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs
gohugoio/hugo★ 90,198
The world’s fastest framework for building websites.
junegunn/fzf★ 83,715
:cherry_blossom: A command-line fuzzy finder