0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-06 13:08:40 +08:00
discourse/lib
Mark VanLandingham c85593eda8
PERF: Add fast nested reply stats preparation (#41870)
## Problem

Nested reply statistics currently start backfilling only after nested
replies are enabled. At the default 100 topics every five minutes, that
is 28,800 topics per day—about 174 days for a site with five million
topics. Large sites therefore have to expose the feature before its
historical stats are ready.

## Solution

Add a backend-only `nested_replies:prepare_stats` rake task. For each
site, it:

- enables the existing realtime stats callbacks while the nested-replies
UI remains disabled;
- captures the current regular-topic high-water mark;
- enqueues low-priority, keyset-paginated batches which immediately
enqueue the next batch instead of waiting five minutes;
- reuses the existing per-topic backfill SQL; and
- isolates an individual failed topic into its own job, where normal
Sidekiq retries apply, so later topics can continue.

The task leaves the hidden maintenance flag enabled, so replies created,
deleted, or reparented after preparation begins keep the same stats
current before nested replies are enabled. On multisite it prepares
every database by default; `RAILS_DB` scopes it to one database.

The existing scheduled backfill keeps its original feature gate, topic
selection, batch schedule, and calculations. This adds no UI,
migrations, stats version, readiness marker, durable cursor setting,
lock, or watchdog.

Run it with:

```sh
RAILS_ENV=production bin/rake nested_replies:prepare_stats
```

Completion is logged with the captured high-water topic ID. Re-running
the task is safe because it uses the existing idempotent upsert
behavior.

Tests cover disabled-mode preparation, bounded continuation and
high-water behavior, isolated retries, rake-task enqueueing,
preservation of the old scheduler gate, and realtime maintenance while
the UI is disabled.
2026-07-21 10:45:53 -05:00
..
acl FEATURE: Support users in DAccessControl and backend (#41358) 2026-07-15 09:18:06 +10:00
action_dispatch/session Revert "DEV: Debug cookie overflows" (#35120) 2025-10-02 09:55:47 +02:00
active_support_type_extensions DEV: Replace Ruby numbered parameters by it where applicable (#37810) 2026-02-13 13:59:07 +01:00
admin_dashboard/reports DEV: Let plugins exclude reports from the customisable dashboard (#40463) 2026-06-03 16:36:01 +03:00
auth SECURITY: Bind shared session key to auth token and enforce user gates (#41610) 2026-07-14 13:25:05 +08:00
autospec DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
backup_restore FEATURE: Hot algorithm for nested replies (simple) (#41742) 2026-07-20 10:56:05 -05:00
common_passwords
compression FIX: ZIP symlink entries are extracted as real directories (#41168) 2026-06-25 11:16:17 -03:00
content_localization FEATURE: Localize local oneboxes (#40493) 2026-06-08 11:49:55 +08:00
content_security_policy UX: Do not include upgrade-insecure-requests in report-only CSP (#41414) 2026-07-03 09:56:08 +01:00
demon DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
discourse FEATURE: Route all GitHub API requests through one rate-limited client (#40637) 2026-06-15 10:59:10 +02:00
discourse_dev FEATURE: Add top countries and top referrers cards to the admin dashboard (#40215) 2026-05-22 12:59:16 +08:00
discourse_webauthn FEATURE: Allow passkeys to satisfy 2FA on /session/2fa (#39674) 2026-05-06 14:47:01 -03:00
email SECURITY: Prevent any signed AWS SNS TopicARN from being accepted via webhooks 2026-06-30 16:10:52 +02:00
email_controller_helper
emoji DEV: Auto-generate emojiReplacementRegex from emoji database (#38491) 2026-03-16 14:32:57 +01:00
faker DEV: Enable Rails/FilePath rubocop rule (#40097) 2026-05-19 19:07:54 +02:00
file_store PERF: Run primary and parallel DB setup concurrently in CI (#40319) 2026-05-29 06:46:32 +08:00
final_destination FEATURE: Support 'Happy Eyeballs' in FinalDestination::HTTP (#41680) 2026-07-15 11:31:23 +01:00
freedom_patches FEATURE: Support 'Happy Eyeballs' in FinalDestination::HTTP (#41680) 2026-07-15 11:31:23 +01:00
generators DEV: add plugin post-migration generator and migration skill (#39125) 2026-04-08 09:34:55 +10:00
guardian FEATURE: Allow admins to localize custom sidebar section and links (#41795) 2026-07-21 21:45:50 +08:00
i18n DEV: Enable Rails/FilePath rubocop rule (#40097) 2026-05-19 19:07:54 +02:00
import
import_export DEV: Enable Rails/FilePath rubocop rule (#40097) 2026-05-19 19:07:54 +02:00
middleware FEATURE: Show bounce rate and average session duration on the dashboard (#40936) 2026-07-03 10:49:32 +08:00
migration DEV: Rename anonymous group to anonymous_users (#40435) 2026-06-02 09:29:46 +10:00
nested_replies FEATURE: Hot algorithm for nested replies (simple) (#41742) 2026-07-20 10:56:05 -05:00
onebox FEATURE: add Google Meet oneboxes (#41018) 2026-06-18 15:49:43 +10:00
plugin DEV: Add usage metrics for workflows, automations, and data explorer (#41437) 2026-07-13 11:41:58 +02:00
pretty_text DEV: Enable Style/RedundantParentheses rubocop rule (#40095) 2026-05-19 15:48:09 +02:00
rate_limiter DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
release_utils DEV: Bump version automatically when cutting release branches (#38504) 2026-03-12 12:05:28 +01:00
request_tracker/rate_limiters DEV: API to register custom request rate limiting conditions (#30239) 2024-12-23 09:57:18 +08:00
reviewable FIX: Resolve all of a deleted spammer's reviewables (#40780) 2026-06-15 13:34:15 +08:00
scheduler DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
search DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
second_factor DEV: Split passkey and security key WebAuthn ceremonies for 2FA (#40817) 2026-06-17 12:52:47 -03:00
seed_data DEV: Do not seed TOS and Privacy topics even if company_name is present (#41814) 2026-07-17 13:29:49 -04:00
service Revert "FEATURE: discourse-workflows (#39704)" (#40366) 2026-05-28 13:59:42 +01:00
sidekiq FIX: Ensure retry_count is set when checking if a job is being retried (#36034) 2025-11-14 14:18:50 +11:00
site_settings UX: Link to required settings from language switcher validation error (#38374) 2026-07-16 15:51:06 -04:00
stylesheet PERF: Only recompile stylesheets when required (#41735) 2026-07-16 12:14:28 +01:00
tasks PERF: Add fast nested reply stats preparation (#41870) 2026-07-21 10:45:53 -05:00
theme_settings_group_resolver DEV: Add resolve_group_membership for theme object settings of group type (#41756) 2026-07-17 10:19:29 +10:00
theme_settings_manager DEV: Add disallowed_groups to theme/component settings (#41792) 2026-07-20 09:28:52 +10:00
theme_store FEATURE: Show theme d-compat/* refs in admin UI (#40649) 2026-06-17 22:13:45 +01:00
topic_query SECURITY: Restrict tagged group message lists (#41342) 2026-07-06 12:19:05 +08:00
topic_view DEV: Various changes to support nested posts experiment (#37785) 2026-03-09 15:47:03 -05:00
turbo_tests DEV: Add per-test SQL/Redis/network capture RSpec formatter (#40632) 2026-06-16 09:47:54 +08:00
upcoming_changes DEV: Fix UC status report when reverted files encountered (#41821) 2026-07-20 16:37:35 +10:00
validators FIX: Prevent empty top menu configuration (#41710) 2026-07-14 20:36:02 -03:00
wizard UX: One step wizard (#36082) 2025-11-25 13:35:32 -05:00
admin_confirmation.rb
admin_constraint.rb
admin_user_index_query.rb FEATURE: Support bulk user search in the admin users list (#41572) 2026-07-09 10:34:52 -03:00
age_words.rb
anonymous_action.rb FEATURE: Prompt anonymous users to sign up after engagement clicks (#40256) 2026-05-26 09:30:38 +02:00
application_layout_preloader.rb DEV: Add resolve_group_membership functionality to theme settings (#41360) 2026-07-08 09:29:21 +10:00
archetype.rb
asset_processor.rb DEV: add typescript support for core, themes and plugins (#41478) 2026-07-08 12:57:18 +01:00
auth.rb DEV: Add Discourse ID authenticator (#33186) 2025-06-17 09:47:00 -04:00
backup_restore.rb DEV: Enable Rails/FilePath rubocop rule (#40097) 2026-05-19 19:07:54 +02:00
badge_posts_view_manager.rb
badge_queries.rb FIX: BadgeQueries.sharing_badge not counting unique visitors (#36281) 2025-11-27 14:37:27 +08:00
base62.rb DEV: Bump rubocop_discourse (#29608) 2024-11-06 06:27:49 +08:00
bookmark_manager.rb DEV: Update rubocop-discourse to 3.13 and autofix issues (#35073) 2025-10-06 16:11:01 +02:00
bookmark_query.rb FIX: Respect permissions when counting bookmarks in user summary (#36856) 2026-01-21 16:34:55 +01:00
bookmark_reminder_notification_handler.rb FIX: don't clear reminder on deleted bookmarks (#35987) 2025-11-12 17:47:07 +01:00
bookmarks_bulk_action.rb FIX: BookmarksBulkAction#delete passing integer to guardian instead of Bookmark object (#37871) 2026-02-17 15:14:46 +10:00
browser_detection.rb
browser_pageview_referrer_inspector.rb FIX: Backfill normalized referrer for historical browser pageviews (#40357) 2026-06-09 09:04:57 +08:00
cache.rb
canonical_url.rb UX: Prevent incomplete crawler localization settings (#41297) 2026-07-01 12:13:22 +08:00
category_badge.rb UX: fix category badges on 404 page and oneboxes (#34071) 2025-08-04 14:02:51 -04:00
chrome_installed_checker.rb DEV: correctly detect chromium on macos (#35441) 2025-10-16 14:54:58 +02:00
color_math.rb
comment_migration.rb
common_passwords.rb DEV: Enable Rails/FilePath rubocop rule (#40097) 2026-05-19 19:07:54 +02:00
composer_messages_finder.rb FIX: Show composer education message once per session (#41124) 2026-06-23 12:19:42 -03:00
configurable_urls.rb DEV: Update rubocop-discourse to 3.13 and autofix issues (#35073) 2025-10-06 16:11:01 +02:00
content_buffer.rb
content_localization.rb FEATURE: Allow admins to localize custom sidebar section and links (#41795) 2026-07-21 21:45:50 +08:00
content_security_policy.rb UX: Do not include upgrade-insecure-requests in report-only CSP (#41414) 2026-07-03 09:56:08 +01:00
cooked_post_processor.rb FEATURE: generated OpenGraph images for topics (#39194) 2026-06-26 10:37:10 -04:00
cooked_processor_mixin.rb FEATURE: Localize local oneboxes (#40493) 2026-06-08 11:49:55 +08:00
crawler_detection.rb FEATURE: Allow fallback home routes for crawlers for custom homepage sites (#41234) 2026-06-29 09:57:40 -04:00
crawler_scorer.rb DEV: Track beacon browser pageviews behind dashboard_improvements (#40934) 2026-06-23 10:21:39 +08:00
csrf_token_verifier.rb
current_user.rb FEATURE: Prompt anonymous users to sign up after engagement clicks (#40256) 2026-05-26 09:30:38 +02:00
custom_renderer.rb
db_helper.rb SECURITY: Preload data only when rendering application layout 2025-02-04 13:32:30 -03:00
dev_log_formatter.rb DEV: Customize the dev-env rails logger (#39988) 2026-05-14 11:31:14 +02:00
directory_helper.rb DEV: Enable Rails/FilePath rubocop rule (#40097) 2026-05-19 19:07:54 +02:00
discourse.rb UX: Link to required settings from language switcher validation error (#38374) 2026-07-16 15:51:06 -04:00
discourse_connect_base.rb FIX: Reject DiscourseConnect SSO payloads when secret is blank (#40830) 2026-06-12 15:17:16 +03:00
discourse_connect_provider.rb
discourse_dev.rb
discourse_diff.rb DEV: use classes to style hidden post history revision (#38159) 2026-03-03 09:58:03 -05:00
discourse_event.rb FIX: Isolate DiscourseEvent handlers so one error doesn't skip the rest (#38485) 2026-03-11 15:54:16 +08:00
discourse_hub.rb DEV: Optionally raise error on DiscourseHub calls (#39347) 2026-04-20 15:01:58 +01:00
discourse_id.rb FEATURE: Discourse ID setting page (#36316) 2025-12-11 16:04:09 +01:00
discourse_ip_info.rb FIX: Add reverse DNS timeout to DiscourseIpInfo (#40593) 2026-06-05 12:29:51 +08:00
discourse_lograge.rb DEV: Log browser page view tracking requests to rails logs (#39600) 2026-05-05 15:14:24 +08:00
discourse_logstash_logger.rb DEV: remove x-real-ip references (#41371) 2026-07-03 15:53:21 -04:00
discourse_plugin_registry.rb DEV: Add plugin registry for UC conditional display (#41645) 2026-07-13 11:29:22 +04:00
discourse_redis.rb FEATURE: add custom tools and resume support for stream replies (#37912) 2026-02-19 16:04:00 -03:00
discourse_tagging.rb FEATURE: Prioritize recently used tags in the composer tag picker (#41669) 2026-07-14 13:17:18 +02:00
discourse_updates.rb FEATURE: Improve display of installed/available version on dashboard (#41165) 2026-06-24 13:07:05 +01:00
discourse_webauthn.rb DEV: Split passkey and security key WebAuthn ceremonies for 2FA (#40817) 2026-06-17 12:52:47 -03:00
disk_cache_eviction.rb PERF: extract shared DiskCacheEviction utility for disk caches (#37842) 2026-02-16 12:24:38 +01:00
disk_space.rb DEV: Enable Rails/FilePath rubocop rule (#40097) 2026-05-19 19:07:54 +02:00
distributed_cache.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
distributed_memoizer.rb
distributed_mutex.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
edit_rate_limiter.rb
email.rb
email_backup_token.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
email_cook.rb
email_templates_finder.rb DEV: Enable Rails/FilePath rubocop rule (#40097) 2026-05-19 19:07:54 +02:00
email_updater.rb FIX: add alternate email duplicate row (#37673) 2026-02-12 12:46:55 +04:00
embed_mode_handler.rb FIX: Apply embed class_name to <html> in full app mode (#40344) 2026-05-27 17:31:03 -03:00
ember_assets.rb DEV: Rename EmberCli to EmberAssets (#40938) 2026-06-16 12:56:56 +02:00
encodings.rb DEV: Update rubocop (#38721) 2026-03-20 00:39:52 +01:00
enum.rb
enum_site_setting.rb
excerpt_parser.rb FIX: Prevent double-escaping of HTML entities in titles and meta descriptions (#41261) 2026-07-02 20:26:35 +02:00
external_upload_helpers.rb SECURITY: Regular users can route multipart uploads into the admin backup store 2026-06-30 16:10:52 +02:00
feed_element_installer.rb
feed_item_accessor.rb
file_helper.rb FEATURE: Client-side JXL, HEIC, and animated GIF conversion (#39014) 2026-05-11 12:02:50 -03:00
filter_best_posts.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
final_destination.rb UX: Explain bot verification challenges in onebox error previews (#41764) 2026-07-16 15:49:52 +02:00
flag_query.rb
flag_settings.rb
gaps.rb DEV: Fix assigned but unused variable Prism warnings (#39436) 2026-04-22 12:42:14 +02:00
gc_stat_instrumenter.rb
git_repo.rb
git_url.rb
git_utils.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
github_rate_limit.rb FEATURE: Route all GitHub API requests through one rate-limited client (#40637) 2026-06-15 10:59:10 +02:00
global_path.rb
group_lookup.rb
group_manager.rb PERF: Add Users to Group Improvements Pt. 3 (#39091) 2026-04-20 09:38:16 -05:00
guardian.rb DEV: Minor fixes to everyone-based permissions for granular_anonymous_and_logged_in_groups_permissions (#41459) 2026-07-07 09:38:56 +10:00
has_errors.rb FIX: prevents PM to large groups (#28681) 2024-09-03 12:08:14 +02:00
highlight_js.rb DEV: Enable Rails/FilePath rubocop rule (#40097) 2026-05-19 19:07:54 +02:00
hijack.rb DEV: Silence expected error/debug output in system specs (#39164) 2026-04-13 13:59:41 +02:00
homepage_constraint.rb
homepage_helper.rb FEATURE: Allow fallback home routes for crawlers for custom homepage sites (#41234) 2026-06-29 09:57:40 -04:00
html_prettify.rb
html_to_markdown.rb DEV: Bump rubocop_discourse (#29608) 2024-11-06 06:27:49 +08:00
http_language_parser.rb FIX: Language parser matches with dashes or underscores (#31381) 2025-02-19 11:55:14 +08:00
http_user_agent_encoder.rb
ical_encoder.rb FIX: Prevent HTML-encoding of special characters in ICS feeds (#39152) 2026-04-08 16:43:41 +02:00
image_sizer.rb
impersonator_constraint.rb FEATURE: Impersonation countdown (#39871) 2026-05-12 12:12:25 +08:00
import_export.rb
inline_oneboxer.rb FEATURE: Route all GitHub API requests through one rate-limited client (#40637) 2026-06-15 10:59:10 +02:00
job_time_spacer.rb
js_locale_helper.rb DEV: Replace JS build system with Rolldown (#35963) 2026-05-29 11:11:55 +01:00
json_error.rb UX: Link to required settings from language switcher validation error (#38374) 2026-07-16 15:51:06 -04:00
letter_avatar.rb DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
localization_attributes_replacer.rb FIX: only show first paragraph of localized category descriptions (#41511) 2026-07-10 16:59:40 -04:00
localized_cooked_post_processor.rb FEATURE: Automatic AI captions (#41586) 2026-07-15 13:24:10 +08:00
markdown_linker.rb
mem_info.rb
message_bus_diags.rb
method_profiler.rb DEV: Add per-test SQL/Redis/network capture RSpec formatter (#40632) 2026-06-16 09:47:54 +08:00
mini_scheduler_long_running_job_logger.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
mini_sql_multisite_connection.rb DEV: Track SQL queries from MiniSql (#28824) 2024-09-11 10:14:53 +03:00
mobile_detection.rb UX: Drop legacy mobile-mode site settings (#40226) 2026-05-26 09:23:13 +01:00
nested_replies.rb FEATURE: Hot algorithm for nested replies (simple) (#41742) 2026-07-20 10:56:05 -05:00
new_post_manager.rb DEV: auto-silence only if a post is queued (#41435) 2026-07-03 14:06:55 -04:00
new_post_result.rb
notification_levels.rb
onebox.rb DEV: Enable Rails/FilePath rubocop rule (#40097) 2026-05-19 19:07:54 +02:00
oneboxer.rb UX: Explain bot verification challenges in onebox error previews (#41764) 2026-07-16 15:49:52 +02:00
onpdiff.rb DEV: Add comparison budget to ONPDiff (#38063) 2026-02-25 14:25:03 -05:00
password_hasher.rb
pbkdf2.rb
period_count_helper.rb DEV: Add usage metrics for workflows, automations, and data explorer (#41437) 2026-07-13 11:41:58 +02:00
permalink_constraint.rb
pinned_check.rb
pitchfork_logstash_patch.rb DEV: Add Pitchfork alongside Unicorn (#35370) 2025-10-24 11:08:23 +02:00
plain_text_to_markdown.rb DEV: Update rubocop-discourse to 3.13 and autofix issues (#35073) 2025-10-06 16:11:01 +02:00
plugin.rb DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
plugin_gem.rb
post_action_creator.rb FIX: Topic creation failure when enabled category moderation (#36094) 2025-11-19 14:07:10 +08:00
post_action_destroyer.rb FIX: Allow moderators to unhide posts using acting_user context (#36512) 2025-12-09 09:25:52 +08:00
post_action_result.rb
post_action_type_view.rb FIX: Missing/incorrect flag reason in account_deleted emails (#34955) 2025-11-17 15:22:22 +00:00
post_creator.rb FEATURE: Add Bypass permission checks to create post (#41279) 2026-07-20 11:06:37 +02:00
post_destroyer.rb FEAT: Allow unsilencing after author deletes flagged post (#41727) 2026-07-16 09:41:24 +08:00
post_jobs_enqueuer.rb
post_locale_updater.rb UX: Allow user to set post and topic title language when manually creating post translations in modal (#41734) 2026-07-16 10:43:39 +08:00
post_localization_creator.rb FIX: Also check if user can see post or topic prior to letting them localize it (#36749) 2025-12-18 02:12:58 +08:00
post_localization_destroyer.rb FIX: Also check if user can see post or topic prior to letting them localize it (#36749) 2025-12-18 02:12:58 +08:00
post_localization_updater.rb FIX: Also check if user can see post or topic prior to letting them localize it (#36749) 2025-12-18 02:12:58 +08:00
post_locker.rb
post_merger.rb
post_revisor.rb UX: Allow user to set post and topic title language when manually creating post translations in modal (#41734) 2026-07-16 10:43:39 +08:00
posts_filter.rb FEAT: Support excluding topics in posts filters (#41216) 2026-06-26 13:56:36 +10:00
presence_channel.rb FIX: Don't auto-remove chat members from logged_in_users group (#40543) 2026-06-03 18:15:32 +02:00
pretty_text.rb FIX: Apply CDN to Custom Emojis loaded from S3/R2 (#41267) 2026-07-01 17:05:28 -04:00
promotion.rb FIX: Remove groups when promotion is recalculated. (#31058) 2025-01-30 14:24:18 +11:00
quote_comparer.rb
quote_rewriter.rb FIX: Preserve display name in quotes when using the rich text editor (#38078) 2026-02-26 21:04:07 +01:00
rake_helpers.rb
rate_limiter.rb DEV: Upgrade the Redis gem to v5.4 2025-03-19 14:34:00 +01:00
read_only_mixin.rb FIX: improve "read only" modes (#33521) 2025-07-10 09:08:00 +02:00
release_utils.rb DEV: Enable Rails/FilePath rubocop rule (#40097) 2026-05-19 19:07:54 +02:00
require_dependency_backward_compatibility.rb
retrieve_title.rb FIX: Inline oneboxes should obey the locale. (#30664) 2025-01-09 17:22:22 +11:00
route_format.rb SECURITY: block cross-site backup traversal in multisite local storage 2026-05-19 00:26:04 +01:00
route_matcher.rb FIX: store method in route matcher (#41512) 2026-07-07 11:49:56 -04:00
rtl.rb
s3_cors_rulesets.rb DEV: Add X-Amz-Tagging header (#36105) 2025-11-21 14:25:02 +11:00
s3_helper.rb Revert "Revert "FIX: Multipart S3 uploads failing with checksum calculation set to "when required""" (#41747) 2026-07-15 22:53:07 +02:00
s3_inventory.rb DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
schema_settings_object_validator.rb FIX: type: objects uploads should be stored as IDs (#40178) 2026-05-21 13:45:27 -03:00
score_calculator.rb
screening_model.rb
search.rb SECURITY: Apply category tag visibility to full-text search (#41668) 2026-07-13 15:16:26 -03:00
secure_upload_endpoint_helpers.rb FIX: Enforce secure-upload ACL in AI bot prompt path (#39903) 2026-05-13 09:55:32 +08:00
server_session.rb DEV: Allow ServerSession to store arbitrary data (#34919) 2025-09-26 10:35:28 +02:00
service.rb DEV: Extract step classes from Service::Base into individual files (#37956) 2026-02-23 09:49:37 +01:00
shrink_uploaded_image.rb
sidekiq_logster_reporter.rb DEV: Upgrade Sidekiq to v7.3.9 2025-03-10 15:02:48 +01:00
sidekiq_long_running_job_logger.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
signal_trap_logger.rb DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
site_icon_manager.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
site_setting_extension.rb DEV: hide and disable upcoming changes for disabled plugins (#41657) 2026-07-16 14:35:20 +04:00
slug.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
smtp_provider_overrides.rb FIX: Add Azure communication service endpoint to SMTP authentication override (#33226) 2025-10-21 09:39:25 +02:00
socket_server.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
spam_handler.rb
staff_constraint.rb
staff_message_format.rb
statistics.rb FIX: participating users statistics... (#29293) 2024-10-21 18:18:42 +02:00
suggested_topics_builder.rb FIX: Suggested topic links to nested replies topics (#40302) 2026-05-26 08:40:38 -05:00
svg_sprite.rb UX: Update share icon (#40999) 2026-06-18 14:22:12 -04:00
system_message.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
system_themes_manager.rb DEV: Enable Rails/FilePath rubocop rule (#40097) 2026-05-19 19:07:54 +02:00
tag_localization_creator.rb FEATURE: Introduce tag localizations with API, without UI yet (#36754) 2025-12-18 18:25:58 +08:00
tag_localization_destroyer.rb FEATURE: Introduce tag localizations with API, without UI yet (#36754) 2025-12-18 18:25:58 +08:00
tag_localization_updater.rb FEATURE: Introduce tag localizations with API, without UI yet (#36754) 2025-12-18 18:25:58 +08:00
temporary_db.rb DEV: Run independent CI checks in parallel (#41640) 2026-07-13 10:55:28 +08:00
temporary_redis.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
text_cleaner.rb
text_sentinel.rb DEV: Fix random typos (#33839) 2025-07-24 22:04:13 +02:00
theme_javascript_compiler.rb DEV: Improve cross-plugin/theme import handling (#40939) 2026-06-30 16:11:38 +01:00
theme_metadata.rb DEV: Add discourse-tag-icons to official themes list (#37369) 2026-01-29 14:18:03 +08:00
theme_modifier_helper.rb
theme_resolver.rb FEATURE: system themes (#32681) 2025-06-13 10:36:31 +08:00
theme_screenshots_handler.rb DEV: enhance file type support for theme and component screenshots (#36372) 2025-12-02 13:12:11 +08:00
theme_settings_group_resolver.rb DEV: Add resolve_group_membership for theme object settings of group type (#41756) 2026-07-17 10:19:29 +10:00
theme_settings_manager.rb DEV: Add disallowed_groups to theme/component settings (#41792) 2026-07-20 09:28:52 +10:00
theme_settings_parser.rb DEV: Add disallowed_groups to theme/component settings (#41792) 2026-07-20 09:28:52 +10:00
theme_settings_validator.rb DEV: Add resolve_group_membership for theme object settings of group type (#41756) 2026-07-17 10:19:29 +10:00
theme_site_setting_resolver.rb FEATURE: Themeable site settings (#32233) 2025-07-16 11:00:21 +10:00
theme_translation_manager.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
theme_translation_parser.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
timeline_lookup.rb
tiny_japanese_segmenter.rb
top_menu.rb FEATURE: Allow fallback home routes for crawlers for custom homepage sites (#41234) 2026-06-29 09:57:40 -04:00
topic_creator.rb FIX: Allow AI bot conversations when PM creation is restricted (#41232) 2026-06-29 11:06:39 -05:00
topic_list_responder.rb FIX: Use resolved locale for localizations, instead of param+site default fallback (#39395) 2026-04-21 15:52:35 +08:00
topic_locale_updater.rb UX: Allow user to set post and topic title language when manually creating post translations in modal (#41734) 2026-07-16 10:43:39 +08:00
topic_localization_creator.rb FIX: Update topic excerpts when the first post is localized (#36885) 2025-12-29 23:33:39 +08:00
topic_localization_destroyer.rb FIX: Also check if user can see post or topic prior to letting them localize it (#36749) 2025-12-18 02:12:58 +08:00
topic_localization_updater.rb FIX: Also check if user can see post or topic prior to letting them localize it (#36749) 2025-12-18 02:12:58 +08:00
topic_og_image_generator.rb FEATURE: generated OpenGraph images for topics (#39194) 2026-06-26 10:37:10 -04:00
topic_publisher.rb DEV: Add topic_published event (#31239) 2025-02-10 14:58:58 -05:00
topic_query.rb FEATURE: Add upcoming change for unified new view (#40631) 2026-06-09 11:34:22 +10:00
topic_query_params.rb DEV: Use tag_name/tag.name instead of tag_id/tag.id where the name is actually used (#36226) 2025-12-29 13:20:06 +08:00
topic_retriever.rb DEV: Enable Style/RedundantParentheses rubocop rule (#40095) 2026-05-19 15:48:09 +02:00
topic_subtype.rb
topic_upload_security_manager.rb
topic_view.rb FEATURE: generated OpenGraph images for topics (#39194) 2026-06-26 10:37:10 -04:00
topics_bulk_action.rb FIX: Scope group archive and inbox actions to the group's messages (#41662) 2026-07-14 10:05:10 +05:30
topics_filter.rb FEATURE: exclude groups from /filter route (#41714) 2026-07-15 09:42:08 -04:00
truncate_logs_formatter.rb
trust_level.rb FIX: recalculate respects default invitee trust level (#32393) 2025-04-23 09:49:44 +08:00
turbo_tests.rb
twitter_api.rb Revert "DEV: Replace Rinku native gem with PrettyText" (#31692) 2025-03-07 12:01:22 +10:00
unread.rb
upcoming_changes.rb DEV: remove enable gifs upcoming change metadata (#41798) 2026-07-20 12:30:00 +04:00
upload_creator.rb SECURITY: Improve SVG sanitization 2026-06-30 16:10:52 +02:00
upload_markdown.rb FIX: Prevent backslash accumulation in upload markdown labels (#39461) 2026-06-03 18:10:38 +02:00
upload_recovery.rb DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
upload_security.rb FIX: Don't secure the about banner image (#29889) 2024-11-25 11:12:00 +03:00
url_helper.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
user_comm_screener.rb DEV: Enable Style/RedundantParentheses rubocop rule (#40095) 2026-05-19 15:48:09 +02:00
user_lookup.rb
user_name_suggester.rb DEV: Enable Style/RedundantParentheses rubocop rule (#40095) 2026-05-19 15:48:09 +02:00
vary_header.rb
version.rb DEV: Begin development of v2026.7.0-latest 2026-06-30 16:19:27 +02:00
version_compatibility.rb UX: Do not log error for empty .discourse-compatibility file (#41804) 2026-07-17 10:55:00 +01:00
wizard.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
work_queue.rb
xml_cleaner.rb