taskledger 0.6.0__tar.gz → 0.6.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. taskledger-0.6.1/.ledger/releaseledger/data/ledgers/main/events/events.jsonl +13 -0
  2. taskledger-0.6.1/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/entries/entry-0001.md +25 -0
  3. taskledger-0.6.1/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/entries/entry-0002.md +25 -0
  4. taskledger-0.6.1/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/entries/entry-0003.md +27 -0
  5. taskledger-0.6.1/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/entries/entry-0004.md +25 -0
  6. taskledger-0.6.1/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/entries/entry-0005.md +25 -0
  7. taskledger-0.6.1/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/release.md +26 -0
  8. {taskledger-0.6.0/taskledger.egg-info → taskledger-0.6.1}/PKG-INFO +21 -14
  9. {taskledger-0.6.0 → taskledger-0.6.1}/README.md +19 -13
  10. {taskledger-0.6.0 → taskledger-0.6.1}/docs/changelog.md +21 -0
  11. {taskledger-0.6.0 → taskledger-0.6.1}/docs/command_contract.md +4 -3
  12. {taskledger-0.6.0 → taskledger-0.6.1}/docs/full_task_cycle.md +2 -2
  13. {taskledger-0.6.0 → taskledger-0.6.1}/docs/index.md +1 -0
  14. taskledger-0.6.1/docs/release_checklist.md +20 -0
  15. {taskledger-0.6.0 → taskledger-0.6.1}/docs/service_boundary_whitelist.md +8 -1
  16. {taskledger-0.6.0 → taskledger-0.6.1}/docs/sync.md +3 -2
  17. {taskledger-0.6.0 → taskledger-0.6.1}/docs/usage.md +16 -15
  18. {taskledger-0.6.0 → taskledger-0.6.1}/pyproject.toml +24 -1
  19. {taskledger-0.6.0 → taskledger-0.6.1}/skills/taskledger/SKILL.md +5 -4
  20. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/_version.py +3 -3
  21. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli.py +6 -1
  22. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_common.py +166 -60
  23. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_plan.py +5 -0
  24. taskledger-0.6.1/taskledger/cli_runtime.py +43 -0
  25. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/compat/ledgercore.py +127 -37
  26. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/states.py +9 -4
  27. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/errors.py +4 -2
  28. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/doctor.py +4 -1
  29. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/git_sync.py +34 -4
  30. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/git_utils.py +10 -0
  31. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/planning_flow.py +15 -5
  32. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/runtime_info.py +30 -12
  33. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/task_collections.py +30 -6
  34. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/tasks.py +12 -1
  35. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/workspace_snapshot.py +201 -29
  36. taskledger-0.6.1/taskledger/storage/indexes.py +137 -0
  37. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/task_store.py +21 -9
  38. {taskledger-0.6.0 → taskledger-0.6.1/taskledger.egg-info}/PKG-INFO +21 -14
  39. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger.egg-info/SOURCES.txt +8 -2
  40. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger.egg-info/requires.txt +1 -0
  41. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger.egg-info/scm_file_list.json +501 -495
  42. taskledger-0.6.1/taskledger.egg-info/scm_version.json +8 -0
  43. {taskledger-0.6.0 → taskledger-0.6.1}/tests/conftest.py +24 -2
  44. {taskledger-0.6.0 → taskledger-0.6.1}/tests/support/builders.py +54 -0
  45. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_atomic_fast_io.py +2 -0
  46. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_command_example_linter.py +67 -2
  47. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_docs_and_skill.py +10 -1
  48. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_error_contracts.py +17 -3
  49. taskledger-0.6.1/tests/test_indexes.py +78 -0
  50. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_json_contracts.py +1 -1
  51. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_ledgercore_compat.py +116 -11
  52. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_ledgercore_dependency.py +16 -0
  53. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_plan_lint.py +76 -128
  54. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_runtime_info.py +32 -0
  55. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_service_boundaries.py +99 -54
  56. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_storage_migration.py +1 -1
  57. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_sync_git.py +66 -0
  58. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_taskledger_v2_cli.py +1 -1
  59. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_validation_git_snapshot_recovery.py +124 -5
  60. taskledger-0.6.1/tests/test_workspace_snapshot.py +307 -0
  61. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/events/events.jsonl +0 -3
  62. taskledger-0.6.0/.releaseledger.toml +0 -42
  63. taskledger-0.6.0/setup.py +0 -6
  64. taskledger-0.6.0/taskledger/cli_runtime.py +0 -26
  65. taskledger-0.6.0/taskledger/storage/indexes.py +0 -50
  66. taskledger-0.6.0/taskledger.egg-info/scm_version.json +0 -8
  67. taskledger-0.6.0/tests/test_workspace_snapshot.py +0 -74
  68. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/archive/records/building_blocks/block-0083.md +0 -0
  69. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/archive/records/concepts/concept-0081.md +0 -0
  70. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/archive/records/runtime/runtime-0076.md +0 -0
  71. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/archive/records/runtime/runtime-0084.md +0 -0
  72. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/document-state.json +0 -0
  73. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/profiles/arc42/sections/content-0001.md +0 -0
  74. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/profiles/arc42/sections/content-0002.md +0 -0
  75. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/profiles/arc42/sections/content-0003.md +0 -0
  76. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/profiles/arc42/sections/content-0004.md +0 -0
  77. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/profiles/arc42/sections/content-0005.md +0 -0
  78. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/profiles/arc42/sections/content-0006.md +0 -0
  79. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/profiles/arc42/sections/content-0007.md +0 -0
  80. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/profiles/arc42/sections/content-0008.md +0 -0
  81. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/profiles/arc42/sections/content-0009.md +0 -0
  82. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/profiles/arc42/sections/content-0010.md +0 -0
  83. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/profiles/arc42/sections/content-0011.md +0 -0
  84. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/profiles/arc42/sections/content-0012.md +0 -0
  85. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/building_blocks/block-0029.md +0 -0
  86. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/building_blocks/block-0030.md +0 -0
  87. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/building_blocks/block-0031.md +0 -0
  88. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/building_blocks/block-0032.md +0 -0
  89. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/building_blocks/block-0033.md +0 -0
  90. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/building_blocks/block-0034.md +0 -0
  91. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/concepts/concept-0040.md +0 -0
  92. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/concepts/concept-0041.md +0 -0
  93. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/concepts/concept-0042.md +0 -0
  94. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/concepts/concept-0043.md +0 -0
  95. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/concepts/concept-0044.md +0 -0
  96. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/concepts/concept-0045.md +0 -0
  97. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/concepts/concept-0082.md +0 -0
  98. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/concepts/concept-0085.md +0 -0
  99. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/concepts/concept-0086.md +0 -0
  100. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/constraints/constraint-0016.md +0 -0
  101. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/constraints/constraint-0017.md +0 -0
  102. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/constraints/constraint-0018.md +0 -0
  103. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/constraints/constraint-0019.md +0 -0
  104. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/contexts/context-0020.md +0 -0
  105. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/contexts/context-0021.md +0 -0
  106. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/contexts/context-0022.md +0 -0
  107. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/contexts/context-0023.md +0 -0
  108. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/decisions/adr-0046.md +0 -0
  109. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/decisions/adr-0047.md +0 -0
  110. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/decisions/adr-0048.md +0 -0
  111. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/decisions/adr-0049.md +0 -0
  112. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/decisions/adr-0050.md +0 -0
  113. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/decisions/adr-0051.md +0 -0
  114. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/deployment/deploy-0039.md +0 -0
  115. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/glossary/glossary-0061.md +0 -0
  116. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/glossary/glossary-0062.md +0 -0
  117. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/glossary/glossary-0063.md +0 -0
  118. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/glossary/glossary-0064.md +0 -0
  119. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/glossary/glossary-0065.md +0 -0
  120. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/glossary/glossary-0066.md +0 -0
  121. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/glossary/glossary-0067.md +0 -0
  122. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/glossary/glossary-0068.md +0 -0
  123. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/glossary/glossary-0069.md +0 -0
  124. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/glossary/glossary-0070.md +0 -0
  125. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/glossary/glossary-0071.md +0 -0
  126. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/glossary/glossary-0072.md +0 -0
  127. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/glossary/glossary-0073.md +0 -0
  128. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/quality_requirements/quality-0052.md +0 -0
  129. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/quality_requirements/quality-0053.md +0 -0
  130. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/quality_requirements/quality-0054.md +0 -0
  131. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/quality_requirements/quality-0055.md +0 -0
  132. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/quality_requirements/quality-0056.md +0 -0
  133. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/requirements/content-0013.md +0 -0
  134. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/requirements/content-0014.md +0 -0
  135. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/requirements/content-0015.md +0 -0
  136. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/risks/risk-0057.md +0 -0
  137. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/risks/risk-0058.md +0 -0
  138. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/risks/risk-0059.md +0 -0
  139. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/risks/risk-0060.md +0 -0
  140. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/runtime/runtime-0035.md +0 -0
  141. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/runtime/runtime-0036.md +0 -0
  142. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/runtime/runtime-0037.md +0 -0
  143. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/runtime/runtime-0038.md +0 -0
  144. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/runtime/runtime-0074.md +0 -0
  145. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/runtime/runtime-0075.md +0 -0
  146. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/runtime/runtime-0077.md +0 -0
  147. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/runtime/runtime-0078.md +0 -0
  148. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/runtime/runtime-0087.md +0 -0
  149. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/runtime/runtime-0088.md +0 -0
  150. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/stakeholders/content-0079.md +0 -0
  151. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/stakeholders/content-0080.md +0 -0
  152. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/strategy/strategy-0024.md +0 -0
  153. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/strategy/strategy-0025.md +0 -0
  154. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/strategy/strategy-0026.md +0 -0
  155. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/strategy/strategy-0027.md +0 -0
  156. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/records/strategy/strategy-0028.md +0 -0
  157. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/source-state.json +0 -0
  158. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger/storage.yaml +0 -0
  159. {taskledger-0.6.0 → taskledger-0.6.1}/.archledger.toml +0 -0
  160. {taskledger-0.6.0 → taskledger-0.6.1}/.codecrate.toml +0 -0
  161. {taskledger-0.6.0 → taskledger-0.6.1}/.documentledger/docs/docs-api-md-9eddf4dc.yaml +0 -0
  162. {taskledger-0.6.0 → taskledger-0.6.1}/.documentledger/docs/docs-architecture-taskledger-split-md-63034c0d.yaml +0 -0
  163. {taskledger-0.6.0 → taskledger-0.6.1}/.documentledger/docs/docs-command-contract-md-abe6f6d9.yaml +0 -0
  164. {taskledger-0.6.0 → taskledger-0.6.1}/.documentledger/docs/docs-full-task-cycle-md-721181f0.yaml +0 -0
  165. {taskledger-0.6.0 → taskledger-0.6.1}/.documentledger/docs/docs-multi-repo-md-929e47a9.yaml +0 -0
  166. {taskledger-0.6.0 → taskledger-0.6.1}/.documentledger/docs/docs-public-surface-md-c1b8772f.yaml +0 -0
  167. {taskledger-0.6.0 → taskledger-0.6.1}/.documentledger/docs/docs-service-boundary-whitelist-md-800b76f5.yaml +0 -0
  168. {taskledger-0.6.0 → taskledger-0.6.1}/.documentledger/docs/docs-sync-md-a29422f3.yaml +0 -0
  169. {taskledger-0.6.0 → taskledger-0.6.1}/.documentledger/docs/docs-transfer-md-f8532303.yaml +0 -0
  170. {taskledger-0.6.0 → taskledger-0.6.1}/.documentledger/docs/docs-usage-md-72376d0b.yaml +0 -0
  171. {taskledger-0.6.0 → taskledger-0.6.1}/.documentledger/scan.yaml +0 -0
  172. {taskledger-0.6.0 → taskledger-0.6.1}/.documentledger/source-index.json +0 -0
  173. {taskledger-0.6.0 → taskledger-0.6.1}/.documentledger/storage.yaml +0 -0
  174. {taskledger-0.6.0 → taskledger-0.6.1}/.documentledger.toml +0 -0
  175. {taskledger-0.6.0 → taskledger-0.6.1}/.github/workflows/codecov.yml +0 -0
  176. {taskledger-0.6.0 → taskledger-0.6.1}/.github/workflows/pre-commit.yml +0 -0
  177. {taskledger-0.6.0 → taskledger-0.6.1}/.github/workflows/python-publish.yml +0 -0
  178. {taskledger-0.6.0 → taskledger-0.6.1}/.github/workflows/tests.yml +0 -0
  179. {taskledger-0.6.0 → taskledger-0.6.1}/.gitignore +0 -0
  180. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/ledger.toml +0 -0
  181. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/.ledger-project.toml +0 -0
  182. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/config.toml +0 -0
  183. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/.ledger-project.toml +0 -0
  184. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0001.md +0 -0
  185. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0002.md +0 -0
  186. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0003.md +0 -0
  187. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0004.md +0 -0
  188. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0005.md +0 -0
  189. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0006.md +0 -0
  190. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0007.md +0 -0
  191. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0008.md +0 -0
  192. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0009.md +0 -0
  193. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0010.md +0 -0
  194. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0011.md +0 -0
  195. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0012.md +0 -0
  196. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0013.md +0 -0
  197. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0014.md +0 -0
  198. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0015.md +0 -0
  199. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0016.md +0 -0
  200. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0017.md +0 -0
  201. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0018.md +0 -0
  202. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0019.md +0 -0
  203. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0020.md +0 -0
  204. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0021.md +0 -0
  205. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0022.md +0 -0
  206. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0023.md +0 -0
  207. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/release.md +0 -0
  208. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/releaseledger/write.lock +0 -0
  209. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/task/config.toml +0 -0
  210. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/taskledger/.ledger-project.toml +0 -0
  211. {taskledger-0.6.0 → taskledger-0.6.1}/.ledger/taskledger/config.toml +0 -0
  212. {taskledger-0.6.0 → taskledger-0.6.1}/.planledger.toml +0 -0
  213. {taskledger-0.6.0 → taskledger-0.6.1}/.pre-commit-config.yaml +0 -0
  214. {taskledger-0.6.0 → taskledger-0.6.1}/.readthedocs.yaml +0 -0
  215. {taskledger-0.6.0 → taskledger-0.6.1}/.ruff.toml +0 -0
  216. {taskledger-0.6.0 → taskledger-0.6.1}/AGENTS.md +0 -0
  217. {taskledger-0.6.0 → taskledger-0.6.1}/API.md +0 -0
  218. {taskledger-0.6.0 → taskledger-0.6.1}/ARCHITECTURE.md +0 -0
  219. {taskledger-0.6.0 → taskledger-0.6.1}/LICENSE +0 -0
  220. {taskledger-0.6.0 → taskledger-0.6.1}/Makefile +0 -0
  221. {taskledger-0.6.0 → taskledger-0.6.1}/docs/Makefile +0 -0
  222. {taskledger-0.6.0 → taskledger-0.6.1}/docs/api.md +0 -0
  223. {taskledger-0.6.0 → taskledger-0.6.1}/docs/architecture_taskledger_split.md +0 -0
  224. {taskledger-0.6.0 → taskledger-0.6.1}/docs/build.sh +0 -0
  225. {taskledger-0.6.0 → taskledger-0.6.1}/docs/conf.py +0 -0
  226. {taskledger-0.6.0 → taskledger-0.6.1}/docs/documentation_freshness.md +0 -0
  227. {taskledger-0.6.0 → taskledger-0.6.1}/docs/multi_repo.md +0 -0
  228. {taskledger-0.6.0 → taskledger-0.6.1}/docs/public_surface.md +0 -0
  229. {taskledger-0.6.0 → taskledger-0.6.1}/docs/requirements.txt +0 -0
  230. {taskledger-0.6.0 → taskledger-0.6.1}/docs/transfer.md +0 -0
  231. {taskledger-0.6.0 → taskledger-0.6.1}/requirements/manifest.json +0 -0
  232. {taskledger-0.6.0 → taskledger-0.6.1}/scripts/find_code_clones.py +0 -0
  233. {taskledger-0.6.0 → taskledger-0.6.1}/setup.cfg +0 -0
  234. {taskledger-0.6.0 → taskledger-0.6.1}/specmason.toml +0 -0
  235. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/README.md +0 -0
  236. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/UNMAPPED_TESTS.md +0 -0
  237. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/evidence/.gitkeep +0 -0
  238. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/evidence/taskledger-test-feature-coverage.json +0 -0
  239. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/.gitkeep +0 -0
  240. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/active_task/active-task.feature +0 -0
  241. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/actor_harness_state/actor-harness-state.feature +0 -0
  242. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/actor_resolution/actor-resolution.feature +0 -0
  243. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/agent_command_logging/agent-command-logging.feature +0 -0
  244. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/agent_session_protocol/agent-session-protocol.feature +0 -0
  245. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/atomic_fast_io/atomic-fast-io.feature +0 -0
  246. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/cli_command_contract/cli-command-contract.feature +0 -0
  247. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/cli_import_resilience/cli-import-resilience.feature +0 -0
  248. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/code_reviews/code-reviews.feature +0 -0
  249. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/command_example_linter/command-example-linter.feature +0 -0
  250. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/command_inventory/command-inventory.feature +0 -0
  251. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/command_runner/command-runner.feature +0 -0
  252. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/compact_mutation_output/compact-mutation-output.feature +0 -0
  253. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/config_cli/config-cli.feature +0 -0
  254. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/delta_remaining_contracts/delta-remaining-contracts.feature +0 -0
  255. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/docs_and_skill/docs-and-skill.feature +0 -0
  256. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/doctor/doctor.feature +0 -0
  257. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/domain_policies/domain-policies.feature +0 -0
  258. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/event_logging_config/event-logging-config.feature +0 -0
  259. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/events/events.feature +0 -0
  260. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/file_link_snapshots/file-link-snapshots.feature +0 -0
  261. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/find_code_clones_script/find-code-clones-script.feature +0 -0
  262. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/handoff_lifecycle/handoff-lifecycle.feature +0 -0
  263. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/help_subprocess/help-subprocess.feature +0 -0
  264. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/implementation_change_scan/implementation-change-scan.feature +0 -0
  265. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/implementation_checks/implementation-checks.feature +0 -0
  266. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/json_contracts/json-contracts.feature +0 -0
  267. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/legacy_cleanup_contracts/legacy-cleanup-contracts.feature +0 -0
  268. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/lifecycle_policies/lifecycle-policies.feature +0 -0
  269. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/lock_diagnostics/lock-diagnostics.feature +0 -0
  270. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/locks_audit/locks-audit.feature +0 -0
  271. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/models_v1_schema/models-v1-schema.feature +0 -0
  272. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/monitor/monitor.feature +0 -0
  273. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/next_action_expired_lock/next-action-expired-lock.feature +0 -0
  274. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/no_log_feature/no-log-feature.feature +0 -0
  275. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/plan_approval_contract/plan-approval-contract.feature +0 -0
  276. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/plan_lint/plan-lint.feature +0 -0
  277. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/plan_review/plan-review.feature +0 -0
  278. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/plan_revision_workflow/plan-revision-workflow.feature +0 -0
  279. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/plan_todo_materialization/plan-todo-materialization.feature +0 -0
  280. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/project_root_config/project-root-config.feature +0 -0
  281. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/question_add_many/question-add-many.feature +0 -0
  282. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/question_filter_answers/question-filter-answers.feature +0 -0
  283. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/question_plan_regeneration/question-plan-regeneration.feature +0 -0
  284. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/ready_work/ready-work.feature +0 -0
  285. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/release_changelog/release-changelog.feature +0 -0
  286. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/search/search.feature +0 -0
  287. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/service_boundaries/service-boundaries.feature +0 -0
  288. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/services_dashboard/services-dashboard.feature +0 -0
  289. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/sidecar_collections/sidecar-collections.feature +0 -0
  290. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/storage_bundle_layout/storage-bundle-layout.feature +0 -0
  291. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/storage_common/storage-common.feature +0 -0
  292. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/storage_init/storage-init.feature +0 -0
  293. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/storage_migration/storage-migration.feature +0 -0
  294. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/storage_repos/storage-repos.feature +0 -0
  295. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/storage_sync/storage-sync.feature +0 -0
  296. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/sync_git/sync-git.feature +0 -0
  297. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/task_archive/archive.feature +0 -0
  298. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/task_events/events.feature +0 -0
  299. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/task_markdown_export/markdown-export.feature +0 -0
  300. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/task_report/report.feature +0 -0
  301. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/taskledger_branch_scoped_ledgers/taskledger-branch-scoped-ledgers.feature +0 -0
  302. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/taskledger_cli_api_parity/taskledger-cli-api-parity.feature +0 -0
  303. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/taskledger_v2_cli/taskledger-v2-cli.feature +0 -0
  304. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/taskledger_v2_exchange/taskledger-v2-exchange.feature +0 -0
  305. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/tasks_service_static/tasks-service-static.feature +0 -0
  306. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/todo_implementation_gate/todo-implementation-gate.feature +0 -0
  307. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/trace/trace.feature +0 -0
  308. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/tree_command/tree-command.feature +0 -0
  309. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/usage_cli/usage-cli.feature +0 -0
  310. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/worker_pipeline_cli/worker-pipeline-cli.feature +0 -0
  311. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/worker_pipeline_config/worker-pipeline-config.feature +0 -0
  312. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/worker_pipeline_context/worker-pipeline-context.feature +0 -0
  313. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/worker_pipeline_handoff/worker-pipeline-handoff.feature +0 -0
  314. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/worker_pipeline_plan_template/worker-pipeline-plan-template.feature +0 -0
  315. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/worker_pipeline_todos/worker-pipeline-todos.feature +0 -0
  316. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/features/workflow_guidance/workflow-guidance.feature +0 -0
  317. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/manifest.json +0 -0
  318. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/mappings/.gitkeep +0 -0
  319. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/mappings/intentional-unmapped.json +0 -0
  320. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/reports/specmason/.gitkeep +0 -0
  321. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/reports/specmason/coverage.json +0 -0
  322. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/reports/specmason/coverage.md +0 -0
  323. {taskledger-0.6.0 → taskledger-0.6.1}/specs/behavior/reports/specmason/mappings.json +0 -0
  324. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/__init__.py +0 -0
  325. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/__main__.py +0 -0
  326. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/api/__init__.py +0 -0
  327. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/api/config.py +0 -0
  328. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/api/handoff.py +0 -0
  329. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/api/introductions.py +0 -0
  330. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/api/locks.py +0 -0
  331. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/api/plans.py +0 -0
  332. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/api/project.py +0 -0
  333. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/api/questions.py +0 -0
  334. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/api/releases.py +0 -0
  335. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/api/repair.py +0 -0
  336. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/api/reviews.py +0 -0
  337. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/api/search.py +0 -0
  338. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/api/storage.py +0 -0
  339. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/api/sync.py +0 -0
  340. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/api/task_runs.py +0 -0
  341. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/api/tasks.py +0 -0
  342. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_actor.py +0 -0
  343. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_archive.py +0 -0
  344. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_config.py +0 -0
  345. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_help.py +0 -0
  346. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_implement.py +0 -0
  347. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_ledger.py +0 -0
  348. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_migrate.py +0 -0
  349. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_misc.py +0 -0
  350. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_pipeline.py +0 -0
  351. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_question.py +0 -0
  352. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_ref.py +0 -0
  353. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_release.py +0 -0
  354. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_review.py +0 -0
  355. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_storage.py +0 -0
  356. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_sync.py +0 -0
  357. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_task.py +0 -0
  358. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_trace.py +0 -0
  359. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/cli_validate.py +0 -0
  360. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/command_inventory.py +0 -0
  361. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/compat/__init__.py +0 -0
  362. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/__init__.py +0 -0
  363. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/_model_utils.py +0 -0
  364. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/active_state.py +0 -0
  365. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/actor.py +0 -0
  366. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/change.py +0 -0
  367. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/check.py +0 -0
  368. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/event.py +0 -0
  369. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/handoff.py +0 -0
  370. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/lock.py +0 -0
  371. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/models.py +0 -0
  372. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/plan.py +0 -0
  373. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/policies.py +0 -0
  374. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/question.py +0 -0
  375. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/release.py +0 -0
  376. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/review.py +0 -0
  377. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/run.py +0 -0
  378. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/sidecars.py +0 -0
  379. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/domain/task.py +0 -0
  380. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/exchange.py +0 -0
  381. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/ids.py +0 -0
  382. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/launcher.py +0 -0
  383. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/migrations/__init__.py +0 -0
  384. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/migrations/hooks.py +0 -0
  385. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/py.typed +0 -0
  386. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/refs.py +0 -0
  387. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/search.py +0 -0
  388. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/__init__.py +0 -0
  389. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/actors.py +0 -0
  390. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/agent_logging.py +0 -0
  391. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/agent_transcripts.py +0 -0
  392. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/change_tracking.py +0 -0
  393. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/check_tracking.py +0 -0
  394. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/code_review.py +0 -0
  395. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/command_runner.py +0 -0
  396. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/dashboard.py +0 -0
  397. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/doctor_checks/migration_checks.py +0 -0
  398. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/doctor_checks/project_scan.py +0 -0
  399. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/doctor_checks/task_checks.py +0 -0
  400. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/event_logging.py +0 -0
  401. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/file_links.py +0 -0
  402. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/handoff.py +0 -0
  403. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/handoff_lifecycle.py +0 -0
  404. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/implementation_flow.py +0 -0
  405. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/lock_diagnostics.py +0 -0
  406. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/lock_inventory.py +0 -0
  407. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/monitor.py +0 -0
  408. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/navigation.py +0 -0
  409. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/next_action_logic.py +0 -0
  410. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/next_action_model.py +0 -0
  411. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/next_action_payload.py +0 -0
  412. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/phase5_lock_transfer.py +0 -0
  413. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/plan_editing.py +0 -0
  414. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/plan_hash.py +0 -0
  415. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/plan_input.py +0 -0
  416. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/plan_lint.py +0 -0
  417. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/plan_materialization.py +0 -0
  418. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/plan_review.py +0 -0
  419. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/ready_work.py +0 -0
  420. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/releases.py +0 -0
  421. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/run_store.py +0 -0
  422. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/storage_locations.py +0 -0
  423. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/storage_migration.py +0 -0
  424. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/task_archive.py +0 -0
  425. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/task_events.py +0 -0
  426. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/task_export.py +0 -0
  427. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/task_lifecycle.py +0 -0
  428. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/task_queries.py +0 -0
  429. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/task_repair.py +0 -0
  430. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/task_reports.py +0 -0
  431. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/trace.py +0 -0
  432. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/tree.py +0 -0
  433. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/usage.py +0 -0
  434. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/validation.py +0 -0
  435. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/validation_flow.py +0 -0
  436. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/worker_context.py +0 -0
  437. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/worker_pipeline.py +0 -0
  438. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/services/workflow_guidance.py +0 -0
  439. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/__init__.py +0 -0
  440. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/agent_logs.py +0 -0
  441. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/atomic.py +0 -0
  442. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/common.py +0 -0
  443. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/events.py +0 -0
  444. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/frontmatter.py +0 -0
  445. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/init.py +0 -0
  446. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/layout_migration.py +0 -0
  447. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/ledger_config.py +0 -0
  448. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/ledger_local_config.py +0 -0
  449. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/ledger_manifest.py +0 -0
  450. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/ledgercore_backend.py +0 -0
  451. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/locks.py +0 -0
  452. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/meta.py +0 -0
  453. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/migrations.py +0 -0
  454. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/paths.py +0 -0
  455. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/project_binding.py +0 -0
  456. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/project_config.py +0 -0
  457. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/project_context.py +0 -0
  458. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/project_identity.py +0 -0
  459. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/repos.py +0 -0
  460. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/sidecar_index.py +0 -0
  461. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/task_ids.py +0 -0
  462. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/task_index.py +0 -0
  463. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/taskledger_migration.py +0 -0
  464. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/toml_edit.py +0 -0
  465. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/worker_pipeline_config.py +0 -0
  466. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/storage/yaml_store.py +0 -0
  467. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger/timeutils.py +0 -0
  468. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger.egg-info/dependency_links.txt +0 -0
  469. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger.egg-info/entry_points.txt +0 -0
  470. {taskledger-0.6.0 → taskledger-0.6.1}/taskledger.egg-info/top_level.txt +0 -0
  471. {taskledger-0.6.0 → taskledger-0.6.1}/tests/__init__.py +0 -0
  472. {taskledger-0.6.0 → taskledger-0.6.1}/tests/support/__init__.py +0 -0
  473. {taskledger-0.6.0 → taskledger-0.6.1}/tests/support/fake_command_runner.py +0 -0
  474. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_active_task.py +0 -0
  475. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_actor_harness_state.py +0 -0
  476. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_actor_resolution.py +0 -0
  477. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_agent_command_logging.py +0 -0
  478. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_agent_session_protocol.py +0 -0
  479. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_canonical_config_split.py +0 -0
  480. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_canonical_layout_migration.py +0 -0
  481. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_canonical_mount_paths.py +0 -0
  482. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_canonical_project_boundary.py +0 -0
  483. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_canonical_project_context.py +0 -0
  484. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_cli_command_contract.py +0 -0
  485. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_cli_import_resilience.py +0 -0
  486. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_cli_runner_compatibility.py +0 -0
  487. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_code_reviews.py +0 -0
  488. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_command_inventory.py +0 -0
  489. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_command_runner.py +0 -0
  490. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_compact_mutation_output.py +0 -0
  491. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_config_cli.py +0 -0
  492. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_delta_remaining_contracts.py +0 -0
  493. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_doctor.py +0 -0
  494. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_domain_policies.py +0 -0
  495. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_event_logging_config.py +0 -0
  496. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_events.py +0 -0
  497. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_file_link_snapshots.py +0 -0
  498. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_find_code_clones_script.py +0 -0
  499. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_handoff_lifecycle.py +0 -0
  500. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_help_subprocess.py +0 -0
  501. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_implementation_change_scan.py +0 -0
  502. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_implementation_checks.py +0 -0
  503. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_import_boundaries.py +0 -0
  504. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_ledger_manifest_mutation.py +0 -0
  505. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_legacy_cleanup_contracts.py +0 -0
  506. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_lifecycle_policies.py +0 -0
  507. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_lock_diagnostics.py +0 -0
  508. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_lock_inventory.py +0 -0
  509. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_locks_audit.py +0 -0
  510. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_models_v1_schema.py +0 -0
  511. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_monitor.py +0 -0
  512. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_next_action_expired_lock.py +0 -0
  513. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_no_log_feature.py +0 -0
  514. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_performance_caching.py +0 -0
  515. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_plan_approval_contract.py +0 -0
  516. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_plan_input.py +0 -0
  517. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_plan_input_cli.py +0 -0
  518. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_plan_review.py +0 -0
  519. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_plan_revision_workflow.py +0 -0
  520. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_plan_todo_materialization.py +0 -0
  521. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_project_root_config.py +0 -0
  522. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_question_add_many.py +0 -0
  523. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_question_filter_answers.py +0 -0
  524. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_question_plan_regeneration.py +0 -0
  525. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_ready_work.py +0 -0
  526. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_release_changelog.py +0 -0
  527. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_resource_refs.py +0 -0
  528. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_search.py +0 -0
  529. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_services_dashboard.py +0 -0
  530. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_shared_tool_ledger_storage.py +0 -0
  531. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_sidecar_collections.py +0 -0
  532. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_storage_bundle_layout.py +0 -0
  533. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_storage_common.py +0 -0
  534. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_storage_init.py +0 -0
  535. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_storage_migration_coordinator.py +0 -0
  536. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_storage_repos.py +0 -0
  537. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_storage_sync.py +0 -0
  538. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_storage_where_repair.py +0 -0
  539. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_storage_yaml_store.py +0 -0
  540. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_task_archive.py +0 -0
  541. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_task_events.py +0 -0
  542. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_task_ids.py +0 -0
  543. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_task_markdown_export.py +0 -0
  544. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_task_report.py +0 -0
  545. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_taskledger_branch_scoped_ledgers.py +0 -0
  546. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_taskledger_canonical_sync.py +0 -0
  547. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_taskledger_cli_api_parity.py +0 -0
  548. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_taskledger_ledgercore_050_adapter.py +0 -0
  549. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_taskledger_ledgercore_050_context.py +0 -0
  550. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_taskledger_ledgercore_050_migration_topology.py +0 -0
  551. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_taskledger_ledgercore_050_sync.py +0 -0
  552. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_taskledger_migration_v3.py +0 -0
  553. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_taskledger_sibling_migration.py +0 -0
  554. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_taskledger_sibling_storage.py +0 -0
  555. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_taskledger_storage_commands_v3.py +0 -0
  556. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_taskledger_v2_exchange.py +0 -0
  557. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_tasks_service_static.py +0 -0
  558. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_todo_implementation_gate.py +0 -0
  559. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_trace.py +0 -0
  560. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_tree_command.py +0 -0
  561. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_usage_cli.py +0 -0
  562. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_worker_pipeline_cli.py +0 -0
  563. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_worker_pipeline_config.py +0 -0
  564. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_worker_pipeline_context.py +0 -0
  565. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_worker_pipeline_handoff.py +0 -0
  566. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_worker_pipeline_plan_template.py +0 -0
  567. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_worker_pipeline_todos.py +0 -0
  568. {taskledger-0.6.0 → taskledger-0.6.1}/tests/test_workflow_guidance.py +0 -0
