LiveSticky

Changelog

Release notes and version history for LiveSticky.

Show technical details

v1.1.313

Released AUG 26, 2026

Everything since v1.1.285: safer post handling, restored features, and accessibility

  • Safer post recovery: When LiveSticky reconnects to a thread after a restart, it now only ever adopts posts it created itself. Previously it could match another post in your community and clear the comments on it.
  • No duplicate live threads: If LiveSticky loses track of its own thread mid-stream, such as after an app update, it now reconnects to the existing one instead of pinning a second live thread beside it.
  • Monthly Top 20 clips fixed: The monthly clip compilation now publishes on schedule. It had been failing silently.
  • Create Dashboard is back in Mod Tools: The action to create the interactive dashboard post had gone missing from the mod menu.
  • Your timezone setting now applies: The Streamer Timezone option was quietly ignored and every date fell back to UTC. Dates in your post titles and bodies now use the timezone you picked.
  • Safer clip formatting: Unusual characters in Twitch clip titles can no longer break post layout or slip an unexpected link into a pinned thread.
  • Cleaner offline threads: Templates that use live stream stats no longer leave raw placeholders like {stream_game} behind once the stream ends.
  • YouTube quota protection: If YouTube's daily API limit is reached, LiveSticky pauses those requests and resumes automatically at midnight Pacific.
  • More reliable Refresh: Refresh LiveSticky now clears rate-limit blocks for immediate retesting, and no longer leaves the dashboard blank when it runs alongside a scheduled check.
  • Lighter background activity: Wiki archive pages are only rewritten when their content actually changes, instead of on every check.
  • Keyboard and motion support: The dashboard is now fully keyboard navigable with visible focus rings, and honours your system's reduced-motion setting.

This release rolls up versions 1.1.286 through 1.1.312, which were superseded during review and never became available to install.

Technical details & developer notes

Fixed

  • Select settings read as arrays: Devvit returns select settings as ['UTC'], not 'UTC'. All three streamerTimezone read sites called .trim() on the raw value. Two were masked by surrounding try/catch (silently falling back to UTC); a third, in the settings validator, threw on every scheduler tick. Added settingText() as the single accessor and widened the validator's input types to unknown.
  • Self-healing search scoped to the app account (B3): findExistingSubredditPost ran an unfiltered searchPosts and adopted posts[0]. ensureStickyOfflinePost then removed every comment on that post before the edit() that would have failed. Results are now filtered by getAppUser().
  • Self-healing read from the listing index: findExistingSubredditPost relied on searchPosts, whose index lags by minutes, so a live post created earlier in the same stream was invisible to recovery. Now tries getPostsByUser on the app account first, with search kept as a deeper-history fallback.
  • Monthly highlights ReferenceError (B1): runMonthlyHighlights referenced an undeclared wikiArchive, throwing into a catch block on every run.
  • Dashboard menu route (B2): createDashboardPost had no endpoint and no manifest entry; both restored.
  • Clip title escaping (B6): escapeMarkdownBrackets() and escapeHtmlEntities() applied to clip titles, creators and URLs on both the markdown and wiki render paths.
  • Offline template variables (B5): the isLive === false branch of replaceTemplateVariables skipped game, viewers and uptime.
  • Dashboard pointer garbage collected (B7): dashboard_post_id removed from the 7-day wipe list.
  • Token invalidation (B8): Twitch and Kick cached tokens are dropped on HTTP 401/403 instead of being replayed until TTL.
  • Scheduler overlap (M1): SET NX lock with ownership read-back and a 5-minute TTL; the manual refresh path waits for an in-flight run rather than being dropped.

Added

  • Wiki write fingerprinting (B4): FNV-1a content hash in Redis with a 1h TTL, checked before any API call. Steady-state wiki traffic per tick went from ~30 calls to zero.
  • Settings validation (M10): grace period, publish time, avatar host and timezone are validated each tick and reported through ModMail, rate-limited to once a day with a short retry window after a failed send.
  • HTTP timeouts (M9): every upstream call routed through fetchWithTimeout (10s).
  • Pre-ship gates (M2): tsc --noEmit and the Vitest suite run in both release.sh and upload.sh before anything is uploaded. Test count 59 โ†’ 99.
  • Accessibility (U1-U6): token-based :focus-visible rings, keyboard-operable thread chip, roving-tabindex tablist with arrow keys, modal focus trap and aria-modal, and a prefers-reduced-motion block.

v1.1.285

Released AUG 20, 2026

Rich Visual Clip Cards on Reddit Wiki V2 & Wiki Navigation Hub

  • Rich Clip Thumbnails: Clip compilation pages on modern Reddit (web and official iOS/Android apps) now feature visual 16:9 thumbnail cards, view counters, and clip creator credits.
  • Subreddit Navigation Link: Added prominent ๐Ÿ“š Return to LiveSticky Archive Hub links across stream and monthly clip pages for easy navigation.
