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