cc-transcript 14.37.0__tar.gz → 14.37.2__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 (198) hide show
  1. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/PKG-INFO +1 -1
  2. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/pyproject.toml +1 -1
  3. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/Cargo.toml +0 -4
  4. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/lib.rs +22 -19
  5. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot.rs +25 -8
  6. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_root_warm.rs +36 -1
  7. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/python.rs +5 -1
  8. cc_transcript-14.37.0/rust/crates/cli/src/main.rs +0 -4
  9. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/Cargo.lock +0 -0
  10. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/Cargo.toml +0 -0
  11. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/LICENSE +0 -0
  12. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/README.md +0 -0
  13. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/__init__.py +0 -0
  14. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/__init__.pyi +0 -0
  15. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/_native.pyi +0 -0
  16. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/activity.py +0 -0
  17. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/activity_probe.py +0 -0
  18. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/builders.py +0 -0
  19. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/codex.py +0 -0
  20. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/command.py +0 -0
  21. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/context.py +0 -0
  22. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/corrections.py +0 -0
  23. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/cost.py +0 -0
  24. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/decision_store.py +0 -0
  25. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/decisions.py +0 -0
  26. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/discovery.py +0 -0
  27. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/disktruth.py +0 -0
  28. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/evidence.py +0 -0
  29. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/extract/__init__.py +0 -0
  30. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/extract/correct.py +0 -0
  31. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/facts.py +0 -0
  32. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/filterspec.py +0 -0
  33. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/heartbeats.py +0 -0
  34. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/ids.py +0 -0
  35. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/judge/__init__.py +0 -0
  36. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/judge/llm.py +0 -0
  37. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/judge/similar.py +0 -0
  38. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/judge/verdicts.py +0 -0
  39. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/ledger.py +0 -0
  40. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/literals.py +0 -0
  41. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/__init__.py +0 -0
  42. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/candidates.py +0 -0
  43. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/confidence.py +0 -0
  44. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/engine.py +0 -0
  45. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/formats.py +0 -0
  46. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/sampling.py +0 -0
  47. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/signals.py +0 -0
  48. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/sourcekind.py +0 -0
  49. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/spec.py +0 -0
  50. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/store.py +0 -0
  51. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/models.py +0 -0
  52. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/nlp.py +0 -0
  53. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/notifications.py +0 -0
  54. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/parser.py +0 -0
  55. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/py.typed +0 -0
  56. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/query.py +0 -0
  57. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/render.py +0 -0
  58. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/__init__.py +0 -0
  59. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/buckets.py +0 -0
  60. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/data/afinn-en-165.tsv +0 -0
  61. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/data/domain_overrides.tsv +0 -0
  62. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/data/en-ewt.udpipe +0 -0
  63. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/engine.py +0 -0
  64. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/lexicon.py +0 -0
  65. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/scorespec.py +0 -0
  66. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/snapshot_schema/config.schema.json +0 -0
  67. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/snapshot_schema/context.schema.json +0 -0
  68. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/snapshot_schema/request.schema.json +0 -0
  69. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/snapshot_schema/response.schema.json +0 -0
  70. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/snapshot_schema/tool_registry.schema.json +0 -0
  71. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/snapshots.py +0 -0
  72. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/synthetic.py +0 -0
  73. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/tools.py +0 -0
  74. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/watch.py +0 -0
  75. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/blame.rs +0 -0
  76. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/corpus.rs +0 -0
  77. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/corrections.rs +0 -0
  78. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/digest.rs +0 -0
  79. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/facts.rs +0 -0
  80. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/grep.rs +0 -0
  81. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/list.rs +0 -0
  82. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/mod.rs +0 -0
  83. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/scratchpad.rs +0 -0
  84. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/show.rs +0 -0
  85. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/slice.rs +0 -0
  86. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/stats.rs +0 -0
  87. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/watch.rs +0 -0
  88. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/output.rs +0 -0
  89. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/target.rs +0 -0
  90. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/timearg.rs +0 -0
  91. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/Cargo.toml +0 -0
  92. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/benches/parse.rs +0 -0
  93. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/benches/render.rs +0 -0
  94. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/benches/toolcall.rs +0 -0
  95. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/activity.rs +0 -0
  96. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/actor.rs +0 -0
  97. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/blame.rs +0 -0
  98. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/buckets.rs +0 -0
  99. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/codex/discovery.rs +0 -0
  100. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/codex/lower.rs +0 -0
  101. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/codex/mod.rs +0 -0
  102. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/codex/parse.rs +0 -0
  103. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/codex/probe.rs +0 -0
  104. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/codex/protocol.rs +0 -0
  105. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/codex/types.rs +0 -0
  106. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/command.rs +0 -0
  107. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/context.rs +0 -0
  108. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/corrections.rs +0 -0
  109. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/cost.rs +0 -0
  110. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/discovery.rs +0 -0
  111. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/facts.rs +0 -0
  112. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/feedback.rs +0 -0
  113. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/filter.rs +0 -0
  114. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/gateway.rs +0 -0
  115. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/ids.rs +0 -0
  116. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/judge.rs +0 -0
  117. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/lib.rs +0 -0
  118. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/literals/command.rs +0 -0
  119. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/literals/corrections.rs +0 -0
  120. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/literals/feedback.rs +0 -0
  121. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/literals/mining.rs +0 -0
  122. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/literals/mod.rs +0 -0
  123. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/literals/protocol.rs +0 -0
  124. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/notifications.rs +0 -0
  125. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/parse.rs +0 -0
  126. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/protocol.rs +0 -0
  127. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/pystr.rs +0 -0
  128. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/query.rs +0 -0
  129. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/render.rs +0 -0
  130. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/rng.rs +0 -0
  131. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan.rs +0 -0
  132. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan_checkpoint.rs +0 -0
  133. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan_grep.rs +0 -0
  134. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan_grep_stream.rs +0 -0
  135. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan_grep_stream_tests.rs +0 -0
  136. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan_index.rs +0 -0
  137. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan_projection.rs +0 -0
  138. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan_regressions.rs +0 -0
  139. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan_stream.rs +0 -0
  140. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/schema.rs +0 -0
  141. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_activity.rs +0 -0
  142. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_codec.rs +0 -0
  143. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_codex_append.rs +0 -0
  144. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_labels.rs +0 -0
  145. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_ledger.rs +0 -0
  146. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_ledger_tests.rs +0 -0
  147. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_memory.rs +0 -0
  148. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_owned.rs +0 -0
  149. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_prepared.rs +0 -0
  150. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_prepared_disk.rs +0 -0
  151. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_prepared_service.rs +0 -0
  152. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_projection.rs +0 -0
  153. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_regressions.rs +0 -0
  154. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_text.rs +0 -0
  155. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/sqlite.rs +0 -0
  156. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/toolcall.rs +0 -0
  157. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/types.rs +0 -0
  158. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/value.rs +0 -0
  159. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/watch.rs +0 -0
  160. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/tests/sonic_arena_model.rs +0 -0
  161. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/tests/std_allocation_model.rs +0 -0
  162. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/Cargo.toml +0 -0
  163. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/build.rs +0 -0
  164. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/data/command_prefix_pins.tsv +0 -0
  165. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/actor_bridge.rs +0 -0
  166. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/bin/stub_gen.rs +0 -0
  167. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/codex.rs +0 -0
  168. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/command.rs +0 -0
  169. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/context.rs +0 -0
  170. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/corrections.rs +0 -0
  171. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/discovery.rs +0 -0
  172. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/feedback.rs +0 -0
  173. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/judge.rs +0 -0
  174. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/lexicon.rs +0 -0
  175. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/lib.rs +0 -0
  176. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/mining.rs +0 -0
  177. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/nlp.rs +0 -0
  178. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/render.rs +0 -0
  179. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/score.rs +0 -0
  180. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/snapshot_decode.rs +0 -0
  181. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/snapshots.rs +0 -0
  182. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/sqlite.rs +0 -0
  183. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/toolcall.rs +0 -0
  184. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/attachment.rs +0 -0
  185. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/blocks.rs +0 -0
  186. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/command.rs +0 -0
  187. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/convert.rs +0 -0
  188. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/dunder.rs +0 -0
  189. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/events.rs +0 -0
  190. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/meta.rs +0 -0
  191. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/mod.rs +0 -0
  192. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/print.rs +0 -0
  193. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/store.rs +0 -0
  194. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/system.rs +0 -0
  195. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/toolcall.rs +0 -0
  196. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/toolresult.rs +0 -0
  197. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/transcript.rs +0 -0
  198. {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/watch.rs +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cc-transcript
3
- Version: 14.37.0
3
+ Version: 14.37.2
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cc-transcript"
3
- version = "14.37.0" # informational — releases stamp the version from the git tag
3
+ version = "14.37.2" # informational — releases stamp the version from the git tag
4
4
  description = "Grep every Claude Code session you've ever run."
5
5
  readme = "README.md"
6
6
  license = "PolyForm-Noncommercial-1.0.0"
@@ -4,10 +4,6 @@ version = "0.9.0"
4
4
  edition = "2021"
5
5
  publish = false
6
6
 
7
- [[bin]]
8
- name = "cc-transcript"
9
- path = "src/main.rs"
10
-
11
7
  [dependencies]
12
8
  cc-transcript-core = { path = "../core", features = ["command", "sqlite"] }
13
9
  clap = { version = "4.5", features = ["derive", "env", "string"] }
@@ -1,11 +1,12 @@
1
- //! The cc-transcript CLI: the clap twin of the retired click tree (cli.py), sharing one
2
- //! command surface between the `[[bin]]` and the `_native.cli_main` pyfunction.
1
+ //! The cc-transcript CLI: the clap twin of the retired click tree (cli.py), run by the
2
+ //! `_native.cli_main` pyfunction.
3
3
 
4
4
  use std::path::PathBuf;
5
5
  use std::sync::atomic::{AtomicBool, Ordering};
6
+ use std::sync::OnceLock;
6
7
 
7
8
  use clap::error::ErrorKind as ClapErrorKind;
8
- use clap::{Args, Parser, Subcommand};
9
+ use clap::{Args, CommandFactory, FromArgMatches, Parser, Subcommand};
9
10
 
10
11
  pub mod commands;
11
12
  pub mod output;
@@ -18,6 +19,15 @@ use output::CliExit;
18
19
  /// (cli.py watch_ catches KeyboardInterrupt); outside watch it means exit 130.
19
20
  pub static WATCH_ACTIVE: AtomicBool = AtomicBool::new(false);
20
21
  pub static WATCH_INTERRUPTED: AtomicBool = AtomicBool::new(false);
22
+
23
+ static VERSION: OnceLock<String> = OnceLock::new();
24
+
25
+ fn pkg_version() -> &'static str {
26
+ VERSION
27
+ .get()
28
+ .expect("run records the version before dispatch")
29
+ }
30
+
21
31
  pub(crate) static SCAN_CANCELLATION: std::sync::Mutex<
