taskledger 0.6.1__tar.gz → 0.6.3__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 (573) hide show
  1. {taskledger-0.6.1 → taskledger-0.6.3}/.github/workflows/pre-commit.yml +1 -1
  2. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/events/events.jsonl +15 -0
  3. taskledger-0.6.3/.ledger/releaseledger/data/ledgers/main/releases/v0.6.2/entries/entry-0001.md +27 -0
  4. taskledger-0.6.3/.ledger/releaseledger/data/ledgers/main/releases/v0.6.2/entries/entry-0002.md +27 -0
  5. taskledger-0.6.3/.ledger/releaseledger/data/ledgers/main/releases/v0.6.2/entries/entry-0003.md +27 -0
  6. taskledger-0.6.3/.ledger/releaseledger/data/ledgers/main/releases/v0.6.2/entries/entry-0004.md +25 -0
  7. taskledger-0.6.3/.ledger/releaseledger/data/ledgers/main/releases/v0.6.2/release.md +26 -0
  8. taskledger-0.6.3/.ledger/releaseledger/data/ledgers/main/releases/v0.6.3/audit/commit-audit.yaml +135 -0
  9. taskledger-0.6.3/.ledger/releaseledger/data/ledgers/main/releases/v0.6.3/entries/entry-0001.md +40 -0
  10. taskledger-0.6.3/.ledger/releaseledger/data/ledgers/main/releases/v0.6.3/release.md +26 -0
  11. {taskledger-0.6.1/taskledger.egg-info → taskledger-0.6.3}/PKG-INFO +1 -1
  12. {taskledger-0.6.1 → taskledger-0.6.3}/docs/changelog.md +25 -0
  13. {taskledger-0.6.1 → taskledger-0.6.3}/docs/command_contract.md +23 -5
  14. {taskledger-0.6.1 → taskledger-0.6.3}/docs/full_task_cycle.md +10 -5
  15. {taskledger-0.6.1 → taskledger-0.6.3}/docs/sync.md +9 -0
  16. {taskledger-0.6.1 → taskledger-0.6.3}/docs/usage.md +8 -4
  17. {taskledger-0.6.1 → taskledger-0.6.3}/scripts/find_code_clones.py +1 -1
  18. {taskledger-0.6.1 → taskledger-0.6.3}/skills/taskledger/SKILL.md +11 -3
  19. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/implementation_checks/implementation-checks.feature +5 -13
  20. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/_version.py +3 -3
  21. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/api/locks.py +1 -1
  22. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/api/repair.py +1 -1
  23. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/api/storage.py +18 -1
  24. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli.py +26 -8
  25. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_archive.py +2 -8
  26. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_common.py +29 -2
  27. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_implement.py +4 -0
  28. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_ledger.py +2 -2
  29. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_misc.py +6 -2
  30. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_plan.py +10 -8
  31. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_storage.py +4 -2
  32. taskledger-0.6.3/taskledger/domain/__init__.py +2 -0
  33. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/errors.py +7 -0
  34. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/agent_logging.py +3 -2
  35. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/agent_transcripts.py +11 -8
  36. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/change_tracking.py +10 -8
  37. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/check_tracking.py +8 -5
  38. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/command_runner.py +5 -2
  39. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/doctor.py +7 -7
  40. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/doctor_checks/project_scan.py +9 -7
  41. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/doctor_checks/task_checks.py +2 -2
  42. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/git_sync.py +11 -8
  43. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/handoff.py +5 -3
  44. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/implementation_flow.py +13 -9
  45. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/lock_inventory.py +2 -2
  46. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/navigation.py +4 -2
  47. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/plan_input.py +4 -4
  48. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/plan_materialization.py +1 -1
  49. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/planning_flow.py +1 -3
  50. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/runtime_info.py +4 -2
  51. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/task_archive.py +5 -3
  52. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/task_collections.py +4 -6
  53. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/task_export.py +1 -3
  54. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/task_lifecycle.py +1 -1
  55. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/task_repair.py +8 -10
  56. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/task_reports.py +2 -2
  57. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/tasks.py +19 -7
  58. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/tree.py +1 -1
  59. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/usage.py +1 -1
  60. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/validation_flow.py +2 -2
  61. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/worker_context.py +4 -2
  62. taskledger-0.6.3/taskledger/storage/index_cache.py +197 -0
  63. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/layout_migration.py +4 -2
  64. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/ledgercore_backend.py +20 -10
  65. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/migrations.py +2 -2
  66. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/paths.py +1 -1
  67. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/project_config.py +7 -6
  68. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/project_context.py +23 -5
  69. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/repos.py +1 -1
  70. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/task_store.py +9 -7
  71. {taskledger-0.6.1 → taskledger-0.6.3/taskledger.egg-info}/PKG-INFO +1 -1
  72. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger.egg-info/SOURCES.txt +10 -0
  73. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger.egg-info/scm_file_list.json +10 -0
  74. taskledger-0.6.3/taskledger.egg-info/scm_version.json +8 -0
  75. {taskledger-0.6.1 → taskledger-0.6.3}/tests/conftest.py +9 -9
  76. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_agent_command_logging.py +32 -0
  77. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_agent_session_protocol.py +9 -7
  78. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_command_example_linter.py +2 -2
  79. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_compact_mutation_output.py +1 -1
  80. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_doctor.py +23 -23
  81. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_domain_policies.py +23 -23
  82. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_help_subprocess.py +1 -0
  83. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_implementation_checks.py +165 -0
  84. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_import_boundaries.py +6 -4
  85. taskledger-0.6.3/tests/test_indexes_cache_recovery.py +213 -0
  86. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_ledgercore_compat.py +4 -4
  87. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_search.py +1 -1
  88. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_service_boundaries.py +6 -4
  89. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_task_report.py +1 -1
  90. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_taskledger_sibling_storage.py +1 -1
  91. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_workspace_snapshot.py +1 -1
  92. taskledger-0.6.1/taskledger/domain/__init__.py +0 -2
  93. taskledger-0.6.1/taskledger.egg-info/scm_version.json +0 -8
  94. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/archive/records/building_blocks/block-0083.md +0 -0
  95. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/archive/records/concepts/concept-0081.md +0 -0
  96. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/archive/records/runtime/runtime-0076.md +0 -0
  97. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/archive/records/runtime/runtime-0084.md +0 -0
  98. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/document-state.json +0 -0
  99. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/profiles/arc42/sections/content-0001.md +0 -0
  100. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/profiles/arc42/sections/content-0002.md +0 -0
  101. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/profiles/arc42/sections/content-0003.md +0 -0
  102. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/profiles/arc42/sections/content-0004.md +0 -0
  103. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/profiles/arc42/sections/content-0005.md +0 -0
  104. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/profiles/arc42/sections/content-0006.md +0 -0
  105. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/profiles/arc42/sections/content-0007.md +0 -0
  106. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/profiles/arc42/sections/content-0008.md +0 -0
  107. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/profiles/arc42/sections/content-0009.md +0 -0
  108. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/profiles/arc42/sections/content-0010.md +0 -0
  109. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/profiles/arc42/sections/content-0011.md +0 -0
  110. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/profiles/arc42/sections/content-0012.md +0 -0
  111. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/building_blocks/block-0029.md +0 -0
  112. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/building_blocks/block-0030.md +0 -0
  113. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/building_blocks/block-0031.md +0 -0
  114. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/building_blocks/block-0032.md +0 -0
  115. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/building_blocks/block-0033.md +0 -0
  116. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/building_blocks/block-0034.md +0 -0
  117. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/concepts/concept-0040.md +0 -0
  118. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/concepts/concept-0041.md +0 -0
  119. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/concepts/concept-0042.md +0 -0
  120. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/concepts/concept-0043.md +0 -0
  121. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/concepts/concept-0044.md +0 -0
  122. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/concepts/concept-0045.md +0 -0
  123. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/concepts/concept-0082.md +0 -0
  124. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/concepts/concept-0085.md +0 -0
  125. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/concepts/concept-0086.md +0 -0
  126. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/constraints/constraint-0016.md +0 -0
  127. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/constraints/constraint-0017.md +0 -0
  128. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/constraints/constraint-0018.md +0 -0
  129. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/constraints/constraint-0019.md +0 -0
  130. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/contexts/context-0020.md +0 -0
  131. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/contexts/context-0021.md +0 -0
  132. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/contexts/context-0022.md +0 -0
  133. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/contexts/context-0023.md +0 -0
  134. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/decisions/adr-0046.md +0 -0
  135. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/decisions/adr-0047.md +0 -0
  136. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/decisions/adr-0048.md +0 -0
  137. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/decisions/adr-0049.md +0 -0
  138. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/decisions/adr-0050.md +0 -0
  139. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/decisions/adr-0051.md +0 -0
  140. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/deployment/deploy-0039.md +0 -0
  141. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/glossary/glossary-0061.md +0 -0
  142. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/glossary/glossary-0062.md +0 -0
  143. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/glossary/glossary-0063.md +0 -0
  144. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/glossary/glossary-0064.md +0 -0
  145. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/glossary/glossary-0065.md +0 -0
  146. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/glossary/glossary-0066.md +0 -0
  147. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/glossary/glossary-0067.md +0 -0
  148. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/glossary/glossary-0068.md +0 -0
  149. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/glossary/glossary-0069.md +0 -0
  150. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/glossary/glossary-0070.md +0 -0
  151. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/glossary/glossary-0071.md +0 -0
  152. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/glossary/glossary-0072.md +0 -0
  153. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/glossary/glossary-0073.md +0 -0
  154. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/quality_requirements/quality-0052.md +0 -0
  155. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/quality_requirements/quality-0053.md +0 -0
  156. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/quality_requirements/quality-0054.md +0 -0
  157. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/quality_requirements/quality-0055.md +0 -0
  158. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/quality_requirements/quality-0056.md +0 -0
  159. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/requirements/content-0013.md +0 -0
  160. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/requirements/content-0014.md +0 -0
  161. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/requirements/content-0015.md +0 -0
  162. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/risks/risk-0057.md +0 -0
  163. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/risks/risk-0058.md +0 -0
  164. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/risks/risk-0059.md +0 -0
  165. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/risks/risk-0060.md +0 -0
  166. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/runtime/runtime-0035.md +0 -0
  167. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/runtime/runtime-0036.md +0 -0
  168. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/runtime/runtime-0037.md +0 -0
  169. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/runtime/runtime-0038.md +0 -0
  170. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/runtime/runtime-0074.md +0 -0
  171. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/runtime/runtime-0075.md +0 -0
  172. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/runtime/runtime-0077.md +0 -0
  173. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/runtime/runtime-0078.md +0 -0
  174. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/runtime/runtime-0087.md +0 -0
  175. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/runtime/runtime-0088.md +0 -0
  176. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/stakeholders/content-0079.md +0 -0
  177. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/stakeholders/content-0080.md +0 -0
  178. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/strategy/strategy-0024.md +0 -0
  179. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/strategy/strategy-0025.md +0 -0
  180. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/strategy/strategy-0026.md +0 -0
  181. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/strategy/strategy-0027.md +0 -0
  182. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/records/strategy/strategy-0028.md +0 -0
  183. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/source-state.json +0 -0
  184. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger/storage.yaml +0 -0
  185. {taskledger-0.6.1 → taskledger-0.6.3}/.archledger.toml +0 -0
  186. {taskledger-0.6.1 → taskledger-0.6.3}/.codecrate.toml +0 -0
  187. {taskledger-0.6.1 → taskledger-0.6.3}/.documentledger/docs/docs-api-md-9eddf4dc.yaml +0 -0
  188. {taskledger-0.6.1 → taskledger-0.6.3}/.documentledger/docs/docs-architecture-taskledger-split-md-63034c0d.yaml +0 -0
  189. {taskledger-0.6.1 → taskledger-0.6.3}/.documentledger/docs/docs-command-contract-md-abe6f6d9.yaml +0 -0
  190. {taskledger-0.6.1 → taskledger-0.6.3}/.documentledger/docs/docs-full-task-cycle-md-721181f0.yaml +0 -0
  191. {taskledger-0.6.1 → taskledger-0.6.3}/.documentledger/docs/docs-multi-repo-md-929e47a9.yaml +0 -0
  192. {taskledger-0.6.1 → taskledger-0.6.3}/.documentledger/docs/docs-public-surface-md-c1b8772f.yaml +0 -0
  193. {taskledger-0.6.1 → taskledger-0.6.3}/.documentledger/docs/docs-service-boundary-whitelist-md-800b76f5.yaml +0 -0
  194. {taskledger-0.6.1 → taskledger-0.6.3}/.documentledger/docs/docs-sync-md-a29422f3.yaml +0 -0
  195. {taskledger-0.6.1 → taskledger-0.6.3}/.documentledger/docs/docs-transfer-md-f8532303.yaml +0 -0
  196. {taskledger-0.6.1 → taskledger-0.6.3}/.documentledger/docs/docs-usage-md-72376d0b.yaml +0 -0
  197. {taskledger-0.6.1 → taskledger-0.6.3}/.documentledger/scan.yaml +0 -0
  198. {taskledger-0.6.1 → taskledger-0.6.3}/.documentledger/source-index.json +0 -0
  199. {taskledger-0.6.1 → taskledger-0.6.3}/.documentledger/storage.yaml +0 -0
  200. {taskledger-0.6.1 → taskledger-0.6.3}/.documentledger.toml +0 -0
  201. {taskledger-0.6.1 → taskledger-0.6.3}/.github/workflows/codecov.yml +0 -0
  202. {taskledger-0.6.1 → taskledger-0.6.3}/.github/workflows/python-publish.yml +0 -0
  203. {taskledger-0.6.1 → taskledger-0.6.3}/.github/workflows/tests.yml +0 -0
  204. {taskledger-0.6.1 → taskledger-0.6.3}/.gitignore +0 -0
  205. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/ledger.toml +0 -0
  206. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/.ledger-project.toml +0 -0
  207. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/config.toml +0 -0
  208. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/.ledger-project.toml +0 -0
  209. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0001.md +0 -0
  210. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0002.md +0 -0
  211. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0003.md +0 -0
  212. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0004.md +0 -0
  213. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0005.md +0 -0
  214. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0006.md +0 -0
  215. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0007.md +0 -0
  216. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0008.md +0 -0
  217. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0009.md +0 -0
  218. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0010.md +0 -0
  219. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0011.md +0 -0
  220. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0012.md +0 -0
  221. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0013.md +0 -0
  222. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0014.md +0 -0
  223. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0015.md +0 -0
  224. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0016.md +0 -0
  225. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0017.md +0 -0
  226. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0018.md +0 -0
  227. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0019.md +0 -0
  228. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0020.md +0 -0
  229. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0021.md +0 -0
  230. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0022.md +0 -0
  231. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0023.md +0 -0
  232. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/release.md +0 -0
  233. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/entries/entry-0001.md +0 -0
  234. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/entries/entry-0002.md +0 -0
  235. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/entries/entry-0003.md +0 -0
  236. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/entries/entry-0004.md +0 -0
  237. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/entries/entry-0005.md +0 -0
  238. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.6.1/release.md +0 -0
  239. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/releaseledger/write.lock +0 -0
  240. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/task/config.toml +0 -0
  241. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/taskledger/.ledger-project.toml +0 -0
  242. {taskledger-0.6.1 → taskledger-0.6.3}/.ledger/taskledger/config.toml +0 -0
  243. {taskledger-0.6.1 → taskledger-0.6.3}/.planledger.toml +0 -0
  244. {taskledger-0.6.1 → taskledger-0.6.3}/.pre-commit-config.yaml +0 -0
  245. {taskledger-0.6.1 → taskledger-0.6.3}/.readthedocs.yaml +0 -0
  246. {taskledger-0.6.1 → taskledger-0.6.3}/.ruff.toml +0 -0
  247. {taskledger-0.6.1 → taskledger-0.6.3}/AGENTS.md +0 -0
  248. {taskledger-0.6.1 → taskledger-0.6.3}/API.md +0 -0
  249. {taskledger-0.6.1 → taskledger-0.6.3}/ARCHITECTURE.md +0 -0
  250. {taskledger-0.6.1 → taskledger-0.6.3}/LICENSE +0 -0
  251. {taskledger-0.6.1 → taskledger-0.6.3}/Makefile +0 -0
  252. {taskledger-0.6.1 → taskledger-0.6.3}/README.md +0 -0
  253. {taskledger-0.6.1 → taskledger-0.6.3}/docs/Makefile +0 -0
  254. {taskledger-0.6.1 → taskledger-0.6.3}/docs/api.md +0 -0
  255. {taskledger-0.6.1 → taskledger-0.6.3}/docs/architecture_taskledger_split.md +0 -0
  256. {taskledger-0.6.1 → taskledger-0.6.3}/docs/build.sh +0 -0
  257. {taskledger-0.6.1 → taskledger-0.6.3}/docs/conf.py +0 -0
  258. {taskledger-0.6.1 → taskledger-0.6.3}/docs/documentation_freshness.md +0 -0
  259. {taskledger-0.6.1 → taskledger-0.6.3}/docs/index.md +0 -0
  260. {taskledger-0.6.1 → taskledger-0.6.3}/docs/multi_repo.md +0 -0
  261. {taskledger-0.6.1 → taskledger-0.6.3}/docs/public_surface.md +0 -0
  262. {taskledger-0.6.1 → taskledger-0.6.3}/docs/release_checklist.md +0 -0
  263. {taskledger-0.6.1 → taskledger-0.6.3}/docs/requirements.txt +0 -0
  264. {taskledger-0.6.1 → taskledger-0.6.3}/docs/service_boundary_whitelist.md +0 -0
  265. {taskledger-0.6.1 → taskledger-0.6.3}/docs/transfer.md +0 -0
  266. {taskledger-0.6.1 → taskledger-0.6.3}/pyproject.toml +0 -0
  267. {taskledger-0.6.1 → taskledger-0.6.3}/requirements/manifest.json +0 -0
  268. {taskledger-0.6.1 → taskledger-0.6.3}/setup.cfg +0 -0
  269. {taskledger-0.6.1 → taskledger-0.6.3}/specmason.toml +0 -0
  270. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/README.md +0 -0
  271. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/UNMAPPED_TESTS.md +0 -0
  272. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/evidence/.gitkeep +0 -0
  273. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/evidence/taskledger-test-feature-coverage.json +0 -0
  274. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/.gitkeep +0 -0
  275. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/active_task/active-task.feature +0 -0
  276. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/actor_harness_state/actor-harness-state.feature +0 -0
  277. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/actor_resolution/actor-resolution.feature +0 -0
  278. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/agent_command_logging/agent-command-logging.feature +0 -0
  279. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/agent_session_protocol/agent-session-protocol.feature +0 -0
  280. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/atomic_fast_io/atomic-fast-io.feature +0 -0
  281. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/cli_command_contract/cli-command-contract.feature +0 -0
  282. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/cli_import_resilience/cli-import-resilience.feature +0 -0
  283. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/code_reviews/code-reviews.feature +0 -0
  284. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/command_example_linter/command-example-linter.feature +0 -0
  285. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/command_inventory/command-inventory.feature +0 -0
  286. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/command_runner/command-runner.feature +0 -0
  287. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/compact_mutation_output/compact-mutation-output.feature +0 -0
  288. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/config_cli/config-cli.feature +0 -0
  289. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/delta_remaining_contracts/delta-remaining-contracts.feature +0 -0
  290. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/docs_and_skill/docs-and-skill.feature +0 -0
  291. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/doctor/doctor.feature +0 -0
  292. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/domain_policies/domain-policies.feature +0 -0
  293. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/event_logging_config/event-logging-config.feature +0 -0
  294. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/events/events.feature +0 -0
  295. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/file_link_snapshots/file-link-snapshots.feature +0 -0
  296. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/find_code_clones_script/find-code-clones-script.feature +0 -0
  297. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/handoff_lifecycle/handoff-lifecycle.feature +0 -0
  298. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/help_subprocess/help-subprocess.feature +0 -0
  299. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/implementation_change_scan/implementation-change-scan.feature +0 -0
  300. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/json_contracts/json-contracts.feature +0 -0
  301. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/legacy_cleanup_contracts/legacy-cleanup-contracts.feature +0 -0
  302. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/lifecycle_policies/lifecycle-policies.feature +0 -0
  303. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/lock_diagnostics/lock-diagnostics.feature +0 -0
  304. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/locks_audit/locks-audit.feature +0 -0
  305. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/models_v1_schema/models-v1-schema.feature +0 -0
  306. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/monitor/monitor.feature +0 -0
  307. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/next_action_expired_lock/next-action-expired-lock.feature +0 -0
  308. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/no_log_feature/no-log-feature.feature +0 -0
  309. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/plan_approval_contract/plan-approval-contract.feature +0 -0
  310. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/plan_lint/plan-lint.feature +0 -0
  311. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/plan_review/plan-review.feature +0 -0
  312. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/plan_revision_workflow/plan-revision-workflow.feature +0 -0
  313. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/plan_todo_materialization/plan-todo-materialization.feature +0 -0
  314. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/project_root_config/project-root-config.feature +0 -0
  315. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/question_add_many/question-add-many.feature +0 -0
  316. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/question_filter_answers/question-filter-answers.feature +0 -0
  317. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/question_plan_regeneration/question-plan-regeneration.feature +0 -0
  318. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/ready_work/ready-work.feature +0 -0
  319. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/release_changelog/release-changelog.feature +0 -0
  320. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/search/search.feature +0 -0
  321. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/service_boundaries/service-boundaries.feature +0 -0
  322. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/services_dashboard/services-dashboard.feature +0 -0
  323. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/sidecar_collections/sidecar-collections.feature +0 -0
  324. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/storage_bundle_layout/storage-bundle-layout.feature +0 -0
  325. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/storage_common/storage-common.feature +0 -0
  326. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/storage_init/storage-init.feature +0 -0
  327. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/storage_migration/storage-migration.feature +0 -0
  328. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/storage_repos/storage-repos.feature +0 -0
  329. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/storage_sync/storage-sync.feature +0 -0
  330. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/sync_git/sync-git.feature +0 -0
  331. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/task_archive/archive.feature +0 -0
  332. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/task_events/events.feature +0 -0
  333. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/task_markdown_export/markdown-export.feature +0 -0
  334. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/task_report/report.feature +0 -0
  335. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/taskledger_branch_scoped_ledgers/taskledger-branch-scoped-ledgers.feature +0 -0
  336. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/taskledger_cli_api_parity/taskledger-cli-api-parity.feature +0 -0
  337. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/taskledger_v2_cli/taskledger-v2-cli.feature +0 -0
  338. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/taskledger_v2_exchange/taskledger-v2-exchange.feature +0 -0
  339. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/tasks_service_static/tasks-service-static.feature +0 -0
  340. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/todo_implementation_gate/todo-implementation-gate.feature +0 -0
  341. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/trace/trace.feature +0 -0
  342. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/tree_command/tree-command.feature +0 -0
  343. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/usage_cli/usage-cli.feature +0 -0
  344. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/worker_pipeline_cli/worker-pipeline-cli.feature +0 -0
  345. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/worker_pipeline_config/worker-pipeline-config.feature +0 -0
  346. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/worker_pipeline_context/worker-pipeline-context.feature +0 -0
  347. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/worker_pipeline_handoff/worker-pipeline-handoff.feature +0 -0
  348. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/worker_pipeline_plan_template/worker-pipeline-plan-template.feature +0 -0
  349. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/worker_pipeline_todos/worker-pipeline-todos.feature +0 -0
  350. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/features/workflow_guidance/workflow-guidance.feature +0 -0
  351. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/manifest.json +0 -0
  352. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/mappings/.gitkeep +0 -0
  353. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/mappings/intentional-unmapped.json +0 -0
  354. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/reports/specmason/.gitkeep +0 -0
  355. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/reports/specmason/coverage.json +0 -0
  356. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/reports/specmason/coverage.md +0 -0
  357. {taskledger-0.6.1 → taskledger-0.6.3}/specs/behavior/reports/specmason/mappings.json +0 -0
  358. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/__init__.py +0 -0
  359. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/__main__.py +0 -0
  360. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/api/__init__.py +1 -1
  361. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/api/config.py +2 -2
  362. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/api/handoff.py +4 -4
  363. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/api/introductions.py +1 -1
  364. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/api/plans.py +15 -15
  365. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/api/project.py +3 -3
  366. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/api/questions.py +2 -2
  367. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/api/releases.py +0 -0
  368. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/api/reviews.py +1 -1
  369. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/api/search.py +2 -2
  370. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/api/sync.py +0 -0
  371. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/api/task_runs.py +13 -13
  372. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/api/tasks.py +31 -31
  373. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_actor.py +0 -0
  374. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_config.py +0 -0
  375. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_help.py +0 -0
  376. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_migrate.py +0 -0
  377. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_pipeline.py +0 -0
  378. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_question.py +0 -0
  379. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_ref.py +0 -0
  380. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_release.py +0 -0
  381. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_review.py +0 -0
  382. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_runtime.py +0 -0
  383. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_sync.py +0 -0
  384. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_task.py +0 -0
  385. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_trace.py +0 -0
  386. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/cli_validate.py +0 -0
  387. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/command_inventory.py +0 -0
  388. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/compat/__init__.py +0 -0
  389. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/compat/ledgercore.py +0 -0
  390. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/_model_utils.py +0 -0
  391. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/active_state.py +0 -0
  392. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/actor.py +0 -0
  393. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/change.py +0 -0
  394. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/check.py +0 -0
  395. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/event.py +0 -0
  396. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/handoff.py +0 -0
  397. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/lock.py +0 -0
  398. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/models.py +0 -0
  399. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/plan.py +0 -0
  400. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/policies.py +0 -0
  401. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/question.py +0 -0
  402. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/release.py +0 -0
  403. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/review.py +0 -0
  404. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/run.py +0 -0
  405. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/sidecars.py +0 -0
  406. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/states.py +0 -0
  407. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/domain/task.py +0 -0
  408. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/exchange.py +0 -0
  409. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/ids.py +0 -0
  410. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/launcher.py +0 -0
  411. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/migrations/__init__.py +0 -0
  412. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/migrations/hooks.py +0 -0
  413. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/py.typed +0 -0
  414. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/refs.py +0 -0
  415. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/search.py +0 -0
  416. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/__init__.py +0 -0
  417. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/actors.py +0 -0
  418. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/code_review.py +0 -0
  419. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/dashboard.py +0 -0
  420. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/doctor_checks/migration_checks.py +0 -0
  421. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/event_logging.py +0 -0
  422. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/file_links.py +0 -0
  423. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/git_utils.py +0 -0
  424. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/handoff_lifecycle.py +0 -0
  425. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/lock_diagnostics.py +0 -0
  426. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/monitor.py +0 -0
  427. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/next_action_logic.py +1 -1
  428. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/next_action_model.py +0 -0
  429. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/next_action_payload.py +0 -0
  430. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/phase5_lock_transfer.py +0 -0
  431. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/plan_editing.py +0 -0
  432. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/plan_hash.py +0 -0
  433. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/plan_lint.py +0 -0
  434. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/plan_review.py +0 -0
  435. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/ready_work.py +0 -0
  436. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/releases.py +0 -0
  437. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/run_store.py +0 -0
  438. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/storage_locations.py +0 -0
  439. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/storage_migration.py +0 -0
  440. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/task_events.py +0 -0
  441. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/task_queries.py +0 -0
  442. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/trace.py +0 -0
  443. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/validation.py +0 -0
  444. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/worker_pipeline.py +0 -0
  445. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/workflow_guidance.py +0 -0
  446. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/services/workspace_snapshot.py +0 -0
  447. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/__init__.py +3 -3
  448. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/agent_logs.py +0 -0
  449. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/atomic.py +0 -0
  450. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/common.py +0 -0
  451. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/events.py +0 -0
  452. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/frontmatter.py +0 -0
  453. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/indexes.py +0 -0
  454. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/init.py +0 -0
  455. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/ledger_config.py +0 -0
  456. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/ledger_local_config.py +0 -0
  457. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/ledger_manifest.py +0 -0
  458. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/locks.py +0 -0
  459. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/meta.py +0 -0
  460. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/project_binding.py +0 -0
  461. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/project_identity.py +0 -0
  462. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/sidecar_index.py +0 -0
  463. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/task_ids.py +1 -1
  464. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/task_index.py +0 -0
  465. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/taskledger_migration.py +0 -0
  466. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/toml_edit.py +0 -0
  467. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/worker_pipeline_config.py +5 -5
  468. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/storage/yaml_store.py +0 -0
  469. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger/timeutils.py +0 -0
  470. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger.egg-info/dependency_links.txt +0 -0
  471. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger.egg-info/entry_points.txt +0 -0
  472. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger.egg-info/requires.txt +0 -0
  473. {taskledger-0.6.1 → taskledger-0.6.3}/taskledger.egg-info/top_level.txt +0 -0
  474. {taskledger-0.6.1 → taskledger-0.6.3}/tests/__init__.py +0 -0
  475. {taskledger-0.6.1 → taskledger-0.6.3}/tests/support/__init__.py +0 -0
  476. {taskledger-0.6.1 → taskledger-0.6.3}/tests/support/builders.py +0 -0
  477. {taskledger-0.6.1 → taskledger-0.6.3}/tests/support/fake_command_runner.py +0 -0
  478. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_active_task.py +0 -0
  479. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_actor_harness_state.py +0 -0
  480. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_actor_resolution.py +0 -0
  481. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_atomic_fast_io.py +0 -0
  482. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_canonical_config_split.py +0 -0
  483. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_canonical_layout_migration.py +0 -0
  484. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_canonical_mount_paths.py +0 -0
  485. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_canonical_project_boundary.py +0 -0
  486. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_canonical_project_context.py +0 -0
  487. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_cli_command_contract.py +0 -0
  488. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_cli_import_resilience.py +0 -0
  489. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_cli_runner_compatibility.py +0 -0
  490. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_code_reviews.py +0 -0
  491. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_command_inventory.py +0 -0
  492. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_command_runner.py +0 -0
  493. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_config_cli.py +0 -0
  494. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_delta_remaining_contracts.py +0 -0
  495. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_docs_and_skill.py +0 -0
  496. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_error_contracts.py +0 -0
  497. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_event_logging_config.py +0 -0
  498. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_events.py +0 -0
  499. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_file_link_snapshots.py +0 -0
  500. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_find_code_clones_script.py +0 -0
  501. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_handoff_lifecycle.py +0 -0
  502. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_implementation_change_scan.py +0 -0
  503. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_indexes.py +0 -0
  504. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_json_contracts.py +0 -0
  505. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_ledger_manifest_mutation.py +0 -0
  506. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_ledgercore_dependency.py +0 -0
  507. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_legacy_cleanup_contracts.py +0 -0
  508. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_lifecycle_policies.py +0 -0
  509. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_lock_diagnostics.py +0 -0
  510. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_lock_inventory.py +0 -0
  511. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_locks_audit.py +0 -0
  512. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_models_v1_schema.py +0 -0
  513. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_monitor.py +0 -0
  514. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_next_action_expired_lock.py +0 -0
  515. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_no_log_feature.py +0 -0
  516. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_performance_caching.py +0 -0
  517. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_plan_approval_contract.py +0 -0
  518. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_plan_input.py +0 -0
  519. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_plan_input_cli.py +0 -0
  520. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_plan_lint.py +0 -0
  521. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_plan_review.py +0 -0
  522. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_plan_revision_workflow.py +0 -0
  523. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_plan_todo_materialization.py +0 -0
  524. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_project_root_config.py +0 -0
  525. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_question_add_many.py +0 -0
  526. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_question_filter_answers.py +0 -0
  527. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_question_plan_regeneration.py +0 -0
  528. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_ready_work.py +0 -0
  529. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_release_changelog.py +0 -0
  530. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_resource_refs.py +0 -0
  531. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_runtime_info.py +0 -0
  532. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_services_dashboard.py +0 -0
  533. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_shared_tool_ledger_storage.py +0 -0
  534. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_sidecar_collections.py +0 -0
  535. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_storage_bundle_layout.py +0 -0
  536. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_storage_common.py +0 -0
  537. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_storage_init.py +0 -0
  538. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_storage_migration.py +0 -0
  539. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_storage_migration_coordinator.py +0 -0
  540. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_storage_repos.py +0 -0
  541. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_storage_sync.py +0 -0
  542. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_storage_where_repair.py +0 -0
  543. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_storage_yaml_store.py +0 -0
  544. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_sync_git.py +0 -0
  545. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_task_archive.py +0 -0
  546. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_task_events.py +0 -0
  547. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_task_ids.py +0 -0
  548. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_task_markdown_export.py +0 -0
  549. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_taskledger_branch_scoped_ledgers.py +0 -0
  550. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_taskledger_canonical_sync.py +0 -0
  551. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_taskledger_cli_api_parity.py +0 -0
  552. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_taskledger_ledgercore_050_adapter.py +0 -0
  553. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_taskledger_ledgercore_050_context.py +0 -0
  554. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_taskledger_ledgercore_050_migration_topology.py +0 -0
  555. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_taskledger_ledgercore_050_sync.py +0 -0
  556. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_taskledger_migration_v3.py +0 -0
  557. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_taskledger_sibling_migration.py +0 -0
  558. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_taskledger_storage_commands_v3.py +0 -0
  559. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_taskledger_v2_cli.py +0 -0
  560. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_taskledger_v2_exchange.py +0 -0
  561. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_tasks_service_static.py +0 -0
  562. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_todo_implementation_gate.py +0 -0
  563. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_trace.py +0 -0
  564. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_tree_command.py +0 -0
  565. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_usage_cli.py +0 -0
  566. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_validation_git_snapshot_recovery.py +0 -0
  567. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_worker_pipeline_cli.py +0 -0
  568. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_worker_pipeline_config.py +0 -0
  569. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_worker_pipeline_context.py +0 -0
  570. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_worker_pipeline_handoff.py +0 -0
  571. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_worker_pipeline_plan_template.py +0 -0
  572. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_worker_pipeline_todos.py +0 -0
  573. {taskledger-0.6.1 → taskledger-0.6.3}/tests/test_workflow_guidance.py +0 -0
