P3-P5: SubAgent SDK, Telegram Channel, SQLite persistence, full pipeline
P3 - SubAgent SDK:
- src/subagent.ts: researcher, coder, analyst, content-writer
- Mind.runSubAgent() → SubAgentFactory.create() → execute()
- Результаты сохраняются в long-term memory
- Heartbeat.notify(subagent-complete) после завершения
P4 - SQLite persistence (5 таблиц, WAL):
- src/database.ts: thoughts, notepads, self_observations, long_term, embeddings
- memory.ts → Database (полная замена in-memory)
- index.ts: dbPath → ~/.local/share/spark-mind/spark-mind.db
P5 - Telegram Channel Layer:
- src/telegram.ts: https module (SNI fix), MAX Messenger API
- mind.ts: sendReply() → Telegram + console fallback
- index.ts: TelegramMessenger(config) → Mind
Fixes:
- FK constraint: long_term INSERT → long_term_embeddings INSERT
- JSON parse: nested objects, markdown fences
- P5 telegram: graceful degradation on SSL error