taskledger 0.6.5__tar.gz → 0.6.7__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 (601) hide show
  1. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/events/events.jsonl +12 -0
  2. taskledger-0.6.7/.ledger/releaseledger/data/ledgers/main/releases/v0.6.6/audit/commit-audit.yaml +87 -0
  3. taskledger-0.6.7/.ledger/releaseledger/data/ledgers/main/releases/v0.6.6/entries/entry-0001.md +52 -0
  4. taskledger-0.6.7/.ledger/releaseledger/data/ledgers/main/releases/v0.6.6/release.md +27 -0
  5. taskledger-0.6.7/.ledger/releaseledger/data/ledgers/main/releases/v0.6.7/audit/commit-audit.yaml +87 -0
  6. taskledger-0.6.7/.ledger/releaseledger/data/ledgers/main/releases/v0.6.7/entries/entry-0001.md +53 -0
  7. taskledger-0.6.7/.ledger/releaseledger/data/ledgers/main/releases/v0.6.7/release.md +27 -0
  8. {taskledger-0.6.5 → taskledger-0.6.7}/API.md +1 -0
  9. {taskledger-0.6.5/taskledger.egg-info → taskledger-0.6.7}/PKG-INFO +10 -2
  10. {taskledger-0.6.5 → taskledger-0.6.7}/README.md +9 -1
  11. {taskledger-0.6.5 → taskledger-0.6.7}/docs/api.md +1 -0
  12. {taskledger-0.6.5 → taskledger-0.6.7}/docs/changelog.md +16 -0
  13. {taskledger-0.6.5 → taskledger-0.6.7}/docs/command_contract.md +8 -0
  14. {taskledger-0.6.5 → taskledger-0.6.7}/docs/full_task_cycle.md +2 -0
  15. {taskledger-0.6.5 → taskledger-0.6.7}/docs/public_surface.md +1 -1
  16. {taskledger-0.6.5 → taskledger-0.6.7}/docs/service_boundary_whitelist.md +2 -0
  17. {taskledger-0.6.5 → taskledger-0.6.7}/docs/sync.md +4 -0
  18. {taskledger-0.6.5 → taskledger-0.6.7}/docs/transfer.md +6 -0
  19. {taskledger-0.6.5 → taskledger-0.6.7}/docs/usage.md +7 -2
  20. {taskledger-0.6.5 → taskledger-0.6.7}/skills/taskledger/SKILL.md +12 -3
  21. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/_version.py +3 -3
  22. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/api/config.py +12 -0
  23. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/api/task_runs.py +2 -0
  24. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_validate.py +49 -0
  25. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/command_inventory.py +10 -0
  26. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/exchange.py +59 -8
  27. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/agent_logging.py +14 -9
  28. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/agent_transcripts.py +1 -0
  29. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/change_tracking.py +16 -3
  30. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/doctor.py +26 -0
  31. taskledger-0.6.7/taskledger/services/doctor_checks/artifact_checks.py +83 -0
  32. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/git_sync.py +28 -0
  33. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/handoff.py +6 -0
  34. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/implementation_flow.py +16 -3
  35. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/tasks.py +49 -4
  36. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/validation_flow.py +87 -0
  37. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/worker_context.py +18 -2
  38. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/workflow_guidance.py +24 -0
  39. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/agent_logs.py +6 -1
  40. taskledger-0.6.7/taskledger/storage/artifact_policy.py +106 -0
  41. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/project_config.py +29 -2
  42. {taskledger-0.6.5 → taskledger-0.6.7/taskledger.egg-info}/PKG-INFO +10 -2
  43. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger.egg-info/SOURCES.txt +10 -0
  44. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger.egg-info/scm_file_list.json +10 -0
  45. taskledger-0.6.7/taskledger.egg-info/scm_version.json +8 -0
  46. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_agent_command_logging.py +55 -0
  47. taskledger-0.6.7/tests/test_artifact_policy.py +63 -0
  48. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_command_inventory.py +8 -2
  49. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_config_cli.py +25 -2
  50. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_docs_and_skill.py +7 -0
  51. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_doctor.py +31 -0
  52. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_project_root_config.py +19 -0
  53. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_service_boundaries.py +4 -0
  54. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_sync_git.py +36 -0
  55. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_taskledger_v2_exchange.py +14 -0
  56. taskledger-0.6.7/tests/test_validation_command.py +194 -0
  57. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_worker_pipeline_context.py +17 -0
  58. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_workflow_guidance.py +11 -0
  59. taskledger-0.6.5/taskledger.egg-info/scm_version.json +0 -8
  60. {taskledger-0.6.5 → taskledger-0.6.7}/.codecrate.toml +0 -0
  61. {taskledger-0.6.5 → taskledger-0.6.7}/.github/workflows/codecov.yml +0 -0
  62. {taskledger-0.6.5 → taskledger-0.6.7}/.github/workflows/pre-commit.yml +0 -0
  63. {taskledger-0.6.5 → taskledger-0.6.7}/.github/workflows/python-publish.yml +0 -0
  64. {taskledger-0.6.5 → taskledger-0.6.7}/.github/workflows/tests.yml +0 -0
  65. {taskledger-0.6.5 → taskledger-0.6.7}/.gitignore +0 -0
  66. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/.archledger-migration-20260821T090309Z/config.toml +0 -0
  67. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/.ledger-project.toml +0 -0
  68. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/config.toml +0 -0
  69. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/.ledger-project.toml +0 -0
  70. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/archive/records/building_blocks/block-0083.md +0 -0
  71. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/archive/records/concepts/concept-0081.md +0 -0
  72. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/archive/records/runtime/runtime-0076.md +0 -0
  73. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/archive/records/runtime/runtime-0084.md +0 -0
  74. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/document-state.json +0 -0
  75. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/migrations/20260821T090309Z-ledgercore-0.4-repository-storage.json +0 -0
  76. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/migrations/migration-cbe21be3f9dc3db4b03f6366.json +0 -0
  77. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/profiles/arc42/sections/content-0001.md +0 -0
  78. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/profiles/arc42/sections/content-0002.md +0 -0
  79. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/profiles/arc42/sections/content-0003.md +0 -0
  80. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/profiles/arc42/sections/content-0004.md +0 -0
  81. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/profiles/arc42/sections/content-0005.md +0 -0
  82. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/profiles/arc42/sections/content-0006.md +0 -0
  83. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/profiles/arc42/sections/content-0007.md +0 -0
  84. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/profiles/arc42/sections/content-0008.md +0 -0
  85. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/profiles/arc42/sections/content-0009.md +0 -0
  86. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/profiles/arc42/sections/content-0010.md +0 -0
  87. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/profiles/arc42/sections/content-0011.md +0 -0
  88. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/profiles/arc42/sections/content-0012.md +0 -0
  89. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/building_blocks/block-0029.md +0 -0
  90. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/building_blocks/block-0030.md +0 -0
  91. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/building_blocks/block-0031.md +0 -0
  92. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/building_blocks/block-0032.md +0 -0
  93. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/building_blocks/block-0033.md +0 -0
  94. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/building_blocks/block-0034.md +0 -0
  95. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/concepts/concept-0040.md +0 -0
  96. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/concepts/concept-0041.md +0 -0
  97. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/concepts/concept-0042.md +0 -0
  98. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/concepts/concept-0043.md +0 -0
  99. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/concepts/concept-0044.md +0 -0
  100. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/concepts/concept-0045.md +0 -0
  101. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/concepts/concept-0082.md +0 -0
  102. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/concepts/concept-0085.md +0 -0
  103. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/concepts/concept-0086.md +0 -0
  104. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/constraints/constraint-0016.md +0 -0
  105. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/constraints/constraint-0017.md +0 -0
  106. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/constraints/constraint-0018.md +0 -0
  107. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/constraints/constraint-0019.md +0 -0
  108. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/contexts/context-0020.md +0 -0
  109. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/contexts/context-0021.md +0 -0
  110. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/contexts/context-0022.md +0 -0
  111. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/contexts/context-0023.md +0 -0
  112. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/decisions/adr-0046.md +0 -0
  113. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/decisions/adr-0047.md +0 -0
  114. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/decisions/adr-0048.md +0 -0
  115. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/decisions/adr-0049.md +0 -0
  116. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/decisions/adr-0050.md +0 -0
  117. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/decisions/adr-0051.md +0 -0
  118. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/deployment/deploy-0039.md +0 -0
  119. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/glossary/glossary-0061.md +0 -0
  120. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/glossary/glossary-0062.md +0 -0
  121. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/glossary/glossary-0063.md +0 -0
  122. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/glossary/glossary-0064.md +0 -0
  123. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/glossary/glossary-0065.md +0 -0
  124. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/glossary/glossary-0066.md +0 -0
  125. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/glossary/glossary-0067.md +0 -0
  126. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/glossary/glossary-0068.md +0 -0
  127. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/glossary/glossary-0069.md +0 -0
  128. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/glossary/glossary-0070.md +0 -0
  129. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/glossary/glossary-0071.md +0 -0
  130. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/glossary/glossary-0072.md +0 -0
  131. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/glossary/glossary-0073.md +0 -0
  132. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/quality_requirements/quality-0052.md +0 -0
  133. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/quality_requirements/quality-0053.md +0 -0
  134. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/quality_requirements/quality-0054.md +0 -0
  135. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/quality_requirements/quality-0055.md +0 -0
  136. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/quality_requirements/quality-0056.md +0 -0
  137. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/requirements/content-0013.md +0 -0
  138. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/requirements/content-0014.md +0 -0
  139. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/requirements/content-0015.md +0 -0
  140. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/risks/risk-0057.md +0 -0
  141. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/risks/risk-0058.md +0 -0
  142. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/risks/risk-0059.md +0 -0
  143. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/risks/risk-0060.md +0 -0
  144. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/runtime/runtime-0035.md +0 -0
  145. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/runtime/runtime-0036.md +0 -0
  146. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/runtime/runtime-0037.md +0 -0
  147. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/runtime/runtime-0038.md +0 -0
  148. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/runtime/runtime-0074.md +0 -0
  149. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/runtime/runtime-0075.md +0 -0
  150. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/runtime/runtime-0077.md +0 -0
  151. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/runtime/runtime-0078.md +0 -0
  152. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/runtime/runtime-0087.md +0 -0
  153. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/runtime/runtime-0088.md +0 -0
  154. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/stakeholders/content-0079.md +0 -0
  155. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/stakeholders/content-0080.md +0 -0
  156. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/strategy/strategy-0024.md +0 -0
  157. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/strategy/strategy-0025.md +0 -0
  158. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/strategy/strategy-0026.md +0 -0
  159. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/strategy/strategy-0027.md +0 -0
  160. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/records/strategy/strategy-0028.md +0 -0
  161. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/source-state.json +0 -0
  162. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/data/storage.yaml +0 -0
  163. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/archledger/migrations/migration-66baa70bad8a0bb5ae852133.json +0 -0
  164. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/documentledger/.ledger-project.toml +0 -0
  165. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/documentledger/config.toml +0 -0
  166. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/documentledger/data/.ledger-project.toml +0 -0
  167. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/documentledger/data/docs/docs-api-md-9eddf4dc.yaml +0 -0
  168. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/documentledger/data/docs/docs-architecture-taskledger-split-md-63034c0d.yaml +0 -0
  169. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/documentledger/data/docs/docs-command-contract-md-abe6f6d9.yaml +0 -0
  170. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/documentledger/data/docs/docs-full-task-cycle-md-721181f0.yaml +0 -0
  171. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/documentledger/data/docs/docs-multi-repo-md-929e47a9.yaml +0 -0
  172. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/documentledger/data/docs/docs-public-surface-md-c1b8772f.yaml +0 -0
  173. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/documentledger/data/docs/docs-service-boundary-whitelist-md-800b76f5.yaml +0 -0
  174. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/documentledger/data/docs/docs-sync-md-a29422f3.yaml +0 -0
  175. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/documentledger/data/docs/docs-transfer-md-f8532303.yaml +0 -0
  176. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/documentledger/data/docs/docs-usage-md-72376d0b.yaml +0 -0
  177. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/documentledger/data/scan.yaml +0 -0
  178. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/documentledger/data/source-index.json +0 -0
  179. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/documentledger/data/storage.yaml +0 -0
  180. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/ledger.toml +0 -0
  181. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/migrations/documentledger-bb67fdd8e51cff33.toml +0 -0
  182. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/.ledger-project.toml +0 -0
  183. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/config.toml +0 -0
  184. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/.ledger-project.toml +0 -0
  185. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0001.md +0 -0
  186. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0002.md +0 -0
  187. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0003.md +0 -0
  188. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0004.md +0 -0
  189. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0005.md +0 -0
  190. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0006.md +0 -0
  191. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0007.md +0 -0
  192. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0008.md +0 -0
  193. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0009.md +0 -0
  194. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0010.md +0 -0
  195. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0011.md +0 -0
  196. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0012.md +0 -0
  197. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0013.md +0 -0
  198. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0014.md +0 -0
  199. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0015.md +0 -0
  200. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0016.md +0 -0
  201. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0017.md +0 -0
  202. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0018.md +0 -0
  203. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0019.md +0 -0
  204. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0020.md +0 -0
  205. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0021.md +0 -0
  206. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0022.md +0 -0
  207. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0023.md +0 -0
  208. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/release.md +0 -0
  209. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/entries/entry-0001.md +0 -0
  210. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/entries/entry-0002.md +0 -0
  211. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/entries/entry-0003.md +0 -0
  212. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/entries/entry-0004.md +0 -0
  213. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/entries/entry-0005.md +0 -0
  214. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/release.md +0 -0
  215. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.2/entries/entry-0001.md +0 -0
  216. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.2/entries/entry-0002.md +0 -0
  217. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.2/entries/entry-0003.md +0 -0
  218. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.2/entries/entry-0004.md +0 -0
  219. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.2/release.md +0 -0
  220. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.3/audit/commit-audit.yaml +0 -0
  221. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.3/entries/entry-0001.md +0 -0
  222. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.3/release.md +0 -0
  223. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.4/audit/commit-audit.yaml +0 -0
  224. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.4/entries/entry-0001.md +0 -0
  225. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.4/entries/entry-0002.md +0 -0
  226. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.4/entries/entry-0003.md +0 -0
  227. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.4/release.md +0 -0
  228. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.5/audit/commit-audit.yaml +0 -0
  229. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.5/entries/entry-0001.md +0 -0
  230. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.5/entries/entry-0002.md +0 -0
  231. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.5/entries/entry-0003.md +0 -0
  232. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.5/release.md +0 -0
  233. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/releaseledger/write.lock +0 -0
  234. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/task/config.toml +0 -0
  235. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/taskledger/.ledger-project.toml +0 -0
  236. {taskledger-0.6.5 → taskledger-0.6.7}/.ledger/taskledger/config.toml +0 -0
  237. {taskledger-0.6.5 → taskledger-0.6.7}/.planledger.toml +0 -0
  238. {taskledger-0.6.5 → taskledger-0.6.7}/.pre-commit-config.yaml +0 -0
  239. {taskledger-0.6.5 → taskledger-0.6.7}/.readthedocs.yaml +0 -0
  240. {taskledger-0.6.5 → taskledger-0.6.7}/.ruff.toml +0 -0
  241. {taskledger-0.6.5 → taskledger-0.6.7}/AGENTS.md +0 -0
  242. {taskledger-0.6.5 → taskledger-0.6.7}/LICENSE +0 -0
  243. {taskledger-0.6.5 → taskledger-0.6.7}/Makefile +0 -0
  244. {taskledger-0.6.5 → taskledger-0.6.7}/docs/Makefile +0 -0
  245. {taskledger-0.6.5 → taskledger-0.6.7}/docs/architecture.md +0 -0
  246. {taskledger-0.6.5 → taskledger-0.6.7}/docs/architecture_taskledger_split.md +0 -0
  247. {taskledger-0.6.5 → taskledger-0.6.7}/docs/build.sh +0 -0
  248. {taskledger-0.6.5 → taskledger-0.6.7}/docs/conf.py +0 -0
  249. {taskledger-0.6.5 → taskledger-0.6.7}/docs/documentation_freshness.md +0 -0
  250. {taskledger-0.6.5 → taskledger-0.6.7}/docs/index.md +0 -0
  251. {taskledger-0.6.5 → taskledger-0.6.7}/docs/multi_repo.md +0 -0
  252. {taskledger-0.6.5 → taskledger-0.6.7}/docs/release_checklist.md +0 -0
  253. {taskledger-0.6.5 → taskledger-0.6.7}/docs/requirements.txt +0 -0
  254. {taskledger-0.6.5 → taskledger-0.6.7}/pyproject.toml +0 -0
  255. {taskledger-0.6.5 → taskledger-0.6.7}/requirements/manifest.json +0 -0
  256. {taskledger-0.6.5 → taskledger-0.6.7}/scripts/find_code_clones.py +0 -0
  257. {taskledger-0.6.5 → taskledger-0.6.7}/setup.cfg +0 -0
  258. {taskledger-0.6.5 → taskledger-0.6.7}/specmason.toml +0 -0
  259. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/README.md +0 -0
  260. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/UNMAPPED_TESTS.md +0 -0
  261. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/evidence/.gitkeep +0 -0
  262. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/evidence/taskledger-test-feature-coverage.json +0 -0
  263. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/.gitkeep +0 -0
  264. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/active_task/active-task.feature +0 -0
  265. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/actor_harness_state/actor-harness-state.feature +0 -0
  266. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/actor_resolution/actor-resolution.feature +0 -0
  267. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/agent_command_logging/agent-command-logging.feature +0 -0
  268. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/agent_session_protocol/agent-session-protocol.feature +0 -0
  269. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/atomic_fast_io/atomic-fast-io.feature +0 -0
  270. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/cli_command_contract/cli-command-contract.feature +0 -0
  271. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/cli_import_resilience/cli-import-resilience.feature +0 -0
  272. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/code_reviews/code-reviews.feature +0 -0
  273. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/command_example_linter/command-example-linter.feature +0 -0
  274. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/command_inventory/command-inventory.feature +0 -0
  275. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/command_runner/command-runner.feature +0 -0
  276. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/compact_mutation_output/compact-mutation-output.feature +0 -0
  277. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/config_cli/config-cli.feature +0 -0
  278. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/delta_remaining_contracts/delta-remaining-contracts.feature +0 -0
  279. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/docs_and_skill/docs-and-skill.feature +0 -0
  280. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/doctor/doctor.feature +0 -0
  281. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/domain_policies/domain-policies.feature +0 -0
  282. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/event_logging_config/event-logging-config.feature +0 -0
  283. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/events/events.feature +0 -0
  284. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/file_link_snapshots/file-link-snapshots.feature +0 -0
  285. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/find_code_clones_script/find-code-clones-script.feature +0 -0
  286. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/handoff_lifecycle/handoff-lifecycle.feature +0 -0
  287. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/help_subprocess/help-subprocess.feature +0 -0
  288. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/implementation_change_scan/implementation-change-scan.feature +0 -0
  289. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/implementation_checks/implementation-checks.feature +0 -0
  290. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/json_contracts/json-contracts.feature +0 -0
  291. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/legacy_cleanup_contracts/legacy-cleanup-contracts.feature +0 -0
  292. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/lifecycle_policies/lifecycle-policies.feature +0 -0
  293. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/lock_diagnostics/lock-diagnostics.feature +0 -0
  294. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/locks_audit/locks-audit.feature +0 -0
  295. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/models_v1_schema/models-v1-schema.feature +0 -0
  296. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/monitor/monitor.feature +0 -0
  297. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/next_action_expired_lock/next-action-expired-lock.feature +0 -0
  298. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/no_log_feature/no-log-feature.feature +0 -0
  299. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/plan_approval_contract/plan-approval-contract.feature +0 -0
  300. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/plan_lint/plan-lint.feature +0 -0
  301. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/plan_review/plan-review.feature +0 -0
  302. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/plan_revision_workflow/plan-revision-workflow.feature +0 -0
  303. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/plan_todo_materialization/plan-todo-materialization.feature +0 -0
  304. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/project_root_config/project-root-config.feature +0 -0
  305. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/question_add_many/question-add-many.feature +0 -0
  306. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/question_filter_answers/question-filter-answers.feature +0 -0
  307. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/question_plan_regeneration/question-plan-regeneration.feature +0 -0
  308. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/ready_work/ready-work.feature +0 -0
  309. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/release_changelog/release-changelog.feature +0 -0
  310. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/search/search.feature +0 -0
  311. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/service_boundaries/service-boundaries.feature +0 -0
  312. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/services_dashboard/services-dashboard.feature +0 -0
  313. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/sidecar_collections/sidecar-collections.feature +0 -0
  314. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/storage_bundle_layout/storage-bundle-layout.feature +0 -0
  315. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/storage_common/storage-common.feature +0 -0
  316. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/storage_init/storage-init.feature +0 -0
  317. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/storage_migration/storage-migration.feature +0 -0
  318. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/storage_repos/storage-repos.feature +0 -0
  319. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/storage_sync/storage-sync.feature +0 -0
  320. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/sync_git/sync-git.feature +0 -0
  321. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/task_archive/archive.feature +0 -0
  322. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/task_events/events.feature +0 -0
  323. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/task_markdown_export/markdown-export.feature +0 -0
  324. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/task_report/report.feature +0 -0
  325. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/taskledger_branch_scoped_ledgers/taskledger-branch-scoped-ledgers.feature +0 -0
  326. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/taskledger_cli_api_parity/taskledger-cli-api-parity.feature +0 -0
  327. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/taskledger_v2_cli/taskledger-v2-cli.feature +0 -0
  328. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/taskledger_v2_exchange/taskledger-v2-exchange.feature +0 -0
  329. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/tasks_service_static/tasks-service-static.feature +0 -0
  330. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/todo_implementation_gate/todo-implementation-gate.feature +0 -0
  331. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/trace/trace.feature +0 -0
  332. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/tree_command/tree-command.feature +0 -0
  333. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/usage_cli/usage-cli.feature +0 -0
  334. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/worker_pipeline_cli/worker-pipeline-cli.feature +0 -0
  335. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/worker_pipeline_config/worker-pipeline-config.feature +0 -0
  336. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/worker_pipeline_context/worker-pipeline-context.feature +0 -0
  337. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/worker_pipeline_handoff/worker-pipeline-handoff.feature +0 -0
  338. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/worker_pipeline_plan_template/worker-pipeline-plan-template.feature +0 -0
  339. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/worker_pipeline_todos/worker-pipeline-todos.feature +0 -0
  340. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/features/workflow_guidance/workflow-guidance.feature +0 -0
  341. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/manifest.json +0 -0
  342. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/mappings/.gitkeep +0 -0
  343. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/mappings/intentional-unmapped.json +0 -0
  344. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/reports/specmason/.gitkeep +0 -0
  345. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/reports/specmason/coverage.json +0 -0
  346. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/reports/specmason/coverage.md +0 -0
  347. {taskledger-0.6.5 → taskledger-0.6.7}/specs/behavior/reports/specmason/mappings.json +0 -0
  348. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/__init__.py +0 -0
  349. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/__main__.py +0 -0
  350. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/api/__init__.py +0 -0
  351. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/api/handoff.py +0 -0
  352. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/api/introductions.py +0 -0
  353. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/api/locks.py +0 -0
  354. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/api/plans.py +0 -0
  355. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/api/project.py +0 -0
  356. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/api/questions.py +0 -0
  357. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/api/releases.py +0 -0
  358. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/api/repair.py +0 -0
  359. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/api/reviews.py +0 -0
  360. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/api/search.py +0 -0
  361. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/api/storage.py +0 -0
  362. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/api/sync.py +0 -0
  363. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/api/tasks.py +0 -0
  364. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli.py +0 -0
  365. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_actor.py +0 -0
  366. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_archive.py +0 -0
  367. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_common.py +0 -0
  368. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_config.py +0 -0
  369. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_help.py +0 -0
  370. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_implement.py +0 -0
  371. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_ledger.py +0 -0
  372. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_migrate.py +0 -0
  373. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_misc.py +0 -0
  374. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_pipeline.py +0 -0
  375. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_plan.py +0 -0
  376. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_question.py +0 -0
  377. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_ref.py +0 -0
  378. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_release.py +0 -0
  379. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_review.py +0 -0
  380. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_runtime.py +0 -0
  381. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_storage.py +0 -0
  382. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_sync.py +0 -0
  383. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_task.py +0 -0
  384. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/cli_trace.py +0 -0
  385. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/compat/__init__.py +0 -0
  386. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/compat/ledgercore.py +0 -0
  387. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/__init__.py +0 -0
  388. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/_model_utils.py +0 -0
  389. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/active_state.py +0 -0
  390. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/actor.py +0 -0
  391. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/change.py +0 -0
  392. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/check.py +0 -0
  393. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/event.py +0 -0
  394. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/handoff.py +0 -0
  395. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/lock.py +0 -0
  396. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/models.py +0 -0
  397. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/plan.py +0 -0
  398. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/policies.py +0 -0
  399. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/question.py +0 -0
  400. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/release.py +0 -0
  401. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/review.py +0 -0
  402. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/run.py +0 -0
  403. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/sidecars.py +0 -0
  404. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/states.py +0 -0
  405. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/domain/task.py +0 -0
  406. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/errors.py +0 -0
  407. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/ids.py +0 -0
  408. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/launcher.py +0 -0
  409. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/migrations/__init__.py +0 -0
  410. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/migrations/hooks.py +0 -0
  411. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/py.typed +0 -0
  412. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/refs.py +0 -0
  413. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/search.py +0 -0
  414. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/__init__.py +0 -0
  415. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/actors.py +0 -0
  416. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/check_tracking.py +0 -0
  417. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/code_review.py +0 -0
  418. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/command_runner.py +0 -0
  419. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/dashboard.py +0 -0
  420. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/doctor_checks/migration_checks.py +0 -0
  421. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/doctor_checks/project_scan.py +0 -0
  422. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/doctor_checks/task_checks.py +0 -0
  423. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/event_logging.py +0 -0
  424. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/file_links.py +0 -0
  425. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/git_utils.py +0 -0
  426. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/handoff_lifecycle.py +0 -0
  427. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/lock_diagnostics.py +0 -0
  428. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/lock_inventory.py +0 -0
  429. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/monitor.py +0 -0
  430. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/navigation.py +0 -0
  431. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/next_action_logic.py +0 -0
  432. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/next_action_model.py +0 -0
  433. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/next_action_payload.py +0 -0
  434. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/phase5_lock_transfer.py +0 -0
  435. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/plan_editing.py +0 -0
  436. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/plan_hash.py +0 -0
  437. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/plan_input.py +0 -0
  438. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/plan_lint.py +0 -0
  439. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/plan_materialization.py +0 -0
  440. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/plan_review.py +0 -0
  441. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/planning_flow.py +0 -0
  442. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/ready_work.py +0 -0
  443. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/releases.py +0 -0
  444. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/run_store.py +0 -0
  445. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/runtime_info.py +0 -0
  446. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/storage_locations.py +0 -0
  447. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/storage_migration.py +0 -0
  448. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/task_archive.py +0 -0
  449. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/task_collections.py +0 -0
  450. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/task_events.py +0 -0
  451. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/task_export.py +0 -0
  452. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/task_lifecycle.py +0 -0
  453. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/task_queries.py +0 -0
  454. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/task_repair.py +0 -0
  455. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/task_reports.py +0 -0
  456. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/trace.py +0 -0
  457. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/tree.py +0 -0
  458. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/usage.py +0 -0
  459. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/validation.py +0 -0
  460. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/worker_pipeline.py +0 -0
  461. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/services/workspace_snapshot.py +0 -0
  462. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/__init__.py +0 -0
  463. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/atomic.py +0 -0
  464. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/common.py +0 -0
  465. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/events.py +0 -0
  466. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/frontmatter.py +0 -0
  467. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/index_cache.py +0 -0
  468. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/indexes.py +0 -0
  469. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/init.py +0 -0
  470. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/layout_migration.py +0 -0
  471. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/ledger_config.py +0 -0
  472. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/ledger_local_config.py +0 -0
  473. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/ledger_manifest.py +0 -0
  474. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/ledgercore_backend.py +0 -0
  475. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/locks.py +0 -0
  476. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/meta.py +0 -0
  477. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/migrations.py +0 -0
  478. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/paths.py +0 -0
  479. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/project_binding.py +0 -0
  480. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/project_context.py +0 -0
  481. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/project_identity.py +0 -0
  482. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/repos.py +0 -0
  483. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/sidecar_index.py +0 -0
  484. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/task_ids.py +0 -0
  485. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/task_index.py +0 -0
  486. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/task_store.py +0 -0
  487. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/taskledger_migration.py +0 -0
  488. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/toml_edit.py +0 -0
  489. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/worker_pipeline_config.py +0 -0
  490. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/storage/yaml_store.py +0 -0
  491. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger/timeutils.py +0 -0
  492. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger.egg-info/dependency_links.txt +0 -0
  493. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger.egg-info/entry_points.txt +0 -0
  494. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger.egg-info/requires.txt +0 -0
  495. {taskledger-0.6.5 → taskledger-0.6.7}/taskledger.egg-info/top_level.txt +0 -0
  496. {taskledger-0.6.5 → taskledger-0.6.7}/tests/__init__.py +0 -0
  497. {taskledger-0.6.5 → taskledger-0.6.7}/tests/conftest.py +0 -0
  498. {taskledger-0.6.5 → taskledger-0.6.7}/tests/support/__init__.py +0 -0
  499. {taskledger-0.6.5 → taskledger-0.6.7}/tests/support/builders.py +0 -0
  500. {taskledger-0.6.5 → taskledger-0.6.7}/tests/support/fake_command_runner.py +0 -0
  501. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_active_task.py +0 -0
  502. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_actor_harness_state.py +0 -0
  503. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_actor_resolution.py +0 -0
  504. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_agent_session_protocol.py +0 -0
  505. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_atomic_fast_io.py +0 -0
  506. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_canonical_config_split.py +0 -0
  507. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_canonical_layout_migration.py +0 -0
  508. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_canonical_mount_paths.py +0 -0
  509. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_canonical_project_boundary.py +0 -0
  510. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_canonical_project_context.py +0 -0
  511. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_cli_command_contract.py +0 -0
  512. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_cli_import_resilience.py +0 -0
  513. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_cli_runner_compatibility.py +0 -0
  514. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_code_reviews.py +0 -0
  515. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_command_example_linter.py +0 -0
  516. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_command_runner.py +0 -0
  517. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_compact_mutation_output.py +0 -0
  518. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_delta_remaining_contracts.py +0 -0
  519. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_domain_policies.py +0 -0
  520. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_error_contracts.py +0 -0
  521. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_event_logging_config.py +0 -0
  522. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_events.py +0 -0
  523. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_file_link_snapshots.py +0 -0
  524. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_find_code_clones_script.py +0 -0
  525. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_handoff_lifecycle.py +0 -0
  526. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_help_subprocess.py +0 -0
  527. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_implementation_change_scan.py +0 -0
  528. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_implementation_checks.py +0 -0
  529. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_import_boundaries.py +0 -0
  530. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_indexes.py +0 -0
  531. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_indexes_cache_recovery.py +0 -0
  532. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_json_contracts.py +0 -0
  533. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_ledger_manifest_mutation.py +0 -0
  534. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_ledgercore_compat.py +0 -0
  535. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_ledgercore_dependency.py +0 -0
  536. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_legacy_cleanup_contracts.py +0 -0
  537. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_lifecycle_policies.py +0 -0
  538. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_lock_diagnostics.py +0 -0
  539. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_lock_inventory.py +0 -0
  540. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_locks_audit.py +0 -0
  541. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_models_v1_schema.py +0 -0
  542. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_monitor.py +0 -0
  543. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_next_action_expired_lock.py +0 -0
  544. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_no_log_feature.py +0 -0
  545. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_performance_caching.py +0 -0
  546. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_plan_approval_contract.py +0 -0
  547. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_plan_input.py +0 -0
  548. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_plan_input_cli.py +0 -0
  549. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_plan_lint.py +0 -0
  550. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_plan_review.py +0 -0
  551. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_plan_revision_workflow.py +0 -0
  552. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_plan_todo_materialization.py +0 -0
  553. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_question_add_many.py +0 -0
  554. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_question_filter_answers.py +0 -0
  555. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_question_plan_regeneration.py +0 -0
  556. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_ready_work.py +0 -0
  557. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_release_changelog.py +0 -0
  558. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_resource_refs.py +0 -0
  559. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_runtime_info.py +0 -0
  560. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_search.py +0 -0
  561. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_services_dashboard.py +0 -0
  562. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_shared_tool_ledger_storage.py +0 -0
  563. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_sidecar_collections.py +0 -0
  564. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_storage_bundle_layout.py +0 -0
  565. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_storage_common.py +0 -0
  566. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_storage_init.py +0 -0
  567. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_storage_migration.py +0 -0
  568. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_storage_migration_coordinator.py +0 -0
  569. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_storage_repos.py +0 -0
  570. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_storage_sync.py +0 -0
  571. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_storage_where_repair.py +0 -0
  572. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_storage_yaml_store.py +0 -0
  573. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_task_archive.py +0 -0
  574. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_task_events.py +0 -0
  575. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_task_ids.py +0 -0
  576. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_task_markdown_export.py +0 -0
  577. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_task_report.py +0 -0
  578. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_taskledger_branch_scoped_ledgers.py +0 -0
  579. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_taskledger_canonical_sync.py +0 -0
  580. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_taskledger_cli_api_parity.py +0 -0
  581. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_taskledger_ledgercore_050_adapter.py +0 -0
  582. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_taskledger_ledgercore_050_context.py +0 -0
  583. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_taskledger_ledgercore_050_migration_topology.py +0 -0
  584. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_taskledger_ledgercore_050_sync.py +0 -0
  585. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_taskledger_migration_v3.py +0 -0
  586. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_taskledger_sibling_migration.py +0 -0
  587. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_taskledger_sibling_storage.py +0 -0
  588. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_taskledger_storage_commands_v3.py +0 -0
  589. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_taskledger_v2_cli.py +0 -0
  590. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_tasks_service_static.py +0 -0
  591. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_todo_implementation_gate.py +0 -0
  592. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_trace.py +0 -0
  593. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_tree_command.py +0 -0
  594. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_usage_cli.py +0 -0
  595. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_validation_git_snapshot_recovery.py +0 -0
  596. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_worker_pipeline_cli.py +0 -0
  597. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_worker_pipeline_config.py +0 -0
  598. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_worker_pipeline_handoff.py +0 -0
  599. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_worker_pipeline_plan_template.py +0 -0
  600. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_worker_pipeline_todos.py +0 -0
  601. {taskledger-0.6.5 → taskledger-0.6.7}/tests/test_workspace_snapshot.py +0 -0