@@ -22,7 +22,7 @@ jobs:
22
22
  - name: Install Python tools
23
23
  run: |
24
24
  python -m pip install --upgrade pip
25
- python -m pip install "ruff==0.15.12"
25
+ python -m pip install "ruff==0.16.3"
26
26
 
27
27
  - name: Install Node tools
28
28
  run: |
@@ -11,3 +11,18 @@
11
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
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
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}
14
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0014","record_revisions":{"release:v0.6.2":1},"release_version":"v0.6.2","schema_version":2}
15
+ {"data":{"kind":"added","status":"accepted"},"entry_id":"entry-0001","event":"entry.added","event_id":"event-0015","record_revisions":{"entry:v0.6.2/entry-0001":1,"release:v0.6.2":2},"release_version":"v0.6.2","schema_version":2}
16
+ {"data":{"added_source_refs":[],"fields":["kind","summary"],"removed_source_refs":[],"source_refs_mode":"unchanged"},"entry_id":"entry-0001","event":"entry.updated","event_id":"event-0016","record_revisions":{"entry:v0.6.2/entry-0001":2},"release_version":"v0.6.2","schema_version":2}
17
+ {"data":{"kind":"changed","status":"accepted"},"entry_id":"entry-0002","event":"entry.added","event_id":"event-0017","record_revisions":{"entry:v0.6.2/entry-0002":1,"release:v0.6.2":3},"release_version":"v0.6.2","schema_version":2}
18
+ {"data":{"kind":"fixed","status":"accepted"},"entry_id":"entry-0003","event":"entry.added","event_id":"event-0018","record_revisions":{"entry:v0.6.2/entry-0003":1,"release:v0.6.2":4},"release_version":"v0.6.2","schema_version":2}
19
+ {"data":{"kind":"docs","status":"accepted"},"entry_id":"entry-0004","event":"entry.added","event_id":"event-0019","record_revisions":{"entry:v0.6.2/entry-0004":1,"release:v0.6.2":5},"release_version":"v0.6.2","schema_version":2}
20
+ {"data":{"added_source_refs":[],"fields":["summary"],"removed_source_refs":[],"source_refs_mode":"unchanged"},"entry_id":"entry-0002","event":"entry.updated","event_id":"event-0020","record_revisions":{"entry:v0.6.2/entry-0002":2},"release_version":"v0.6.2","schema_version":2}
21
+ {"data":{"added_source_refs":[],"fields":["summary"],"removed_source_refs":[],"source_refs_mode":"unchanged"},"entry_id":"entry-0003","event":"entry.updated","event_id":"event-0021","record_revisions":{"entry:v0.6.2/entry-0003":2},"release_version":"v0.6.2","schema_version":2}
22
+ {"data":{"released_at":"2026-08-15"},"event":"release.finalized","event_id":"event-0022","record_revisions":{"release:v0.6.2":6},"release_version":"v0.6.2","schema_version":2}
23
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0023","record_revisions":{"release:v0.6.3":1},"release_version":"v0.6.3","schema_version":2}
24
+ {"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-0024","record_revisions":{"release:v0.6.3":2},"release_version":"v0.6.3","schema_version":2}
25
+ {"data":{"row_count":1},"event":"audit.created","event_id":"event-0025","record_revisions":{"commit_audit_sheet":1},"release_version":"v0.6.3","schema_version":2}
26
+ {"data":{"updated_rows":1},"event":"audit.updated","event_id":"event-0026","record_revisions":{"commit_audit_sheet":2},"release_version":"v0.6.3","schema_version":2}
27
+ {"data":{"entry_ids":["entry-0001"],"synced_audit_rows":1},"event":"entry.batch_added","event_id":"event-0027","record_revisions":{"commit_audit_sheet":3,"entry:v0.6.3/entry-0001":1,"release:v0.6.3":3},"release_version":"v0.6.3","schema_version":2}
28
+ {"data":{"released_at":"2026-08-19"},"event":"release.finalized","event_id":"event-0028","record_revisions":{"release:v0.6.3":4},"release_version":"v0.6.3","schema_version":2}
@@ -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-0001
8
+ release_version: v0.6.2
9
+ kind: changed
10
+ summary:
11
+ Automatic indexes cache bootstrapping before canonical mutations with quarantine-based
12
+ recovery for unbound caches
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:6305f28
18
+ paths:
19
+ - taskledger/storage/index_cache.py
20
+ issues: []
21
+ prs: []
22
+ sources: []
23
+ contributors: []
24
+ breaking: false
25
+ internal: false
26
+ order: 1
27
+ ---
@@ -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-0002
8
+ release_version: v0.6.2
9
+ kind: changed
10
+ summary:
11
+ Indexes mount is fixed to cache storage; `storage set indexes cache` is now
12
+ an idempotent topology request and non-cache indexes storage is rejected directly
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs: []
17
+ paths:
18
+ - taskledger/api/storage.py
19
+ issues: []
20
+ prs: []
21
+ sources:
22
+ - git:6305f28
23
+ contributors: []
24
+ breaking: false
25
+ internal: false
26
+ order: 2
27
+ ---
@@ -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.2
9
+ kind: fixed
10
+ summary:
11
+ "`reindex` command now reports cache recovery results and surfaces structured
12
+ errors for recovery failures"
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs: []
17
+ paths:
18
+ - taskledger/services/tasks.py
19
+ issues: []
20
+ prs: []
21
+ sources:
22
+ - git:6305f28
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: 1
7
+ entry_id: entry-0004
8
+ release_version: v0.6.2
9
+ kind: docs
10
+ summary: Documented indexes cache recovery behavior and multi-machine sync workflow
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs: []
15
+ paths:
16
+ - docs/command_contract.md
17
+ issues: []
18
+ prs: []
19
+ sources:
20
+ - git:6305f28
21
+ contributors: []
22
+ breaking: false
23
+ internal: false
24
+ order: 4
25
+ ---
@@ -0,0 +1,26 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 6
7
+ version: v0.6.2
8
+ status: released
9
+ title: Release v0.6.2
10
+ released_at: "2026-08-15"
11
+ previous_version: v0.6.1
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: 4
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
+ ---
@@ -0,0 +1,135 @@
1
+ schema_version: 1
2
+ object_type: commit_audit_sheet
3
+ versioning:
4
+ schema_version: 1
5
+ revision: 3
6
+ release_version: v0.6.3
7
+ git_base_ref: v0.6.2
8
+ git_base_sha: 196a79e85e7abf1296637bec7500c689011e054d
9
+ git_head_ref: HEAD
10
+ git_head_sha: 713acfa2be8891f88d889121dd769656443947f3
11
+ git_range: 196a79e85e7abf1296637bec7500c689011e054d..713acfa2be8891f88d889121dd769656443947f3
12
+ commit_count: 1
13
+ rows:
14
+ - sha: 713acfa2be8891f88d889121dd769656443947f3
15
+ source_ref: git:713acfa2be8891f88d889121dd769656443947f3
16
+ short_sha: 713acfa
17
+ changed_paths:
18
+ - docs/command_contract.md
19
+ - docs/full_task_cycle.md
20
+ - docs/usage.md
21
+ - scripts/find_code_clones.py
22
+ - skills/taskledger/SKILL.md
23
+ - specs/behavior/features/implementation_checks/implementation-checks.feature
24
+ - taskledger/api/__init__.py
25
+ - taskledger/api/config.py
26
+ - taskledger/api/handoff.py
27
+ - taskledger/api/introductions.py
28
+ - taskledger/api/locks.py
29
+ - taskledger/api/plans.py
30
+ - taskledger/api/project.py
31
+ - taskledger/api/questions.py
32
+ - taskledger/api/repair.py
33
+ - taskledger/api/reviews.py
34
+ - taskledger/api/search.py
35
+ - taskledger/api/storage.py
36
+ - taskledger/api/task_runs.py
37
+ - taskledger/api/tasks.py
38
+ - taskledger/cli.py
39
+ - taskledger/cli_archive.py
40
+ - taskledger/cli_common.py
41
+ - taskledger/cli_implement.py
42
+ - taskledger/cli_ledger.py
43
+ - taskledger/cli_misc.py
44
+ - taskledger/cli_plan.py
45
+ - taskledger/cli_storage.py
46
+ - taskledger/domain/__init__.py
47
+ - taskledger/services/agent_logging.py
48
+ - taskledger/services/agent_transcripts.py
49
+ - taskledger/services/change_tracking.py
50
+ - taskledger/services/check_tracking.py
51
+ - taskledger/services/command_runner.py
52
+ - taskledger/services/doctor.py
53
+ - taskledger/services/doctor_checks/project_scan.py
54
+ - taskledger/services/doctor_checks/task_checks.py
55
+ - taskledger/services/git_sync.py
56
+ - taskledger/services/handoff.py
57
+ - taskledger/services/implementation_flow.py
58
+ - taskledger/services/lock_inventory.py
59
+ - taskledger/services/navigation.py
60
+ - taskledger/services/next_action_logic.py
61
+ - taskledger/services/plan_input.py
62
+ - taskledger/services/plan_materialization.py
63
+ - taskledger/services/planning_flow.py
64
+ - taskledger/services/runtime_info.py
65
+ - taskledger/services/task_archive.py
66
+ - taskledger/services/task_collections.py
67
+ - taskledger/services/task_export.py
68
+ - taskledger/services/task_lifecycle.py
69
+ - taskledger/services/task_repair.py
70
+ - taskledger/services/task_reports.py
71
+ - taskledger/services/tasks.py
72
+ - taskledger/services/tree.py
73
+ - taskledger/services/usage.py
74
+ - taskledger/services/validation_flow.py
75
+ - taskledger/services/worker_context.py
76
+ - taskledger/storage/__init__.py
77
+ - taskledger/storage/index_cache.py
78
+ - taskledger/storage/layout_migration.py
79
+ - taskledger/storage/ledgercore_backend.py
80
+ - taskledger/storage/migrations.py
81
+ - taskledger/storage/paths.py
82
+ - taskledger/storage/project_config.py
83
+ - taskledger/storage/project_context.py
84
+ - taskledger/storage/repos.py
85
+ - taskledger/storage/task_ids.py
86
+ - taskledger/storage/task_store.py
87
+ - taskledger/storage/worker_pipeline_config.py
88
+ - tests/conftest.py
89
+ - tests/test_agent_command_logging.py
90
+ - tests/test_agent_session_protocol.py
91
+ - tests/test_command_example_linter.py
92
+ - tests/test_compact_mutation_output.py
93
+ - tests/test_doctor.py
94
+ - tests/test_domain_policies.py
95
+ - tests/test_help_subprocess.py
96
+ - tests/test_implementation_checks.py
97
+ - tests/test_import_boundaries.py
98
+ - tests/test_indexes_cache_recovery.py
99
+ - tests/test_ledgercore_compat.py
100
+ - tests/test_search.py
101
+ - tests/test_service_boundaries.py
102
+ - tests/test_task_report.py
103
+ - tests/test_taskledger_sibling_storage.py
104
+ - tests/test_workspace_snapshot.py
105
+ stats:
106
+ files_changed: 0
107
+ insertions: 675
108
+ deletions: 383
109
+ inspected: true
110
+ inspected_paths:
111
+ - taskledger/cli.py
112
+ - taskledger/cli_common.py
113
+ - taskledger/cli_implement.py
114
+ - taskledger/cli_plan.py
115
+ - taskledger/services/agent_logging.py
116
+ - taskledger/services/command_runner.py
117
+ - taskledger/services/implementation_flow.py
118
+ - tests/test_agent_command_logging.py
119
+ - tests/test_implementation_checks.py
120
+ - docs/command_contract.md
121
+ - docs/full_task_cycle.md
122
+ - docs/usage.md
123
+ observed_behavior:
124
+ Managed plan and implement command wrappers now preserve the
125
+ exact child argv, execute from the CLI invocation directory or explicit root,
126
+ capture stdout and stderr in structured results, show those streams in human mode,
127
+ and record the child cwd in managed command logs. Focused tests cover argv, cwd,
128
+ human output, JSON output, and transcript logging.
129
+ public_impact: public
130
+ decision: accepted
131
+ evidence_subject: "feat: improve transcript logging"
132
+ target_entry_id: entry-0001
133
+ notes:
134
+ The remaining changed paths are import/export ordering, formatting, lint
135
+ cleanup, and supporting refactors without separate release-note behavior.
@@ -0,0 +1,40 @@
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.3
9
+ kind: changed
10
+ summary:
11
+ Improved managed commands to preserve child arguments, working directories,
12
+ output, and execution context
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:713acfa2be8891f88d889121dd769656443947f3
18
+ paths:
19
+ - taskledger/cli.py
20
+ - taskledger/cli_common.py
21
+ - taskledger/cli_implement.py
22
+ - taskledger/cli_plan.py
23
+ - taskledger/services/agent_logging.py
24
+ - taskledger/services/command_runner.py
25
+ - taskledger/services/implementation_flow.py
26
+ - tests/test_agent_command_logging.py
27
+ - tests/test_implementation_checks.py
28
+ - docs/command_contract.md
29
+ - docs/full_task_cycle.md
30
+ - docs/usage.md
31
+ issues: []
32
+ prs: []
33
+ sources: []
34
+ contributors: []
35
+ breaking: false
36
+ internal: false
37
+ order: 1
38
+ ---
39
+
40
+ Planning and implementation command results and managed command logs now expose the child working directory and captured stdout/stderr. Human mode emits captured streams, while JSON mode keeps them in the result envelope.
@@ -0,0 +1,26 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 4
7
+ version: v0.6.3
8
+ status: released
9
+ title: Release v0.6.3
10
+ released_at: "2026-08-19"
11
+ previous_version: v0.6.2
12
+ cancel_reason: null
13
+ superseded_by: null
14
+ changelog_file: docs/changelog.md
15
+ boundary_ref: null
16
+ source_refs: []
17
+ source_count: null
18
+ entry_count: 1
19
+ artifact_count: 0
20
+ git_base_ref: v0.6.2
21
+ git_base_sha: 196a79e85e7abf1296637bec7500c689011e054d
22
+ git_head_ref: HEAD
23
+ git_head_sha: 713acfa2be8891f88d889121dd769656443947f3
24
+ git_range: 196a79e85e7abf1296637bec7500c689011e054d..713acfa2be8891f88d889121dd769656443947f3
25
+ git_commit_count: 1
26
+ ---
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: taskledger
3
- Version: 0.6.1
3
+ Version: 0.6.3
4
4
  Summary: Durable project-state storage and CLI for coding workflows
