Changelog
Latest updates and improvements to PluggedTime.
21 May 2026
User search and registration fixes
- Fixed user search functionality and improved search accuracy
- Prevented users from registering with usernames of deleted accounts
17 May 2026
Event posts engagement
- Users can now like and comment on event posts, enabling social engagement on timeline events
Enhanced profile statistics
- Added monthly average statistics to provide better usage insights
- Improved timesince display for more human-readable timestamps
- Fixed toys owned count calculation
Code improvements and cleanup
- Removed default toy assignment logic for cleaner session tracking
- Extracted and reorganized statistics code for better maintainability
- Added pagination URL generation utility
- Removed deprecated profile properties and database migrations
15 May 2026
Session and profile fixes
- Fixed session deletion flow in "My Sessions" so deleted entries refresh correctly
- Updated toy list thumbnails in "My Sessions" to use optimized thumbnail images
UI and readability improvements
- Added a loading state when switching dashboard tabs and when navigating tab history
- Improved long-word wrapping in feed posts to prevent layout overflow
- Adjusted dashboard session table header colors for better theme consistency
14 May 2026
Profile stats enhancements
- Added "Avg. session duration" stat — average time per session
- Added "Avg. daily usage" stat — average daily usage since first toy usage
- Improved variable naming for better template maintainability
Profile view fixes
- Fixed anonymous visitors seeing HTMX navbar requests for authenticated content
- Corrected template context shadowing bug that broke navbar authentication checks
- Removed redundant database query in profile view
10 May 2026
HTMX-powered tabs
- Tabs across the app now load content on demand instead of rendering all tabs at once
- Dashboard, profile, and toy detail pages all use the new tab system
- Browser back/forward buttons navigate between tabs correctly
- Tab state is preserved in the URL via query parameters (?tab=, ?page=)
- Sharing a URL with tab parameters opens directly to that tab
Feed pagination
- Feed on the dashboard and profile pages now uses page-number pagination
- Current page position is tracked in the URL for easy sharing and navigation
Chat improvements
- Chat now fills the full available screen height and scrolls to the latest messages
- Switching away from the chat tab properly closes the connection
Profile stats
- User profiles now show "Last user activity" with a human-readable timestamp
- Fixed toys owned count to only include DIY toys that are also owned by the user
Static assets
- Switched to compressed manifest-based static file storage to avoid browser cache issues
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