fix(plaza): use hero-generated thumbnails and portal cover URLs
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>
This commit is contained in:
@@ -3,6 +3,8 @@ import {
|
||||
quickPlazaFromChat,
|
||||
quickPlazaFromPublicHtml,
|
||||
} from '../mindspace-chat-plaza.mjs';
|
||||
import { resolveMindSpaceUserPublishDir } from '../mindspace-runtime-config.mjs';
|
||||
import { ensureWorkspaceHtmlThumbnail } from '../mindspace-workspace-thumbnails.mjs';
|
||||
|
||||
function assertRouter(api) {
|
||||
if (
|
||||
@@ -41,6 +43,8 @@ export function attachPortalMindSpaceChatShareRoutes(
|
||||
getQuickPlazaFromPublicHtmlStatusFn =
|
||||
getQuickPlazaFromPublicHtmlStatus,
|
||||
quickPlazaFromPublicHtmlFn = quickPlazaFromPublicHtml,
|
||||
ensureWorkspaceHtmlThumbnailFn = ensureWorkspaceHtmlThumbnail,
|
||||
resolveMindSpaceUserPublishDirFn = resolveMindSpaceUserPublishDir,
|
||||
now = Date.now,
|
||||
logger = console,
|
||||
} = {},
|
||||
@@ -114,6 +118,7 @@ export function attachPortalMindSpaceChatShareRoutes(
|
||||
h5Root,
|
||||
req.body,
|
||||
);
|
||||
const publishDir = resolveMindSpaceUserPublishDirFn(h5Root, req.currentUser);
|
||||
const result = await quickPlazaFromChatFn({
|
||||
user: req.currentUser,
|
||||
bundle,
|
||||
@@ -121,6 +126,8 @@ export function attachPortalMindSpaceChatShareRoutes(
|
||||
mindSpacePages: pages,
|
||||
mindSpacePublications: publications,
|
||||
plazaPosts,
|
||||
ensureWorkspaceHtmlThumbnail: ensureWorkspaceHtmlThumbnailFn,
|
||||
publishDir,
|
||||
});
|
||||
logger.info('[quick-plaza] ok', {
|
||||
ms: now() - startedAt,
|
||||
@@ -214,6 +221,7 @@ export function attachPortalMindSpaceChatShareRoutes(
|
||||
req.body?.relativePath ??
|
||||
'',
|
||||
).trim();
|
||||
const publishDir = resolveMindSpaceUserPublishDirFn(h5Root, req.currentUser);
|
||||
const result = await quickPlazaFromPublicHtmlFn({
|
||||
user: req.currentUser,
|
||||
relativePath,
|
||||
@@ -222,6 +230,8 @@ export function attachPortalMindSpaceChatShareRoutes(
|
||||
plazaPosts,
|
||||
readWorkspaceHtml: (input) =>
|
||||
chatSave.readWorkspaceHtml(input),
|
||||
ensureWorkspaceHtmlThumbnail: ensureWorkspaceHtmlThumbnailFn,
|
||||
publishDir,
|
||||
});
|
||||
const plazaUrl = resolvePlazaPostUrl(
|
||||
result.post.id,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
import { attachPortalMindSpaceChatShareRoutes } from './portal-mindspace-chat-share-routes.mjs';
|
||||
import { resolveMindSpaceUserPublishDir } from '../mindspace-runtime-config.mjs';
|
||||
import { ensureWorkspaceHtmlThumbnail } from '../mindspace-workspace-thumbnails.mjs';
|
||||
|
||||
function createRouterRecorder() {
|
||||
const routes = new Map();
|
||||
@@ -194,6 +196,8 @@ test('quick Plaza from chat preserves dependencies, timing, result, and errors',
|
||||
mindSpacePages: dependencies.services.pages,
|
||||
mindSpacePublications: dependencies.services.publications,
|
||||
plazaPosts: dependencies.services.plazaPosts,
|
||||
ensureWorkspaceHtmlThumbnail,
|
||||
publishDir: resolveMindSpaceUserPublishDir('/workspace', req.currentUser),
|
||||
});
|
||||
|
||||
const failureApi = createRouterRecorder();
|
||||
|
||||
Reference in New Issue
Block a user