Changelog
Release notes for Beacon, the self-hosted SMS API for agents.
Need the latest build or setup help? Docs Get Beacon
0.3.5-beta
Install
- Current image and Composer version are
0.3.5-beta(ghcr.io/apxcde/beacon:0.3.5-beta,packages.apexcode.dev). Do not install0.3.4-beta— that tag was withdrawn.
Licensing
.env.exampleno longer ships aLICENSE_PUBLIC_KEY. The verifying key is embedded inconfig/licensing.php. Leave the env var unset unless you are running a forked distribution that signs its own licenses. Do not set it empty — Beacon will refuse to boot.
0.3.3-beta
Fixed
- Licensing 0.1.1 caches JSON-safe claims instead of PHP objects, which stops the Laravel 13 database-cache
TypeErroron every HTTP request. Images must not float back to licensing 0.1.0.
0.2.0-beta
TL;DR
- MCP gained machine-readable schema resources, short agent playbooks, and five new prompt workflows, so an agent can read the contract and run common jobs without assembling HTTP by hand.
Added
- MCP schema resources (
application/json, public reference data — not tenant-scoped) sourced from the OpenAPI spec:beacon://schema/message,beacon://schema/thread,beacon://schema/contact,beacon://schema/business-number, andbeacon://schema/error. Each returns the JSON Schemas for that entity — envelopes, enums, request/response shapes, and (for errors) the machine-readable error-code catalog — so an agent can introspect Beacon's contract before calling a tool. - MCP guide resources (
text/markdown, public reference data — not tenant-scoped):beacon://guides/sending-first-message,beacon://guides/handling-replies,beacon://guides/managing-contacts,beacon://guides/opt-out-and-compliance,beacon://guides/otp-flow, andbeacon://guides/error-handling— short agent playbooks for the common workflows. - MCP prompts:
thread_reply_suggestions(tone-tagged reply drafts for the latest inbound message),support_handoff_summary(structured handoff packet for a thread),contact_enrichment_notes(note, tag, and field-update suggestions from recent activity),outreach_plan(audience-and-goal outreach plan with message variants), andotp_assistant(guidedsend_otp/verify_otpflow with resend and lockout handling).
0.1.0-beta
TL;DR
- First public beta: HTTP API and MCP on the same install, Twilio send/inbound, team-scoped keys, first-run setup, threading, opt-out, idempotency, rate limits, OpenAPI, licensing, Docker.
Added
- HTTP API for messaging (
POST /text), threads (list, show, messages, replies polling), contacts (CRUD, upsert, by-phone, duplicates, merge, phone-number management), business numbers (CRUD, make-primary), and OTP (generate, verify). - MCP server at
/api/mcpexposing the full tool, resource, and prompt catalog documented indocs/mcp.md. Includes agent-native helpers:search_people_and_threads,get_contact_context,resolve_phone_to_context,summarize_thread,prepare_outreach_message,send_followup_to_contact. - MCP prompts:
draft_follow_up,summarize_conversation,merge_contact_decision,reply_triage. - Twilio integration: outbound send, inbound webhook ingestion (
/external/sms/inbound), message-status callbacks (/external/sms/status), OTP-status callbacks (/external/sms/otp-status), withX-Twilio-Signaturevalidation. - Tenant-scoped API keys (
X-API-Keyheader,Authorization: Bearer, query/body fallbacks) with disabled-key support and a_testsuffix for test mode (bypasses Twilio and licensing). - First-run setup Livewire wizard: workspace, encrypted Twilio credentials, business number entry or Twilio purchase, API key generation.
- Authenticated dashboard: team switcher, active business-number picker, add-number modal, settings page.
- Threading model: outbound and inbound messages collapse into per-(business number, contact phone) threads with
last_message_atcursor pagination. - Opt-out detection: STOP/STOPALL/UNSUBSCRIBE/CANCEL/END/QUIT auto-suppress sends to that contact phone for the team.
- Idempotency layer: 24h dedupe window, body-mismatch detection.
- Token-bucket rate limiting: 10 req/sec burst 50, env-configurable.
- OpenAPI 3.1 spec served at
/openapi.yaml. - License enforcement with a grace period and test-mode bypass.
- Docker packaging:
Dockerfile(Nginx + PHP-FPM),docker-compose.ymlwith Horizon and scheduler containers, optional MySQL profile, health checks.
Known gaps
These are intentionally deferred to v1.x:
- Dashboard thread viewer / contact manager UI (Beacon v1 is agent-driven; build a UI on top of the API if you need one).
- Managed credential rotation UI / CLI.
- Multi-secret webhook signature verification (current installation supports one Twilio Auth Token per Beacon instance).
- Quota- and billing-aware MCP capabilities (SaaS tier).
Compatibility
- PHP 8.4
- Laravel 13.2
- Pest 4
- Livewire 4 + FluxUI 2
- Horizon 5
- Sanctum 4