AI email command parser, Directus+BullMQ+imapflow.
| Proces | Status | Uptime | Restarty |
|---|---|---|---|
| aion-command | online | 1d | 0 |
inspiracja
Commit stwierdza: 'Jedyny działający transport to subskrypcja Claude Code (CLI)' po tym jak ANTHROPIC_API_KEY było puste a AI_MODEL_HEAVY wskazywał na przestarzały slug OpenRouter (404). Celowy łańcuch: ANTHROPIC_API_KEY (kanoniczny) -> OPENROUTER_API_KEY -> CLAUDE_CODE_OAUTH_TOKEN (testing-only).
źródło: git log (commit d0425c4, 8ff4a1a), server/utils/claude.ts
cel
CMS artykułów z publikacją do zewnętrznego Directus klienta, publikacja społecznościowa (LinkedIn/Facebook/Instagram), zunifikowana skrzynka odbiorcza (czat/email/WhatsApp) z klasyfikacją AI, moduł spotkań (transkrypcja Whisper, podsumowania AI), SSO przez Aion ID.
źródło: server/api/articles/[id]/publish.post.ts, docs/PLAN-unified-inbox.md
zależności
Dedykowana instancja Directus na 127.0.0.1:8063, bullmq+ioredis (prefiks aioncmd:), imapflow/nodemailer, integracje Meta Graph API, LinkedIn, Google Calendar, Whisper, Resend, Authentik OIDC.
źródło: package.json, server/utils/claude.ts, .env.example
znaczenie
Centralizuje produkcję treści, komunikację ze wszystkimi kanałami klientów, logistykę spotkań, fundament pod platformę tożsamości. Funkcje AI bezpośrednio automatyzują rutynową obsługę klienta.
źródło: docs/PLAN-aion-id-platform.md
co działa
aion-command i worker: status online, uptime 8 dni, unstable_restarts=0. Log błędów (2779 linii) to w 1805 liniach nieszkodliwe ostrzeżenie h3, reszta to ENOENT dla nieaktualnych hashy chunków (normalny artefakt redeployu).
źródło: pm2 describe (unstable_restarts:0), aion-command-error.log
co nie działa
server/api/health.get.ts deklaruje 'Brak autoryzacji — pingowany przez monitoring', ale allowlist w middleware nie zawiera wyjątku. Bezpośredni test: curl 127.0.0.1:3030/api/health zwraca 401 — zewnętrzny monitoring bez ciasteczka nie może odczytać statusu.
źródło: curl (live, 401), server/middleware/auth.ts
Log potwierdza 118 wystąpień ECONNREFUSED 6379 (Redis niedostępny) oraz 5 wystąpień MISCONF 'unable to persist to disk'. Oba historyczne — obecnie redis-cli ping zwraca PONG, dysk ma 79G wolnego.
źródło: aion-command-worker-error.log (118x ECONNREFUSED, 5x MISCONF)
co do przetestowania
Nie zweryfikowano czy ANTHROPIC_API_KEY jest wypełnione w produkcyjnym .env, ani czy konto OpenRouter ma kredyty — logika cooldown po 402 sugeruje powracający problem.
źródło: brak dostępu do wartości .env w tej sesji
rekomendacja
Dodać wyjątek dla ścieżki /api/health w server/middleware/auth.ts. Skonfigurować alerting na redis-cli ping i próg wolnego miejsca — 19 restartów workera wynika bezpośrednio z tych dwóch awarii infrastrukturalnych.
źródło: server/middleware/auth.ts, historia restartów workera