Skip to content

feat(tasks): linear-style task/project management with comments#252

Open
jlia0 wants to merge 1 commit intomainfrom
jlia0/linear-tasks-db
Open

feat(tasks): linear-style task/project management with comments#252
jlia0 wants to merge 1 commit intomainfrom
jlia0/linear-tasks-db

Conversation

@jlia0
Copy link
Collaborator

@jlia0 jlia0 commented Mar 23, 2026

Summary

Implement a unified Linear-like workspace for tasks and projects with SQLite persistence, comment threads, Linear-style IDs, and improved UI using shadcn Sidebar component.

  • Backend: New SQLite database for tasks/projects/comments with auto-generated Linear-style IDs (e.g., SYS-1) and project colors
  • Frontend: Unified workspace with shadcn Sidebar navigation, project creation dialog, task detail panel with comments, and board/list view toggle
  • Agent Skills: New comment and comments commands for task commenting
  • Data Migration: Automatic migration from JSON files to SQLite with backfill of prefixes, colors, and task numbers

Changes

  • Add packages/server/src/tasks-db.ts — SQLite persistence layer with schema for projects, tasks, and comments
  • Migrate routes/tasks.ts and routes/projects.ts to use SQLite backend with new comment endpoints
  • Create tinyoffice/src/app/tasks/layout.tsx — shadcn Sidebar with project navigation and dropdown actions
  • Rewrite tinyoffice/src/app/tasks/page.tsx — unified board/list view with project filtering and quick creation
  • Add tinyoffice/src/components/task/task-detail-panel.tsx — slide-over panel with task metadata and comments thread
  • Redirect old /projects pages to /tasks for backward compatibility
  • Install shadcn components: sidebar, sheet, skeleton
  • Update agent skills with comment commands and documentation

Testing

  • Schema migrations tested on existing DBs (adds columns, backfills prefixes/colors/numbers)
  • Task creation assigns sequential numbers per project
  • Comments are stored and retrieved per task
  • Task identifiers display correctly (SYS-1 format) with project colors
  • Board and list views toggle and filter by project correctly

Checklist

  • PR title follows conventional commit format
  • Changes tested locally (SQLite, comments, identifiers, colors, sidebar)
  • No new warnings or errors introduced
  • Documentation updated (SKILL.md with comment commands)

Implement a unified Linear-like workspace for tasks and projects with the following changes:

Backend:
- Add new SQLite database (tasks-db.ts) for persistent task/project/comment storage
- Migrate projects and tasks from JSON files to SQLite with automatic backfill
- Auto-generate Linear-style IDs for tasks (e.g., SYS-1, T-5) with sequential numbering per project
- Add project colors (12-color palette) and auto-generated prefixes from project names
- Implement comments feature for tasks (create, read, delete)
- Update task/project routes to use SQLite backend
- Add comment endpoints: GET/POST /api/tasks/:id/comments, DELETE /api/comments/:id

Frontend:
- Replace separate /tasks and /projects pages with unified /tasks workspace
- Add shadcn Sidebar component for project navigation with dropdown actions
- Create project creation dialog with name and description fields
- Build task detail slide-over panel with full task metadata, comments thread, and comment input
- Implement board and list view toggle for tasks
- Add project filtering via ?project=ID query parameter
- Add Linear-style task identifiers (colored by project) on task cards and in list view
- Add quick task creation inline in both board and list views

API & Types:
- Extend Task type with `number`, `identifier`, and computed fields
- Extend Project type with `prefix` and `color` fields
- Add Comment type with author, content, and timestamp

Agent Skills:
- Add `comment` and `comments` commands to tasks.sh for agent task commenting
- Update SKILL.md documentation with comment usage examples

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant