Releases: spaquet/listopia
v0.8.0
v0.7.0
A significant release focused on documentation consolidation, test suite stabilization, UI improvements, and critical dependency upgrades for better performance and security.
✨ Features
Chat System Documentation
Complete overhaul of chat system documentation for clarity and accuracy:
- CHAT_FLOW.md: End-to-end message flow, state machine, and 6 detailed scenarios with debugging guide
- CHAT_REQUEST_TYPES.md: Decision tree for routing different request types (simple/complex lists, nested lists, commands, navigation, resource creation)
- CHAT_MODEL_SELECTION.md: Model selection rationale, performance metrics, and cost-latency tradeoffs
- Unified documentation hub in docs/README.md with architecture overview and quick-start guides by developer role
Improved UI Layout
- List Card Badges: Reorganized personal/professional, status, and public badges into a single unified row below the title
- Eliminates overlap between public badge and progress bar
- Cleaner, more organized visual hierarchy
🚀 Improvements
Test Suite Stabilization
- Added
pundit-matchersgem for authorization testing - Fixed enum tests with
.with_prefixfor proper scoping - Improved factory definitions and test data consistency
- Updated CI workflow for better test reliability
Documentation Quality
- Consolidated redundant documentation into focused, maintainable guides
- Removed outdated implementation plans and planning documents
- Accurate documentation reflecting current LLM models (gpt-4.1-nano, gpt-5)
- Added Ruby LSP integration documentation for Claude Code users
📦 Dependencies Updated
- ruby_llm: 1.13.0 → 1.14.0
- Improved LLM integration with extended thinking support
- Migration included for
thought_signaturecolumn type change (string → text)
- pagy: 43.3.2 → 43.4.0 (pagination)
- loofah: 2.24.0 → 2.25.1 (security/sanitization)
- net-ssh: 7.2.3 → 7.3.1 (SSH connectivity)
- GitHub Actions: upload-artifact action 4 → 6
🔧 Technical Details
Files Modified
- Core:
app/controllers/,app/helpers/,app/services/ - Documentation:
CLAUDE.md,README.md,docs/ - Configuration:
.env.example,Gemfile,Dockerfile - CI/CD:
.github/workflows/ci.yml
Database Migration
RubyLLM 1.14.0 includes a schema migration for the thought_signature column. Run:
rails db:migratev0.6.6
v0.6.6 - Search & RAG Enhancement
Features
- User Search: Added comprehensive user search functionality with real-time filtering
- Spotlight Search Modal: Implemented Spotlight-style search modal with instant results
- Search Infrastructure: Enhanced search capabilities for improved discoverability
Improvements
- Updated gems: bcrypt, rouge, and noticed for security and stability
- Fixed PostgreSQL vector extension support in GitHub Actions CI
- Improved Highlight.js stylesheet loading in frontend build
Technical
- Optimized database queries for search performance
- Enhanced GitHub Actions CI with pgvector/pgvector:pg17 Docker image
Dependencies Updated
- bcrypt 3.1.20 → 3.1.21
- rouge 4.6.1 → 4.7.0
- noticed 2.9.3 → 3.0.0
v0.6.5
Release Notes - v0.6.5
Overview
This release introduces an all-items kanban view for workload assessment, improves real-time collaboration features, and enhances the notification system with better readability and admin layout support.
New Features
All-Items Kanban View
A new dashboard kanban view provides a unified view of all items across your active lists, organized by status (To Do, In Progress, Done). This allows you to quickly assess your overall workload and understand if your current activities are too much.
- Access: Dashboard → Kanban button in the lists index
- Functionality:
- View items from all active lists in one place
- Drag and drop items between status columns
- Mark items as complete directly from the view
- See item details including priority, assignee, due date, and list association
Real-Time Header Updates
List headers now update in real-time when items are modified, providing instant feedback across all active viewers. When an item is marked complete or moved between columns, the completion statistics refresh immediately.
Improvements
Enhanced Notification System
- Better Button Readability: Action buttons in error notifications now have high contrast with 90% opacity white background and dark text
- Admin Layout Support: Error handler functionality now works across both main application and admin sections
- Consistent Error Handling: All admin pages now properly display and manage error notifications
List View Enhancements
- Updated list icon from square to horizontal lines for better visual clarity
- Improved header rendering to prevent UI inconsistencies
Bug Fixes
Kanban Drag-and-Drop
- Fixed items becoming non-draggable after marking them complete
- Fixed cards disappearing when dragged between status columns in the all-items kanban view
- Improved Stimulus controller initialization with document-level event listeners and multiple dispatch strategies
List Statistics
- Fixed completion count, in-progress count, and completion percentage not updating when items were moved between columns
- Ensured list object data is refreshed after item updates
Header Updates
- Fixed action buttons disappearing when header was refreshed via broadcast
- Added proper context variables (
current_user) to broadcast responses
Technical Details
Files Modified
app/controllers/dashboard_controller.rb- Addeditems_kanbanactionapp/views/dashboard/items_kanban.html.erb- New all-items kanban view templateapp/views/lists/index.html.erb- Added button to access items kanbanapp/views/lists/_header.html.erb- Updated icon, improved broadcast handlingapp/views/lists/kanban.html.erb- Wrapped header in updateable div, added subscriptionapp/views/list_items/update.turbo_stream.erb- Restructured to handle both kanban architecturesapp/views/list_items/toggle_completion.turbo_stream.erb- Added real-time stats updates and item re-initializationapp/javascript/controllers/kanban_controller.js- Enhanced drag-and-drop with improved event handlingapp/javascript/controllers/error_handler_controller.js- Improved button stylingapp/views/layouts/admin.html.erb- Added error handler supportconfig/routes.rb- Addeditems_kanbanroute
Architecture Notes
The solution intelligently handles two different kanban architectures:
- List-specific kanban: Uses BoardColumn objects with UUIDs, updates
board_column_id - Items kanban (all-items view): Uses status-based columns with parameterized names, updates
statusfield
The kanban controller detects which type of drag-and-drop occurred and routes the response appropriately through Turbo Streams.
Testing Recommendations
- Test drag and drop functionality in both list-specific and all-items kanban views
- Verify mark complete button works from both kanban views
- Check that header statistics update in real-time when items are moved
- Confirm error notifications display properly in admin sections
Known Limitations
- Drag and drop requires JavaScript enabled
- Real-time updates require ActionCable connection
- Large lists may experience performance impacts with many items
Upgrade Notes
No database migrations required. This is a pure feature and UI enhancement release. Existing lists and items are not affected.
Contributors
- Claude Haiku 4.5
v0.6.4
v0.6.4 - Kanban Board Enhancements & Stability Improvements
Overview
Version 0.6.4 stabilizes and enhances the Kanban board feature, with critical bug fixes for drag-and-drop interactions, link clickability, status synchronization, and security improvements.
✨ Features
Improved Kanban Drag-and-Drop
- Fixed repeated drag-and-drop on moved cards with proper event listener lifecycle management
- Enhanced click handling to allow links and buttons on kanban cards to work correctly
- Improved visual feedback during drag operations with conditional mousedown/mouseup handlers
- Added support for Mark Complete button on both pending and in_progress items
Status Synchronization
- Enhanced automatic status syncing to work on both column changes AND new item creation
- Created
rake listopia:sync_item_statustask for data integrity checks across all lists - Status and board column assignment now stay consistently synchronized
Security & Best Practices
- Added
visit_urlroute to handle external URL redirects through the application - Implemented URL validation with protocol whitelisting (http/https only)
- Environment-aware validation (https-only in production, http/https in dev/test)
- Resolved Brakeman security warnings for URL handling
🐛 Bug Fixes
- Fixed drag-and-drop event listeners not attaching to newly appended cards after Turbo updates
- Fixed links and buttons on kanban cards not responding to clicks
- Fixed "Mark Complete" button only showing for pending items (now shows for in_progress too)
- Fixed data integrity issues where item status didn't match board column assignment
- Fixed pointer events CSS preventing interactions with card action buttons
- Fixed missing
completed_attimestamp handling during status transitions
🔧 Technical Improvements
- Proper cleanup and re-initialization of drag-and-drop handlers using WeakMap
- RequestAnimationFrame queuing to wait for Turbo DOM updates before re-initializing
- Private helper method for URL validation in controllers
- Improved Turbo Stream response detection for kanban vs. list view updates
📝 Changes Since v0.6.3
Controllers
- Added
visit_urlaction with comprehensive URL validation - Enhanced list_items_controller with proper redirect handling
Models
- Enhanced ListItem status sync callback with new_record check
- Improved status-to-column mapping logic
Views
- Improved modal layouts for show/edit views
- Better link handling on kanban cards with pointer-events CSS
- Enhanced kanban card UI with action buttons
Routes
- Added
visit_urlmember route for list items
Database
- Completed_at column support for proper completion tracking
Utilities
- Created
rake listopia:sync_item_statustask for data integrity verification
🚀 Installation
No additional setup required. Simply deploy and run any pending migrations.
Optional: Verify Data Integrity
If you want to ensure all items have correct status/column synchronization:
bundle exec rake listopia:sync_item_status##📦 What's Included
- Kanban board stabilization and bug fixes
- Security improvements for URL handling
- Data integrity tools and validations
- Enhanced drag-and-drop interactions
- Improved UI/UX for kanban view
v0.6.3
Version 0.6.3 - Collaboration Feature Release
🎉 Major Features
Collaboration System
Users can now collaborate on Lists and ListItems with fine-grained permissions:
- Share Lists: Invite team members to view and edit entire lists
- Share Tasks: Delegate specific list items to other users
- Role-Based Delegation: Managers can grant permission for collaborators to invite others
- User/Email Invitations: Works with both registered and unregistered users
How It Works
- Invite Users: Share a list or task with email addresses
- Manage Permissions: Grant read-only or edit access
- Real-Time Collaboration: Updates broadcast instantly to all collaborators
- AI Commands: Use natural language like "Share my grocery list with alice@example.com"
Security & Audit
- 7-day invitation expiration tokens
- Email verification for new users
- Complete audit trail of all collaboration changes
- Role-based access control prevents unauthorized actions
🔧 Technical Details
New Components:
CollaborationsController- Manage invitations and permissionsInvitationService&CollaborationAcceptanceService- Business logic- MCP collaboration tools - AI integration
- Comprehensive mailer templates - Email notifications
Updated:
- List and ListItem models with collaboration associations
- Pundit policies with role-based checks
- Turbo Streams for real-time updates
- Email notification system
Database:
- New
collaboratorstable for active collaborators - Enhanced
invitationstable with role support - UUID-based primary keys consistent with existing schema
🚀 Getting Started
Share a List
- Open any list
- Click "Share Collaborators"
- Enter email addresses and select permissions
- Invited users receive email with secure invitation link
Re-invite Users
- Users with revoked/declined invitations can be re-invited
- Resend invitations at any time
Via AI Chat
Try these commands:
- "Share my grocery list with alice@example.com"
- "Who has access to my project?"
- "Remove bob from my todo list"
📋 Full Changelog
See full list of commits: [feature/collaboration commits]
✅ What's Tested
- Model validations and associations
- Authorization via Pundit policies
- Complete invitation workflows
- Email delivery and notifications
- AI collaboration via chat
- Real-time updates
🔗 Documentation
See docs/COLLABORATION.md for detailed architecture and usage guide.