@@ -38,3 +38,15 @@
38
38
  {"data":{"updated_rows":3},"event":"audit.updated","event_id":"event-0038","record_revisions":{"commit_audit_sheet":2},"release_version":"v0.6.5","schema_version":2}
39
39
  {"data":{"entry_ids":["entry-0001","entry-0002","entry-0003"],"synced_audit_rows":3},"event":"entry.batch_added","event_id":"event-0039","record_revisions":{"commit_audit_sheet":3,"entry:v0.6.5/entry-0001":1,"entry:v0.6.5/entry-0002":1,"entry:v0.6.5/entry-0003":1,"release:v0.6.5":3},"release_version":"v0.6.5","schema_version":2}
40
40
  {"data":{"released_at":"2026-08-22"},"event":"release.finalized","event_id":"event-0040","record_revisions":{"release:v0.6.5":4},"release_version":"v0.6.5","schema_version":2}
41
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0041","record_revisions":{"release:v0.6.6":1},"release_version":"v0.6.6","schema_version":2}
42
+ {"data":{"fields":["changelog_file","git_base_ref","git_base_sha","git_commit_count","git_head_ref","git_head_sha","git_range"]},"event":"release.updated","event_id":"event-0042","record_revisions":{"release:v0.6.6":2},"release_version":"v0.6.6","schema_version":2}
43
+ {"data":{"row_count":1},"event":"audit.created","event_id":"event-0043","record_revisions":{"commit_audit_sheet":1},"release_version":"v0.6.6","schema_version":2}
44
+ {"data":{"updated_rows":1},"event":"audit.updated","event_id":"event-0044","record_revisions":{"commit_audit_sheet":2},"release_version":"v0.6.6","schema_version":2}
45
+ {"data":{"entry_ids":["entry-0001"],"synced_audit_rows":1},"event":"entry.batch_added","event_id":"event-0045","record_revisions":{"commit_audit_sheet":3,"entry:v0.6.6/entry-0001":1,"release:v0.6.6":3},"release_version":"v0.6.6","schema_version":2}
46
+ {"data":{"released_at":"2026-09-04"},"event":"release.finalized","event_id":"event-0046","record_revisions":{"release:v0.6.6":4},"release_version":"v0.6.6","schema_version":2}
47
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0047","record_revisions":{"release:v0.6.7":1},"release_version":"v0.6.7","schema_version":2}
48
+ {"data":{"fields":["git_base_ref","git_base_sha","git_commit_count","git_head_ref","git_head_sha","git_range"]},"event":"release.updated","event_id":"event-0048","record_revisions":{"release:v0.6.7":2},"release_version":"v0.6.7","schema_version":2}
49
+ {"data":{"row_count":1},"event":"audit.created","event_id":"event-0049","record_revisions":{"commit_audit_sheet":1},"release_version":"v0.6.7","schema_version":2}
50
+ {"data":{"updated_rows":1},"event":"audit.updated","event_id":"event-0050","record_revisions":{"commit_audit_sheet":2},"release_version":"v0.6.7","schema_version":2}
51
+ {"data":{"entry_ids":["entry-0001"],"synced_audit_rows":1},"event":"entry.batch_added","event_id":"event-0051","record_revisions":{"commit_audit_sheet":3,"entry:v0.6.7/entry-0001":1,"release:v0.6.7":3},"release_version":"v0.6.7","schema_version":2}
52
+ {"data":{"released_at":"2026-09-09"},"event":"release.finalized","event_id":"event-0052","record_revisions":{"release:v0.6.7":4},"release_version":"v0.6.7","schema_version":2}
@@ -0,0 +1,87 @@
1
+ schema_version: 1
2
+ object_type: commit_audit_sheet
3
+ versioning:
4
+ schema_version: 1
5
+ revision: 3
6
+ release_version: v0.6.6
7
+ git_base_ref: v0.6.5
8
+ git_base_sha: 412b465c3900d28b9f0cc8eb2ef78f10bb8340b3
9
+ git_head_ref: HEAD
10
+ git_head_sha: 307d68a1cbbcc1639bd18affdeefb69064af3a6e
11
+ git_range: 412b465c3900d28b9f0cc8eb2ef78f10bb8340b3..307d68a1cbbcc1639bd18affdeefb69064af3a6e
12
+ commit_count: 1
13
+ rows:
14
+ - sha: 307d68a1cbbcc1639bd18affdeefb69064af3a6e
15
+ source_ref: git:307d68a1cbbcc1639bd18affdeefb69064af3a6e
16
+ short_sha: 307d68a
17
+ changed_paths:
18
+ - API.md
19
+ - README.md
20
+ - docs/api.md
21
+ - docs/command_contract.md
22
+ - docs/full_task_cycle.md
23
+ - docs/public_surface.md
24
+ - docs/service_boundary_whitelist.md
25
+ - docs/usage.md
26
+ - skills/taskledger/SKILL.md
27
+ - taskledger/api/task_runs.py
28
+ - taskledger/cli_validate.py
29
+ - taskledger/command_inventory.py
30
+ - taskledger/services/agent_transcripts.py
31
+ - taskledger/services/handoff.py
32
+ - taskledger/services/tasks.py
33
+ - taskledger/services/validation_flow.py
34
+ - taskledger/services/worker_context.py
35
+ - taskledger/services/workflow_guidance.py
36
+ - tests/test_agent_command_logging.py
37
+ - tests/test_command_inventory.py
38
+ - tests/test_docs_and_skill.py
39
+ - tests/test_service_boundaries.py
40
+ - tests/test_validation_command.py
41
+ - tests/test_worker_pipeline_context.py
42
+ - tests/test_workflow_guidance.py
43
+ stats:
44
+ files_changed: 0
45
+ insertions: 475
46
+ deletions: 11
47
+ inspected: true
48
+ inspected_paths:
49
+ - API.md
50
+ - README.md
51
+ - docs/api.md
52
+ - docs/command_contract.md
53
+ - docs/full_task_cycle.md
54
+ - docs/public_surface.md
55
+ - docs/service_boundary_whitelist.md
56
+ - docs/usage.md
57
+ - skills/taskledger/SKILL.md
58
+ - taskledger/api/task_runs.py
59
+ - taskledger/cli_validate.py
60
+ - taskledger/command_inventory.py
61
+ - taskledger/services/agent_transcripts.py
62
+ - taskledger/services/handoff.py
63
+ - taskledger/services/tasks.py
64
+ - taskledger/services/validation_flow.py
65
+ - taskledger/services/worker_context.py
66
+ - taskledger/services/workflow_guidance.py
67
+ - tests/test_agent_command_logging.py
68
+ - tests/test_command_inventory.py
69
+ - tests/test_docs_and_skill.py
70
+ - tests/test_service_boundaries.py
71
+ - tests/test_validation_command.py
72
+ - tests/test_worker_pipeline_context.py
73
+ - tests/test_workflow_guidance.py
74
+ observed_behavior:
75
+ Adds validate command to the CLI and public task-run API; during
76
+ an active validation run it executes managed argv, records cwd, exit status, stdout,
77
+ stderr, transcript, and large-output artifacts, while leaving criterion status
78
+ classification explicit. Adds validator guidance and documentation distinguishing
79
+ probe/setup failures from target-behavior failures, with focused regression coverage.
80
+ public_impact: public
81
+ decision: accepted
82
+ stale: false
83
+ evidence_subject: "feat: improved validation command features"
84
+ target_entry_id: entry-0001
85
+ notes:
86
+ Reviewed implementation, API, documentation, command inventory, and focused
87
+ tests.
@@ -0,0 +1,52 @@
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.6
9
+ kind: added
10
+ summary:
11
+ Added managed validation command evidence with durable output capture and
12
+ explicit probe-failure classification
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:307d68a1cbbcc1639bd18affdeefb69064af3a6e
18
+ paths:
19
+ - API.md
20
+ - README.md
21
+ - docs/api.md
22
+ - docs/command_contract.md
23
+ - docs/full_task_cycle.md
24
+ - docs/public_surface.md
25
+ - docs/service_boundary_whitelist.md
26
+ - docs/usage.md
27
+ - skills/taskledger/SKILL.md
28
+ - taskledger/api/task_runs.py
29
+ - taskledger/cli_validate.py
30
+ - taskledger/command_inventory.py
31
+ - taskledger/services/agent_transcripts.py
32
+ - taskledger/services/handoff.py
33
+ - taskledger/services/tasks.py
34
+ - taskledger/services/validation_flow.py
35
+ - taskledger/services/worker_context.py
36
+ - taskledger/services/workflow_guidance.py
37
+ - tests/test_agent_command_logging.py
38
+ - tests/test_command_inventory.py
39
+ - tests/test_docs_and_skill.py
40
+ - tests/test_service_boundaries.py
41
+ - tests/test_validation_command.py
42
+ - tests/test_worker_pipeline_context.py
43
+ - tests/test_workflow_guidance.py
44
+ issues: []
45
+ prs: []
46
+ sources:
47
+ - git:307d68a1cbbcc1639bd18affdeefb69064af3a6e
48
+ contributors: []
49
+ breaking: false
50
+ internal: false
51
+ order: 1
52
+ ---
@@ -0,0 +1,27 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 4
7
+ version: v0.6.6
8
+ status: released
9
+ history_state: curated
10
+ title: null
11
+ released_at: "2026-09-04"
12
+ previous_version: v0.6.5
13
+ cancel_reason: null
14
+ superseded_by: null
15
+ changelog_file: docs/changelog.md
16
+ boundary_ref: null
17
+ source_refs: []
18
+ source_count: null
19
+ entry_count: 1
20
+ artifact_count: 0
21
+ git_base_ref: v0.6.5
22
+ git_base_sha: 412b465c3900d28b9f0cc8eb2ef78f10bb8340b3
23
+ git_head_ref: HEAD
24
+ git_head_sha: 307d68a1cbbcc1639bd18affdeefb69064af3a6e
25
+ git_range: 412b465c3900d28b9f0cc8eb2ef78f10bb8340b3..307d68a1cbbcc1639bd18affdeefb69064af3a6e
26
+ git_commit_count: 1
27
+ ---
@@ -0,0 +1,87 @@
1
+ schema_version: 1
2
+ object_type: commit_audit_sheet
3
+ versioning:
4
+ schema_version: 1
5
+ revision: 3
6
+ release_version: v0.6.7
7
+ git_base_ref: v0.6.6
8
+ git_base_sha: f7c915cf9d515ab1c15bdffeb73162340d7534df
9
+ git_head_ref: HEAD
10
+ git_head_sha: 562fc8796f821e312877f0c5b2aa09f5daddb138
11
+ git_range: f7c915cf9d515ab1c15bdffeb73162340d7534df..562fc8796f821e312877f0c5b2aa09f5daddb138
12
+ commit_count: 1
13
+ rows:
14
+ - sha: 562fc8796f821e312877f0c5b2aa09f5daddb138
15
+ source_ref: git:562fc8796f821e312877f0c5b2aa09f5daddb138
16
+ short_sha: 562fc87
17
+ changed_paths:
18
+ - README.md
19
+ - docs/command_contract.md
20
+ - docs/sync.md
21
+ - docs/transfer.md
22
+ - docs/usage.md
23
+ - taskledger/api/config.py
24
+ - taskledger/exchange.py
25
+ - taskledger/services/agent_logging.py
26
+ - taskledger/services/change_tracking.py
27
+ - taskledger/services/doctor.py
28
+ - taskledger/services/doctor_checks/artifact_checks.py
29
+ - taskledger/services/git_sync.py
30
+ - taskledger/services/implementation_flow.py
31
+ - taskledger/services/tasks.py
32
+ - taskledger/services/validation_flow.py
33
+ - taskledger/storage/agent_logs.py
34
+ - taskledger/storage/artifact_policy.py
35
+ - taskledger/storage/project_config.py
36
+ - tests/test_agent_command_logging.py
37
+ - tests/test_artifact_policy.py
38
+ - tests/test_config_cli.py
39
+ - tests/test_doctor.py
40
+ - tests/test_project_root_config.py
41
+ - tests/test_sync_git.py
42
+ - tests/test_taskledger_v2_exchange.py
43
+ - tests/test_validation_command.py
44
+ stats:
45
+ files_changed: 0
46
+ insertions: 700
47
+ deletions: 33
48
+ inspected: true
49
+ inspected_paths:
50
+ - README.md
51
+ - docs/command_contract.md
52
+ - docs/sync.md
53
+ - docs/transfer.md
54
+ - docs/usage.md
55
+ - taskledger/api/config.py
56
+ - taskledger/exchange.py
57
+ - taskledger/services/agent_logging.py
58
+ - taskledger/services/change_tracking.py
59
+ - taskledger/services/doctor.py
60
+ - taskledger/services/doctor_checks/artifact_checks.py
61
+ - taskledger/services/git_sync.py
62
+ - taskledger/services/implementation_flow.py
63
+ - taskledger/services/tasks.py
64
+ - taskledger/services/validation_flow.py
65
+ - taskledger/storage/agent_logs.py
66
+ - taskledger/storage/artifact_policy.py
67
+ - taskledger/storage/project_config.py
68
+ - tests/test_agent_command_logging.py
69
+ - tests/test_artifact_policy.py
70
+ - tests/test_config_cli.py
71
+ - tests/test_doctor.py
72
+ - tests/test_project_root_config.py
73
+ - tests/test_sync_git.py
74
+ - tests/test_taskledger_v2_exchange.py
75
+ - tests/test_validation_command.py
76
+ observed_behavior:
77
+ Added a shared artifact-size policy that bounds stored command
78
+ output to a configurable limit capped at 20,000,000 bytes, preserves UTF-8-safe
79
+ head/tail excerpts with truncation metadata, rejects oversized existing artifacts
80
+ during doctor, export/import, and managed Git sync, and documents the policy with
81
+ regression coverage.
82
+ public_impact: public
83
+ decision: accepted
84
+ stale: false
85
+ evidence_subject: "feat: limit artifact file size"
86
+ target_entry_id: entry-0001
87
+ notes: ""
@@ -0,0 +1,53 @@
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.7
9
+ kind: added
10
+ summary:
11
+ Added configurable artifact limits with UTF-8-safe truncation across command
12
+ evidence, archives, doctor, and Git sync
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:562fc8796f821e312877f0c5b2aa09f5daddb138
18
+ paths:
19
+ - README.md
20
+ - docs/command_contract.md
21
+ - docs/sync.md
22
+ - docs/transfer.md
23
+ - docs/usage.md
24
+ - taskledger/api/config.py
25
+ - taskledger/exchange.py
26
+ - taskledger/services/agent_logging.py
27
+ - taskledger/services/change_tracking.py
28
+ - taskledger/services/doctor.py
29
+ - taskledger/services/doctor_checks/artifact_checks.py
30
+ - taskledger/services/git_sync.py
31
+ - taskledger/services/implementation_flow.py
32
+ - taskledger/services/tasks.py
33
+ - taskledger/services/validation_flow.py
34
+ - taskledger/storage/agent_logs.py
35
+ - taskledger/storage/artifact_policy.py
36
+ - taskledger/storage/project_config.py
37
+ - tests/test_agent_command_logging.py
38
+ - tests/test_artifact_policy.py
39
+ - tests/test_config_cli.py
40
+ - tests/test_doctor.py
41
+ - tests/test_project_root_config.py
42
+ - tests/test_sync_git.py
43
+ - tests/test_taskledger_v2_exchange.py
44
+ - tests/test_validation_command.py
45
+ issues: []
46
+ prs: []
47
+ sources:
48
+ - git:562fc8796f821e312877f0c5b2aa09f5daddb138
49
+ contributors: []
50
+ breaking: false
51
+ internal: false
52
+ order: 1
53
+ ---
@@ -0,0 +1,27 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 4
7
+ version: v0.6.7
8
+ status: released
9
+ history_state: curated
10
+ title: Release v0.6.7
11
+ released_at: "2026-09-09"
12
+ previous_version: v0.6.6
13
+ cancel_reason: null
14
+ superseded_by: null
15
+ changelog_file: null
16
+ boundary_ref: null
17
+ source_refs: []
18
+ source_count: null
19
+ entry_count: 1
20
+ artifact_count: 0
21
+ git_base_ref: v0.6.6
22
+ git_base_sha: f7c915cf9d515ab1c15bdffeb73162340d7534df
23
+ git_head_ref: HEAD
24
+ git_head_sha: 562fc8796f821e312877f0c5b2aa09f5daddb138
25
+ git_range: f7c915cf9d515ab1c15bdffeb73162340d7534df..562fc8796f821e312877f0c5b2aa09f5daddb138
26
+ git_commit_count: 1
27
+ ---
@@ -168,6 +168,7 @@ payload = plan_guidance(Path.cwd(), "task-0001")
168
168
  - `add_change`
