feat: slow-mode, welcome-mat, poll, standup, link-archive hooks#2
Draft
feat: slow-mode, welcome-mat, poll, standup, link-archive hooks#2
Conversation
Five new channel hooks:
1. slow-mode — Per-author cooldown between posts. Denies posts that
come too fast. Config: 'cooldown' (default ~m5). Host exempt.
Thread replies pass through.
2. welcome-mat — Welcomes new authors on their first post in a channel.
Posts a configurable greeting with {author} interpolation.
Tracks welcomed ships in state to avoid duplicates.
3. poll — Reaction-based polling. Posts matching a prefix trigger a
timed poll. Uses %wait to schedule a results tally after the
configured duration. Config: 'prefix', 'duration' (default ~h1).
4. standup — Scheduled daily prompt via cron. Posts a configurable
prompt, then closes the window after a collection period.
Setup: schedule with hook-schedule at desired time + ~d1 interval.
5. link-archive — Watches for %link inlines in posts and cross-posts
them to a configured heap/gallery channel. Deduplicates URLs
in state. Captions include the original author.
Author
UI MockupsInteractive mockups for how these hooks could surface in the Tlon Messenger UI: View Mockups (works on mobile) 7 screens covering:
Built with the Ochre 2024 design tokens. Light/dark mode toggle included. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Five new channel hooks
1.
slow-mode— Per-author post cooldownEnforces a minimum time between top-level posts per author. Too-fast posts are denied with a message.
Config:
cooldown:@dr(default~m5)State:
(map ship @da)— last post time per authorHost is always exempt. Thread replies pass through unaffected.
2.
welcome-mat— First-post welcomeAuto-posts a welcome message when a new author sends their first message in the channel.
Config:
welcome-msg: cord with{author}placeholder (default"Welcome aboard, {author}!")State:
(set ship)— tracks who has been welcomed3.
poll— Reaction-based polling with timed resultsPosts matching a configurable prefix trigger a timed poll. Uses
%waitto schedule a results tally.Config:
prefix: cord (default"📊 POLL")duration:@dr(default~h1)State: Stateless (uses
%waitfor deferred execution)On wake, posts a results summary as a reply to the original poll post. Currently posts a closing message — full reaction tallying depends on future hook capabilities to read reaction state from the post.
4.
standup— Scheduled daily promptPosts a configurable prompt via cron, then closes the collection window after a set duration.
Config:
prompt: cord (default"What are you working on today?")collect-window:@dr(default~h2)State: Stateless (cron + wake)
Setup:
Set the start time to your desired standup hour. Fires daily.
5.
link-archive— Auto-archive URLs to heapScans new posts for
%linkinlines and cross-posts each URL to a configured heap/gallery channel. Deduplicates by URL.Config:
archive-nest: cord, name of the heap channel on the host ship (required)State:
(set cord)— archived URLs for dedupCaptions include the original author ship. Recursively extracts links from bold, italic, strike, and blockquote inlines.
Usage pattern (all hooks)
Testing
All hooks can be dry-run tested with: