Skip to content

Chansets

Teuk edited this page Oct 6, 2026 · 2 revisions

Chansets

A chanset is a named per-channel capability. CHANSET_LIST registers available names; CHANNEL_SET stores which names are enabled on which channels.

Registration is not activation. In the current schema every listed capability exists in CHANSET_LIST, so an absent CHANNEL_SET row should be treated as disabled unless a specific feature explicitly documents another compatibility behavior.

Inspect and change

!features
!help chansets
!chanset #channel +Games
!chanset #channel -Games

Changing a chanset requires an authenticated global Administrator or per-channel level 450+. The runtime invalidates its chanset cache after a successful change; direct SQL edits do not provide the same operational contract.

Current capability list

Chanset Purpose and dependencies
Youtube YouTube URL metadata; requires outbound HTTP and the YouTube integration.
UrlTitle Generic URL, Instagram, Spotify, Facebook and X/Twitter title handling where supported.
Weather !weather / !meteo via the configured external weather path.
YoutubeSearch !yt search; normally requires a YouTube API key.
NoColors Removes IRC colour output where the feature honors this setting.
AntiFlood Enables per-channel input anti-flood policy; tune with !antifloodset.
Hailo Master switch for the per-channel Hailo brain.
HailoChatter Allows unsolicited Hailo chatter; still requires +Hailo.
RadioPub Publishes selected radio announcements; separate from public request authorization.
Twitter Legacy capability name retained for compatibility; current X/Twitter previews use +UrlTitle.
chatGPT Enables !tellme when [openai] is configured.
AppleMusic Enables Apple Music link enrichment.
RandomQuote Enables scheduled channel quotes; tune with randomquote (15m–7d), which does not itself enable the switch.
Claude Enables channel !ai/Claude behavior when [anthropic] is configured.
AchievementAnnounce Announces achievement unlocks publicly; unlock persistence can continue without announcements.
Games Enables !duel, !horoscope, !compat and !quotegame.
ChannelReport Enables scheduled channel reports when report scheduling is configured.
DidYouMean Enables typo suggestions for unknown commands.
Factoids Enables !learn, !whatis, !forget, !factoids, !factoid and ?keyword.
OnThisDay Enables !onthisday, !otd and history-memory behavior.
OnThisDayDigest Enables the scheduled daily on-this-day channel post.
LangFR Forces French for channel-aware features. Do not combine with LangES; French wins if both are present.
LangES Forces Spanish for channel-aware features. Otherwise [main] LANG is the fallback.
Wit Development: gentle proactive conversational observation; also requires global/provider send authorization.
Spark Development: main Spark micro-event lane; also requires SPARK_SEND_ARMED=1.
VDM Enables manual and eligible Spark-assisted VDM content.
DansTonChat Enables !dtc and !bashfr.
SparkAction Development: short activity/momentum lane; requires +Spark and SPARK_ACTION_SEND_ARMED=1.
HailoLearn Allows learning for a channel with +Hailo.
HailoRespond Allows direct replies for a channel with +Hailo.
Gemini Enables !gemini when [gemini] is configured.
Fullop Keeps an intentionally open channel operated according to the Fullop policy; the bot must have the required IRC privileges.
Quip Development: sharper contextual wit; shares the Wit/Quip provider and reply budget.
Radio Development: authorizes public shared-radio requests on the channel; requires the central radio API.

Safe activation order

For any provider-backed or proactive feature:

  1. apply the official migration if upgrading an older database;
  2. synchronize configuration and run strict database drift checks;
  3. validate credentials/dependencies without exposing secrets;
  4. keep global send gates disabled until the dry path passes;
  5. enable the chanset on one selected pilot channel;
  6. observe mediabot.log and live IRC behavior;
  7. expand only after the pilot is stable.

Important combinations

Feature Required combination
Hailo learning only +Hailo +HailoLearn -HailoRespond -HailoChatter
Hailo direct replies +Hailo +HailoRespond; add +HailoLearn to keep learning
Hailo chatter +Hailo +HailoRespond +HailoChatter and reviewed [hailo] pacing
Gemini [gemini] credentials plus +Gemini
Spark long-silence lane provider configuration, SPARK_SEND_ARMED=1, +Spark
Spark activity lane Spark prerequisites plus SPARK_ACTION_SEND_ARMED=1, +SparkAction
Quip provider auto-selection plus +Quip; optional +Wit gives mixed mode
Public radio requests central radio API config plus +Radio

Verify from MariaDB

Read-only inspection:

SELECT c.name AS channel, cl.chanset
FROM CHANNEL_SET cs
JOIN CHANNEL c ON c.id_channel = cs.id_channel
JOIN CHANSET_LIST cl ON cl.id_chanset_list = cs.id_chanset_list
ORDER BY c.name, cl.chanset;

Use the IRC !chanset command for changes. It applies authorization, side effects, logging and cache invalidation.

Automatic quote frequency

!chanset #channel +RandomQuote
!randomquote #channel every 3h
!randomquote #channel status
!chanset #channel -RandomQuote

Frequency changes require logged-in Administrator+ or channel 450+. The default is the valid configured quote timer or 3h. randomquote ... default removes only the interval override. See all quote options. RSS pacing is configured with rss limit, independently from RandomQuote.

Clone this wiki locally