@@ -0,0 +1,13 @@
1
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0001","record_revisions":{"release:v0.6.0":1},"release_version":"v0.6.0","schema_version":2}
2
+ {"data":{"entry_ids":["entry-0001","entry-0002","entry-0003","entry-0004","entry-0005","entry-0006","entry-0007","entry-0008","entry-0009","entry-0010","entry-0011","entry-0012","entry-0013","entry-0014","entry-0015","entry-0016","entry-0017","entry-0018","entry-0019","entry-0020","entry-0021","entry-0022","entry-0023"]},"event":"entry.batch_added","event_id":"event-0002","record_revisions":{"entry:v0.6.0/entry-0001":1,"entry:v0.6.0/entry-0002":1,"entry:v0.6.0/entry-0003":1,"entry:v0.6.0/entry-0004":1,"entry:v0.6.0/entry-0005":1,"entry:v0.6.0/entry-0006":1,"entry:v0.6.0/entry-0007":1,"entry:v0.6.0/entry-0008":1,"entry:v0.6.0/entry-0009":1,"entry:v0.6.0/entry-0010":1,"entry:v0.6.0/entry-0011":1,"entry:v0.6.0/entry-0012":1,"entry:v0.6.0/entry-0013":1,"entry:v0.6.0/entry-0014":1,"entry:v0.6.0/entry-0015":1,"entry:v0.6.0/entry-0016":1,"entry:v0.6.0/entry-0017":1,"entry:v0.6.0/entry-0018":1,"entry:v0.6.0/entry-0019":1,"entry:v0.6.0/entry-0020":1,"entry:v0.6.0/entry-0021":1,"entry:v0.6.0/entry-0022":1,"entry:v0.6.0/entry-0023":1,"release:v0.6.0":2},"release_version":"v0.6.0","schema_version":2}
3
+ {"data":{"released_at":"2026-07-28"},"event":"release.finalized","event_id":"event-0003","record_revisions":{"release:v0.6.0":3},"release_version":"v0.6.0","schema_version":2}
4
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0004","record_revisions":{"release:v0.6.1":1},"release_version":"v0.6.1","schema_version":2}
5
+ {"data":{"kind":"changed","status":"accepted"},"entry_id":"entry-0001","event":"entry.added","event_id":"event-0005","record_revisions":{"entry:v0.6.1/entry-0001":1,"release:v0.6.1":2},"release_version":"v0.6.1","schema_version":2}
6
+ {"data":{"kind":"quality","status":"accepted"},"entry_id":"entry-0002","event":"entry.added","event_id":"event-0006","record_revisions":{"entry:v0.6.1/entry-0002":1,"release:v0.6.1":3},"release_version":"v0.6.1","schema_version":2}
7
+ {"data":{"kind":"fixed","status":"accepted"},"entry_id":"entry-0003","event":"entry.added","event_id":"event-0007","record_revisions":{"entry:v0.6.1/entry-0003":1,"release:v0.6.1":4},"release_version":"v0.6.1","schema_version":2}
8
+ {"data":{"kind":"added","status":"accepted"},"entry_id":"entry-0004","event":"entry.added","event_id":"event-0008","record_revisions":{"entry:v0.6.1/entry-0004":1,"release:v0.6.1":5},"release_version":"v0.6.1","schema_version":2}
9
+ {"data":{"kind":"added","status":"accepted"},"entry_id":"entry-0005","event":"entry.added","event_id":"event-0009","record_revisions":{"entry:v0.6.1/entry-0005":1,"release:v0.6.1":6},"release_version":"v0.6.1","schema_version":2}
10
+ {"data":{"added_source_refs":["git:c1d0982"],"fields":["source_refs"],"removed_source_refs":[],"source_refs_mode":"merge"},"entry_id":"entry-0003","event":"entry.updated","event_id":"event-0010","record_revisions":{"entry:v0.6.1/entry-0003":2},"release_version":"v0.6.1","schema_version":2}
11
+ {"data":{"added_source_refs":["git:c1d0982"],"fields":["source_refs"],"removed_source_refs":[],"source_refs_mode":"merge"},"entry_id":"entry-0005","event":"entry.updated","event_id":"event-0011","record_revisions":{"entry:v0.6.1/entry-0005":2},"release_version":"v0.6.1","schema_version":2}
12
+ {"data":{"added_source_refs":["git:94965d3"],"fields":["source_refs"],"removed_source_refs":[],"source_refs_mode":"merge"},"entry_id":"entry-0004","event":"entry.updated","event_id":"event-0012","record_revisions":{"entry:v0.6.1/entry-0004":2},"release_version":"v0.6.1","schema_version":2}
13
+ {"data":{"released_at":"2026-08-14"},"event":"release.finalized","event_id":"event-0013","record_revisions":{"release:v0.6.1":7},"release_version":"v0.6.1","schema_version":2}
@@ -0,0 +1,25 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0001
8
+ release_version: v0.6.1
9
+ kind: changed
10
+ summary: Ledgercore minimum version requirement updated to >=0.6.1
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - git:c1d0982
16
+ paths:
17
+ - taskledger/compat/ledgercore.py
18
+ issues: []
19
+ prs: []
20
+ sources: []
21
+ contributors: []
22
+ breaking: false
23
+ internal: false
24
+ order: 1
25
+ ---
@@ -0,0 +1,25 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0002
8
+ release_version: v0.6.1
9
+ kind: quality
10
+ summary: Test suite performance improvements with atomic fast I/O and focused fixtures
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - git:94965d3
16
+ paths:
17
+ - tests/conftest.py
18
+ issues: []
19
+ prs: []
20
+ sources: []
21
+ contributors: []
22
+ breaking: false
23
+ internal: false
24
+ order: 2
25
+ ---
@@ -0,0 +1,27 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 2
7
+ entry_id: entry-0003
8
+ release_version: v0.6.1
9
+ kind: fixed
10
+ summary:
11
+ Workspace snapshot hash exclusions now resolve Taskledger state roots relative
12
+ to the Git root
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:c1d0982
18
+ paths:
19
+ - taskledger/services/workspace_snapshot.py
20
+ issues: []
21
+ prs: []
22
+ sources: []
23
+ contributors: []
24
+ breaking: false
25
+ internal: false
26
+ order: 3
27
+ ---
@@ -0,0 +1,25 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 2
7
+ entry_id: entry-0004
8
+ release_version: v0.6.1
9
+ kind: added
10
+ summary: Atomic index update functions for dependency and introduction indexes
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - git:94965d3
16
+ paths:
17
+ - taskledger/storage/indexes.py
18
+ issues: []
19
+ prs: []
20
+ sources: []
21
+ contributors: []
22
+ breaking: false
23
+ internal: false
24
+ order: 4
25
+ ---
@@ -0,0 +1,25 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 2
7
+ entry_id: entry-0005
8
+ release_version: v0.6.1
9
+ kind: added
10
+ summary: Ledgercore version inspection with module and distribution provenance tracking
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - git:c1d0982
16
+ paths:
17
+ - taskledger/compat/ledgercore.py
18
+ issues: []
19
+ prs: []
20
+ sources: []
21
+ contributors: []
22
+ breaking: false
23
+ internal: false
24
+ order: 5
25
+ ---
@@ -0,0 +1,26 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 7
7
+ version: v0.6.1
8
+ status: released
9
+ title: Release v0.6.1
10
+ released_at: "2026-08-14"
11
+ previous_version: v0.6.0
12
+ cancel_reason: null
13
+ superseded_by: null
14
+ changelog_file: null
15
+ boundary_ref: null
16
+ source_refs: []
17
+ source_count: null
18
+ entry_count: 5
19
+ artifact_count: 0
20
+ git_base_ref: null
21
+ git_base_sha: null
22
+ git_head_ref: null
23
+ git_head_sha: null
24
+ git_range: null
25
+ git_commit_count: null
26
+ ---
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: taskledger
3
- Version: 0.6.0
3
+ Version: 0.6.1
4
4
  Summary: Durable project-state storage and CLI for coding workflows