22
32
  Option<cc_transcript_core::snapshot::Cancellation>,
23
33
  > = std::sync::Mutex::new(None);
@@ -40,16 +50,6 @@ pub fn install_sigint_handler() {
40
50
  });
41
51
  }
42
52
 
43
- fn pkg_version() -> String {
44
- let pyproject = include_str!("../../../../pyproject.toml");
45
- pyproject
46
- .lines()
47
- .find_map(|line| line.strip_prefix("version = \""))
48
- .and_then(|rest| rest.strip_suffix('"'))
49
- .unwrap_or(env!("CARGO_PKG_VERSION"))
50
- .to_string()
51
- }
52
-
53
53
  const KIND_CHOICES: [&str; 6] = ["user", "assistant", "system", "mode", "other", "attachment"];
54
54
  const WHERE_CHOICES: [&str; 3] = ["text", "thinking", "tools"];
55
55
  const LIST_PROVIDER_CHOICES: [&str; 3] = ["claude", "codex", "all"];
@@ -78,7 +78,6 @@ const CORPUS_INCOMPATIBLE: [&str; 15] = [
78
78
  #[derive(Parser)]
79
79
  #[command(
80
80
  name = "cc-transcript",
81
- version = pkg_version(),
82
81
  about = "Investigate Claude Code transcripts: list, show, grep, and stats.",
83
82
  disable_help_subcommand = true
84
83
  )]
@@ -498,10 +497,14 @@ pub enum CorrectionsCmd {
498
497
  Sql { statement: String },
499
498
  }
500
499
 
501
- /// Full-argv entry shared by the `[[bin]]` and `_native.cli_main`: parses, dispatches,
502
- /// and returns the exit code verbatim.
503
- pub fn run(argv: Vec<String>) -> i32 {
504
- let cli = match Cli::try_parse_from(&argv) {
500
+ /// Full-argv entry for `_native.cli_main`: parses, dispatches, and returns the exit
501
+ /// code verbatim. `version` is what `--version` prints.
502
+ pub fn run(argv: Vec<String>, version: String) -> i32 {
503
+ let parsed = Cli::command()
504
+ .version(VERSION.get_or_init(|| version).as_str())
505
+ .try_get_matches_from(&argv)
506
+ .and_then(|matches| Cli::from_arg_matches(&matches));
507
+ let cli = match parsed {
505
508
  Ok(cli) => cli,
506
509
  Err(err) => {
507
510
  let code = match err.kind() {
@@ -514,7 +517,7 @@ pub fn run(argv: Vec<String>) -> i32 {
514
517
  };
515
518
  let Some(cmd) = cli.cmd else {
516
519
  // click: a bare group invocation prints help to stderr and exits 2.
517
- let mut help = <Cli as clap::CommandFactory>::command();
520
+ let mut help = Cli::command();
518
521
  eprint!("{}", help.render_long_help());
519
522
  return 2;
520
523
  };
@@ -204,6 +204,10 @@ impl SourceStamp {
204
204
  self
205
205
  }
206
206
 
207
+ pub fn window_bytes(&self) -> u64 {
208
+ self.size - self.identity.window_base
209
+ }
210
+
207
211
  pub fn viewed_as(mut self, pinned: SourceStamp) -> Self {
208
212
  self.identity.window_base = pinned.identity.window_base;
209
213
  self
@@ -6765,13 +6769,10 @@ impl NativeStore {
6765
6769
  return Err(invalid("source must be a regular file"));
6766
6770
  }
6767
6771
  let stamp = SourceStamp::of(&metadata);
6768
- if stamp.size > self.config.source as u64 {
6769
- return Err(SnapshotError::new(
6770
- Status::SourceLimit,
6771
- "source exceeds owner bound",
6772
- ));
6773
- }
6774
- let budget = limits.max_source_read_bytes.min(stamp.size as usize);
6772
+ let budget = limits
6773
+ .max_source_read_bytes
6774
+ .min(self.config.source)
6775
+ .min(stamp.size as usize);
6775
6776
  let mut reservation = self.reserve_projection(context, 0)?;
6776
6777
  let mut pending: Vec<u8> = Vec::new();
6777
6778
  let mut pending_start = stamp.size;
@@ -6962,7 +6963,7 @@ impl NativeStore {
6962
6963
  }
6963
6964
  let window = tail_bytes(request)?;
6964
6965
  let stamp = SourceStamp::of(&metadata).windowed(window);
6965
- if stamp.size > self.config.source as u64 {
6966
+ if stamp.window_bytes() > self.config.source as u64 {
6966
6967
  return Err(SnapshotError::new(
6967
6968
  Status::SourceLimit,
6968
6969
  "source exceeds owner bound",
@@ -11875,6 +11876,22 @@ mod tests {
11875
11876
  );
11876
11877
  }
11877
11878
 
11879
+ #[test]
11880
+ fn tail_reads_the_newest_events_of_a_source_past_the_owner_bound() {
11881
+ let source = Source::new(&users(0..50));
11882
+ let store = NativeStore::new(&json!({"max_read_bytes_per_step":64,"max_source_bytes":users(40..50).len(),"max_retained_bytes":32*1024*1024,"reserved_hook_accounted_bytes":4096})).unwrap();
11883
+ let owner = context("a");
11884
+ let response = store.request(
11885
+ &tail_request(&source.path, 5, 1024 * 1024),
11886
+ &owner,
11887
+ &Cancellation::default(),
11888
+ );
11889
+ assert_eq!(response["status"].as_str(), Some("ok"), "{response:?}");
11890
+ assert_eq!(tail_uuids(&response), ["45", "46", "47", "48", "49"]);
11891
+ let read = response["usage"]["source_bytes_read"].as_u64().unwrap() as usize;
11892
+ assert!(read <= users(40..50).len(), "{read}");
11893
+ }
11894
+
11878
11895
  #[test]
11879
11896
  fn tail_refuses_codex_sources_and_counts_outside_the_budgets() {
11880
11897
  let codex = Source::new(
@@ -23,7 +23,7 @@ impl NativeStore {
23
23
  return Err(invalid("root source must be a regular file"));
24
24
  }
25
25
  let current = SourceStamp::of(&metadata).windowed(tail_bytes(request)?);
26
- if current.size > self.config.source as u64 {
26
+ if current.window_bytes() > self.config.source as u64 {
27
27
  return Err(SnapshotError::new(
28
28
  Status::SourceLimit,
29
29
  "root source exceeds owner bound",
@@ -346,6 +346,41 @@ mod root_warm_tests {
346
346
  std::fs::remove_dir_all(directory).unwrap();
347
347
  }
348
348
 
349
+ #[test]
350
+ fn a_trailing_window_of_a_root_past_the_source_bound_warms_and_acquires() {
351
+ let (directory, path) = source(4 * 1024 * 1024);
352
+ let bound = std::fs::metadata(&path).unwrap().len() - 1;
353
+ let store = NativeStore::new(&json!({"max_read_bytes_per_step":256*1024,"max_source_bytes":bound,"max_retained_bytes":128*1024*1024,"reserved_hook_accounted_bytes":4096,"max_leases":16,"reserved_hook_leases":1})).unwrap();
354
+ let context = context("bounded-window");
355
+ let mut request = warm_request(&path, 256 * 1024);
356
+ request.insert("tail_bytes", json!(256 * 1024));
357
+ let mut finished = false;
358
+ for _ in 0..24 {
359
+ let reply = store.request(&request, &context, &Cancellation::default());
360
+ assert_eq!(reply["status"].as_str(), Some("ok"), "{reply:?}");
361
+ if reply["data"]["complete"].as_bool() == Some(true) {
362
+ finished = true;
363
+ break;
364
+ }
365
+ }
366
+ assert!(finished);
367
+ let mut acquire = request.clone();
368
+ acquire.insert("operation", json!("acquire"));
369
+ let acquired = store.request(&acquire, &context, &Cancellation::default());
370
+ assert_eq!(acquired["status"].as_str(), Some("ok"), "{acquired:?}");
371
+ acquire.insert("tail_bytes", json!(null));
372
+ let whole = store.request(&acquire, &context, &Cancellation::default());
373
+ assert_eq!(whole["status"].as_str(), Some("source_limit"), "{whole:?}");
374
+ assert_eq!(whole["reason"].as_str(), Some("source exceeds owner bound"));
375
+ let whole_warm = store.request(
376
+ &warm_request(&path, 256 * 1024),
377
+ &context,
378
+ &Cancellation::default(),
379
+ );
380
+ assert_eq!(whole_warm["status"].as_str(), Some("source_limit"), "{whole_warm:?}");
381
+ std::fs::remove_dir_all(directory).unwrap();
382
+ }
383
+
349
384
  #[test]
350
385
  fn a_base_advance_supersedes_the_previous_window_pin() {
351
386
  let (directory, path) = source(4 * 1024 * 1024);
@@ -1031,8 +1031,12 @@ fn tool_facts<'py>(
1031
1031
  #[pyfunction]
1032
1032
  fn cli_main(py: Python<'_>) -> PyResult<i32> {
1033
1033
  let argv: Vec<String> = py.import("sys")?.getattr("argv")?.extract()?;
1034
+ let version: String = py
1035
+ .import("importlib.metadata")?
1036
+ .call_method1("version", ("cc-transcript",))?
1037
+ .extract()?;
1034
1038
  cc_transcript_cli::install_sigint_handler();
1035
- Ok(py.detach(|| cc_transcript_cli::run(argv)))
1039
+ Ok(py.detach(|| cc_transcript_cli::run(argv, version)))
1036
1040
  }
1037
1041
 
1038
1042
  #[pyo3_stub_gen::derive::gen_stub_pyfunction]
@@ -1,4 +0,0 @@
1
- fn main() {
2
- cc_transcript_cli::install_sigint_handler();
3
- std::process::exit(cc_transcript_cli::run(std::env::args().collect()));
4
- }
File without changes