fix(page-data): bind Page Data pages structurally on deliver, not by intent

Finish/sync now auto-registers datasets and binds any HTML using page-data-client.js
before publication, so user confirmation cannot publish unbound collect pages.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
john
2026-07-13 00:17:58 +08:00
parent da422a82e6
commit fb055c6721
10 changed files with 700 additions and 90 deletions
+5 -1
View File
@@ -463,6 +463,10 @@ async function bootstrapUserAuth() {
pageService: mindSpacePages,
publicationService: mindSpacePublications,
pageSyncService: mindSpacePageSync,
pageDataEnsure: { ensurePageDataHtmlPagesBound },
h5Root: __dirname,
storageRoot: resolveMindSpaceRuntimeConfig(__dirname, process.env).storageRoot,
findPageByRelativePath: mindSpacePages.findPageByRelativePath.bind(mindSpacePages),
logger: console,
});
const resolveUserIdByDirKey = async (dirKey) => {
@@ -5068,6 +5072,7 @@ api.get('/sessions/:sessionId/events', async (req, res, next) => {
.filter(Boolean)
.join('\n')
: '';
await syncUserGeneratedPages(uid);
await maybeRepairPageDataAfterFinish({
sessionId: sid,
userId: uid,
@@ -5079,7 +5084,6 @@ api.get('/sessions/:sessionId/events', async (req, res, next) => {
tkmindProxy,
userText: lastUserText,
});
await syncUserGeneratedPages(uid);
};
return tkmindProxy.proxySessionEvents(req, res, sessionId, {
onAfterFinish,