fix(hub): mark bootstrap Inbox as SYSTEM_INBOX

Alpha silo bootstrap created the root Inbox without kind=SYSTEM_INBOX, so
Feishu card project creation tried to insert a second Inbox and hit the
sibling-name unique index. Tag the bootstrap folder correctly and promote
any legacy root Inbox on ensure.
This commit is contained in:
2026-07-19 20:08:44 +08:00
parent 7f09fb1f13
commit 15f9443d3d
4 changed files with 63 additions and 0 deletions
+1
View File
@@ -250,6 +250,7 @@ async function initializeSilo(
data: {
organizationId: input.organization.id,
name: "Inbox",
kind: "SYSTEM_INBOX",
sortKey: "000000",
},
});
+20
View File
@@ -558,6 +558,26 @@ async function ensureInboxFolder(prisma: Prisma.TransactionClient, organizationI
select: { id: true },
});
if (existing !== null) return existing;
// Bootstrap once created a root "Inbox" without kind=SYSTEM_INBOX. Sibling-name
// uniqueness then makes a second create fail. Recover by promoting that row.
const legacyRootInbox = await prisma.folder.findFirst({
where: {
organizationId,
parentId: null,
name: "Inbox",
archivedAt: null,
},
select: { id: true },
});
if (legacyRootInbox !== null) {
return prisma.folder.update({
where: { id: legacyRootInbox.id },
data: { kind: "SYSTEM_INBOX" },
select: { id: true },
});
}
return prisma.folder.create({
data: { organizationId, name: "Inbox", kind: "SYSTEM_INBOX", sortKey: "000000" },
select: { id: true },