Open
Conversation
57dbff7 to
890aad9
Compare
- Add createdBy string field to Task model (who created the task) - Populate createdBy from authenticated user name/email on task creation - Restructure task list columns: ID (copy to clipboard) | Title | Subtasks | Status | Assignee | Created By | Completed At | Actions - Remove description from title cell; move subtask count to its own column - Fix BaseTable pagination: add autoResetPageIndex: false to prevent TanStack from resetting to page 0 on every render due to new array refs - BaseTable now owns internal pagination state when none is provided, enabling client-side pagination without external state management - TasksList fetches up to 100 tasks and paginates flat rows (tasks + subtasks) client-side at 10 per page 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Pass mock request object to controller.create() calls and update toHaveBeenCalledWith assertions to include the createdBy field. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Covers all 8 columns (ID, Title, Subtasks, Status, Assignee, Created By, Completed At, Actions) with 22 new test cases including clipboard copy, status transitions, inline assignee editing, and action callbacks. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
…owner Adds TaskOwner model to track task ownership with isPrimary flag, mirroring the pattern used by ContactOwner, CompanyOwner, and DealOwner. On task creation, the authenticated user is recorded as the primary owner in a transaction. All task queries now include owners with user details. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Drops the created_by text column from the task table and removes the migration that added it. Owner identity is now tracked via task_owner. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…tedBy field Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…mprove assertions - Modified tests to check for primary owner instead of the removed createdBy field. - Updated assertions to use expect.objectContaining for better clarity and maintainability. - Adjusted test cases to handle scenarios with no primary owner correctly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rship - Modified mock request to include user ID for better alignment with ownership logic. - Updated assertions to check for createdByUserId instead of the removed createdBy field. - Enhanced test clarity by using expect.objectContaining for assertions. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…th in Tasks - Added React import to BaseTable.tsx for proper JSX handling. - Updated column width in Tasks component from max-w-96 to max-w-80 for improved layout. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
e629bf2 to
891196b
Compare
- Deleted the test case for rendering the parentTitle label for subtasks, as it is no longer applicable. - Updated the remaining test to ensure it correctly verifies that the parentTitle label is not rendered for top-level tasks. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Baba-2001
reviewed
Mar 16, 2026
- Replaced the button element with a div in the IdCell component to enhance semantic structure while maintaining click functionality. - Updated styling to ensure consistent user experience. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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
Created Atcolumn withCompleted At,and improved status/assignee inline editing
task_ownertable to record who created a task; on creation the authenticated user is automatically saved as the primary owner via a DBtransaction
created_bytext field — owner identity is now properly tracked through thetask_ownerrelation instead of a free-text columnChanges by area
Backend
TaskOwnermodel incore.prisma(mirrorsContactOwner/CompanyOwner/DealOwnerpattern) withtask_id,user_id,is_primary,assigned_at, unique constrainton
(task_id, user_id), and cascade deletesTaskRepository.create()runs in a$transaction— creates the task then inserts atask_ownerrow withis_primary = trueownerswith userid,name,emailcreated_bycolumn from thetasktableFrontend
IdCellcomponent — shows task ID, copies to clipboard on click with "Copied" feedbackSubtaskscolumn — shows badge with count for parent tasks,—for subtasks/emptyCreated Bycolumn replacesCreated AtBaseTablenow manages internal pagination state when none is provided externallyautoResetPageIndex: falseadded to prevent table jumping on data updatesSidebarDividerentries from the app layoutTests
createTaskColumnscell renderers (ID, Title, Subtasks, Status, Assignee, Created By, Completed At, Actions)reqargument tocreateTest plan
task_ownerrow is created withis_primary = truefor the logged-in usercompletedAt; changing away clears ittask_owneris cascade deleted