- On create_task(), look up the 'POPS' label (create it if missing) and
attach it to every task. Label ID is cached for the process lifetime.
- Corrected VIKUNJA_URL typo (tasks → task)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- New app/vikunja.py: get_tasks, create_task, update_task, delete_task
- /todos page now reads from and writes to Vikunja (create, mark done, delete)
- Auto-todos (clean build plate, filament low) post to Vikunja after DB commit
- /api/todos router proxies to Vikunja
- .env.install: VIKUNJA_URL, VIKUNJA_API_TOKEN, VIKUNJA_PROJECT_ID
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>