feat: chat uploads, vision turn isolation, and MindSpace agent improvements

Add chat file/image upload UX, attachment proxying, vision thumbnails, and per-turn image scoping so agents only use the current upload. Extend MindSpace asset context, billing token state, OA/scenario verify scripts, and related runtime config.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
john
2026-07-11 00:23:01 +08:00
parent e3063ea806
commit 32fb2cdeaf
51 changed files with 4588 additions and 186 deletions
+18 -2
View File
@@ -76,6 +76,7 @@ import {
import {
buildMindSpacePublicRoutePath,
buildMindSpacePublicUrlForUser,
isPublicWorkspaceHtmlRelativePath,
resolveMindSpaceRuntimeConfig,
resolveMindSpacePublishRoot,
resolveMindSpaceServerRuntimeOptions,
@@ -5673,9 +5674,24 @@ async function resolvePublishedRoute(req, res, password = null) {
referrer: req.get('referer'),
},
);
const embed = isPlazaEmbedRequest(req.query);
const raw = String(req.query.view ?? '').toLowerCase() === 'raw';
if (
!password &&
!embed &&
!raw &&
result.publication?.accessMode === 'public' &&
isPublicWorkspaceHtmlRelativePath(result.workspaceRelativePath)
) {
const redirectPath = buildMindSpacePublicRoutePath(
result.ownerId,
String(result.workspaceRelativePath).split('/'),
);
return res.redirect(301, redirectPath);
}
return await sendPublishedPage(req, res, result, {
embed: isPlazaEmbedRequest(req.query),
raw: String(req.query.view ?? '').toLowerCase() === 'raw',
embed,
raw,
ownerSlug: req.params.ownerSlug,
});
} catch (error) {