169
169
  - `scan_changes`
170
170
  - `run_implementation_command`
171
+ - `run_validation_command`
171
172
  - `finish_implementation`
172
173
  - `show_task_run`
173
174
  - `start_validation`
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: taskledger
3
- Version: 0.6.5
3
+ Version: 0.6.7
4
4
  Summary: Durable project-state storage and CLI for coding workflows
5
5
  Author: Taskledger Contributors
6
6
  Maintainer: Holger Nahrstaedt
@@ -81,7 +81,7 @@ plan start -> plan guidance -> plan template -> plan check -> plan upsert -> pla
81
81
  question add | question add-many | question answer | question answer-many | question status | question answers
82
82
  todo next | todo show | todo done | todo status
83
83
  implement start | implement resume | implement change | implement scan-changes | implement finish
84
- validate start | validate status | validate check | validate finish
84
+ validate start | validate status | validate command | validate check | validate finish
85
85
  review record
86
86
  handoff create | handoff show | handoff claim | handoff close
87
87
  ```
@@ -133,6 +133,8 @@ taskledger file link specs/behavior/features/checkout/payment.feature --kind doc
133
133
  taskledger validate check --criterion ac-0001 --status pass --evidence "pytest tests/test_checkout_payment.py::test_payment_flow"
134
134
  ```
135
135
 
136
+ Validation command failures must be classified before recording a criterion failure. A non-zero command is not automatically a failed acceptance criterion: distinguish a genuine target-behavior failure from a malformed probe or setup failure, repair the probe, and rerun it. Prefer `taskledger validate command -- ...` for durable command evidence, and normalize compared paths against the same explicit project root.
137
+
136
138
  ### Which read command to use
137
139
 
138
140
  | Need | Command |
@@ -835,6 +837,12 @@ Import safety still relies on `project_uuid`, not the name/slug.
835
837
  - `--no-include-bodies` strips record body text (`body` / `context_body`) from exported payloads.
836
838
  - `--include-run-artifacts` embeds task and agent-log artifact files under `artifacts/` in the archive.
837
839
 
840
+ ## Artifact file-size policy
841
+
842
+ Taskledger-owned artifact files are bounded to prevent command output from creating very large ledger blobs. The default and hard ceiling is 20,000,000 bytes per artifact; configure a lower `artifact_max_bytes` value when needed. Oversized command evidence keeps a UTF-8-safe head and tail with an explicit truncation marker, while command execution and exit-code semantics remain unchanged.
843
+
844
+ Archive import/export applies the same policy, and `taskledger doctor` reports legacy oversized artifacts without reading their contents. `taskledger sync git push` performs a preflight before committing or pushing. Taskledger does not use Git LFS or rewrite Git history; repair existing blobs separately.
845
+
838
846
  Cross-machine imports preserve durable task/run data, but imported runtime locks
