Improve WeChat MP replies and ship MindSpace/H5 production updates.

Add WeChat service account routing with sync acks, connectivity tests, and context isolation; document deploy runbooks; and bundle related MindSpace, voice, Plaza, and server gateway changes for production rollout.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
john
2026-06-19 23:06:43 +08:00
parent b0f5d6a51c
commit 229805a070
241 changed files with 13190 additions and 902 deletions
+22 -1
View File
@@ -1,7 +1,7 @@
import { useState } from 'react';
import { useUserAvatar } from '../hooks/useUserAvatar';
import type { Message } from '../types';
import { getDisplayText, getThinking, getVisibleText } from '../utils/message';
import { getDisplayText, getImageUrls, getThinking } from '../utils/message';
import { getMessageSaveActions } from '../utils/messageSave';
import { renderMarkdown } from '../utils/markdown';
import { formatChatTime, shouldShowTimestamp } from '../utils/time';
@@ -139,6 +139,7 @@ function MessageRow({
const saveActions = getMessageSaveActions(text, publishUsername);
const thinking = getThinking(message);
const isUser = message.role === 'user';
const imageUrls = getImageUrls(message);
const copyText = [thinking ? `【思考】\n${thinking}` : '', text].filter(Boolean).join('\n\n');
if (!text && !thinking && message.role === 'assistant') {
@@ -169,6 +170,26 @@ function MessageRow({
<pre>{thinking}</pre>
</details>
)}
{imageUrls.length > 0 && (
<div className="msg-image-gallery">
{imageUrls.map((imageUrl, index) => (
<a
key={`${imageUrl}-${index}`}
href={imageUrl}
target="_blank"
rel="noreferrer"
className="msg-image-link"
>
<img
src={imageUrl}
alt={`图片 ${index + 1}`}
className="msg-image-thumb"
loading="lazy"
/>
</a>
))}
</div>
)}
{text && (
<div
className="bubble-text"