5
5
  Author: Taskledger Contributors
6
6
  Maintainer: Holger Nahrstaedt
@@ -2,6 +2,31 @@
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.3] - 2026-08-19
6
+
7
+ ### Changed
8
+
9
+ - Improved managed commands to preserve child arguments, working directories, output, and execution context
10
+
11
+ <!-- generated by releaseledger -->
12
+
13
+ ## [v0.6.2] - 2026-08-15
14
+
15
+ ### Changed
16
+
17
+ - Automatic indexes cache bootstrapping before canonical mutations with quarantine-based recovery for unbound caches
18
+ - Indexes mount is fixed to cache storage; `storage set indexes cache` is now an idempotent topology request and non-cache indexes storage is rejected directly
19
+
20
+ ### Fixed
21
+
22
+ - `reindex` command now reports cache recovery results and surfaces structured errors for recovery failures
23
+
24
+ ### Documentation
25
+
26
+ - Documented indexes cache recovery behavior and multi-machine sync workflow
27
+
28
+ <!-- generated by releaseledger -->
29
+
5
30
  ## [v0.6.1] - 2026-08-14
6
31
 
7
32
  ### Added
@@ -443,7 +443,16 @@ to a durable non-active stage rather than directly re-entering an active stage.
443
443
  ## Managed command wrappers