5
5
  Author: Taskledger Contributors
6
6
  Maintainer: Holger Nahrstaedt
@@ -29,6 +29,7 @@ License-File: LICENSE
29
29
  Requires-Dist: typer
30
30
  Requires-Dist: click
31
31
  Requires-Dist: PyYAML
32
+ Requires-Dist: packaging<26,>=23
32
33
  Requires-Dist: ledgercore<0.7.0,>=0.6.1
33
34
  Requires-Dist: tomlkit<1,>=0.13
34
35
  Requires-Dist: filelock<4,>=3.16
@@ -152,8 +153,9 @@ taskledger validate check --criterion ac-0001 --status pass --evidence "pytest t
152
153
  ## Planning guidance profiles
153
154
 
154
155
  Taskledger supports project-local advisory planning guidance under
155
- `[prompt_profiles.planning]` in the active project config file (`taskledger.toml`
156
- or `.taskledger.toml` when legacy config is still present).
156
+ `[prompt_profiles.planning]` in the active project config file
157
+ (`.ledger/taskledger/config.toml`). Legacy `taskledger.toml` and
158
+ `.taskledger.toml` projects remain readable only for explicit migration.
157
159
 
158
160
  ```toml
159
161
  [prompt_profiles.planning]
@@ -193,7 +195,8 @@ taskledger config set prompt_profiles.planning.question_policy always_before_pla
193
195
 
194
196
  ## Optional worker pipelines
195
197
 
196
- Projects may optionally configure worker pipelines in `taskledger.toml` to guide
198
+ Projects may optionally configure worker pipelines in
199
+ `.ledger/taskledger/config.toml` to guide
197
200
  fresh-context handoffs. Worker pipelines are advisory overlays on the existing
198
201
  planning, implementation, and validation lifecycle. They can be three steps,
199
202
  four steps, five steps, or custom. When no worker pipeline is configured, the
@@ -309,7 +312,7 @@ taskledger --root /path/to/repo init
309
312
 
310
313
  `init` writes a schema-3 `.ledger/ledger.toml` manifest and
311
314
  `.ledger/taskledger/config.toml`. Default data is external at `../ledger`; indexes
312
- are cache storage. Use `storage set data user-data --local` for a local override.
315
+ are cache storage. Use `storage set data user-data --scope local` for a local override.
313
316
 
314
317
  Canonical discovery is fail-closed. Once `.ledger/ledger.toml` is found,
315
318
  Taskledger never falls back to a root `taskledger.toml`, `.taskledger.toml`, or
@@ -535,8 +538,11 @@ fresh-context transfer.
535
538
 
536
539
  ## Legacy storage layout
537
540
 
538
- `taskledger` keeps project-local configuration in the workspace root and durable
539
- records under the configured storage root. The checked-in `taskledger.toml`
541
+ ### Legacy branch-scoped layout (migration only)
542
+
543
+ The following layout applies only to legacy projects without a canonical
544
+ `.ledger/ledger.toml` manifest. New projects use the canonical Ledgercore
545
+ layout described below. In legacy projects, checked-in `taskledger.toml`
540
546
  stores project identity plus the current branch-scoped ledger pointer and next
541
547
  task number. Operational task state remains ignored under
542
548
  `.taskledger/ledgers/<ledger_ref>/`:
@@ -650,7 +656,7 @@ Syncthing/rclone caveats.
650
656
  Use `--json` for machine-readable payloads:
651
657
 
652
658
  ```bash
