Use session snapshot message counts alongside WeChat route counts so long-lived dedicated sessions rotate before Goose history bloats, and refresh snapshots asynchronously so customer replies are not blocked.
Co-authored-by: Cursor <cursoragent@cursor.com>
When a dedicated WeChat session history leaves unmatched tool_calls, the next reply fails with a 400 LLM validation error; detect that pattern and recreate the session before retrying.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose generate_docx in mindspace-sandbox-mcp so agents can write public/*.docx
before linking HTML download pages, with tests mirroring the Mark summary flow.
Co-authored-by: Cursor <cursoragent@cursor.com>
Serve missing *.thumbnail.png requests when the SVG sidecar exists, and schedule async PNG rasterization after public HTML is materialized so WeChat og:image URLs stop 404ing.
Co-authored-by: Cursor <cursoragent@cursor.com>
Move recent session chips below the nav on mobile H5/WeChat with three visible tabs and horizontal swipe, and add a new-chat icon next to notifications.
Co-authored-by: Cursor <cursoragent@cursor.com>
Rewrite absolute tkmind asset download links to /api/... at delivery time
and strip base tags that violate public page CSP, so images load on any host.
Co-authored-by: Cursor <cursoragent@cursor.com>
Collect sha256 hashes from all inline scripts in published HTML so agent-generated
fade-in animations are not blocked while keeping the share-button CSP model.
Co-authored-by: Cursor <cursoragent@cursor.com>