444
444
 
445
445
  `plan command` and `implement command` mirror the inner command exit code by
446
- default.
446
+ default. Both wrappers pass the argument vector after `--` to the child without a
447
+ shell. They execute the child from the CLI invocation directory, or the explicit
448
+ `--root` directory, even when Taskledger discovers an ancestor workspace root for
449
+ ledger state, artifacts, and logs.
450
+
451
+ Captured stdout and stderr are included in the command result. Human mode emits
452
+ those streams before the recorded-command summary, while JSON mode keeps them only
453
+ inside the single JSON result envelope. The result and managed-shell log also record
454
+ the child cwd. `--allow-failure` changes only the wrapper exit code; the recorded
455
+ child exit code and failed check remain unchanged.
447
456
 
448
457
  Use `--allow-failure` when you intentionally want to record a non-zero inner
449
458
  exit code while returning wrapper exit code `0`:
@@ -664,15 +673,24 @@ taskledger ledger doctor
664
673
  ```
665
674
 
666
675
  Checkout-scoped indexes under the resolved cache mount are optional derived
667
- caches or registries. Task, plan, and run commands must continue to work from
668
- canonical Markdown/YAML records even when cache files are absent. The remaining
669
- derived caches may be plain JSON arrays with no version metadata and can be
670
- rebuilt with:
676
+ caches or registries. Read-only commands continue to work from canonical
677
+ Markdown/YAML records and do not initialize a missing cache. Before a canonical
678
+ mutation, Taskledger initializes a missing or empty cache binding and rebuilds
679
+ the derived indexes. A non-empty cache without its binding marker is atomically
680
+ quarantined beside the cache and rebuilt from canonical records. Conflicting or
681
+ invalid markers, symlinks, and non-directory cache paths are not adopted
682
+ automatically. The remaining derived caches may be plain JSON arrays with no
683
+ version metadata and can be rebuilt explicitly with:
671
684
 
672
685
  ```bash
