- Fix timer leak in fetchNotionProfile/loadDatabaseCache with finally block
- Remove HTTP origin from CORS whitelist (HTTPS-only)
- Validate devId against DEV_REGISTRY instead of regex
- Fix cache TTL check to use >= instead of >
- Fix chat.js count queries to use page_size 100 instead of 1
Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>
Agent-Logs-Url: https://github.com/qinfendebingshuo/guanghulab/sessions/a260ce18-279a-4490-af90-a90a7b1f46cd
- Replace all hardcoded/placeholder data in docs/index.html with real GitHub API fetches
- Add system-health.json, bulletin-board.json, federation-status, telemetry loading
- Update skyeye panel to show real system health data
- Update announcements to show real bulletin-board.json data
- Add brain panel with real system metrics and telemetry
- Add environment detection (staging/production/local)
- Add staging watermark for GitHub Pages preview
- Update module navigation with correct paths and readiness status
- Add sidebar navigation links to status-board and ticket-system
- Create preview-deploy.yml for GitHub Pages auto-deploy
- Update deploy-to-server.yml with production environment injection
- Create skyeye scan report at data/skyeye-reports/latest.json
Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>
Agent-Logs-Url: https://github.com/qinfendebingshuo/guanghulab/sessions/0ee19d81-920c-4a36-a4c4-8238f242afb5
- Add 🧠 Persona Studio navigation tab in docs/index.html sidebar
- Update smoke tests to target api-proxy.js (port 3721) instead of persona-studio backend (3002)
- Update error code assertion to match improved error specificity
- Add test for INVALID_API_BASE validation
- Replace auth/login tests with /api/health check (auth is on separate service)
Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>
- Fix viewport meta: add viewport-fit=cover, maximum-scale=1, user-scalable=no
- Replace 100vh with 100dvh (with fallback) for app shell, sidebars, panels
- Add iOS safe-area-inset padding for notched devices (iPhone X+)
- Add -webkit-overflow-scrolling: touch for momentum scrolling
- Fix input font-size to 16px (prevent iOS auto-zoom on focus)
- Fix side panels max-width: 100vw for small screens
- Improve mobile layout: smaller padding, hidden footer meta, horizontal scroll quick replies
- Add overscroll-behavior: none to prevent pull-to-refresh
- Increase touch targets to 44px minimum (iOS guidelines)
- Add visualViewport resize handler for mobile keyboard
- Add touch event handling for sidebar dismiss
- Configure guest mode to use DeepSeek via api-proxy
- Add guestStreamReply() with full 铸渊 system prompt
- Guest mode tries real API first, falls back to demo responses
- Update UI text to reflect guest API capability
- Version bump to v5.1
Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>
- Replace multi-provider dropdown with two login modes: 访客模式 (guest) and 编号登录 (developer)
- Guest mode: one-click demo entry, no API key needed
- Developer login: identity selection + API endpoint + key + auto-detect models
- Remove all provider-specific logic (PROVS → KNOWN_ENDPOINTS for fallback)
- Simplify settings panel: endpoint URL + model + key (no provider dropdown)
- Auto-detect probes user's endpoint first, falls back to known endpoints
- Model dropdown populated from auto-detect results
- Remove proxy mode support
- Update help panel, version to v5.0, demo response text
Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>
- Three-column layout on desktop (>900px): left sidebar, center area, right sidebar
- Left sidebar: user identity, nav tabs (公告栏/聊天), conversation history, settings
- Center area switches between announcements and chat views
- Right sidebar: always-visible team panel for controllers (founder/supreme/main)
- Chat history system with localStorage (zy_conversations, max 20 conversations)
- Announcements page with system info from brain files, tasks, quick actions
- Mobile responsive: left sidebar toggleable via hamburger menu
- Identity preview on setup screen with DEV-ID display
- All existing JS functions, API streaming, demo mode, brain loading preserved
- Version bumped from v3.1 to v4.0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- deploy-pages.yml: add copilot/** branch pattern so Copilot Agent PRs
auto-deploy to GitHub Pages while under review (no hardcoded branch name)
- docs/index.html: v3.1 version comment triggers the deploy on this push
This makes the live site immediately show: auto-detect API key, Gemini
provider, sessionStorage key (no cross-session stale key), and all other
fixes from this PR branch.
Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>
- Add 🔍 自动检测 button in setup form and settings panel
- autoDetectAPI() probes GET /models on all known providers
(yunwu → openai → gemini → deepseek → moonshot → zhipu)
- Custom endpoint is tried first if one is set
- Auto-fills provider select + model dropdown with live API response
- 8s timeout per probe (PROBE_TIMEOUT_MS constant)
- Shows inline loading/success/error feedback
- Add .det-btn CSS class for consistent button styling
Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>
- Add gemini entry to PROVS with OpenAI-compatible endpoint
(https://generativelanguage.googleapis.com/v1beta/openai)
- Include models: gemini-2.0-flash, gemini-2.0-flash-lite, gemini-1.5-pro, gemini-1.5-flash
- Add 🔮 Google Gemini option to setup form and settings panel dropdowns
- Fixes 405 error caused by user entering raw "gemini" text as endpoint URL
Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>