- Use const/let instead of var for block-scoped variables in frontend
- Add header injection validation for API Key (reject newline chars)
- Include original error message in fetchModels error callback
- Use more reliable hostname for unreachable API base test
Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>
- Add backend route POST /api/ps/apikey/detect-models for model auto-detection with 1-hour caching
- Add backend route POST /api/ps/apikey/chat for proxying chat through user's own API credentials
- Update login page with API Key login section (API Base URL + API Key + model detection + model list)
- Update chat.js to support API Key mode with dynamic model usage (selected_model)
- Update styles for API Key login UI (detect status, model list, etc.)
- Add smoke tests for new endpoints and dev_id login backward compatibility
- Security: API Key stored only in sessionStorage, never persisted on backend
Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>
Root cause:
1. README.md used Markdown link syntax inside HTML table block which may not render as clickable
2. persona-studio/index.html was missing, causing the target URL to 404
Fix:
- Replace Markdown link with HTML <a><img> badge button + plain text <a> fallback link
- Create persona-studio/index.html that redirects to persona-studio/frontend/index.html
- Add plain text link to persona-studio/README.md
Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>
- Copy persona-studio frontend to docs/persona-studio/ for GitHub Pages deployment
- Update API base URL to point to guanghulab.com production server
- Update all README links from broken guanghulab.com/persona-studio/ to GitHub Pages URL
- Update deploy-pages.yml to trigger on persona-studio/frontend changes and sync files
- Update persona-studio/README.md link to point to guanghulab repo Pages
Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>