673
686
  taskledger reindex
674
687
  ```
675
688
 
689
+ `taskledger repair index` uses the same recovery path and reports any quarantine
690
+ location. The `indexes` mount is fixed to cache storage, so
691
+ `taskledger storage set indexes cache` is an idempotent topology request;
692
+ non-cache indexes storage is rejected directly.
693
+
676
694
  A newer storage version than the installed taskledger supports is rejected with
677
695
  a clear error.
678
696
 
@@ -118,10 +118,12 @@ taskledger plan command -- pytest tests/test_parser.py -q
118
118
  taskledger plan command -- python -m compileall taskledger
119
119
  ```
120
120
 
121
- `plan command` records command exit code and output in planning diagnostics.
122
- With transcript logging enabled, the same output is also captured in the
123
- ledger-level command transcript. Use it to build evidence into the plan before
124
- proposal.
121
+ `plan command` records command exit code, stdout, stderr, and actual child cwd in
122
+ planning diagnostics. It passes the inner argv without a shell and runs from the CLI
123
+ invocation directory. Workspace discovery may use an ancestor for Taskledger state,
124
+ but it must not change the managed child's cwd. With transcript logging enabled, the
125
+ same output is also captured in the ledger-level command transcript. Use it to build
126
+ evidence into the plan before proposal.
125
127
 