839
847
  are quarantined by default. After importing an in-progress implementation,
840
848
  run:
@@ -28,7 +28,7 @@ plan start -> plan guidance -> plan template -> plan check -> plan upsert -> pla
28
28
  question add | question add-many | question answer | question answer-many | question status | question answers
29
29
  todo next | todo show | todo done | todo status
30
30
  implement start | implement resume | implement change | implement scan-changes | implement finish
31
- validate start | validate status | validate check | validate finish
31
+ validate start | validate status | validate command | validate check | validate finish
32
32
  review record
33
33
  handoff create | handoff show | handoff claim | handoff close
34
34
  ```
@@ -80,6 +80,8 @@ taskledger file link specs/behavior/features/checkout/payment.feature --kind doc
80
80
  taskledger validate check --criterion ac-0001 --status pass --evidence "pytest tests/test_checkout_payment.py::test_payment_flow"
81
81
  ```
82
82
 
83
+ Validation command failures must be classified before recording a criterion failure. A non-zero command is not automatically a failed acceptance criterion: distinguish a genuine target-behavior failure from a malformed probe or setup failure, repair the probe, and rerun it. Prefer `taskledger validate command -- ...` for durable command evidence, and normalize compared paths against the same explicit project root.
84
+
83
85
  ### Which read command to use
