feat(mindspace): 公开页分享组件、workspace 路径与 Plaza 发布增强
- 新增 public share widget 与 workspace relative path 解析 - 增强 publications/chat-plaza 发布链路与缩略图 demo - 补充 schema、cover 检查脚本与回归测试 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -7,6 +7,7 @@ import {
|
||||
resolveUserWorkspaceRoot,
|
||||
resolveZoneDir,
|
||||
} from './user-space.mjs';
|
||||
import { resolveAssetWorkspaceRelativePath } from './mindspace-workspace-path.mjs';
|
||||
import { assetInternals } from './mindspace-assets.mjs';
|
||||
import { runBasicFileScan } from './mindspace-scan.mjs';
|
||||
import { buildWorkspaceStorageKey } from './workspace-storage.mjs';
|
||||
@@ -193,12 +194,16 @@ export function createWorkspaceAssetSync({
|
||||
|
||||
const now = Date.now();
|
||||
const visibility = category.category_code === 'public' ? 'public_candidate' : 'private';
|
||||
const indexedWorkspacePath = resolveAssetWorkspaceRelativePath({
|
||||
categoryCode: category.category_code,
|
||||
originalFilename: file.filename,
|
||||
});
|
||||
await conn.query(
|
||||
`INSERT INTO h5_assets
|
||||
(id, user_id, space_id, category_id, asset_type, mime_type, original_filename,
|
||||
display_name, current_version_id, size_bytes, checksum, risk_level, visibility,
|
||||
display_name, workspace_relative_path, current_version_id, size_bytes, checksum, risk_level, visibility,
|
||||
status, source_type, created_at, updated_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'workspace', ?, ?)`,
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'workspace', ?, ?)`,
|
||||
[
|
||||
assetId,
|
||||
userId,
|
||||
@@ -208,6 +213,7 @@ export function createWorkspaceAssetSync({
|
||||
detectedMimeType,
|
||||
file.filename,
|
||||
path.basename(file.filename, path.extname(file.filename)) || file.filename,
|
||||
indexedWorkspacePath,
|
||||
versionId,
|
||||
buffer.length,
|
||||
checksum,
|
||||
@@ -308,10 +314,14 @@ export function createWorkspaceAssetSync({
|
||||
);
|
||||
|
||||
const now = Date.now();
|
||||
const indexedWorkspacePath = resolveAssetWorkspaceRelativePath({
|
||||
categoryCode: category.category_code,
|
||||
originalFilename: file.filename,
|
||||
});
|
||||
await conn.query(
|
||||
`UPDATE h5_assets
|
||||
SET current_version_id = ?, size_bytes = ?, checksum = ?, mime_type = ?,
|
||||
asset_type = ?, risk_level = ?, status = ?, updated_at = ?
|
||||
asset_type = ?, risk_level = ?, status = ?, workspace_relative_path = ?, updated_at = ?
|
||||
WHERE id = ? AND user_id = ?`,
|
||||
[
|
||||
versionId,
|
||||
@@ -321,6 +331,7 @@ export function createWorkspaceAssetSync({
|
||||
assetInternals.assetTypeForMime(detectedMimeType),
|
||||
scan.riskLevel,
|
||||
assetStatus,
|
||||
indexedWorkspacePath,
|
||||
now,
|
||||
existing.id,
|
||||
userId,
|
||||
|
||||
Reference in New Issue
Block a user