Skip to content

Releases: HenriquesLab/TaskRepo

Release v0.10.0

05 Nov 10:48

Choose a tag to compare

Release v0.9.15

05 Nov 10:00

Choose a tag to compare

Release v0.9.14

03 Nov 14:45

Choose a tag to compare

Fixed

  • TUI sync conflict resolution: Fixed incorrect parameter type passed to conflict resolution
    • TUI sync was passing click module instead of Rich Console object to _resolve_conflict_markers()
    • Caused "Error: print" message and left conflict markers unresolved in task files
    • Resulted in YAML parsing errors when loading tasks with unresolved conflict markers
    • Now properly creates Console instance before calling conflict resolution

Installation

Homebrew (macOS)

brew update
brew upgrade taskrepo

pip

pip install --upgrade taskrepo

uv

uv pip install --upgrade taskrepo

Release v0.9.13

31 Oct 17:11

Choose a tag to compare

Fixed

  • TUI display errors: Fixed XML/HTML parsing errors in task detail display

    • Added HTML escaping for all user-generated content (titles, descriptions, etc.)
    • Prevents crashes when task content contains special characters like <, >, &
  • Conflict resolution display errors: Fixed Rich markup parsing errors

    • Removed task ID from conflict display to prevent bracket interpretation issues
    • Fixed empty style markup creating invalid patterns
  • Interactive conflict resolution: Fixed command hanging after user input

    • Progress bars now stop during interactive prompts
    • Prevents terminal I/O conflicts that caused hung state
  • Input validation: Added validation for conflict resolution choices

    • Users can now only submit valid choices (L/R/N/M/E)
    • Invalid input shows error message without submitting
  • Unfinished git merge handling: Sync now detects and resolves incomplete merges

    • Automatically detects MERGE_HEAD file indicating unfinished merge
    • Resolves remaining conflict markers before completing merge
    • Prevents "You have not concluded your merge" errors

Release v0.9.12

31 Oct 14:28

Choose a tag to compare

Release v0.9.11

30 Oct 17:53

Choose a tag to compare

Release Highlights

New Features

🎹 TUI Keybindings for Subtask and Extend

  • Press to create a subtask under selected task with inherited defaults
  • Press to extend/set due dates for single or multiple tasks
  • Supports both absolute dates (tomorrow, 2025-11-15) and relative durations (1w, 2d)
  • Instant return to TUI without "Press Enter" prompts

🤖 Automatic Conflict Resolution

  • Sync now automatically resolves git conflict markers after pull
  • Smart merge using "keep newer" strategy based on modified timestamp
  • Eliminates need for manual conflict marker cleanup
  • Works in both CLI sync and TUI sync

Bug Fixes

🛡️ Rich Markup Escaping

  • Fixed crashes when task content or error messages contain special characters like [/], [+]
  • Conflict resolver now properly escapes all user content
  • Sync errors no longer cause crashes due to markup interpretation

🎨 TUI Improvements

  • Removed redundant "Press Enter" prompt after sync completes
  • Status bar now wraps on narrow terminals (supports up to 3 lines)
  • Reorganized keybindings for better mnemonics:
    • [a]dd - Add new task (was [n]ew)
    • [d]one - Mark as done (was [w])
    • de[l] - Delete task (was [x])
    • ar[v]hive - Archive task (was [a])
    • ex[t]end - Extend/set due date (new)
    • s[u]btask - Create subtask (new)
    • t[r]ee - Toggle tree view (was [t])

Installation

macOS (Homebrew)

brew update
brew upgrade taskrepo

pip

pip install --upgrade taskrepo

uv

uv pip install --upgrade taskrepo

Full Changelog: https://github.com/HenriquesLab/TaskRepo/blob/main/CHANGELOG.md

Release v0.9.10

30 Oct 15:56

Choose a tag to compare

Highlights

  • Unexpected file detection in sync: Protect against accidentally committing non-task files with interactive prompt and .gitignore management
  • TUI improvements: Better text contrast, smarter context-aware sync, streamlined archive workflow
  • Default .gitignore: New repositories automatically include sensible .gitignore patterns

Added

  • Unexpected file detection in sync: Protect against accidentally committing non-task files
    • Detects and groups unexpected files by pattern (*.log, .vscode/*, etc.)
    • Interactive prompt with 4 options: add to .gitignore, delete, commit anyway, or skip
    • Default .gitignore automatically created for new repositories
    • Covers common patterns: editor files, Python cache, OS files, temporary files
    • Works in both CLI sync and TUI sync commands
    • New utility module: src/taskrepo/utils/file_validation.py

Fixed

  • TUI selected row contrast: Improved text readability on light backgrounds

    • Changed selected row text from white to black for better contrast
    • Fixes visibility issue where selected text was nearly invisible on light/white backgrounds
  • TUI archive prompt: Removed redundant "Press Enter" after confirming archive

    • Archive operation now returns immediately after y/n confirmation
    • Consistent with other quick operations like done and in-progress
  • TUI sync in project/assignee views: Fixed context-aware repository syncing

    • Project view: Now syncs only repositories containing tasks in that project
    • Assignee view: Now syncs only repositories with tasks for that assignee
    • Shows count of repositories being synced (e.g., "Syncing 3 repos with project 'X'")
    • More efficient - doesn't sync unrelated repositories

Improved

  • Default repository setup: New repositories include sensible defaults
    • Automatic .gitignore with common patterns
    • Protects against committing .DS_Store, .vscode/, pycache/, etc.

Installation

# macOS (Homebrew)
brew update
brew upgrade taskrepo

# pip/pipx
pipx upgrade taskrepo
# OR
pip install --upgrade taskrepo

Release v0.9.9

29 Oct 21:38

Choose a tag to compare

Release v0.9.8

29 Oct 11:25

Choose a tag to compare

Release v0.9.7

29 Oct 10:14

Choose a tag to compare