Plaza posts now resolve cover_url to /u/{slug}/pages/{urlSlug}.thumbnail.png
instead of MindSpace workspace paths that fail on plaza.tkmind.cn. Public-html
and chat quick-plaza flows regenerate workspace thumbnails with force:true
after hero images are on disk so feed cards embed the generated art.
Co-authored-by: Cursor <cursoragent@cursor.com>
When a workspace file was soft-deleted but its workspace:// storage_key row remains, re-sync now restores and updates the asset instead of inserting a duplicate version that breaks WeChat Agent delivery.
Co-authored-by: Cursor <cursoragent@cursor.com>
Automates copying the local deepseek-cp provider key, rebinding Goose executors, and syncing all goosed targets on 103.
Co-authored-by: Cursor <cursoragent@cursor.com>
When DeepSeek returns 402, try other chat providers before giving up, and cancel the sole active task only during LLM outages so user 123 can cancel without Goose.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use a lightweight LLM over active task lists to pick taskId for cancel,
exclude page.generate from scheduled-task inbound, and remove single-task
auto-cancel so Cursor page generation stays isolated.
Co-authored-by: Cursor <cursoragent@cursor.com>
When a user has exactly one active automation task, cancel it by taskId
after listTasks instead of relying on Goose when the LLM provider fails.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stop schedule todo replies from intercepting cancel/list/create automation
requests, and recognize 有哪些 for inbound scheduled task listing.
Co-authored-by: Cursor <cursoragent@cursor.com>
Pass cancel requests to Goose like create instead of inbound title matching,
and add scheduled_task_update_spec so format or execution constraints update
taskSpec without triggering page delivery guards.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stop ITL regex from intercepting new messages before Agent execution; move
scheduled task and schedule write confirmation to MCP tool calls with draft commit on 确认.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep Context Stability First as the active plan, document reuse vs conflict, and freeze the 15-question answers so the next session does not redesign from scratch.
Co-authored-by: Cursor <cursoragent@cursor.com>
Phase B appends snapshot context when leaving h5direct sessions so Goose no longer starts blind. Phase C lets the 0.72 fallback return null on gated chat text so the existing LLM router can run, flags default off.
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>
Document R1–R3 root causes in the H5 direct/agent routing path, reject the Task Runtime approach, and define a phased rollout with Memory V2 compatibility constraints.
Co-authored-by: Cursor <cursoragent@cursor.com>
Non-allowlisted users stay on the existing Goose/DeepSeek path; only memindadm whitelist users enter the TKMind Cursor channel on selected intents and channels.
Co-authored-by: Cursor <cursoragent@cursor.com>
Unblocks production Gate when promoting commits that touch cursor bridge,
tool gateway, help escalation, loading tips, and setup scripts.
Co-authored-by: Cursor <cursoragent@cursor.com>
New followers receive capability overview plus WeChat anchor links for the
deep intro page and account binding instead of exposing raw URLs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Materialize wechat-mp uploads into dated public/images paths during vision
preprocessing and fail closed when delivered HTML references stale workspace
images instead of the current turn allowlist.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep correction follow-ups on Agent using session transcript and active task
context, and let Page Data validation reach Orchestrator when mode is active
instead of requiring shadowEngine.
Co-authored-by: Cursor <cursoragent@cursor.com>
Parse Cursor CLI usage from stream-json output and charge through billSessionUsage so subscription quota is consumed first and wallet overage applies when needed.
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>
Add dry-run, e2e, and poem-page remediation scripts for cursor executor
and help escalation verification.
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>
Recover requiredExecutor fallback, direct cursor launch in tool gateway,
and user-facing brand sanitization in source so the next portal release
can replace manual bundled edits on 103.
Co-authored-by: Cursor <cursoragent@cursor.com>
Ship the WeChat Cursor executor helpers referenced by the page delivery path so tests and runtime imports resolve consistently.
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>
Ship Leaflet 1.9.4 under public/assets/leaflet and rewrite common CDN script/stylesheet URLs during publish and public HTML delivery, matching the existing Chart.js guard pattern.
Co-authored-by: Cursor <cursoragent@cursor.com>
Route explicit text-only Q&A away from Agent before page-generation rules,
and add a script to enable Router + tighter memory budgets on 103 without
changing the global deepseek-v4-pro model.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expand ASR normalization and colloquial reminder parsing so simple timed reminders route to L1 confirm cards instead of the agent, and disable schedule-guard false failures when ITL is enabled.
Co-authored-by: Cursor <cursoragent@cursor.com>
Support colloquial forms like「设置每天18:00提醒打卡」, persist daily metadata on
commit, and schedule the next reminder after each delivery.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop tables created with intent_kind instead of layer/draft_type so ITL draft
inserts succeed after one-off migrate scripts.
Co-authored-by: Cursor <cursoragent@cursor.com>
Voice/wechat ASR often emits forms like "17 :08", which bypassed timed_reminder
classification and fell through to agent_schedule + schedule-guard false failures.
Co-authored-by: Cursor <cursoragent@cursor.com>
Colloquial phrasing with optional 一个/个 was falling through to agent_schedule,
so schedule-guard blocked false confirmations. Also strip orphaned 分 after HH:MM times.
Co-authored-by: Cursor <cursoragent@cursor.com>
MySQL JSON key order differs from JS stringify, which caused duplicate h5_tasks rows on re-run migrate.
Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce Draft → Confirm → Commit flow for WeChat schedule intents behind
feature flags, plus h5_tasks dual-write/read aggregation and rollout scripts
so reminders and automations get explicit user confirmation before persisting.
Co-authored-by: Cursor <cursoragent@cursor.com>
The read_image poisoning fix had no end-to-end guard because scenarios could
only send text. Add an upload_images step that renders and uploads visually
distinct images, let chat steps attach them the same way the WeChat channel
does, and assert the generated page actually embeds every upload.
Co-authored-by: Cursor <cursoragent@cursor.com>
Image turns already get a vision-model description injected into the prompt,
but the agent kept calling read_image to "confirm" the pictures. Those tool
results carry base64 image parts that Goose persists, so every later turn
against the text-only chat provider failed with `unknown variant image_url`
before the agent could write the page. WeChat page requests therefore fell
through to the fail-closed delivery message.
Drop read_image for the turn whenever a vision model handles the images, say
so explicitly in the injected prompt, and teach the poison scan to recognise
tool image parts so already-polluted sessions rotate instead of failing again.
Co-authored-by: Cursor <cursoragent@cursor.com>
Turn off the low-balance 10 CNY signup bonus while keeping the 5 CNY
registration credit, split metering into independent formula A/B scopes,
and retry expired auto-renew subscriptions after recharge or hourly worker.
Co-authored-by: Cursor <cursoragent@cursor.com>
Wait for HTML materialization before releasing delivery contracts, pass
verified MindSpace URLs through proactive WeChat sends, resend on reconcile
when pages land late, and report deferred customer-service delivery as unsent.
Co-authored-by: Cursor <cursoragent@cursor.com>
Register branch disposition after 103 deploy/repair, and add a lightweight
103 repair script that avoids heavy runtime module imports.
Co-authored-by: Cursor <cursoragent@cursor.com>
Prevent duplicate active scheduled tasks, fail static preparing contracts
when HTML is missing, raise MindSpace remote timeout default to 30s, and
add 103 repair scripts for inspection follow-ups.
Co-authored-by: Cursor <cursoragent@cursor.com>