proudly-snoring/seat-comlink
A Laravel/PHP package that provides a Comlink integration layer around seat handling. Config-driven and lightweight, it is designed to drop into an existing Laravel app with minimal setup; see the README for installation, configuration, and usage details.
seat-comlink is a SeAT plugin (SeAT is itself a Laravel app), so installation follows the standard SeAT package flow rather than a plain composer require.
composer require proudly-snoring/seat-comlink
SeAT auto-discovers the service provider via package.json/extra.laravel.providers; if not, add it to config/app.php.php artisan migrate for its tables, then publishing/refreshing SeAT permissions so the new Comlink permissions show up under Settings → Access Management (re-run the SeAT permission sync command after any upgrade; the plugin's permission classes are only picked up on a sync).Manage Roles + View Channels. The guild ID is not the invite code; grab it from Discord with Developer Mode on.First use case: open the role-mapping screen, confirm the guild's icon and name resolve (the 1.0.1 icon fix), then map one low-risk SeAT role to one low-risk Discord role and test with a single character before touching any role that gates channel access.
Http::retry()/backoff and fake them in tests with Http::fake().auth alone; SeAT's ACL is the only thing standing between a line member and your bot token screen.composer update proudly-snoring/seat-comlink && php artisan migrate && php artisan config:clear — no new migrations are implied by the changelog, but always run migrate since SeAT plugins ship idempotent ones.@everyone) and possibly the bot's own role won't appear. If a role you mapped previously "vanished," check it isn't integration-managed, and re-save the mapping rather than assuming data loss. Any tooling of yours that parsed the old unfiltered list will need adjusting.img-src https://cdn.discordapp.com, and the icon URL contains a hash that changes whenever the server icon changes. Don't cache the URL indefinitely — cache the hash with a short TTL, or you'll show a stale 404 after an icon swap.php artisan config:clear, restart queue workers) or workers will keep using the old credential until they recycle.config:cache in production will freeze any published Comlink config values; anything the admin edits through the UI should be read from the database, not from cached config, which is also why settings changes appear to "not take" on some hosts.Retry-After header in storage/logs/laravel.log, queue the sync, and avoid bulk re-syncs during busy hours — a full-guild resync will hit Discord's per-guild limits quickly.Http::dd() or Http::fake() around the client is faster than reading logs. If the dropdown is empty, the failure is almost always auth (invalid token / bot not in guild) rather than the package — verify the token with a direct GET /guilds/{id} first.How can I help you explore Laravel packages today?