Send feed updates to a specific conversation
In Console's task center, select a loaded RSS instance, enter a feed URL and a complete delivery target, then create an administrator subscription. The first successful check establishes a baseline; only later articles are sent. Resuming also establishes a new baseline without backfill. No AI or impersonated chat sender is required.
Prepare the plugin and target
Inspect the use case and installation plan:
zhin use-cases rss-subscription
zhin install @zhin.js/plugin-rss --dry-runInstall and load the plugin through the existing installation flow. Configure a persistent Database Host, Schedule Host and Outbound Host supporting exact sendTarget delivery. Without all three, the RSS instance exposes no administrator task provider. See the RSS plugin README for configuration.
The instance's pollCron controls polling, every five minutes by default. Scheduling uses the Host's actual timezone. Task details show the expression and last check without inventing a next-run time. A failed feed fetch is checked again next round; it is not a delivery attempt.
Create and verify
Open the task center using a full-scope token for the current Host. Select the exact instance and administrator RSS provider. Enter an HTTP(S) feed URL without username or password. Select the account, conversation kind and ID, preserving parent and thread identities. Enter exact IDs manually when the platform has no directory; display names cannot replace addresses.
Review the listed fetching and delivery effects before creating. Creation only saves the task: it does not fetch the feed or send a test message. Wait for a successful check whose details confirm the baseline. Add one article to a controlled test feed, wait for the next poll, then check the task result and original target conversation separately. Real-platform validation requires an authorized test target. Successful storage proves neither account connectivity nor delivery.
Updates use the existing readable text format through the unified send pipeline. Article titles, links and omitted-item counts remain in the body; images, Markdown and buttons are not required.
Pause, edit and handle uncertain delivery
Pause before changing the URL. Resuming establishes a new baseline. Pausing or cancelling prevents future checks but cannot retract delivery already in progress. Each subscription persists its own deduplication cursor, separate from chat subscriptions.
An uncertain state is persisted before sending. Only a confirmed message ID returns the task to polling; definite non-delivery stops it. unknown, a missing confirmed ID or process interruption never causes an automatic retry or a resume button. Inspect the original conversation and reconcile first. Cancelling and creating another subscription starts a new baseline without replaying old articles.
Administrator and chat subscriptions have separate management. rss-list, rss-remove and rss-check cannot read, cancel or trigger administrator tasks. Chat commands currently reject addresses with parents or threads; administrator targets preserve those fields.
Accumulate updates during quiet hours
Quiet hours are off by default and apply only to administrator RSS subscriptions that explicitly enable them. Scheduled reminders and chat subscriptions keep their existing behavior. Set all three task parameters:
| Parameter | Example | Meaning |
|---|---|---|
quietTimezone | Asia/Shanghai | An explicit IANA timezone; no server or user timezone is guessed |
quietStart | 22:00 | Inclusive starting minute |
quietEnd | 08:00 | Exclusive ending minute |
Times use a 24-hour clock and may cross midnight. Start and end must differ. Provide all three fields; omit or clear all three to disable. Partial configuration is rejected. Pause before editing.
Polling continues during quiet hours. Newly detected identifiers and pending summary facts are persisted in the same update. The first poll outside quiet hours sends the accumulated summary before fetching any feeds; that subscription fetches again on the next poll. A currently unavailable source does not block an already-persisted summary. Delivery is not promised at the exact ending minute. Daylight-saving changes use the actual local minute at each poll rather than an inferred future timestamp.
Each subscription and complete target accumulates separately, without merging across feeds, accounts or conversations. A summary retains at most three short titles and usable HTTP(S) links. Actual display also respects maxItems, referring readers to the source for the rest. Counts above 10000 are shown as “at least”. The 20-item fetch window and 64-item deduplication cursor still apply; summaries are not permanent archival or lossless delivery.
Pausing clears pending summaries. Editing and cancellation also discard them. Resuming establishes a new baseline without backfill. Already-claimed delivery cannot be retracted. Uncertain summary delivery stops automatic processing and permits only cancellation after reconciliation.
Cursors and summaries share the instance's 60 KiB durable-state limit. Creation and edits reserve space for bounded summaries; insufficient capacity rejects the mutation while retaining existing data. Internal records upgrade to version 2 under the same owner and key. New code reads old records; an old worker that cannot understand version 2 stops processing instead of bypassing quiet hours after a rollback.
Polling window and capacity
Each check examines the first 20 items returned by the feed without following older pages. maxItems displays five articles by default. If more new articles are found in one check, the message includes an omitted count and source-site hint. All examined articles enter the cursor; omitted details are not sent next round. Initial and resumed baselines also cover only the current window, so this is not permanent archival or lossless delivery.
Each instance retains at most eight administrator tasks and 32 operation receipts. Each subscription retains 64 item-identifier digests. Creation may prune cancelled or failed history, but never uncertain tasks. Invalid durable data stops administrator polling while preserving the data for investigation.
See the administrator task center for operations and reconciliation after a lost response.