126
128
  ## 6. Materialize Todos And Approve
127
129
 
@@ -188,7 +190,10 @@ taskledger implement status
188
190
  ```
189
191
 
190
192
  Use `implement command` when you want taskledger to record a command run as
191
- part of implementation. With transcript logging enabled, it also records managed
193
+ part of implementation. It preserves the inner argv, runs from the CLI invocation
194
+ directory, and records the child cwd, exit code, stdout, and stderr. In human mode,
195
+ captured child output is shown before the command summary. In JSON mode, streams stay
196
+ inside the result envelope. With transcript logging enabled, it also records managed
192
197
  stdout/stderr in the task transcript. Use `implement deviation` when the
193
198
  implementation differs from the approved plan.
194
199
 
@@ -42,6 +42,15 @@ taskledger sync git push
42
42
 
43
43
  ## Second PC bootstrap
44
44
 
45
+ Indexes are checkout-local derived state and are not synchronized between PCs.
46
+ After opening a project on a new machine, deleting the local cache, or allowing
47
+ the cache to be evicted, read-only commands continue to use canonical records.
48
+ The first mutating command creates the local Ledgercore cache binding and
49
+ rebuilds the indexes automatically; no second `taskledger init` is required.
50
+ If a non-empty unbound cache is found, Taskledger preserves it as an
51
+ `indexes.quarantine-*` sibling before rebuilding. Use `taskledger repair index`
52
+ for explicit cache health repair.
53
+
45
54
  Clone both repositories as siblings:
46
55
 
47
56
  ```bash