Technical details & developer notes

Added

  • Rich HTML Clip Lists for Wiki V2: Introduced native HTML rendering for clip archives (renderClipListHtml and buildWikiArchiveHtml) complete with embedded 16:9 clip thumbnails, responsive image scaling, view counters, and creator attribution.
  • Subreddit Wiki Hub Navigation: Added prominent archive hub backlinks linking back to /r/{subreddit}/wiki/livesticky across monthly and stream clip archive pages.
  • Canonical Wiki Slug Enforcement: Standardized page routing under livesticky/clip-archive and livesticky/monthly-archive with automatic unlisting of legacy duplicate wiki entries.

Fixed

  • Mobile Wiki Thumbnail Rendering: Fixed clip thumbnail images on Reddit Wiki V2, providing clean visual clip cards on official iOS and Android apps.
  • Wiki Navigation Hierarchy: Refined heading structure (h2 page titles, h1 entry headers) to optimize table-of-contents generation on Devvit Wiki pages.

v1.1.250

Released AUG 19, 2026

Devvit Wiki V2 Integration & Automated Wiki Directory Management

  • Modern Reddit Wiki Support: Clip archive pages are now published to both Wiki V1 (Old Reddit) and Wiki V2 (New Reddit & official mobile apps), eliminating blank pages.
  • Zero Maintenance Wiki Cleanup: Automatically creates parent wiki directory pages and cleans up legacy orphan pages without requiring manual moderator edits.
Technical details & developer notes

Added

  • Devvit Wiki V2 & Dual-Write Support: LiveSticky now publishes clip compilation pages to both Wiki V1 (Old Reddit) and Wiki V2 (New Reddit & mobile apps).
  • Auto-Managed Wiki Index Page: Automatically creates and updates the parent /wiki/livesticky directory landing page, eliminating "livesticky does not exist" errors.
  • 100% Automated Wiki Namespace Cleanup: Dynamically inspects subreddit wiki pages and automatically unlists/hides legacy or duplicate orphan pages.

Fixed

  • Clip Archive Link Availability: Resolved issue where clicking /wiki/livesticky/clip-archive/ on modern Reddit resulted in an unpopulated blank page.
  • Duplicate Sidebar Entries: Resolved duplicate sidebar list items on subreddit wikis by setting legacy non-canonical page paths to unlisted mod-only mode.

v1.1.249

Released AUG 18, 2026

Self-Healing Post Recovery & Card Layout Refinements

  • Self-Healing Post Recovery: If app state is cleared or reset, LiveSticky automatically detects and re-links active live posts on your subreddit instead of creating duplicate posts.
  • Layout Polish: Unified live thread pill placement and thumbnail positioning across single-stream and multi-stream card layouts.
Technical details & developer notes

Added

  • Self-Healing Post Recovery: Powered by Devvit 0.14.1's searchPosts() API. Automatically searches the subreddit for active live posts, offline posts, or clip compilations before creating new ones.
  • Upgraded core Devvit SDK packages to v0.14.1.

Fixed

  • Single-Stream vs Multi-Stream Layout Match: Unified single-stream (cinematic) and multi-stream card layouts in compact mode.
  • Improved responsive 16:9 thumbnail cropping with top-centered object positioning on desktop and embedded demo containers.

v1.1.244

Released AUG 13, 2026

Stream Highlights Upgrade, Wiki Archive & Monthly Top 20 Post

  • Monthly Top 20 Clips Post: Automatically publish a monthly recap of your subreddit's top 20 Twitch clips with customizable scheduling (Start, Middle, or End of month).
  • Flexible Stream Clip Posts: Choose between publishing a new clip post per stream session or recycling a single master sticky clips post.
  • Permanent Wiki Archives: Store full clip histories on your subreddit wiki pages with automatic links from clip posts.
Technical details & developer notes

Added

  • Previous Stream Clip Link: Automatically links to the previous stream's clip post at the bottom of the body (available as {previous_highlights_url} template placeholder).
  • Reuse Single Highlights Post setting (opt-in): Recycles a single permanent master clips post after each stream.
  • Wiki Clip Archive (opt-in): Keeps full clip history on subreddit wiki pages for stream clips and monthly top-20.
  • Monthly Top 20 Clips Post: Publishes the 20 most-watched Twitch clips from the previous calendar month.
  • Sticky Highlights Post setting: Keeps the clip compilation pinned, re-pinning it after each stream if it slips.

Changed

  • Stream highlights post defaults to creating a new post per stream session, allowing per-stream variables like {date} and {stream_title} in post titles.

Fixed

  • Fixed YouTube livestream detection on dashboard.
  • The {date} variable now respects the configured Streamer Timezone instead of always using UTC.