 adminandClaude Sonnet 4.6
|
a47f3aabc9
|
feat: WhatsApp notifications — new incident alert and CAPA overdue escalation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FFDuBhMKvoWjrWT3ZnGmmr
|
2026-07-11 18:50:25 +08:00 |
|
 adminandClaude Sonnet 4.6
|
b9ab94c9da
|
feat: API key settings page — store ANTHROPIC/VOYAGE keys in DB with admin UI
- Migration: app_settings table with admin-only RLS (ANTHROPIC_API_KEY, VOYAGE_API_KEY)
- lib/settings.ts: getApiKey() reads DB first, falls back to env var
- lib/claude/client.ts: factory createAnthropicClient(apiKey) replaces singleton
- lib/claude/embed.ts: optional apiKey param, falls back to env
- 3 Claude AI routes + similar route: fetch key from settings before calling AI
- incidents/route.ts: fire-and-forget embed reads VOYAGE key from settings
- GET/POST /api/settings: admin-only masked key management endpoint
- /hse/settings page + ApiKeyForm client component
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FFDuBhMKvoWjrWT3ZnGmmr
|
2026-07-11 17:46:40 +08:00 |
|
 adminandClaude Sonnet 4.6
|
547cc6e817
|
feat: pgvector similar-incident retrieval + SimilarIncidentsPanel
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FFDuBhMKvoWjrWT3ZnGmmr
|
2026-07-11 16:31:02 +08:00 |
|
 adminandClaude Sonnet 4.6
|
ed14885253
|
fix: replace any casts with typed casts for Supabase join results
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AWxyMibCuGGtSQSqfajDQ7
|
2026-07-11 07:52:53 +08:00 |
|
admin
|
2239b6e2df
|
feat: email notifications via Resend on new incident
|
2026-07-10 13:24:44 +08:00 |
|
admin
|
3f8da5bd91
|
feat: incident report form, API route, middleware shared-route + redirect
|
2026-07-10 13:19:45 +08:00 |
|