All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Treat jj-task map phase
merged(fromjj-task done) as completed; keep legacydonefor compatibility
track archive --forceto skip jj-task and dirty-workspace checkstrack migrate legacy-worktrees [--dry-run] [--force]to clear legacy worktree flagsrequires_workspaceon TODOs and--no-workspaceflag for research/planning itemsworkflow.checklistintrack status --jsonand WebUIjj.reposper-repo workspace status andjj.task_phasefrom jj-task map- WebUI workflow panel (phase, next action, checklist)
track migrate legacy-worktreesalso removes legacy worktree records (orphans included)- JJ mode:
track syncrejected unless legacy--worktreeTODOs are pending (--legacyto force) --worktreeremoved from CLI (returns error; use jj-task per task)- Archive validates jj-task phase before archiving
- Workflow sync uses
all_repos_registeredfor multi-repo tasks task_completesuggests$jjskill when jj-task phase is notdone- README, skills, and legacy docs aligned with JJ_INTEGRATION strategy
- crates.io package renamed from
jj-tracktotask-track(trackname is taken); CLI binary remainstrack
vcs-modeconfig (track config set vcs-mode jj|git) to switch between JJ and plain git worktreesVcsModepersisted in app state; git mode creates worktrees at.worktrees/<slug>ontrack/<slug>branchesdocs/JJ_INTEGRATION.md— combined track + agent-skill-jj strategy
- JJ strategy realignment: track assumes agent-skill-jj for commits/PR; jj-task for workspaces
- Agent JSON adds
jj/gitcontext by mode; guardrails usemust_use_jj_skillin JJ mode workflow.next_actionsuggestsjj-task start <slug>instead oftrack syncfor new tasks- Skills v3.0: two-layer track +
$jjdocumentation
TodoActionandApplyTodoActionUseCasefor unified CLI/WebUI todo operationsTaskStatus/TodoStatusmodules with transition rules and SQL constants- Agent JSON fields in
track status --jsonandGET /api/status(workflow,todos_agent,guardrails) SyncTaskUseCase,ArchiveTaskUseCase, and expanded use-case layer- WebUI route tests and HTTP status mapping (400/404)
- DB CHECK constraints on
tasks.statusandtodos.status - Skills split by use case:
track,track-task-setup,track-task-execute,track-advanced - Skill plugin manifests for Claude Code, Codex, and Agents (kamae-rs-style)
scripts/validate_package.pyfor skill/plugin smoke tests
- CLI handlers split into focused modules; shared row mapping extracted
- Domain modeling and transaction boundaries strengthened across use cases
- Release profile: LTO, single codegen unit, strip symbols, panic=abort (~38% smaller binary)
- Trim tokio features to only those required by webui (was
full) - Skills install docs updated for
npx skillsmulti-skill install
- Reopening completed or cancelled TODOs is forbidden (add a new TODO instead)
- WebUI no longer offers "Mark as Pending" for terminal TODO states
- LLM integration docs and skill workflows now start with
track syncand JJ bookmark verification
- TODO worktree completion handles NULL ticket IDs without failing
- CI installs
jjso JJ-dependent tests run reliably
track syncis JJ-only and focuses on bookmark/workspace setup for the current task- LLM help and skill guides now include JJ bookmark verification steps (
jj status,jj bookmark list -r @) - TODO completion guidance now reflects rebase + bookmark move behavior in JJ workflows
- Package metadata updated for JJ workspace terminology
- JJ workspace commands run from the correct working directory
track todo workspacefor showing/recreating TODO workspaces (--recreate,--force,--all)- JJ-first workflow guidance across CLI help and docs
track syncnow aborts on dirty repos (excluding workspace directories)- Workspaces paths sanitize bookmark names (slashes replaced with
_) - Markdown rendering is sanitized and templates auto-escape to mitigate XSS
- Todo reordering uses collision-safe temporary indices
- Timestamp parsing errors now surface as database conversion failures
- Web UI Todo Status Display: The oldest pending todo now displays as "in progress" with a distinctive blue color
- Helps identify which task is currently being worked on
- Regular pending todos show in a subdued gray color
- Visual distinction makes it easier to focus on the active task
-
Todo Prioritization: New
track todo next <id>command to move a todo to the front of the work queue- CLI:
track todo next <id>moves a pending todo to become the next todo to work on - Web UI: "⬆️ Make Next" button in todo menu for easy reordering
- Only pending todos can be moved; completed/cancelled todos are excluded
- CLI:
-
Todo-Scrap Linking: Automatic linking between todos and scraps
- Scraps are automatically linked to the active (oldest pending) todo when created
- Database: Added
active_todo_idcolumn to scraps table with automatic migration - Web UI: 📝 button on todos to jump to related scraps
- Smooth scrolling and highlighting animation for linked scraps
- Button only appears on todos that have associated scraps
-
Web UI Enhancements:
- Focus mode for concentrated work on current task
- Real-time updates via Server-Sent Events (SSE)
- Improved visual feedback with animations
- Conditional UI elements based on data availability
- Hidden scrollbars in todo and scrap cards for cleaner appearance
- Automatic scroll positioning to oldest pending task in focus mode
- Database schema updated with migration support for existing databases
- Web UI todo list now includes scrap count information
- Improved error handling for todo reordering operations
- UNIQUE constraint handling in todo reordering with two-phase update strategy
- Trailing whitespace in source files (cargo fmt compliance)
- Focus mode and overview mode toggle in Web UI
- Consistent toolbar layout with view mode, connection status, and theme toggle
- Improved overscroll background handling
- Renamed UI elements to reflect "Focus Mode" and "Overview Mode" paradigm
- Consolidated control elements into single horizontal toolbar
- Automatic URL linkification in todo and scrap content
- Markdown links open in new tab with
target="_blank" - Proper handling of trailing punctuation in URLs
- Link rendering in Web UI with proper HTML escaping
- Task alias management with
--forceoption to overwrite existing aliases - Improved alias validation and error messages
- Web UI with real-time updates
- Server-Sent Events (SSE) for live synchronization
- Modern browser-based interface with HTMX
- Task templates: Create new tasks from existing task templates
- Task aliases: Assign human-readable aliases to tasks
- Ticket reference: Reference tasks by ticket ID (e.g.,
t:PROJ-123) - Repository management with base branch tracking
- Git worktree automation
- Improved CLI help and documentation
- Enhanced task switching and reference resolution
- TODO management with worktree support
- Link management for reference URLs
- Scrap (work notes) management
- Task archiving
- Initial release
- Basic task management
- SQLite database with XDG compliance
- CLI interface with clap