84
86
 
85
87
  | Need | Command |
@@ -782,6 +784,12 @@ Import safety still relies on `project_uuid`, not the name/slug.
782
784
  - `--no-include-bodies` strips record body text (`body` / `context_body`) from exported payloads.
783
785
  - `--include-run-artifacts` embeds task and agent-log artifact files under `artifacts/` in the archive.
784
786
 
787
+ ## Artifact file-size policy
788
+
789
+ Taskledger-owned artifact files are bounded to prevent command output from creating very large ledger blobs. The default and hard ceiling is 20,000,000 bytes per artifact; configure a lower `artifact_max_bytes` value when needed. Oversized command evidence keeps a UTF-8-safe head and tail with an explicit truncation marker, while command execution and exit-code semantics remain unchanged.
790
+
791
+ Archive import/export applies the same policy, and `taskledger doctor` reports legacy oversized artifacts without reading their contents. `taskledger sync git push` performs a preflight before committing or pushing. Taskledger does not use Git LFS or rewrite Git history; repair existing blobs separately.
792
+
785
793
  Cross-machine imports preserve durable task/run data, but imported runtime locks
786
794
  are quarantined by default. After importing an in-progress implementation,
787
795
  run:
@@ -137,6 +137,7 @@ payload = plan_guidance(Path.cwd(), "task-0001")
137
137
  - `add_change`
