cctx-cli 0.2.0__tar.gz → 1.0.0__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 (158) hide show
  1. cctx_cli-1.0.0/.github/workflows/release.yml +37 -0
  2. cctx_cli-1.0.0/CHANGELOG.md +73 -0
  3. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/PKG-INFO +1 -1
  4. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/__init__.py +1 -1
  5. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/pyproject.toml +12 -1
  6. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/.github/workflows/ci.yml +0 -0
  7. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/.github/workflows/publish.yml +0 -0
  8. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/.gitignore +0 -0
  9. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/CLAUDE.md +0 -0
  10. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/DESIGN.md +0 -0
  11. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/PRODUCT.md +0 -0
  12. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/README.md +0 -0
  13. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/action.yml +0 -0
  14. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/cli.py +0 -0
  15. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/diagnostician/__init__.py +0 -0
  16. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/diagnostician/aggregate.py +0 -0
  17. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/diagnostician/inflection.py +0 -0
  18. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/diagnostician/patterns/__init__.py +0 -0
  19. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/diagnostician/patterns/dead_end.py +0 -0
  20. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/diagnostician/patterns/retry_loop.py +0 -0
  21. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/diagnostician/patterns/scope_creep.py +0 -0
  22. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/diagnostician/patterns/stale_context.py +0 -0
  23. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/diagnostician/patterns/tool_thrash.py +0 -0
  24. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/discovery.py +0 -0
  25. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/exporters/__init__.py +0 -0
  26. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/exporters/csv.py +0 -0
  27. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/exporters/jsonl.py +0 -0
  28. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/harvest.py +0 -0
  29. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/models.py +0 -0
  30. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/parsers/__init__.py +0 -0
  31. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/parsers/claude_code.py +0 -0
  32. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/pricing.py +0 -0
  33. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/recommender/__init__.py +0 -0
  34. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/recommender/claude_md.py +0 -0
  35. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/recommender/evidence.py +0 -0
  36. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/renderers/__init__.py +0 -0
  37. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/renderers/github.py +0 -0
  38. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/renderers/report.py +0 -0
  39. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/renderers/templates/autopsy.html.j2 +0 -0
  40. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/renderers/terminal.py +0 -0
  41. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/renderers/trace_tui.py +0 -0
  42. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/tokenizer.py +0 -0
  43. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx/watcher.py +0 -0
  44. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/cctx-project-brief.md +0 -0
  45. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/demo.gif +0 -0
  46. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/demo.tape +0 -0
  47. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/docs/health-reviews/2026-05-15-deep-review-summary.md +0 -0
  48. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/docs/health-reviews/2026-05-15-health-review.md +0 -0
  49. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/docs/product-reviews/2026-05-15-product-review.md +0 -0
  50. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/docs/superpowers/plans/2026-05-12-claude-code-parser.md +0 -0
  51. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/docs/superpowers/plans/2026-05-14-autopsy-v0.md +0 -0
  52. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/docs/superpowers/plans/2026-05-16-readme-pypi-release.md +0 -0
  53. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/docs/superpowers/specs/2026-05-12-claude-code-parser-design.md +0 -0
  54. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/docs/superpowers/specs/2026-05-14-autopsy-design.md +0 -0
  55. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/docs/superpowers/specs/2026-05-14-harvest-design.md +0 -0
  56. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/docs/superpowers/specs/2026-05-14-trace-tui-design.md +0 -0
  57. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/docs/superpowers/specs/2026-05-16-readme-pypi-release-design.md +0 -0
  58. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/__init__.py +0 -0
  59. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/conftest.py +0 -0
  60. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/diagnostician/__init__.py +0 -0
  61. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/diagnostician/conftest.py +0 -0
  62. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/diagnostician/test_dead_end.py +0 -0
  63. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/diagnostician/test_inflection.py +0 -0
  64. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/diagnostician/test_orchestrator.py +0 -0
  65. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/diagnostician/test_retry_loop.py +0 -0
  66. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/diagnostician/test_scope_creep.py +0 -0
  67. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/diagnostician/test_stale_context.py +0 -0
  68. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/diagnostician/test_tool_thrash.py +0 -0
  69. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/exporters/__init__.py +0 -0
  70. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/exporters/test_csv.py +0 -0
  71. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/exporters/test_jsonl.py +0 -0
  72. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/README.md +0 -0
  73. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/short-clean/short-clean.jsonl +0 -0
  74. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-a0b4c2cf1dde0ca56.meta.json +0 -0
  75. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-a116ae34b1b09c332.meta.json +0 -0
  76. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-a1c4c417b35658c9e.meta.json +0 -0
  77. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-a1e41a901de38f1b5.meta.json +0 -0
  78. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-a338f8d0c74612a24.meta.json +0 -0
  79. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-a34f6f3c0e7094186.meta.json +0 -0
  80. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-a5a5a0cff4d13308b.meta.json +0 -0
  81. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-a6b0a3da6a0484db5.meta.json +0 -0
  82. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-a7f73f1790b02cde5.meta.json +0 -0
  83. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-a7f7c17c38a9d8788.meta.json +0 -0
  84. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-a853259e2cd7bbe8a.meta.json +0 -0
  85. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-a8d9aedb0d0c6e12d.meta.json +0 -0
  86. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-aa778bc1d59e4a441.meta.json +0 -0
  87. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-aba869dedee4a12ba.meta.json +0 -0
  88. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-ada2746d9774b94db.meta.json +0 -0
  89. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-aea0132068c64d2dd.meta.json +0 -0
  90. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-aea215eff50874d5f.meta.json +0 -0
  91. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments/subagents/agent-afee21f2b3852a4a0.meta.json +0 -0
  92. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-attachments/with-attachments.jsonl +0 -0
  93. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-a051d9c9a6b2f5cc3.jsonl +0 -0
  94. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-a051d9c9a6b2f5cc3.meta.json +0 -0
  95. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-a171f16f4e65cfe75.jsonl +0 -0
  96. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-a171f16f4e65cfe75.meta.json +0 -0
  97. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-a1b77fea2c0a2269b.jsonl +0 -0
  98. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-a1b77fea2c0a2269b.meta.json +0 -0
  99. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-a20da4c01a54acca8.jsonl +0 -0
  100. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-a20da4c01a54acca8.meta.json +0 -0
  101. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-a3c82739b1383fb14.jsonl +0 -0
  102. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-a3c82739b1383fb14.meta.json +0 -0
  103. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-a49e8539611c5fe12.jsonl +0 -0
  104. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-a49e8539611c5fe12.meta.json +0 -0
  105. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-a7bb58f3fff2b3e8d.jsonl +0 -0
  106. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-a7bb58f3fff2b3e8d.meta.json +0 -0
  107. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-a92b48c0331195aac.jsonl +0 -0
  108. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-a92b48c0331195aac.meta.json +0 -0
  109. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-ab96c4264099694a9.jsonl +0 -0
  110. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-ab96c4264099694a9.meta.json +0 -0
  111. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-acb2895c5e34ffec0.jsonl +0 -0
  112. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-acb2895c5e34ffec0.meta.json +0 -0
  113. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-adb2302769938fb3f.jsonl +0 -0
  114. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-adb2302769938fb3f.meta.json +0 -0
  115. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-ae585eca15cb93b9c.jsonl +0 -0
  116. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-ae585eca15cb93b9c.meta.json +0 -0
  117. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-aec9c917feb903d67.jsonl +0 -0
  118. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction/subagents/agent-aec9c917feb903d67.meta.json +0 -0
  119. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-compaction/with-compaction.jsonl +0 -0
  120. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-subagents/with-subagents/subagents/agent-a1a3a21aeb76bb0a9.jsonl +0 -0
  121. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-subagents/with-subagents/subagents/agent-a1a3a21aeb76bb0a9.meta.json +0 -0
  122. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-subagents/with-subagents/subagents/agent-aaa1d6ecc05a78442.jsonl +0 -0
  123. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-subagents/with-subagents/subagents/agent-aaa1d6ecc05a78442.meta.json +0 -0
  124. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-subagents/with-subagents/subagents/agent-af3c545ccd30036d2.jsonl +0 -0
  125. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-subagents/with-subagents/subagents/agent-af3c545ccd30036d2.meta.json +0 -0
  126. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-subagents/with-subagents/tool-results/btwp2bzro.txt +0 -0
  127. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-subagents/with-subagents/tool-results/byqjbgy4b.txt +0 -0
  128. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-subagents/with-subagents.jsonl +0 -0
  129. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-tool-results/with-tool-results/tool-results/bosbkda0h.txt +0 -0
  130. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/claude_code/with-tool-results/with-tool-results.jsonl +0 -0
  131. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/scrub.py +0 -0
  132. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/synthetic/bookkeeping_only.jsonl +0 -0
  133. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/synthetic/malformed_middle.jsonl +0 -0
  134. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/synthetic/truncated_final_line.jsonl +0 -0
  135. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/synthetic/unknown_attachment_shape.jsonl +0 -0
  136. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/fixtures/synthetic/unknown_type.jsonl +0 -0
  137. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/parsers/__init__.py +0 -0
  138. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/parsers/test_claude_code.py +0 -0
  139. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/parsers/test_claude_code_integration.py +0 -0
  140. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/recommender/__init__.py +0 -0
  141. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/recommender/test_claude_md.py +0 -0
  142. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/recommender/test_evidence.py +0 -0
  143. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/renderers/__init__.py +0 -0
  144. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/renderers/test_report.py +0 -0
  145. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/renderers/test_terminal_renderer_full.py +0 -0
  146. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/test_aggregate.py +0 -0
  147. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/test_cli.py +0 -0
  148. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/test_cli_export.py +0 -0
  149. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/test_discovery.py +0 -0
  150. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/test_github_summary.py +0 -0
  151. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/test_harvest.py +0 -0
  152. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/test_harvest_check.py +0 -0
  153. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/test_models.py +0 -0
  154. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/test_smoke.py +0 -0
  155. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/test_terminal_renderer.py +0 -0
  156. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/test_tokenizer.py +0 -0
  157. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/test_trace_tui.py +0 -0
  158. {cctx_cli-0.2.0 → cctx_cli-1.0.0}/tests/test_watcher.py +0 -0
