Changelog

Latest updates and improvements to PluggedTime.

9 May 2026

Navigation drawer

  • Replaced the dropdown user menu with a right-side drawer for easier navigation
  • Navigation menu is now accessible to all visitors, not just logged-in users
  • Anonymous visitors can browse toys, search users, and access the changelog

User search improvements

  • Added pagination to the user search results
  • Added sorting options (by username, last activity)
  • Faster search with improved debounce timing

Running session indicators

  • Users with an active session now show a live indicator on their profile and in search results
  • Running session advice displayed on user profiles
  • Indicator tooltip shows additional context

Image thumbnails

  • Thumbnails now properly fit the specified dimensions instead of stretching

8 May 2026

Dependencies update

  • Updated all Python dependencies to their latest versions
  • Updated CI/CD GitHub Actions packages
  • Applied code formatting with Ruff

8 April 2026

Security improvements

  • Added HTML sanitization (nh3) to protect against XSS in user-submitted content
  • Improved security settings and vulnerability fixes
  • Added exception capturing in models for better error tracking

Infrastructure

  • Switched WebSocket channels backend to Redis for improved reliability
  • Moved browser reload middleware to debug-only

7 April 2026

Redis caching

  • Added Redis as a caching layer for faster page loads
  • Improved performance on the dashboard (active sessions), feed, user search, and toy search

Code cleanup

  • Removed deprecated stats app and unused legacy code
  • Consolidated text utilities into the shared utils module
  • Cleaned up unused imports, template tags, and shell commands

2 April 2026

Structured error handling

  • Unified error response format across the entire application
  • Errors now show field names and error codes for clearer feedback
  • Added request correlation IDs for easier debugging and support
  • Frontend error modal updated to display structured messages
  • Fixed a bug where duplicate timestamp errors were silently ignored

1 April 2026

Timeline events

  • New event posts in the feed: users can create timeline events tied to their active session
  • Event creation requires an active session with a toy — disabled otherwise
  • Event types dropdown auto-reloads when starting or stopping a session
  • Full CRUD support: create, edit timestamp, and delete event posts
  • Comprehensive test suite (13 tests) for active session validation

31 March 2026

Improved image blur

  • Reworked the NSFW image blur system using Alpine.js for smoother toggling
  • Blur toggle now works consistently across all pages (feed, search, toys, profiles)
  • Non-logged-in users can now toggle blur on images
  • Centralized blur component for easier maintenance

Toy at timestamp

  • New service that finds which toy a user was using at any given moment
  • Feed posts now show the toy being used when the post was created
  • 11 new tests covering all edge cases (paused sessions, multiple toys, etc.)

29 March 2026

Post following

  • Added a management command to create following relations for existing posts

24 March 2026

Feed refactor

  • Extracted reusable feed components (post card, empty state, load more button)
  • Eliminated duplicated template code across feed views
  • Added dedicated JavaScript for feed form interactions

User profile feed

  • User profiles now show their feed posts in a dedicated tab

23 March 2026

Edit text posts

  • Users can now edit their text posts after publishing
  • Added text formatting support with mention parsing

Show NSFW

May 10, 2026, 11:48 a.m.