fix: fast node creation, first-run modal, simplified docs

- Skip AI calls when no valid OpenAI key (fixes 9-13s timeout)
- Add first-run modal prompting for API key
- Rewrite README for first-time users
- Add /api/health endpoint
- Remove all Anthropic references (not used in OS)
- Fix bootstrap script (dev:local → dev)
- Fix next.config.js devIndicators warning
- Add Node 18+ version check

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
“BeeRad”
2026-02-02 15:10:46 +11:00
co-authored by Claude Opus 4.5
parent 38386afea4
commit 7beba57f63
13 changed files with 616 additions and 389 deletions
+38
View File
@@ -0,0 +1,38 @@
/**
* Main health check endpoint
* Returns overall system health status for quick verification
*/
import { NextResponse } from 'next/server';
import { checkDatabaseHealth } from '@/services/database';
import { hasValidOpenAiKey } from '@/services/database/descriptionService';
export const runtime = 'nodejs';
export async function GET() {
try {
const dbHealth = await checkDatabaseHealth();
const response = {
status: dbHealth.connected ? 'ok' : 'degraded',
database: dbHealth.connected ? 'connected' : 'disconnected',
vectorSearch: dbHealth.vectorExtension ? 'enabled' : 'disabled',
aiFeatures: hasValidOpenAiKey() ? 'enabled' : 'disabled (no API key)',
timestamp: new Date().toISOString(),
};
return NextResponse.json(response, {
status: dbHealth.connected ? 200 : 503,
});
} catch (error) {
return NextResponse.json(
{
status: 'error',
database: 'error',
error: error instanceof Error ? error.message : 'Unknown error',
timestamp: new Date().toISOString(),
},
{ status: 500 }
);
}
}