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

Show NSFW

May 31, 2026, 7:23 a.m.