Prevent chat-to-page flows like writing a poem then saying "做成页面吧" from opening
a fresh session without carried content, failing with a vague error, or letting Memory
page-template preferences replace the immediate topic.
Co-authored-by: Cursor <cursoragent@cursor.com>
Generate SVG/PNG sidecars at HTML delivery and after share-preview repair so
forwarded service-account links get a raster og:image when only meta exists.
Co-authored-by: Cursor <cursoragent@cursor.com>
Persist formal replies when WeChat customer-service quota is exhausted,
claim them once on the next passive response, skip progress notices for
page generation, and suppress failure notices while a formal reply is pending.
Co-authored-by: Cursor <cursoragent@cursor.com>
Production WeChat delivery strips localPath from artifacts, so share-preview
auto-repair never wrote back to HTML. Resolve paths via publishDir +
relativePath, repair at materialize and delivery prep, and pass h5Root from
Portal so page.generate can patch missing meta before sending links.
Co-authored-by: Cursor <cursoragent@cursor.com>
Pages with real HTML content but missing description, mindspace-cover, or
platform brand markers are patched in-place so WeChat link delivery no longer
fails after successful generation.
Co-authored-by: Cursor <cursoragent@cursor.com>
Skip memory injection for short filler messages, demote page-workflow memory
pollution, keep scheduled automation off page.generate, and fail scheduled
tasks that only return clarification instead of deliverables.
Co-authored-by: Cursor <cursoragent@cursor.com>
Schedule LLM now binds an explicit provider key and fails closed on network errors so dead relay endpoints cannot block ordinary chat; relay bootstrap is opt-in only.
Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce scheduled-task-automation for H5 and WeChat, persist tasks in h5_scheduled_tasks, and run due jobs via a dedicated worker that executes agent tasks and delivers results.
Co-authored-by: Cursor <cursoragent@cursor.com>
Prevent text-only planning replies from marking WeChat delivery done when
static-page-publish never confirmed a public HTML file.
Co-authored-by: Cursor <cursoragent@cursor.com>
Recognize retry, HTML page, page edits, and poem content edits as session continuations so delivery skips fresh-thumbnail forcing and retains agent context for multi-turn page work.
Co-authored-by: Cursor <cursoragent@cursor.com>
Skip fresh thumbnail forcing and retry in-session when load_skill completes without HTML落盘, so「把刚才的诗做成页面」can deliver the prior poem as a static page.
Co-authored-by: Cursor <cursoragent@cursor.com>
Page Data questionnaires were returning publication slugs to users; password-mode
pages always fell back to /u/ routes. Prefer MindSpace paths at publish time and
rewrite mistaken delivery links in WeChat and Portal chat.
Co-authored-by: Cursor <cursoragent@cursor.com>
When schedule_create_item includes a start time and reminder intent, create the
matching h5_schedule_reminders row in the same tool call so 10:00 pushes are not
lost. Also reconcile Goose SSE request ids with the portal agent-run gate to keep
MindSpace chat streaming reliable.
Co-authored-by: Cursor <cursoragent@cursor.com>
Inject serve-time CSS so author styles cannot hide TKMind · 智趣 with
low opacity, which made pages like weather.html look brandless.
Co-authored-by: Cursor <cursoragent@cursor.com>
Backfill missing platform-brand footer at serve time and block service-
account links when the HTML file omits data-mindspace-page-tag.
Co-authored-by: Cursor <cursoragent@cursor.com>
Block service-account page links when HTML lacks mindspace-cover and
description so WeChat forwards always get TKMind branding and thumbnail.
Co-authored-by: Cursor <cursoragent@cursor.com>
Extract schedule, greeting/status/connectivity replies, chat-general prompt, and display-name helpers from wechat-mp.mjs. Route sync intents via classifyWechatIntent and add channel isolation CI check.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace fixed ackText with a rule-based AckProvider that picks
response templates by message type and intent (translate, summary,
rewrite, poster, ppt, mindmap, code, search, schedule). Pure sync,
zero I/O, auto-falls back to config.ackText on any error.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>