653
- taskledger --json status --full
659
+ taskledger --json info
654
660
  taskledger --json task active
655
661
  taskledger --json task show
656
662
  taskledger --json task show task-0001
@@ -662,13 +668,13 @@ Example status payload:
662
668
  ```json
663
669
  {
664
670
  "ok": true,
665
- "command": "status",
671
+ "command": "info",
666
672
  "result": {
667
673
  "kind": "taskledger_status",
668
674
  "workspace_root": "/home/me/src/project-a",
669
- "config_path": "/home/me/src/project-a/taskledger.toml",
670
- "taskledger_dir": "/home/me/src/project-a/.taskledger",
671
- "project_dir": "/home/me/src/project-a/.taskledger",
675
+ "config_path": "/home/me/src/project-a/.ledger/taskledger/config.toml",
676
+ "taskledger_dir": "/home/me/src/project-a/.ledger/taskledger",
677
+ "project_dir": "/home/me/src/project-a/.ledger/taskledger",
672
678
  "counts": {
673
679
  "tasks": 1,
674
680
  "introductions": 0,
@@ -692,7 +698,7 @@ Action/event logging is **enabled by default**. Taskledger writes immutable
692
698
  todo completion, validation checks, etc.) so `taskledger monitor` shows recent
693
699
  activity without extra configuration.
694
700
 
695
- To disable new action events, set in `taskledger.toml`:
701
+ To disable new action events, set in `.ledger/taskledger/config.toml`:
696
702
 
697
703
  ```toml
