Dandelion is a fair source project. View the code on Github

Commits on Feb 07, 2026
330efc3

➕ Add redis gem and switch geocode & rack-attack caches to Redis

Commits on Feb 06, 2026
8afa896

⚡️ Add .only() to limit fields fetched in JSON endpoints

Reduces memory usage and query time by selecting only the columns actually rendered in the response.

75c86cb

✨ (stats): show baseline count and relative multiplier instead of raw request count
✨ (stats): add baseline value to window data for relative comparison

a59f39d

♻️ Extract hard-coded ASN 2856 into a named constant baseline_asn

661cb57

♻️ (stats.rb): extract hard-coded 6-hour window into configurable variable

cfa3eca

✨ Add ASN analytics dashboard with block/unblock actions

Introduce a new /stats/asns page that: - Fetches 7-day traffic data from Cloudflare GraphQL - Groups requests by ASN into 6-hour windows - Lists ASNs exceeding baseline threshold - Allows one-click block/unblock via Cloudflare API - Stores user-marked "legit" ASNs in local stash

Also adds corresponding navigation item and RESTful endpoints for blocking, unblocking and toggling legit status.

Commits on Feb 05, 2026
c8e3897

🐛 (event_star.rb): only notify circle when a live public event is starred

2a61c72

💬 Update AI prompt for location event summary

2b43402

🐛 (app/views/laboratory/locations/_location.erb): Fix typo in placeholder text for location summary

b8eaf5d

Prefetch org events pagelet and render placeholder blocks

  • Enable prefetch: true on /o/:slug/events to warm the pagelet response.

  • Swap the initial events block render for events/blocks_placeholder and add data-with-placeholder so the UI shows a skeleton while the pagelet loads.

a1d5083

🐛 Fix falsy-value check in revenue-share dropdown

3b84fd9

🔥 Remove obsolete payment-reminder email & logic

  • Deletes the unused payment_reminder.erb template
  • Drops TicketType#send_payment_reminder method and rake task call
  • Cleans ticket-type name display by removing old email-stripping hack
925681f

🐛 Fix nil-safe timezone formatting in event views and controller

Replace direct event.start_time.strftime('%Z') calls with safe-navigation operator (&.) to prevent crashes when start_time is nil.

3701009

✨ (searchable.rb): add vector filter support to Atlas Search pipeline
♻️ (searchable.rb): build parallel search_filters_vector while parsing selector
🧪 (searchable.rb): enable filtered vector search via $rankFusion stage

Commits on Feb 04, 2026
cac03cc

💬 Update waitlist email copy and subject to be clearer and more engaging

5b8bc4a

✨ Add waitlist notification when tickets become available

  • Replace set with direct assignment + save in toggle availability to ensure proper persistence and callbacks
  • Create send_waitlist_tickets_available mailer that notifies all non-unsubscribed waiters when an event moves from sold-out to available
  • Introduce refresh_sold_out_cache_and_notify_waitlist helper that atomically updates sold-out cache and triggers the notification
  • Replace duplicated cache-update blocks in Ticket, TicketType and their after-hooks with the new helper
  • Add HTML email template for the waitlist alert
9004214

♻️ (taggable): remove update_flag logic and always send update_tag_names
♻️ (events_build): drop update_flag from tags_select partial call

f2960a9

♻️ Replace hard-coded event_tag_names field with generic tag_names_cache

  • Remove the explicit event_tag_names array field from EventFields
  • Let the Taggable concern create its own tag_names_cache field instead
  • Drop the store_field: option and always cache tag names in tag_names_cache, simplifying the concern API
  • Add helper methods to (re)populate the cache for single records or the whole collection
  • Update search, filtering and visibility logic to use the new field name
47db343

🐛 (daily_helper): return empty string when OpenRouter result is nil to avoid downstream crashes
✨ (open_router): add Faraday retry middleware and 3-attempt loop to harden chat calls against transient failures

c597d93

♻️ (tags_select): remove jQuery-based reordering on selection