v0.4.0
Full Changelog: v0.3.1...v0.4.0
v0.4.0 - 2026-05-19
Added
- Added storage sync documentation (
docs/sync.rst) explaining how to keep taskledger state outside the source repo, sync across PCs with a private Git repo, bootstrap a second machine, follow a daily sync protocol, and avoid active multi-writer conflicts. - Added
taskledger storage wherecommand reporting resolved project and storage location details in human and JSON output, including whether storage lives inside the workspace, is a Git repo, or has active locks. - Added
taskledger storage movefor safely migrating storage to a newtaskledger_dirwith atomic config updates, unsafe-target refusal, and follow-up command hints. - Added
taskledger sync preflightread-only check combining doctor health, active-lock warnings, tracked in-repo state warnings, and local Git status. - Added
taskledger sync statusandtaskledger sync commitlocal Git helper commands for committing taskledger state without network operations. - Added
taskledger sync exportandtaskledger sync importas aliases for the existing archive transfer commands. - Added
taskledger sync gitcommand group for live external-state synchronization:init,status,commit,cd,import-local,export-local,pull,push,sync, andhookssubcommands with conservative lock/dirty checks. - Added project-scoped
sync git statusthat separates current-project changes from outside-project changes in JSON payloads, safe with dirty sibling directories. - Added
sync git cdhelper returning the configured sync repo path for shell use. - Added
sync git commitfor committing only the configured project path while ignoring dirty sibling paths. - Added
[sync.git]project config section with strict validation and documented defaults. - Added
taskledger/services/storage_locations.pyfor storage reporting, migration, and sync helper services. - Added
taskledger/services/git_sync.pyfor git sync orchestration. - Added
taskledger/cli_sync.pyas a dedicated sync CLI group. - Added
taskledger/api/sync.pywith public sync API wrappers.
Changed
- Demoted whole-repo
sync git pull,push,sync, and unsafe hook installation from recommended workflow to advanced/deprecated status in help, docs, and skill guidance. - Reframed docs, README, and skill around the project-scoped local helper workflow:
sync git status,sync git commit, then manual Git viasync git cd. - Fixed stale config filename references so docs no longer claim init writes
.taskledger.tomlwhentaskledger.tomlis canonical. - Updated external storage examples to use the current
ledgers/<ledger_ref>/...layout.
Documentation
- Added
docs/sync.rstwith cross-PC sync workflow, daily protocol, and multi-writer conflict avoidance guidance. - Updated README,
docs/usage.rst,docs/transfer.rst,docs/command_contract.rst,docs/public_surface.rst,API.md, andskills/taskledger/SKILL.mdfor the new storage and sync command surface.
Quality
- Added
tests/test_storage_sync.pyandtests/test_sync_git.pycovering storage migration, sync commands, git sync workflows, shared dirty state, project-scoped commits, and JSON result kinds. - Expanded command inventory, CLI contract, and docs/skill tests for the new command surface.
- Full suite: 897 tests passing, ruff and mypy clean.