sync: claim removal fix, auto-crawl email, progress bar, search optimization

- Fix claim removal request flow
- Add email notification on auto-crawl skill discovery
- Add progress bar component
- Optimize Meilisearch sync and search indexing
- Improve skill parser and queries

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
airano
2026-02-22 04:58:01 +03:30
parent b05cb21a65
commit 0713607693
15 changed files with 352 additions and 14 deletions

View File

@@ -1,7 +1,7 @@
import type { NextRequest } from 'next/server';
import { NextResponse } from 'next/server';
import { auth } from '@/lib/auth';
import { createDb, addRequestQueries, userQueries } from '@skillhub/db';
import { createDb, addRequestQueries, discoveredRepoQueries, userQueries } from '@skillhub/db';
import { sanitizeReason } from '@/lib/sanitize';
import { sendClaimSubmittedEmail } from '@/lib/email';
@@ -389,6 +389,26 @@ export async function POST(request: NextRequest) {
hasSkillMd: validation.hasSkillMd,
});
// Auto-approve and queue for crawling if SKILL.md found
if (validation.hasSkillMd && validation.skillPaths.length > 0) {
await addRequestQueries.updateStatus(db, requestId, {
status: 'approved',
});
// Queue repo for indexer crawling via discovered_repos
try {
await discoveredRepoQueries.upsert(db, {
id: `${parsed.owner}/${parsed.repo}`,
owner: parsed.owner,
repo: parsed.repo,
discoveredVia: 'add-request',
githubStars: 0,
});
} catch (err) {
console.warn('[Claim] Failed to queue repo for crawling:', err);
}
}
// Build appropriate response message
let message: string;
if (validation.skillPaths.length > 1) {