698
704
  [event_logging]
@@ -798,7 +804,8 @@ taskledger-export-{project_slug}-{ledger_ref}-{timestamp}.tar.gz
798
804
  taskledger-task-{project_slug}-{ledger_ref}-{task_id}-{timestamp}.tar.gz
799
805
  ```
800
806
 
801
- `project_slug` is derived from `project_name` in `taskledger.toml`. If
807
+ `project_slug` is derived from `project_name` in
808
+ `.ledger/taskledger/config.toml`. If
802
809
  `project_name` is missing, taskledger falls back to the workspace directory name.
803
810
  Import safety still relies on `project_uuid`, not the name/slug.
804
811
 
@@ -100,8 +100,9 @@ taskledger validate check --criterion ac-0001 --status pass --evidence "pytest t
100
100
  ## Planning guidance profiles
101
101
 
102
102
  Taskledger supports project-local advisory planning guidance under
103
- `[prompt_profiles.planning]` in the active project config file (`taskledger.toml`
104
- or `.taskledger.toml` when legacy config is still present).
103
+ `[prompt_profiles.planning]` in the active project config file
104
+ (`.ledger/taskledger/config.toml`). Legacy `taskledger.toml` and
105
+ `.taskledger.toml` projects remain readable only for explicit migration.
105
106
 
106
107
  ```toml