138
138
  - `scan_changes`
139
139
  - `run_implementation_command`
140
+ - `run_validation_command`
140
141
  - `finish_implementation`
141
142
  - `show_task_run`
142
143
  - `start_validation`
@@ -2,6 +2,22 @@
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.7] - 2026-09-09
6
+
7
+ ### Added
8
+
9
+ - Added configurable artifact limits with UTF-8-safe truncation across command evidence, archives, doctor, and Git sync
10
+
11
+ <!-- generated by releaseledger -->
12
+
13
+ ## [v0.6.6] - 2026-09-04
14
+
15
+ ### Added
16
+
17
+ - Added managed validation command evidence with durable output capture and explicit probe-failure classification
18
+
19
+ <!-- generated by releaseledger -->
20
+
5
21
  ## [v0.6.5] - 2026-08-22
6
22
 
7
23
  ### Added
@@ -176,6 +176,9 @@ Rules:
176
176
  - Links are opaque. Taskledger does not parse or interpret linked files.
177
177
  - Validation evidence is recorded through generic `validate check`.
178
178
 
179
+ - `validate command -- ...` records managed validation command evidence during an active validation run.
180
+ - A non-zero validation command does not create a `ValidationCheck`; explicitly classify and record criteria with `validate check`.
181
+
179
182
  ## Archive import lock policy
180
183
 
181
184
  Archive imports support explicit lock handling:
@@ -448,6 +451,9 @@ shell. They execute the child from the CLI invocation directory, or the explicit
448
451
  `--root` directory, even when Taskledger discovers an ancestor workspace root for
449
452
  ledger state, artifacts, and logs.
450
453
 
454
+ Managed command artifacts are bounded by the project `artifact_max_bytes` setting, defaulting to the 20,000,000-byte hard ceiling. Oversized persisted evidence is marked and retains both its beginning and end; only the durable artifact is truncated, not the child command's exit code or CLI stdout/stderr contract.
455
+ `validate command` uses the same managed execution behavior during an active validation run, but records command evidence only. It never automatically maps a non-zero child exit to a criterion result.
456
+
451
457
  Managed commands preserve the caller environment, but resolve child executable lookup
452
458
  deterministically. A usable inherited `VIRTUAL_ENV` takes precedence. Otherwise
453
459
  Taskledger checks `<command-cwd>/.venv`, `<command-cwd>/venv`, then the workspace
@@ -474,6 +480,8 @@ taskledger plan command -- pytest tests/ -q
474
480
  taskledger plan command --allow-failure -- pytest tests/ -q
475
481
  taskledger implement command -- ruff check --config=.ruff.toml .
476
482
  taskledger implement command --allow-failure -- python -c "raise SystemExit(7)"
483
+ taskledger validate command -- pytest tests/ -q
484
+ taskledger validate command --allow-failure -- python -c "raise SystemExit(7)"
477
485
  ```
478
486
 
479
487
  ## Transcript review modes
@@ -264,6 +264,8 @@ taskledger validate show
264
264
  taskledger validate finish --result passed --summary "Parser fix validated with regression tests."
265
265
  ```
266
266
 
267
+ Use `taskledger validate command -- ...` to preserve validation command cwd, output, exit status, and transcript evidence. A non-zero command is not automatically a failed acceptance criterion. If the command is a malformed probe or setup failure, correct it and rerun before recording criterion status. Only record `fail` after the target behavior was evaluated and failed.
268
+
267
269
  ### If validation finds a bug
268
270
 
