- Add push-broadcast handler in backend/routes/feishu-bot.js with token
validation, request parsing, and Feishu IM API message delivery
- Wire /webhook/push-broadcast in backend/server.js via route forwarding
- Add nginx /webhook/ proxy_pass config in nginx-api-proxy.conf
- Update health check to report push_broadcast feature status
Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>
- Add protocol validation (http/https only) to prevent SSRF via file:/ftp: URLs
- Hash both apiBase+apiKey together in cache key to prevent collision attacks
- Simplify frontend error detection (use TypeError instanceof instead of fragile string check)
- Make smoke test error code assertion more precise with regex
Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>
Root cause: Persona Studio frontend sent requests to /api/ps/apikey/detect-models
but api-proxy.js (port 3721, the only backend Nginx routes to) didn't handle those paths.
The separate persona-studio backend (port 3002) was never deployed via ecosystem.config.js or Nginx.
Fix: Add detect-models and chat handlers directly to api-proxy.js so they work through
the same Nginx → API Proxy chain that the docs main site already uses successfully.
Also update frontend to point to port 3721 for local dev, and improve error messages.
Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>