107
108
  [prompt_profiles.planning]
@@ -141,7 +142,8 @@ taskledger config set prompt_profiles.planning.question_policy always_before_pla
141
142
 
142
143
  ## Optional worker pipelines
143
144
 
144
- Projects may optionally configure worker pipelines in `taskledger.toml` to guide
145
+ Projects may optionally configure worker pipelines in
146
+ `.ledger/taskledger/config.toml` to guide
145
147
  fresh-context handoffs. Worker pipelines are advisory overlays on the existing
146
148
  planning, implementation, and validation lifecycle. They can be three steps,
147
149
  four steps, five steps, or custom. When no worker pipeline is configured, the
@@ -257,7 +259,7 @@ taskledger --root /path/to/repo init
257
259
 
258
260
  `init` writes a schema-3 `.ledger/ledger.toml` manifest and
259
261
  `.ledger/taskledger/config.toml`. Default data is external at `../ledger`; indexes
260
- are cache storage. Use `storage set data user-data --local` for a local override.
262
+ are cache storage. Use `storage set data user-data --scope local` for a local override.
261
263
 
262
264
  Canonical discovery is fail-closed. Once `.ledger/ledger.toml` is found,
263
265
  Taskledger never falls back to a root `taskledger.toml`, `.taskledger.toml`, or