269
271
  ```bash
@@ -26,7 +26,7 @@ the normal planning/approval path for agents.
26
26
  - `question add`, `question add-many`, `question answer`, `question answer-many`, `question status`, `question answers`
27
27
  - `todo next`, `todo show`, `todo done`, `todo status`
28
28
  - `implement start`, `implement resume`, `implement change`, `implement scan-changes`, `implement finish`
29
- - `validate start`, `validate status`, `validate check`, `validate finish`
29
+ - `validate start`, `validate status`, `validate command`, `validate check`, `validate finish`
30
30
  - `review record`
31
31
  - `handoff create`, `handoff show`, `handoff claim`, `handoff close`
32
32
 
@@ -79,6 +79,8 @@ Current sanctioned imports:
79
79
  resolves actor/harness context for event metadata.
80
80
  - `taskledger/cli_implement.py:taskledger.services.agent_logging` —
81
81
  Implement command wrapper records managed-shell command failures.
82
+ - `taskledger/cli_validate.py:taskledger.services.agent_logging` — Validation
83
+ command wrapper records managed-shell command failures.
82
84
  - `taskledger/cli_misc.py:taskledger.services.doctor` — Doctor commands
83
85
  still consume doctor service inspectors directly.
84
86
  - `taskledger/cli_pipeline.py:taskledger.services.handoff` — Pipeline
@@ -81,6 +81,10 @@ report project-local vs outside-project dirty paths. `sync git push` commits
81
81
  repository-wide changes by design to match the standard Git workflow. Use
82
82
  `sync git cd` for advanced manual inspection or conflict resolution.
83
83
 
84
+ ## Artifact preflight
85
+
86
+ `taskledger sync git push` checks Taskledger-owned artifact files before staging or committing. It refuses any existing file over the configured `artifact_max_bytes` limit and reports the paths, sizes, limit, and `taskledger doctor` remediation. Plain `git push` remains outside Taskledger's control, and Taskledger does not rewrite history or use Git LFS.
87
+
84
88
  For manual conflict resolution or debugging:
85
89
 
86
90
  ```bash
@@ -13,6 +13,12 @@ machines and harnesses.
13
13
  \- `project.ledger_ref` (exported ledger)
14
14
  - Optional run artifacts under `artifacts/` when `--include-run-artifacts` is set.
15
15
 
16
+ ## Artifact file-size policy
17
+
18
+ Taskledger-owned artifact files default to a 20,000,000-byte hard ceiling. Projects may lower this with `artifact_max_bytes`, but cannot configure an unlimited or larger value. Oversized command output is stored as a UTF-8-safe head/tail excerpt with an explicit byte-count marker; the managed command's output and exit code are unchanged.
19
+
20
+ Import/export enforce the same limit. Run `taskledger doctor` to find existing oversized files; `taskledger sync git push` refuses them before creating a commit. This does not rewrite existing Git history or use Git LFS.
21
+
16
22
  ## Filename policy
17
23
 
18
24
  When no output path is passed to `taskledger export`, taskledger writes into
@@ -592,6 +592,8 @@ 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
+ Use `taskledger validate command -- ...` for durable validation execution evidence. A non-zero command is not automatically a failed acceptance criterion. Classify whether the target behavior was evaluated before recording `fail`; repair malformed cwd, import, fixture, quoting, or path-normalization probes and rerun them first.
596
+
595
597
  When `[agent_logging].enabled = true` in `.ledger/taskledger/config.toml`, `taskledger`
596
598
  records CLI invocations and managed command outputs. Both managed wrappers execute
597
599
  the exact argv after `--` without a shell and from the CLI invocation directory, or
@@ -599,8 +601,8 @@ the explicit `--root` directory. Taskledger may discover an ancestor workspace f
599
601
  ledger state, but that does not change the child's cwd. Human mode displays captured
600
602
  stdout/stderr before the summary. JSON mode contains stdout/stderr and cwd only in
601
603
  the result object. Keep logging opt-in because stdout/stderr may contain sensitive
602
- data. Route task-relevant commands through `plan command` and `implement command`
603
- so their output is included in task transcripts and reports.
604
+ data. Route task-relevant commands through `plan command`, `implement command`, and
605
+ `validate command` so their output is included in task transcripts and reports.
604
606
 
605
607
  Managed commands use a usable inherited Python virtualenv first, then a valid
606
608
  `.venv` or `venv` in the command directory or workspace, preferring the command
@@ -760,6 +762,9 @@ Export include flags are content-affecting:
760
762
  - `--no-include-bodies` removes record body fields from the exported payload.
761
763
  - `--include-run-artifacts` embeds artifact files under `artifacts/` in the archive.
762
764
 
765
+ ## Artifact file-size policy
766
+
767
+ Taskledger-owned artifact files are limited to 20,000,000 bytes by default and may only be lowered with `artifact_max_bytes`. Oversized command evidence retains its head and tail and includes a deterministic truncation marker; it does not change command execution or exit-code behavior. Import/export, doctor, and Taskledger-managed Git push enforce the same policy. Existing Git history is not rewritten and Git LFS is not used.
763
768
  Cross-machine imports preserve durable task/run records but quarantine imported
764
769
  runtime locks by default. For an imported in-progress implementation, run:
765
770
 
@@ -40,7 +40,7 @@ plan start -> plan guidance -> plan template -> plan check -> plan upsert -> pla
40
40
  question add | question add-many | question answer | question answer-many | question status | question answers
41
41
  todo next | todo show | todo done | todo status
42
42
  implement start | implement resume | implement change | implement scan-changes | implement finish
43
- validate start | validate status | validate check | validate finish
43
+ validate start | validate status | validate command | validate check | validate finish
44
44
  review record
45
45
  handoff create | handoff review | handoff show | handoff claim | handoff release | handoff retarget | handoff close
46
46
  ```
@@ -356,13 +356,22 @@ linked-file drift checks.
356
356
  1. `taskledger context --for validation --format markdown`
357
357
  2. `taskledger validate start`
358
358
  3. Check `taskledger validate status` to see current validation state and blockers.
359
- 4. Run verification checks outside taskledger.
359
+ 4. Run verification with `taskledger validate command -- ...` whenever practical.
360
360
  5. Record criterion results: `taskledger validate check --criterion ac-0001 --status pass|fail|warn|not_run --evidence "..."`
361
361
  6. Optionally waive criteria with user authority: `taskledger validate waive --criterion ac-0001 --reason "..."`.
362
362
  7. Check `taskledger validate status` again to confirm all mandatory gates pass.
363
363
  8. Finish with `taskledger validate finish --result passed|failed|blocked --summary "..."`.
364
364
  - For passed runs, prefer a concise done-work summary that can be reused by release-note tooling.
365
365
 
366
+ ### Validation command failure classification
367
+
368
+ A non-zero validation command is not automatically a failed acceptance criterion. Before `validate check --status fail`, determine whether the command actually evaluated the target behavior.
369
+
370
+ - **Target failure:** the check executed correctly and the accepted behavior failed. Record the criterion as `fail`.
371
+ - **probe/setup failure:** the validator command is invalid or could not reach the target behavior, for example because of cwd, imports, quoting, fixtures, or relative/absolute path representation. Correct the probe and rerun. Do not mark the criterion failed solely because the probe was malformed.
372
+ - If durable state is needed while repairing a probe, record the criterion as `not_run` with `--details` explaining the probe problem.
373
+ - For path-set comparisons, normalize both sides against the same explicit project root before equality checks.
374
+
366
375
  ### Recovery Rules
367
376
 
368
377
  - If validation fails, record the failure and do not hide it.
@@ -396,7 +405,7 @@ taskledger validate check --criterion ac-0001 --status pass --evidence "pytest t
396
405
  - Log every meaningful implementation change with `taskledger implement change`.
397
406
  - Record deviations from the approved plan with `taskledger implement deviation`.
398
407
  - Mark todos done with evidence: `taskledger todo done <todo-id> --evidence "pytest -q"`.
399
- - When transcript logging is enabled in project config, run task-relevant commands through `taskledger plan command -- ...` or `taskledger implement command -- ...` so stdout/stderr becomes durable transcript evidence. The managed result and shell log include the actual child cwd.
408
+ - When transcript logging is enabled in project config, run task-relevant commands through `taskledger plan command -- ...`, `taskledger implement command -- ...`, or `taskledger validate command -- ...` so stdout/stderr becomes durable transcript evidence. The managed result and shell log include the actual child cwd.
400
409
  - Do not paste secrets into command arguments, evidence strings, or expected command output when transcript logging is enabled.
401
410
  - Use `taskledger handoff create --mode implementation|validation --intended-actor agent --intended-harness codex` when switching actor or harness.
402
411
  - Use `taskledger handoff claim handoff-0001` before continuing work from a handoff.
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.6.5'
22
- __version_tuple__ = version_tuple = (0, 6, 5)
21
+ __version__ = version = '0.6.7'
22
+ __version_tuple__ = version_tuple = (0, 6, 7)
23
23
 
24
- __commit_id__ = commit_id = 'g412b465c3'
24
+ __commit_id__ = commit_id = 'gfa5b2b772'