@@ -593,10 +593,14 @@ taskledger implement command --allow-failure -- python -c "raise SystemExit(7)"
593
593
  ```
594
594
 
595
595
  When `[agent_logging].enabled = true` in `.ledger/taskledger/config.toml`, `taskledger`
596
- records CLI invocations and managed command outputs. Keep logging opt-in because
597
- stdout/stderr may contain sensitive data. Route task-relevant commands through
598
- `plan command` and `implement command` so their output is included in task
599
- transcripts and reports.
596
+ records CLI invocations and managed command outputs. Both managed wrappers execute
597
+ the exact argv after `--` without a shell and from the CLI invocation directory, or
598
+ the explicit `--root` directory. Taskledger may discover an ancestor workspace for
599
+ ledger state, but that does not change the child's cwd. Human mode displays captured
600
+ stdout/stderr before the summary. JSON mode contains stdout/stderr and cwd only in
601
+ 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.
600
604
 
601
605
  > taskledger context --for implementation --format markdown
602
606
  > taskledger implement start
@@ -119,7 +119,7 @@ def _normalized_windows(
119
119
  if len(normalized) < min_lines:
120
120
  return []
121
121
  windows: list[tuple[int, tuple[str, ...]]] = []
122
- for offset in range(0, len(normalized) - min_lines + 1):
122
+ for offset in range(len(normalized) - min_lines + 1):
123
123
  start_line = normalized[offset][0]
124
124
  body = tuple(item[1] for item in normalized[offset : offset + min_lines])
125
125
  windows.append((start_line, body))
@@ -281,7 +281,9 @@ The plan file should use version ids like `plan-v1`, `plan-v2` in references. Do
281
281
  - Make the code changes
282
282
  - `taskledger implement change --path ... --kind edit --summary "..."`
283
283
  - Run verification through `taskledger implement command -- ...` so exit code and output are recorded.
284
- - `implement command` mirrors the inner command exit code by default. Use `--allow-failure` when you intentionally want to record a non-zero command without failing the wrapper command.
284
+ - Managed `plan command` and `implement command` pass argv after `--` without a shell and run from the CLI invocation directory, or explicit `--root` directory. Workspace discovery does not change the child cwd.
285
+ - Human mode emits captured child stdout/stderr before the summary. JSON mode keeps stdout/stderr and the actual child cwd inside the result envelope.
286
+ - Both wrappers mirror the inner command exit code by default. Use `--allow-failure` when you intentionally want to record a non-zero inner command without failing the wrapper command; the recorded child failure remains unchanged.
285
287
  - Mark each todo done only after the relevant command or inspection evidence exists: `taskledger todo done <todo-id> --evidence "check-NNNN exited 0"`.
286
288
  - Optional: add `--source planner|implementer|user` to override the inferred source, though this is rarely needed.
287
289
  6. `taskledger implement checklist` after each meaningful change to track progress.
@@ -393,7 +395,7 @@ taskledger validate check --criterion ac-0001 --status pass --evidence "pytest t
393
395
  - Log every meaningful implementation change with `taskledger implement change`.
394
396
  - Record deviations from the approved plan with `taskledger implement deviation`.
395
397
  - Mark todos done with evidence: `taskledger todo done <todo-id> --evidence "pytest -q"`.
396
- - 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.
398
+ - 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.
397
399
  - Do not paste secrets into command arguments, evidence strings, or expected command output when transcript logging is enabled.
398
400
  - Use `taskledger handoff create --mode implementation|validation --intended-actor agent --intended-harness codex` when switching actor or harness.
399
401
  - Use `taskledger handoff claim handoff-0001` before continuing work from a handoff.
@@ -459,7 +461,13 @@ Lock recovery decision tree:
459
461
  - If doctor reports a running implementation run with no matching lock and the task is still resumable, run `taskledger implement resume --task TASK --run RUN --reason "Reacquire implementation lock."`.
460
462
  - Never use repair to bypass approval, validation, or active implementation locks.
461
463
  - If validation fails, record the failure and return to implementation or replanning.
462
- - If indexes are stale, run `taskledger repair index`; `taskledger reindex` is a compatibility alias.
464
+ - Missing or empty checkout-local indexes caches are bootstrapped automatically
465
+ before canonical mutations and rebuilt from authoritative records. A
466
+ non-empty unbound cache is quarantined rather than deleted; conflicting
467
+ markers are not auto-adopted. Read-only commands do not bootstrap the cache.
468
+ - If indexes are stale or an unusual cache-binding problem needs explicit
469
+ repair, run `taskledger repair index`; `taskledger reindex` is a compatibility
470
+ alias. Do not tell users to manually create `.ledger-project.toml`.
463
471
  - If a task is truly cancelled and the user wants to continue, use `taskledger task uncancel --task TASK_REF --reason "..." [--to STAGE]` to restore a safe durable stage before re-entering an active stage.
464
472
  - If dependencies must be bypassed, only a user waiver may unblock implementation.
465
473
 
@@ -43,18 +43,10 @@ Feature: Implementation Checks
43
43
  @req-REQ-0026 @ac-AC-0321
44
44
  Example: Human Output Shows Check
45
45
  Given the pytest test setup is prepared
46
- When human output shows check is executed
46
+ When managed command execution is exercised
47
47
  Then r.exit_code equals 0
48
48
  Then 'recorded check check-' is in r.output
49
-
50
- @req-REQ-0026 @ac-AC-0320
51
- Example: Failed Command Creates Failed Check
52
- Given the pytest test setup is prepared
53
- When failed command creates failed check is executed
54
- Then r.exit_code equals 1
55
-
56
- @req-REQ-0026 @ac-AC-0315
57
- Example: Allow Failure Records Check
58
- Given the pytest test setup is prepared
59
- When allow failure records check is executed
60
- Then r.exit_code equals 0
49
+ Then child stdout and stderr are visible in human output
50
+ Then the managed result reports the actual child cwd
51
+ Then the child receives the exact argv after --
52
+ Then planning and implementation wrappers use the same execution contract
@@ -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.1'
22
- __version_tuple__ = version_tuple = (0, 6, 1)
21
+ __version__ = version = '0.6.3'
22
+ __version_tuple__ = version_tuple = (0, 6, 3)
23
23
 
24
- __commit_id__ = commit_id = 'g7491339c7'
24
+ __commit_id__ = commit_id = 'gecce3598f'
@@ -1,4 +1,4 @@
1
1
  from taskledger.services.tasks import break_lock, list_locks, show_lock
2
2
  from taskledger.storage.task_store import load_active_locks
3
3
 
4
- __all__ = ["show_lock", "break_lock", "list_locks", "load_active_locks"]
4
+ __all__ = ["break_lock", "list_locks", "load_active_locks", "show_lock"]
@@ -166,7 +166,7 @@ def repair_locks(
166
166
  try:
167
167
  break_lock(workspace_root, entry.task_id, reason=reason)
168
168
  repaired.append(entry.task_id)
169
- except Exception as exc:
169
+ except Exception as exc: # noqa: BLE001
170
170
  failed.append(
171
171
  {
172
172
  "task_id": entry.task_id,