@@ -483,8 +485,11 @@ fresh-context transfer.
483
485
 
484
486
  ## Legacy storage layout
485
487
 
486
- `taskledger` keeps project-local configuration in the workspace root and durable
487
- records under the configured storage root. The checked-in `taskledger.toml`
488
+ ### Legacy branch-scoped layout (migration only)
489
+
490
+ The following layout applies only to legacy projects without a canonical
491
+ `.ledger/ledger.toml` manifest. New projects use the canonical Ledgercore
492
+ layout described below. In legacy projects, checked-in `taskledger.toml`
488
493
  stores project identity plus the current branch-scoped ledger pointer and next
489
494
  task number. Operational task state remains ignored under
490
495
  `.taskledger/ledgers/<ledger_ref>/`:
@@ -598,7 +603,7 @@ Syncthing/rclone caveats.
598
603
  Use `--json` for machine-readable payloads:
599
604
 
600
605
  ```bash
601
- taskledger --json status --full
606
+ taskledger --json info
602
607
  taskledger --json task active
603
608
  taskledger --json task show
604
609
  taskledger --json task show task-0001
@@ -610,13 +615,13 @@ Example status payload:
610
615
  ```json
611
616
  {
612
617
  "ok": true,
613
- "command": "status",
618
+ "command": "info",
614
619
  "result": {
615
620
  "kind": "taskledger_status",
616
621
  "workspace_root": "/home/me/src/project-a",
617
- "config_path": "/home/me/src/project-a/taskledger.toml",
618
- "taskledger_dir": "/home/me/src/project-a/.taskledger",
619
- "project_dir": "/home/me/src/project-a/.taskledger",
622
+ "config_path": "/home/me/src/project-a/.ledger/taskledger/config.toml",
623
+ "taskledger_dir": "/home/me/src/project-a/.ledger/taskledger",
624
+ "project_dir": "/home/me/src/project-a/.ledger/taskledger",
620
625
  "counts": {
621
626
  "tasks": 1,
622
627
  "introductions": 0,
@@ -640,7 +645,7 @@ Action/event logging is **enabled by default**. Taskledger writes immutable
640
645
  todo completion, validation checks, etc.) so `taskledger monitor` shows recent
641
646
  activity without extra configuration.
642
647
 
643
- To disable new action events, set in `taskledger.toml`:
648
+ To disable new action events, set in `.ledger/taskledger/config.toml`:
644
649
 
645
650
  ```toml
646
651
  [event_logging]
@@ -746,7 +751,8 @@ taskledger-export-{project_slug}-{ledger_ref}-{timestamp}.tar.gz
746
751
  taskledger-task-{project_slug}-{ledger_ref}-{task_id}-{timestamp}.tar.gz
747
752
  ```
748
753
 
749
- `project_slug` is derived from `project_name` in `taskledger.toml`. If
754
+ `project_slug` is derived from `project_name` in
755
+ `.ledger/taskledger/config.toml`. If
750
756
  `project_name` is missing, taskledger falls back to the workspace directory name.
751
757
  Import safety still relies on `project_uuid`, not the name/slug.
752
758
 
@@ -2,6 +2,27 @@
2
2
 
3
3
  > **Generated by releaseledger.** Manual edits may be overwritten. Update releaseledger entries and rebuild this file instead.
4
4
 
5
+ ## [v0.6.1] - 2026-08-14
6
+
7
+ ### Added
8
+
9
+ - Atomic index update functions for dependency and introduction indexes
10
+ - Ledgercore version inspection with module and distribution provenance tracking
11
+
12
+ ### Changed
13
+
14
+ - Ledgercore minimum version requirement updated to >=0.6.1
15
+
16
+ ### Fixed
17
+
18
+ - Workspace snapshot hash exclusions now resolve Taskledger state roots relative to the Git root
19
+
20
+ ### Quality
21
+
22
+ - Test suite performance improvements with atomic fast I/O and focused fixtures
23
+
24
+ <!-- generated by releaseledger -->
25
+
5
26
  ## [v0.6.0] - 2026-07-28
6
27
 
7
28
  ### Added
@@ -257,9 +257,10 @@ Taskledger does not provide changelog entry, changelog context, or
257
257
  [docs/changelog.md](changelog.md) build commands; those belong to the separate `releaseledger`
258
258
  tool. Load both skills when cross-ledger release notes need task context.
259
259
 
260
- ## Ledger commands
260
+ ## Legacy branch-scoped ledger commands (migration only)
261
261
 
262
- Branch-scoped ledgers isolate ignored local task state by the checked-in
262
+ In legacy projects without a canonical manifest, branch-scoped ledgers isolate
263
+ ignored local task state by the checked-in
263
264
  `ledger_ref` stored in `taskledger.toml`:
264
265
 
265
266
  ```bash
@@ -305,7 +306,7 @@ Rules:
305
306
  - `storage where` is read-only and reports the resolved workspace root,
306
307
  config path, `taskledger_dir`, project identity, ledger ref, Git detection,
307
308
  and active lock count.
308
- - `storage move` updates `taskledger.toml` atomically after the target has
309
+ - In legacy projects, `storage move` updates `taskledger.toml` atomically after the target has
309
310
  been copied or explicitly adopted.
310
311
  - `sync preflight` performs only local checks. It must not perform network
311
312
  push/pull operations.
@@ -18,7 +18,7 @@ Run this once per workspace:
18
18
  ```bash
19
19
  taskledger init
20
20
  taskledger doctor
21
- taskledger status --full
21
+ taskledger info
22
22
  ```
23
23
 
24
24
  `init` writes a schema-3 `.ledger/ledger.toml` registration and
@@ -287,7 +287,7 @@ taskledger task close --note "Fixed parser delimiter handling and validated pars
287
287
  taskledger release tag 0.4.2 --at-task parser-fix --note "0.4.2 released."
288
288
  taskledger task show
289
289
  taskledger task show parser-fix
290
- taskledger status --full
290
+ taskledger info
291
291
  taskledger doctor
292
292
  ```
293
293
 
@@ -19,6 +19,7 @@ transfer
19
19
  sync
20
20
  service_boundary_whitelist
21
21
  documentation_freshness
22
+ release_checklist
22
23
  changelog
23
24
  ```
24
25
 
@@ -0,0 +1,20 @@
1
+ # Release checklist
2
+
3
+ Build Taskledger from the intended release tag or commit in a clean
4
+ environment. The artifact version must agree across package metadata, the
5
+ imported module, and the CLI before publishing.
6
+
7
+ ```bash
8
+ python -m build
9
+ python -m twine check dist/*
10
+ python -m pip install --force-reinstall dist/taskledger-0.6.1-*.whl
11
+ taskledger --version
12
+ python -c 'import taskledger; print(taskledger.__version__)'
13
+ python -c 'from importlib.metadata import version; print(version("taskledger"))'
14
+ ```
15
+
16
+ The clean environment must contain Ledgercore 0.6.1, and all three version
17
+ checks must report `0.6.1`. Confirm that the wheel contains `taskledger/py.typed`
18
+ and required runtime package files. Run the full test, lint, type, Sphinx,
19
+ Documentledger, and SpecMason gates before changing release metadata or
20
+ publishing artifacts.
@@ -114,7 +114,12 @@ Current sanctioned imports:
114
114
  ## Catch-all exception whitelist (`except Exception`)
115
115
 
116
116
  Current allowed sites are listed with reasons in
117
- `tests/test_service_boundaries.py` under `EXCEPT_EXCEPTION_WHITELIST`.
117
+ `tests/test_service_boundaries.py` under `EXCEPT_EXCEPTION_WHITELIST`. Each
118
+ catch-all key uses the stable form
119
+ `path::qualified_function:except-N`, where `N` is the ordinal of the
120
+ catch-all handler within that function. It intentionally does not use source
121
+ line numbers, so unrelated edits above an approved handler do not create
122
+ policy churn.
118
123
 
119
124
  The reviewed resilience sites include storage validation, migration command
120
125
  and hook handling, and project-config parsing boundaries listed in the test
@@ -125,3 +130,5 @@ Policy intent:
125
130
  - Allow catch-all handling only in doctor/repair and resilience wrappers.
126
131
  - Block new catch-all sites unless explicitly reviewed and justified.
127
132
  - Require whitelist edits to be intentional and reasoned.
133
+ - Fail when a new handler is added, an approved handler disappears, or a
134
+ function gains another catch-all handler.
@@ -22,7 +22,8 @@ taskledger init
22
22
  taskledger storage where
23
23
  taskledger storage path data
24
24
  taskledger storage path indexes
25
- taskledger storage set data user-data --local --move
25
+ taskledger storage set data user-data --scope local
26
+ # Use `taskledger migrate` for data relocation; `storage set` changes topology only.
26
27
  ```
27
28
 
28
29
  The project UUID and Ledgercore binding keep shared projects isolated.
@@ -49,7 +50,7 @@ git clone <source-repo-url> project-a
49
50
  git clone <private-state-repo-url> taskledger-state
50
51
 
51
52
  cd project-a
52
- taskledger status --full
53
+ taskledger info
53
54
  taskledger doctor
54
55
  taskledger task list
55
56
  ```
@@ -68,7 +68,7 @@ registrations and the legacy source remain in place by default. Metadata-only ta
68
68
  are backed up and replaced atomically; authoritative split-brain targets are blocked.
69
69
  Do not create bindings or copy task directories manually.
70
70
 
71
- ## Branch-local task work
71
+ ## Legacy branch-local task work (migration only)
72
72
 
73
73
  When creating a long-lived Git branch, fork the Taskledger ledger pointer so
74
74
  active task state, plans, todos, events, indexes, and releases stay isolated
@@ -120,10 +120,9 @@ taskledger validate check --criterion ac-0001 --status pass --evidence "pytest t
120
120
 
121
121
  Taskledger always provides built-in planning guidance via `taskledger plan guidance`.
122
122
  Project-local advisory guidance can extend this with project-specific advice. Configure
123
- it in the active project config file discovered for your workspace. Newer
124
- projects usually use `taskledger.toml`. Existing projects may still use
125
- `.taskledger.toml`; if both files exist, `.taskledger.toml` is discovered
126
- first.
123
+ it in `.ledger/taskledger/config.toml` for canonical projects. Legacy
124
+ `taskledger.toml` and `.taskledger.toml` files remain readable only during
125
+ explicit migration.
127
126
 
128
127
  Configure `[prompt_profiles.planning]` in that active config:
129
128
 
@@ -200,7 +199,8 @@ harness instructions.
200
199
 
201
200
  ## Optional worker pipelines
202
201
 
203
- Projects may optionally configure worker pipelines in `taskledger.toml` to
202
+ Projects may optionally configure worker pipelines in
203
+ `.ledger/taskledger/config.toml` to
204
204
  guide fresh-context handoffs without changing the underlying task lifecycle.
205
205
  Worker pipelines are advisory overlays on the existing planning,
206
206
  implementation, and validation lifecycle. They can be three steps, four steps,
@@ -515,7 +515,7 @@ documentation updates, or follow-up implementation work.
515
515
 
516
516
  ```bash
517
517
  taskledger task export task-0030 -o task-0030.llm.md
518
- taskledger task export task-0030 --no-source-files -o task-0030.records.md
518
+ taskledger task export task-0030 -o task-0030.records.md
519
519
  taskledger task export task-0030 --source-file README.md -o task-0030.llm.md
520
520
  taskledger --json task export task-0030 -o task-0030.llm.md
521
521
  ```
@@ -592,7 +592,7 @@ taskledger implement command -- ruff check --config=.ruff.toml .
592
592
  taskledger implement command --allow-failure -- python -c "raise SystemExit(7)"
593
593
  ```
594
594
 
595
- When `[agent_logging].enabled = true` in `taskledger.toml`, `taskledger`
595
+ When `[agent_logging].enabled = true` in `.ledger/taskledger/config.toml`, `taskledger`
596
596
  records CLI invocations and managed command outputs. Keep logging opt-in because
597
597
  stdout/stderr may contain sensitive data. Route task-relevant commands through
598
598
  `plan command` and `implement command` so their output is included in task
@@ -643,7 +643,7 @@ taskledger implement restart --summary "Fix failed validation findings."
643
643
  ## Machine-readable output
644
644
 
645
645
  ```bash
646
- taskledger --json status --full
646
+ taskledger --json info
647
647
  taskledger --json task active
648
648
  taskledger --json task show
649
649
  taskledger --json task show task-0001
@@ -656,11 +656,11 @@ taskledger --json review list --task task-0001
656
656
  "ok": true,
657
657
  "command": "status",
658
658
  "result": {
659
- "kind": "taskledger_status",
659
+ "kind": "taskledger_info",
660
660
  "workspace_root": "/workspace",
661
- "config_path": "/workspace/taskledger.toml",
662
- "taskledger_dir": "/workspace/.taskledger",
663
- "project_dir": "/workspace/.taskledger",
661
+ "config_path": "/workspace/.ledger/taskledger/config.toml",
662
+ "taskledger_dir": "/workspace/.ledger/taskledger",
663
+ "project_dir": "/workspace/.ledger/taskledger",
664
664
  "counts": {
665
665
  "tasks": 1,
666
666
  "introductions": 0,
@@ -686,7 +686,8 @@ taskledger init
686
686
  taskledger storage where
687
687
  taskledger storage path data
688
688
  taskledger storage path indexes
689
- taskledger storage set data user-data --local --move
689
+ taskledger storage set data user-data --scope local
690
+ # Use `taskledger migrate` for data relocation; `storage set` changes topology only.
690
691
  ```
691
692
 
692
693
  Default data is external at `../ledger`; indexes are checkout-specific cache data.
@@ -738,7 +739,7 @@ taskledger-export-{project_slug}-{ledger_ref}-{timestamp}.tar.gz
738
739
  taskledger-task-{project_slug}-{ledger_ref}-{task_id}-{timestamp}.tar.gz
739
740
  ```
740
741
 
741
- `project_slug` is derived from `project_name` in `taskledger.toml`.
742
+ `project_slug` is derived from `project_name` in `.ledger/taskledger/config.toml`.
742
743
  If unset, taskledger falls back to the workspace directory name.
743
744
  UUID safety checks still use `project_uuid` only.
744
745
 
@@ -1,5 +1,5 @@
1
1
  [build-system]
2
- requires = ["setuptools>=45", "wheel", "setuptools_scm[toml]>=6.2"]
2
+ requires = ["setuptools>=69", "wheel", "setuptools_scm[toml]>=8.0"]
3
3
  build-backend = "setuptools.build_meta"
4
4
 
5
5
  [tool.setuptools.packages.find]
@@ -22,6 +22,7 @@ markers = [
22
22
  "slow: intentionally slower than normal unit tests",
23
23
  "subprocess: starts a child process or managed shell command",
24
24
  "git: shells out to git or requires a git repository",
25
+ "durable_io: verifies real flush/fsync/replace durability behavior",
25
26
  ]
26
27
 
27
28
  [project]
@@ -37,6 +38,7 @@ dependencies = [
37
38
  "typer",
38
39
  "click",
39
40
  "PyYAML",
41
+ "packaging>=23,<26",
40
42
  "ledgercore>=0.6.1,<0.7.0",
41
43
  "tomlkit>=0.13,<1",
42
44
  "filelock>=3.16,<4",
@@ -114,6 +116,27 @@ deps =
114
116
  pytest-xdist
115
117
  commands =
116
118
  pytest -q -n auto --dist=worksteal {posargs}
119
+
120
+ [testenv:test-fast]
121
+ deps =
122
+ pytest
123
+ pytest-xdist
124
+ commands =
125
+ pytest -q -m 'unit and not slow' -n auto --dist=worksteal {posargs}
126
+
127
+ [testenv:test-standard]
128
+ deps =
129
+ pytest
130
+ pytest-xdist
131
+ commands =
132
+ pytest -q -m 'not git and not subprocess and not slow' \
133
+ -n auto --dist=worksteal {posargs}
134
+
135
+ [testenv:test-durable]
136
+ deps =
137
+ pytest
138
+ commands =
139
+ pytest -q -m 'durable_io' {posargs}
117
140
  """
118
141
 
119
142
  [tool.mypy]