@@ -0,0 +1,37 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ release:
10
+ name: Semantic release
11
+ runs-on: ubuntu-latest
12
+ concurrency: release
13
+ permissions:
14
+ contents: write
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ with:
19
+ fetch-depth: 0
20
+ token: ${{ secrets.RELEASE_TOKEN }}
21
+
22
+ - uses: actions/setup-python@v5
23
+ with:
24
+ python-version: "3.12"
25
+
26
+ - name: Install python-semantic-release
27
+ run: pip install python-semantic-release
28
+
29
+ - name: Compute version and push
30
+ run: semantic-release version
31
+ env:
32
+ GH_TOKEN: ${{ secrets.RELEASE_TOKEN }}
33
+
34
+ - name: Publish GitHub release
35
+ run: semantic-release publish
36
+ env:
37
+ GH_TOKEN: ${{ secrets.RELEASE_TOKEN }}
@@ -0,0 +1,73 @@
1
+ # CHANGELOG
2
+
3
+ <!-- version list -->
4
+
5
+ ## v1.0.0 (2026-05-17)
6
+
7
+ ### Continuous Integration
8
+
9
+ - Add python-semantic-release for fully automated CD
10
+ ([`9844921`](https://github.com/jacquardlabs/cctx/commit/98449213e5b3bd597c47d54e4d5043e245adafe4))
11
+
12
+ - Add workflow_dispatch to release.yml for manual trigger
13
+ ([`08ac9f8`](https://github.com/jacquardlabs/cctx/commit/08ac9f80eb6ceee7b57155852febc4274cbaf3b0))
14
+
15
+
16
+ ## v0.2.0 (2026-05-16)
17
+
18
+ ### Bug Fixes
19
+
20
+ - Ruff lint — B904, E402, E501, F841 across cli, tests, and renderers
21
+ ([`fa7105f`](https://github.com/jacquardlabs/cctx/commit/fa7105fef340d89136f1996b86824e30d080a730))
22
+
23
+ - Trace TUI token sum within line-length limit
24
+ ([`5b7416c`](https://github.com/jacquardlabs/cctx/commit/5b7416c5b92790cfe66f1e53f20891ecaf6e03b0))
25
+
26
+ ### Chores
27
+
28
+ - Bump version to 0.2.0, update PRODUCT.md and CLAUDE.md
29
+ ([`828ed49`](https://github.com/jacquardlabs/cctx/commit/828ed4997df9f4a264669bc38f4b10588a151f1c))
30
+
31
+ ### Documentation
32
+
33
+ - Add CI usage section clarifying harvest is local-only
34
+ ([`c526408`](https://github.com/jacquardlabs/cctx/commit/c526408a35749858e1c0b0b6ba42aea95bb8f621))
35
+
36
+ ### Features
37
+
38
+ - **#64,#63**: Tool-thrash and dead-end exploration classifiers
39
+ ([`14f8f45`](https://github.com/jacquardlabs/cctx/commit/14f8f45f9d3f4ef2fefac374d3e4cea36185c60d))
40
+
41
+ - **#65**: Harvest v2 — route patches to any .md target (.claude/rules/, .claude/skills/)
42
+ ([`06ef9b7`](https://github.com/jacquardlabs/cctx/commit/06ef9b7a8ae9abacea54c2c826efc3fb6e6e80be))
43
+
44
+ - **#66**: Cctx harvest --check audits CLAUDE.md for dead refs and empty sections
45
+ ([`a3be1d0`](https://github.com/jacquardlabs/cctx/commit/a3be1d0923d387b6830b10c7c2c5acf34a3b8917))
46
+
47
+ - **#67**: Interactive aggregate drill-down; --check docs in README
48
+ ([`3db5429`](https://github.com/jacquardlabs/cctx/commit/3db5429dede40777b23d83e32a4b15a8c0e82a16))
49
+
50
+ - **#68**: --since accepts 7d, 2w, YYYY-MM-DD, and date ranges
51
+ ([`434d7c4`](https://github.com/jacquardlabs/cctx/commit/434d7c448406e0a5465380ed395e1fadaa1c0db1))
52
+
53
+ - **#69**: Annotate costs as estimates (~85–95%) in terminal and HTML output
54
+ ([`5a49889`](https://github.com/jacquardlabs/cctx/commit/5a49889bd43555d30a58c2b78eddf6acbb0d8e97))
55
+
56
+ - **#70**: Cctx watch — live waste signals during an active session
57
+ ([`f533a13`](https://github.com/jacquardlabs/cctx/commit/f533a13e1f087da00457ce7b8215934f20c403a2))
58
+
59
+ - **#72**: Cctx autopsy --github-summary writes findings to GitHub Actions job summary
60
+ ([`df91256`](https://github.com/jacquardlabs/cctx/commit/df91256b58b75a9bbe9594a000b00dee2ac2fbc5))
61
+
62
+ - **#73**: Cctx GitHub Action (composite) + --fail-on-findings flag
63
+ ([`9229584`](https://github.com/jacquardlabs/cctx/commit/9229584ea192ce1b1ee6718721d981cba0ca13e0))
64
+
65
+ ### Refactoring
66
+
67
+ - Consolidate KIND_LABEL, fix private import, clean up watcher tests
68
+ ([`31ad4d7`](https://github.com/jacquardlabs/cctx/commit/31ad4d75885eed9c8238c4eb1c08bd5d1ba51a15))
69
+
70
+
71
+ ## v0.1.0 (2026-05-16)
72
+
73
+ - Initial Release
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cctx-cli
3
- Version: 0.2.0
3
+ Version: 1.0.0
4
4
  Summary: Diagnose Claude Code sessions — find what went wrong, what it cost, and what to add to CLAUDE.md
5
5
  Author: Jacquard Labs
6
6
  License-Expression: MIT
@@ -1,3 +1,3 @@
1
1
  """cctx: profile, debug, and optimize Claude Code and Agent SDK sessions."""
2
2
 
3
- __version__ = "0.2.0"
3
+ __version__ = "1.0.0"
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "cctx-cli"
7
- version = "0.2.0"
7
+ version = "1.0.0"
8
8
  description = "Diagnose Claude Code sessions — find what went wrong, what it cost, and what to add to CLAUDE.md"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -42,6 +42,17 @@ python_functions = ["test_*"]
42
42
  addopts = "-ra --strict-markers"
43
43
  asyncio_mode = "auto"
44
44
 
45
+ [tool.semantic_release]
46
+ version_toml = ["pyproject.toml:project.version"]
47
+ version_variables = ["cctx/__init__.py:__version__"]
48
+ tag_format = "v{version}"
49
+ commit_message = "chore(release): v{version} [skip ci]"
50
+ build_command = "pip install build && python -m build"
51
+ upload_to_vcs_release = true
52
+
53
+ [tool.semantic_release.branches.main]
54
+ match = "main"
55
+
45
56
  [tool.ruff]
46
57
  line-length = 100
47
58
  target-version = "py310"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes