- Add autolink Jinja2 filter to detect URLs and make them clickable
- Add link picker dropdown to insert existing link URLs into list item content
- Add inline edit with link picker on each list item row
- Apply autolink filter on list detail and focus available list items
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Focus query now excludes soft-deleted tasks and list items.
Task delete redirects to /tasks instead of back to the (now deleted)
task's edit page.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Domain headers are now clickable to expand/collapse their item rows,
with a chevron indicator and item count badge. State persists via
localStorage, matching the sidebar toggle pattern.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add HTML5 drag-and-drop within domain groups on the focus page.
Items can be dragged to reorder within their domain; cross-domain
drag is prevented. Uses hidden form POST (no fetch/XHR). Arrow
buttons kept as fallback.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Items without a project or area were missing group headers, causing them
to appear under the previous project's group visually.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add list_item_id column to daily_focus (task_id now nullable, CHECK constraint ensures exactly one)
- Remove LIMIT 50 + [:15] slice — show up to 200 items with "show more" at 25
- Add text search (ILIKE) for filtering available items
- Add tab strip to switch between Tasks and List Items sources
- Toggle syncs list_item completed status alongside task status
- Graceful [Deleted] fallback for removed source items
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add generic move_in_order() to BaseRepository for reorder support
- Add reusable reorder_arrows.html partial with grip dot handles
- Add reorder routes to all 9 list routers (tasks, notes, links, contacts, meetings, decisions, appointments, lists, focus)
- Compact row padding (6px 12px, gap 8px) on .list-row and .focus-item
- Reduce font size to 0.80rem on row titles, sidebar nav, domain tree
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix seed data to match actual DB schemas (capture.processed, daily_focus.completed, weblinks junction table)
- Add date/datetime coercion in BaseRepository for asyncpg compatibility
- Add UUID validation in BaseRepository.get() to prevent DataError on invalid UUIDs
- Fix focus.py and time_tracking.py date string handling for asyncpg
- Fix test ordering (action before delete) and skip destructive admin actions
- Fix form_factory FK resolution for flat UUID strings
- Fix route_report.py to use get_route_registry(app)
- Add asyncio_default_test_loop_scope=session to pytest.ini
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>