feat: public events/polls, friends graph, captcha, SSE hardening, and admin UX
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 2m55s

Ship product gaps: register/vote pages, friend add/accept/decline/remove, email verify TTL, captcha on login/forgot, soft-fail user actions, SSE abort/shared client, Commando Centrum error toasts, admin delete for events/polls, and IT/NL i18n fills.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
SimoandCursor committed 2026-07-21 21:08:33 +02:00
1 parent 2ff08e5127
commit ed7db6e048
76 files changed
+4834 -1376

No files matched your search

@@ -56,6 +56,7 @@ export const POST = withAdmin(
return runSseBatch<BatchItem>({
items,
concurrency: body.concurrency || 2,
signal: request.signal,
labelOf: (it) => it.classname,
worker: async (it, _index, report) => {
const entry = entryMap.get(it.classname);
@@ -95,6 +95,7 @@ export const POST = withAdmin(
return runSseBatch({
items: allItems,
concurrency: 2,
signal: request.signal,
labelOf: (it) => `${it.sourceName}/${it.classname}`,
worker: async (it, _index, report) => {
const allSrc = await listSources();
@@ -32,6 +32,7 @@ export const POST = withAdmin(
return runSseBatch<FigureBatchItem>({
items,
concurrency,
signal: request.signal,
labelOf: (it) => it.lib,
worker: async (it, _index, report) => {
const r = await importSingleFigure({ lib: it.lib, onProgress: report });
@@ -30,6 +30,7 @@ export const POST = withAdmin(
return runSseBatch<ClothingSetBatchItem>({
items,
concurrency,
signal: request.signal,
labelOf: (it) => `${it.setType}-${it.setId}`,
worker: async (it, _index, report) => {
const r = await importClothingSet({
@@ -30,6 +30,7 @@ export const POST = withAdmin(
return runSseBatch<EffectMapEntry>({
items,
concurrency,
signal: request.signal,
labelOf: (it) => it.lib,
worker: async (it, _index, report) => {
const r = await importSingleEffect({
@@ -29,6 +29,7 @@ export const POST = withAdmin(
return runSseBatch<PetBatchItem>({
items,
concurrency,
signal: request.signal,
labelOf: (it) => it.lib,
worker: async (it, _index, report) => {
const r = await importSinglePet({ lib: it.lib, onProgress: report });
-1
View File
@@ -64,7 +64,6 @@ export async function GET(req: Request) {
"content-type": "text/event-stream; charset=utf-8",
"cache-control": "no-store, no-transform",
connection: "keep-alive",
"access-control-allow-origin": "*",
},
});
}