WP Manifestindependent plugin directory

Install

Download rabbit-production-2.0.3.zip From the v2.0.3 release on GitHub, Sep 24, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/bleedingdeacons/rabbit/releases/download/v2.0.3/rabbit-production-2.0.3.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Licence

Framework for sending outbound messages to Unity members. Rabbit is the contracts plugin: it defines the messaging interfaces, value objects, a shared HTTP transport, capabilities, and the high-level MemberMessenger helper. An implementation plugin (e.g. WhatsApp) binds a concrete driver against the contract.

Rabbit does nothing visible on its own — it never talks to a provider. It only defines the shape every driver must satisfy and the glue that turns a Unity member into a sent message (recording each send in Scrutiny's GDPR audit log).

Architecture

Unity (members + container)
└── Scrutiny (GDPR audit log)
    └── Rabbit (contracts + MemberMessenger)   ← this plugin
        └── WhatsApp (driver: Meta Cloud API)

Rabbit boots on unity/loaded, registers its services into Unity's shared container, and fires rabbit/loaded so driver plugins can bind their concrete MessageService. It hard-requires Unity (member data) and Scrutiny (audit log).

Key components

Class Responsibility
Rabbit\Messaging\Interfaces\MessageService The driver contract: send(Message): MessageResult, testConnection(): bool.
Rabbit\Messaging\Interfaces\MessagingException Common throwable for driver failures.
Rabbit\Messaging\Models\Message Immutable text/template message. Message::text(), Message::template().
Rabbit\Messaging\Models\Recipient Immutable recipient (phone, name, member id).
Rabbit\Messaging\Models\MessageResult Immutable accepted result (provider message id, status).
Rabbit\Messaging\AbstractMessageService Shared validation + phone normalisation drivers extend.
Rabbit\Members\MemberMessenger The headline helper: member → message → bound driver + Scrutiny audit.
Rabbit\Transport\Interfaces\HttpTransport Abstract HTTP layer so drivers stay testable.

Usage

// Send a free-form text message to Unity member #123.
rabbit()
    ->get(\Rabbit\Members\MemberMessenger::class)
    ->sendTextToMember(123, 'Your shift starts in 1 hour.');

// Send a pre-approved template message.
rabbit()
    ->get(\Rabbit\Members\MemberMessenger::class)
    ->sendTemplateToMember(123, 'shift_reminder', 'en_GB', ['1 hour']);

MemberMessenger resolves the member's mobile number from Unity, dispatches via whatever driver is bound, and writes a Scrutiny audit entry (action message, entity member, field mobile_number) — non-PII detail only.

Capabilities

Capability Meaning
rabbit_manage_messaging Configure the provider connection.
rabbit_send_message Send messages to members.
rabbit_view_messaging View messaging status / settings.

Roles rabbit_operator, rabbit_sender, rabbit_viewer are created on activation; administrators inherit all three capabilities.

Kill switch

Define RABBIT_KILL as true in wp-config.php to stand Rabbit down without deactivating it.

Development

Install the dev dependencies and run the suite from the plugin directory:

composer install
Command Description
composer test Run the full PHPUnit test suite
composer test:unit Run unit tests only
composer test:integration Run integration tests only
composer test:coverage Generate an HTML coverage report
composer phpstan Run PHPStan static analysis
composer cs Check WordPress coding standards
composer cs:fix Auto-fix coding standard violations
composer check Run CS + PHPStan + tests in sequence

Line coverage is reported to Coveralls on every CI run — see the coverage badge at the top of this file.

License

MIT (Modified — No Resale). © The Bleeding Deacons.

Releases

16 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
Sep 24, 2026 29d ago
rabbit-production-2.0.3.zip
3
Sep 24, 2026 29d ago
rabbit-production-2.0.2.zip
0
Sep 22, 2026 1mo ago
rabbit-production-2.0.1.zip
1
Sep 20, 2026 1mo ago
rabbit-production-2.0.0.zip
1
Sep 9, 2026 1mo ago
rabbit-production-1.4.15.zip
4
Sep 5, 2026 1mo ago
rabbit-production-1.4.14.zip
2
Sep 5, 2026 1mo ago
rabbit-production-1.4.13.zip
1
Aug 25, 2026 1mo ago
rabbit-production-1.4.12.zip
1
Aug 25, 2026 1mo ago
rabbit-production-1.4.11.zip
0
Aug 17, 2026 2mo ago
rabbit-production-1.4.10.zip
1
Aug 17, 2026 2mo ago
rabbit-production-1.4.9.zip
1
Aug 9, 2026 2mo ago
rabbit-production-1.4.8.zip
1
Aug 8, 2026 2mo ago
rabbit-production-1.4.7.zip
1
Aug 7, 2026 2mo ago
rabbit-production-1.4.6.zip
4
Aug 7, 2026 2mo ago
rabbit-production-1.4.5.zip
4
Aug 7, 2026 2mo ago
rabbit-production-1.4.4.zip
1
A grade

Security

Rabbit 2.0.3 · audited by WP Registry

No security issues found.

Audited release
2.0.3
Findings
none
Worst severity
—
Content hash
9551a4d549a948b82923863c…

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.