Space inviter: DM admin to confirm invites for Space-less local users

New optional plugin (FEATURE_SPACE_INVITER) that detects local homeserver
users who aren't in any Matrix Space and prompts the configured admin via
DM with yes/no/ignore. Persistent prompt log in space_inviter_prompts so
restarts and upgrades don't re-ping for users who already replied.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
prosolis
2026-05-09 20:20:56 -07:00
parent 57b6e009ec
commit 8e8d3783f9
5 changed files with 882 additions and 0 deletions

View File

@@ -1823,6 +1823,21 @@ CREATE TABLE IF NOT EXISTS player_meta (
display_name TEXT NOT NULL DEFAULT '',
hospital_visits INTEGER NOT NULL DEFAULT 0
);
CREATE TABLE IF NOT EXISTS space_inviter_prompts (
user_id TEXT NOT NULL,
prompt_sent_at INTEGER NOT NULL,
trigger_kind TEXT NOT NULL,
dm_room_id TEXT NOT NULL,
dm_event_id TEXT NOT NULL,
reply TEXT,
replied_at INTEGER,
invite_attempted INTEGER NOT NULL DEFAULT 0,
invite_outcome TEXT,
invite_error TEXT,
PRIMARY KEY (user_id, prompt_sent_at)
);
CREATE INDEX IF NOT EXISTS idx_space_inviter_user ON space_inviter_prompts(user_id);
`
// SeedSchedulerDefaults inserts default scheduler jobs if they don't exist.