Releases: plyght/angel
Releases · plyght/angel
v1.1.0
Features
- Added a new suite of background process management tools enabling Angel to spawn, monitor, send input to, and stop long-running background processes. These tools allow handling servers, watchers, or build tools that require persistent execution.
- iMessage channel integration rewritten to use the external
imsgCLI tool for message sending, receiving, and watching. Supports specifying theimsgbinary path, service type (iMessage, SMS, auto), phone number normalization region, and an optional sender allowlist for security. - The
imsgintegration includes sending attachments with optional captions. - The setup process now supports configuration of the
imsgpath, service, region, and allowed sender handles. - The doctor command checks for the presence and availability of the
imsgCLI and reports on the iMessage allowlist configuration. - Angel now persists running background processes across restarts and restores them on boot.
- Large refactor to iMessage channel to improve reliability, replace database polling with a watch subprocess, and support filtering messages by allowlist and mention.
- Angel’s shutdown process now gracefully kills coding agents and background processes, with timeout and forced exit.
- Added automatic retries with exponential backoff for LLM API calls (including OpenAI and Claude), improving robustness against rate limits and transient errors.
- Memory reflector now logs errors on failure instead of silent failure.
- Increased robustness and configurability of iMessage channel including region and allowed handles.
Improvements
- iMessage messages are only handled when Angel is mentioned in group chats or allowed users in the allowlist, reducing noise and unauthorized input.
- Improved iMessage sending leveraging
imsgCLI instead of AppleScript, increasing reliability and feature support. - Background process output buffers scrub known secret patterns for security.
- Added output buffering with line-based circular buffer to background processes to limit memory use.
- Background processes notify the user on process exit with exit code and recent output.
- Improved tooling for managing background processes, including listing and output retrieval.
- Split message and response handling uses improved trimming and filtering.
- Setup UX improved with validation and guidance on iMessage configuration.
- Remote tools simplified Bun.spawn usage; added abort timeouts to web search and fetch tools.
- Logging improved for watch subprocesses, iMessage polling, and error conditions.
- Graceful shutdown now awaits all cleanup steps before exiting, with forced exit fallback after timeout.
Fixes
- Fixed migration duplicating tables by making migrationV2 a no-op to prevent errors.
- Prevented iMessage handler from processing messages sent by self.
- Fixed error handling and logging in iMessage message handling and sending.
- Fixed bug with working directory creation in agent to avoid redundant require calls.
- Memory reflector now logs errors instead of silently failing.
- Fixed bug in restart persistence to preserve background processes alongside coding agents.
- Blocked dangerous shell commands in background process spawning to avoid destructive operations.
- Scrubbed secrets from background process output to prevent accidental leakage.
- Fixed potential infinite loop or error in iMessage chat refresh by ignoring malformed JSON lines.
Breaking Changes
- iMessage channel requires
imsgCLI instead of direct SQLite DB access; prior configuration relying on Full Disk Access to Messages database must be updated. - iMessage channel constructor signature changed to accept
imsg_path,service,region, andallowed_handles. - Setup command options and config schema for iMessage channel updated to reflect new parameters.
- Deprecated direct SQLite access to iMessage chat database; relies fully on
imsgbinary now. - Background process tools introduce commands with higher risk; users should review the commands they allow Angel to run.
v1.0.0
Features
- Initial 1.0.0 release of Angel, an autonomous AI agent connecting to Discord, Slack, iMessage, and Signal.
- Supports memory, tool usage, coding agents, and onboarding for new users.
- Integrated with multiple LLM models (OpenAI, Anthropic).
- Added onboarding flow that learns user profile interactively and saves to memory.
- Signal channel supports images, audio (voice note transcription via Whisper), contact shares, link previews, and reactions as contextual events.
- Group chat awareness: addresses users by name, recognizes mentions, and respects markdown limitations on Signal.
- Safe word mechanism to confirm dangerous/irreversible actions, with group chat-specific handling (private DM confirmation workflow).
- Improved system prompt with detailed instructions for message splitting, interleaved messaging (progress updates), tool usage, and safety.
- Commands expanded: /new (new chat), /reset (onboarding reset), /restart (daemon restart), /settings (show config), and existing commands enhanced.
- Message splitting supports intentional multi-message responses (---MSG--- delimiter) respecting channel max message lengths.
- Database schema upgraded with tables for pending confirmations and allowed users to control access.
- Multiple channels support serialized sending and proper handling of replies, typing indicators, and attachments.
- Coding agents tools with persistence, progress notifications, and ability to kill all agents.
- Reflector memory feature runs periodically in background.
Fixes
- Handled malformed tool arguments gracefully with error messages.
- AbortSignal support to interrupt message processing cleanly saving session.
- Prevented message and reaction processing from unauthorized Signal numbers.
- Corrected database datetime formatting compatibility issues.
- Fix DB migrations adding missing tables and indexes.
- Fixed bot username display and typing indicators per channel.
- Resolved concurrency problems with Signal JSON-RPC stdin writes by serializing.
- Improved error logging and recovery in channel message handlers.
Improvements
- Refined messages: shorter, concise, direct replies with optional multi-part segmented output.
- Channel adapters updated for reliable start, stop, and error handling.
- Config system improved with environment variable resolution and new defaults.
- CLI enhanced with subcommands: setup, doctor (diagnostics), config, reset, version, and help.
- Doctor command reports status of network connectivity, tokens, database access, and required binaries.
- Signal channel uses OpenAI Whisper to transcribe audio messages automatically.
- Slack and Discord mention stripping improved to detect bot mentions correctly.
- iMessage polling more robust, skips messages where bot is not explicitly mentioned in groups.
- Session storage enhanced with detailed sender info for message records.
- Tools registry refactored to include remote, emit_message, confirmation, web, subagent, coding agents, and more for extensibility.
- Scheduled tasks support for recurring prompts using cron expressions with status and retry logic.
- Added support for channels to restrict allowed users via config and database.
- Memory system stores categorized memories and archives them when requested.
- Splitting functions robustly handle both forced and length-based message chunking.
- Restart command triggers daemon restart signal.
- Setup wizard and onboarding are interactive and save state.
Breaking Changes
- Package renamed to @inaplight/angel; new version 1.0.0.
- Web channel removed (previously experimental).
- Configuration file key and format changed: default config path changed to "config" instead of "angel.config.yaml".
- Channel allowed_users/allowed_numbers introduced to restrict message processing.
- Sessions now store sender DM IDs and enhanced metadata.
- Tool argument parsing stricter; malformed JSON now returns error tool message instead of crashing.
- Message splitting now requires explicit delimiter (
---MSG---) for multi-message responses. - Signal channel requires explicit allowed numbers; blocks others.
- Safe word feature requires new DB tables for pending confirmation workflow.
- CLI commands changed: some renamed (/restart, /reset), new commands added, version output updated.
- Coding agents APIs changed with new progress and notifier hooks.
This release marks the first stable version of Angel with deep multi-channel LLM integration, advanced context management, and enhanced user safety features.