feat: Add task tracking panel with todo list and checklist support#80
Open
feat: Add task tracking panel with todo list and checklist support#80
Conversation
…gration - Add TodoItem type to TimeTrackingContext with id, text, completed, createdAt, and completedAt fields; expose addTodoItem, toggleTodoItem, deleteTodoItem, clearCompletedTodos from context - Persist todos via DataService (localStorage for guests, Supabase for authenticated users) for cross-device consistency; add todo_items table DDL with RLS policies to supabase/schema.sql; update both migration methods to include todos on login/logout - Add checklistUtils.ts to parse and toggle GFM task-list items (- [ ] / - [x]) inside task descriptions without storing them separately - Add TaskTrackingPanel component: standalone to-do list with active and completed sections, plus a "From Tasks" section that surfaces checklist items from current-day task descriptions as interactive checkboxes; toggling a task-description item updates the task's description string - Update serializeWeekForPrompt and buildSummaryPrompt in reportUtils.ts to accept TodoItem[]; todos completed during the report week are appended to the AI prompt so weekly summaries reflect completed to-dos - Thread todos through useReportSummary.generate and Report.tsx - Update Index.tsx to a responsive two-column grid (lg+): tasks on the left, TaskTrackingPanel sticky on the right; panel also visible when day is not started
cfeb60c to
375b91e
Compare
Deploying timetrackerpro with
|
| Latest commit: |
375b91e
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://b30e51c9.timetrackerpro.pages.dev |
| Branch Preview URL: | https://claude-add-task-tracking-pan.timetrackerpro.pages.dev |
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Introduces a persistent task tracking panel that combines a standalone to-do list (synced across devices for authenticated users) with GitHub Flavored Markdown (GFM) checklist items extracted from task descriptions. The panel appears as a sticky sidebar on the main dashboard.
Key Changes
New TaskTrackingPanel component (
src/components/TaskTrackingPanel.tsx)- [ ]/- [x]) from current-day task descriptionsChecklist utilities (
src/utils/checklistUtils.ts)parseTaskChecklist(): Extracts GFM task-list items from markdown descriptionstoggleDescriptionChecklistItem(): Toggles checkbox state within task descriptionsTodo item persistence
TodoIteminterface toTimeTrackingContextwith id, text, completed status, and timestampssaveTodos()andgetTodos()in bothSupabaseServiceandLocalStorageServicetodo_itemstable in Supabase with RLS policies and proper indexingLayout restructuring (
src/pages/Index.tsx)Report integration (
src/utils/reportUtils.ts,src/hooks/useReportSummary.ts)serializeWeekForPrompt()to include completed todos from the weekbuildSummaryPrompt()to accept optional todos parameterData service updates
saveTodos()andgetTodos()abstract methods toDataServiceinterfaceImplementation Details
createdAtand optionalcompletedAtfields[x]) and unchecked ([ ]) states (case-insensitive)