Files
aetheel-2/docs/FUTURE-FEATURES.md

112 lines
5.4 KiB
Markdown

# Aetheel — Future Features Roadmap
Features inspired by nanoclaw that can be implemented in the CLI-based gateway. Excludes Docker containers, WhatsApp channel, and Agent SDK (already ruled out).
---
## ✅ Completed
### Message History Storage ✅
Store inbound/outbound messages in a JSON file per channel. Implemented at `config/messages/{channelId}.json` with append-only storage, max 100 messages per channel, auto-trimmed.
### Structured Logging ✅
Pino-based structured JSON logging with configurable log levels via `LOG_LEVEL` env var. Pretty-printed in dev, JSON in production.
### Conversation Archiving ✅
Every exchange saved as readable markdown in `config/conversations/{channelId}/{YYYY-MM-DD}.md`.
### Retry with Backoff ✅
Backend CLI calls retry 3 times with exponential backoff (5s, 10s, 20s) on transient errors. Session corruption errors fail immediately.
### Idle Timeout for Sessions ✅
Auto-clear sessions after configurable period of inactivity per channel (default 30 min). Tracked via `lastActivityTimestamp` in the session manager.
### IPC-Based Proactive Messaging ✅
Agent writes JSON files to `config/ipc/outbound/` using the Write tool. Gateway polls every 2 seconds, delivers messages, and deletes processed files.
### Skills Engine ✅
`config/skills/` directory where each subdirectory contains a `SKILL.md` file. Skills are loaded into the system prompt as additional sections.
### Config Simplification ✅
Merged `soul.md`, `identity.md`, `user.md`, and `tools.md` into a single `CLAUDE.md` file.
### Mission Control Dashboard ✅
Embedded web-based dashboard served on port 3100 with:
- **Command Center** — Real-time stats, live activity feed, agent config
- **Activity** — Full event history with SSE real-time updates
- **Sessions** — Active Discord channel sessions and message viewer
- **Second Brain** — Knowledge store with facts (notes/URLs/files), categories, tags, search. Plus memory and persona editors, and skills viewer
- **Productivity** — Kanban-style task board (To Do → In Progress → Done) with priorities, projects, and due dates
- **Content Intel** — Content curation (articles, videos, papers, repos) with status tracking (queued → read → archived)
- **Scheduler** — View cron jobs, heartbeat checks, and lifecycle hooks
- **Connections** — Integration statuses
- **Settings** — Config overview and quick todos
All backed by local JSON file persistence in `config/` via `local-store.ts` — zero external dependencies.
### Multi-Backend Support ✅
Abstracted backend interface (`BackendAdapter`) with pluggable CLI adapters. Supports five backends: **Claude Code**, **Codex**, **Gemini CLI**, **OpenCode**, and **Pi**. Switchable via `AGENT_BACKEND` env var. Each adapter normalizes CLI-specific JSON output into a common `BackendEventResult` format. Full property and unit test coverage for all backends.
---
## Remaining Features
### Agent-Managed Tasks via File-Based IPC (Medium Effort)
The agent can create, pause, resume, and cancel scheduled tasks dynamically during a conversation.
Our approach: The agent writes task definitions to `config/tasks.json` using the Write tool. The gateway polls this file periodically and schedules/unschedules tasks accordingly. Task format:
```json
[
{
"id": "morning-briefing",
"prompt": "Good morning! Check email and summarize.",
"schedule_type": "cron",
"schedule_value": "0 9 * * *",
"status": "active",
"target_channel": "1475008084022788312"
}
]
```
### Multi-Turn Message Batching (Medium Effort)
Instead of sending one message at a time to Claude, batch multiple messages that arrive while the agent is processing.
Our approach: When a message arrives while the agent is already processing for that channel, queue it. When the current processing finishes, batch all queued messages into a single prompt with sender/timestamp metadata.
### Per-Channel Isolation (Medium Effort)
Different channels could have different persona configs. A "work" channel gets a professional persona, a "fun" channel gets a casual one.
Our approach: Support a `config/channels/{channelId}/` override directory. If it exists, load persona files from there instead of the root config. Falls back to root config for missing files.
### SQLite Storage (Bigger Effort)
Replace JSON files with SQLite for messages, sessions, tasks, and state. Better for concurrent access, querying, and doesn't corrupt on partial writes.
Our approach: Install better-sqlite3, create a single `config/aetheel.db` with tables for sessions, messages, tasks, and state. Migrate existing JSON files on first run.
### Secrets Management (Bigger Effort)
Prevent API keys and sensitive data from leaking through agent tool use.
Our approach: Add a sanitization step: before passing the prompt to Claude, strip any env var values that look like secrets from the system prompt. Also consider using `--disallowedTools Bash` if the agent doesn't need shell access.
### MCP Server Integration (Bigger Effort)
Expose Aetheel's capabilities as MCP tools so the agent can interact with the dashboard data, manage tasks, and store knowledge programmatically during conversations.
## Priority Recommendation
1. Agent-managed dynamic tasks (agent autonomy)
2. Multi-turn message batching (UX improvement)
3. Per-channel isolation (flexibility)
4. MCP Server integration (agent ↔ dashboard)
5. SQLite storage (reliability at scale)
6. Everything else as needed