Stop the one-time force-dark migration from overriding users, default first visits to light, and roll forced-dark browsers back to light once.
Co-authored-by: Cursor <cursoragent@cursor.com>
Reset saved light preferences once via memind-theme-migration marker so
existing visitors switch to dark on next load; inline boot script and OA
drive share the same migration version.
Co-authored-by: Cursor <cursoragent@cursor.com>
First-time and cleared-storage users see dark mode; saved light preference is unchanged. Inline boot script avoids a light flash before React loads.
Co-authored-by: Cursor <cursoragent@cursor.com>
Unify chat and OA drive appearance with shared memind-theme storage, default light mode, and cross-frame sync so users can switch themes from chat or the drive shell.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose authenticated /api/mindspace/v1/oa/drive APIs over each user's oa/ workspace and wire a MindSpace entry at /space/oa/drive.
Co-authored-by: Cursor <cursoragent@cursor.com>
Let users bind their own official account credentials in M 配置 and push MindSpace pages to the WeChat draft box during or after publish, reusing the existing draft conversion pipeline.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose /health and /api/health/observations behind MEMIND_HEALTH_ENABLED, redirect ordinary chat health intents without persisting, and run a dedicated WeChat menu flow with confirm-before-write semantics.
Co-authored-by: Cursor <cursoragent@cursor.com>
Lock health recording behind confirm-only state machines, reject public publishes for the health category, and ship the 14-day experiment Page Data templates with tests.
Co-authored-by: Cursor <cursoragent@cursor.com>
Default to last 3 days in UI and backend, only ask when time is truly ambiguous, and treat「做成页面」as HTML report pages without follow-up questions.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the newer updated_at and max message_count during session list merges so local touchSession updates are not overwritten by lagging Goose summaries.
Co-authored-by: Cursor <cursoragent@cursor.com>
Display plan total, remaining, and used amounts with plain comma-separated numbers so H5 balance details match backend token accounting.
Co-authored-by: Cursor <cursoragent@cursor.com>
Align publication validation, portal gate HTML, H5 publish UI, MCP docs,
and page-data skill guidance so passwords like 888888 are accepted while
3-character values such as 888 remain rejected.
Co-authored-by: Cursor <cursoragent@cursor.com>
Surface backend loading_tip SSE events in chat UI with shared tip pool
and styles for long-running TKMind 智趣 tasks.
Co-authored-by: Cursor <cursoragent@cursor.com>
Refresh/login previously dropped active subscription from the client user
payload, so paid users saw a 0% balance ring despite valid plan quota.
Co-authored-by: Cursor <cursoragent@cursor.com>
Prevent silent drops when users send follow-up instructions during waiting or streaming by showing the message immediately, notifying them it is queued, and auto-flushing after the composer returns to idle.
Co-authored-by: Cursor <cursoragent@cursor.com>
Finish now releases static HTML delivery contracts in a finally block so
re-edited pages are not stuck at HTTP 409, and M成果 groups pages by
Asia/Shanghai calendar dates to avoid duplicate day headings.
Co-authored-by: Cursor <cursoragent@cursor.com>
Ship the M成果 page with list/delete UX, fix deletePage for incomplete page records, route /space/achievements, and add M成果 under the WeChat M空间 menu.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add period_images_bonus and ledger tracking, gate image_make on remaining quota,
expose admin image-quota routes, show remaining image quota in the balance popover,
and document that admin UI must live in memind_adm (5174) not ops.
Co-authored-by: Cursor <cursoragent@cursor.com>
Persist goal runs in MySQL, bind agent runs to checkpoints, expose awaiting-approval
UX in chat, and add admin inspection routes with local verify scripts.
Co-authored-by: Cursor <cursoragent@cursor.com>
Persist code-run gates in admin DB and expose them via /auth/status so H5 can honor runtime policy without VITE rebuilds.
Co-authored-by: Cursor <cursoragent@cursor.com>