cc-transcript 14.28.4__tar.gz → 14.29.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.

Potentially problematic release.


This version of cc-transcript might be problematic. Click here for more details.

Files changed (188) hide show
  1. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/PKG-INFO +1 -1
  2. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/_native.pyi +1 -1
  3. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/snapshot_schema/request.schema.json +7 -0
  4. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/snapshot_schema/response.schema.json +7 -0
  5. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/snapshots.py +2 -2
  6. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/pyproject.toml +1 -1
  7. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/commands/grep.rs +7 -0
  8. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/scan.rs +15 -6
  9. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/scan_grep.rs +1 -0
  10. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/scan_regressions.rs +4 -3
  11. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/snapshot.rs +756 -91
  12. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/snapshot_codec.rs +183 -35
  13. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/snapshot_codex_append.rs +1 -1
  14. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/snapshot_labels.rs +1 -0
  15. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/snapshot_owned.rs +104 -12
  16. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/snapshot_prepared_service.rs +29 -28
  17. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/snapshot_projection.rs +48 -7
  18. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/snapshot_regressions.rs +2 -1
  19. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/snapshot_root_warm.rs +4 -2
  20. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/snapshot_decode.rs +230 -21
  21. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/snapshots.rs +42 -36
  22. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/Cargo.lock +0 -0
  23. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/Cargo.toml +0 -0
  24. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/LICENSE +0 -0
  25. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/README.md +0 -0
  26. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/__init__.py +0 -0
  27. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/__init__.pyi +0 -0
  28. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/activity.py +0 -0
  29. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/activity_probe.py +0 -0
  30. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/builders.py +0 -0
  31. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/codex.py +0 -0
  32. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/command.py +0 -0
  33. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/context.py +0 -0
  34. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/corrections.py +0 -0
  35. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/cost.py +0 -0
  36. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/decision_store.py +0 -0
  37. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/decisions.py +0 -0
  38. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/discovery.py +0 -0
  39. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/disktruth.py +0 -0
  40. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/evidence.py +0 -0
  41. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/extract/__init__.py +0 -0
  42. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/extract/correct.py +0 -0
  43. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/facts.py +0 -0
  44. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/filterspec.py +0 -0
  45. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/heartbeats.py +0 -0
  46. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/ids.py +0 -0
  47. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/judge/__init__.py +0 -0
  48. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/judge/llm.py +0 -0
  49. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/judge/similar.py +0 -0
  50. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/judge/verdicts.py +0 -0
  51. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/ledger.py +0 -0
  52. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/literals.py +0 -0
  53. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/mining/__init__.py +0 -0
  54. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/mining/candidates.py +0 -0
  55. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/mining/confidence.py +0 -0
  56. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/mining/engine.py +0 -0
  57. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/mining/formats.py +0 -0
  58. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/mining/sampling.py +0 -0
  59. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/mining/signals.py +0 -0
  60. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/mining/sourcekind.py +0 -0
  61. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/mining/spec.py +0 -0
  62. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/mining/store.py +0 -0
  63. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/models.py +0 -0
  64. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/nlp.py +0 -0
  65. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/notifications.py +0 -0
  66. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/parser.py +0 -0
  67. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/py.typed +0 -0
  68. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/query.py +0 -0
  69. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/render.py +0 -0
  70. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/sentiment/__init__.py +0 -0
  71. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/sentiment/buckets.py +0 -0
  72. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/sentiment/data/afinn-en-165.tsv +0 -0
  73. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/sentiment/data/domain_overrides.tsv +0 -0
  74. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/sentiment/data/en-ewt.udpipe +0 -0
  75. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/sentiment/engine.py +0 -0
  76. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/sentiment/lexicon.py +0 -0
  77. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/sentiment/scorespec.py +0 -0
  78. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/snapshot_schema/config.schema.json +0 -0
  79. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/snapshot_schema/context.schema.json +0 -0
  80. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/snapshot_schema/tool_registry.schema.json +0 -0
  81. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/synthetic.py +0 -0
  82. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/tools.py +0 -0
  83. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/cc_transcript/watch.py +0 -0
  84. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/Cargo.toml +0 -0
  85. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/commands/blame.rs +0 -0
  86. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/commands/corpus.rs +0 -0
  87. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/commands/corrections.rs +0 -0
  88. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/commands/digest.rs +0 -0
  89. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/commands/facts.rs +0 -0
  90. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/commands/list.rs +0 -0
  91. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/commands/mod.rs +0 -0
  92. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/commands/scratchpad.rs +0 -0
  93. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/commands/show.rs +0 -0
  94. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/commands/slice.rs +0 -0
  95. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/commands/stats.rs +0 -0
  96. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/commands/watch.rs +0 -0
  97. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/lib.rs +0 -0
  98. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/main.rs +0 -0
  99. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/output.rs +0 -0
  100. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/target.rs +0 -0
  101. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/cli/src/timearg.rs +0 -0
  102. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/Cargo.toml +0 -0
  103. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/benches/parse.rs +0 -0
  104. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/benches/render.rs +0 -0
  105. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/benches/toolcall.rs +0 -0
  106. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/activity.rs +0 -0
  107. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/actor.rs +0 -0
  108. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/blame.rs +0 -0
  109. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/buckets.rs +0 -0
  110. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/codex/discovery.rs +0 -0
  111. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/codex/lower.rs +0 -0
  112. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/codex/mod.rs +0 -0
  113. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/codex/parse.rs +0 -0
  114. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/codex/probe.rs +0 -0
  115. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/codex/protocol.rs +0 -0
  116. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/codex/types.rs +0 -0
  117. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/command.rs +0 -0
  118. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/context.rs +0 -0
  119. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/corrections.rs +0 -0
  120. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/cost.rs +0 -0
  121. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/discovery.rs +0 -0
  122. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/facts.rs +0 -0
  123. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/feedback.rs +0 -0
  124. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/filter.rs +0 -0
  125. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/gateway.rs +0 -0
  126. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/ids.rs +0 -0
  127. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/judge.rs +0 -0
  128. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/lib.rs +0 -0
  129. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/literals/command.rs +0 -0
  130. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/literals/corrections.rs +0 -0
  131. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/literals/feedback.rs +0 -0
  132. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/literals/mining.rs +0 -0
  133. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/literals/mod.rs +0 -0
  134. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/literals/protocol.rs +0 -0
  135. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/notifications.rs +0 -0
  136. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/parse.rs +0 -0
  137. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/protocol.rs +0 -0
  138. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/pystr.rs +0 -0
  139. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/query.rs +0 -0
  140. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/render.rs +0 -0
  141. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/rng.rs +0 -0
  142. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/schema.rs +0 -0
  143. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/snapshot_activity.rs +0 -0
  144. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/snapshot_memory.rs +0 -0
  145. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/snapshot_prepared.rs +0 -0
  146. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/snapshot_prepared_disk.rs +0 -0
  147. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/snapshot_text.rs +0 -0
  148. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/sqlite.rs +0 -0
  149. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/toolcall.rs +0 -0
  150. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/types.rs +0 -0
  151. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/value.rs +0 -0
  152. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/core/src/watch.rs +0 -0
  153. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/Cargo.toml +0 -0
  154. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/build.rs +0 -0
  155. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/data/command_prefix_pins.tsv +0 -0
  156. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/actor_bridge.rs +0 -0
  157. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/bin/stub_gen.rs +0 -0
  158. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/codex.rs +0 -0
  159. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/command.rs +0 -0
  160. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/context.rs +0 -0
  161. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/corrections.rs +0 -0
  162. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/discovery.rs +0 -0
  163. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/feedback.rs +0 -0
  164. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/judge.rs +0 -0
  165. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/lexicon.rs +0 -0
  166. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/lib.rs +0 -0
  167. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/mining.rs +0 -0
  168. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/nlp.rs +0 -0
  169. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/python.rs +0 -0
  170. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/render.rs +0 -0
  171. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/score.rs +0 -0
  172. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/sqlite.rs +0 -0
  173. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/toolcall.rs +0 -0
  174. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/views/attachment.rs +0 -0
  175. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/views/blocks.rs +0 -0
  176. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/views/command.rs +0 -0
  177. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/views/convert.rs +0 -0
  178. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/views/dunder.rs +0 -0
  179. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/views/events.rs +0 -0
  180. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/views/meta.rs +0 -0
  181. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/views/mod.rs +0 -0
  182. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/views/print.rs +0 -0
  183. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/views/store.rs +0 -0
  184. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/views/system.rs +0 -0
  185. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/views/toolcall.rs +0 -0
  186. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/views/toolresult.rs +0 -0
  187. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/rust/crates/py/src/views/transcript.rs +0 -0
  188. {cc_transcript-14.28.4 → cc_transcript-14.29.0}/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.28.4
3
+ Version: 14.29.0
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -1137,7 +1137,7 @@ class NativeSnapshotScope:
1137
1137
  def prose_page(self, start: builtins.int) -> builtins.str: ...
1138
1138
  def event(self, index: builtins.int) -> typing.Any: ...
1139
1139
  def classifier_facts(self, prefix: builtins.str, event_limit: builtins.int = 50) -> builtins.str: ...
1140
- def activity(self, classifier_json: builtins.str, anchor_json: typing.Optional[builtins.str] = None, lookback: builtins.int = 40, lookahead: builtins.int = 120) -> dict: ...
1140
+ def activity(self, classifier_json: builtins.str, anchors_json: typing.Optional[builtins.str] = None, lookback: builtins.int = 40, lookahead: builtins.int = 120) -> dict: ...
1141
1141
  def mine(self, spec_json: builtins.str, callable_formats: typing.Sequence[tuple[builtins.str, typing.Any, typing.Any, builtins.bool]]) -> builtins.list[dict]: ...
1142
1142
  def capture(self, anchors_json: builtins.str, before: builtins.int = 6, after: builtins.int = 2, preview_chars: builtins.int = 200) -> builtins.str: ...
1143
1143
  def hydrate(self, windows_json: builtins.str, render_json: builtins.str) -> builtins.str: ...
@@ -707,6 +707,12 @@
707
707
  "title": "Max Read Bytes",
708
708
  "type": "integer"
709
709
  },
710
+ "max_source_read_bytes": {
711
+ "exclusiveMinimum": 0,
712
+ "maximum": 536870912,
713
+ "title": "Max Source Read Bytes",
714
+ "type": "integer"
715
+ },
710
716
  "max_sources": {
711
717
  "exclusiveMinimum": 0,
712
718
  "maximum": 65536,
@@ -716,6 +722,7 @@
716
722
  },
717
723
  "required": [
718
724
  "max_read_bytes",
725
+ "max_source_read_bytes",
719
726
  "max_events",
720
727
  "max_items",
721
728
  "max_output_bytes",
@@ -1013,6 +1013,12 @@
1013
1013
  "title": "Max Read Bytes",
1014
1014
  "type": "integer"
1015
1015
  },
1016
+ "max_source_read_bytes": {
1017
+ "maximum": 9007199254740991,
1018
+ "minimum": 0,
1019
+ "title": "Max Source Read Bytes",
1020
+ "type": "integer"
1021
+ },
1016
1022
  "max_sources": {
1017
1023
  "maximum": 9007199254740991,
1018
1024
  "minimum": 0,
@@ -1022,6 +1028,7 @@
1022
1028
  },
1023
1029
  "required": [
1024
1030
  "max_read_bytes",
1031
+ "max_source_read_bytes",
1025
1032
  "max_events",
1026
1033
  "max_items",
1027
1034
  "max_output_bytes",
@@ -229,14 +229,14 @@ class TranscriptSnapshot:
229
229
  self,
230
230
  classifier: Mapping[str, str],
231
231
  *,
232
- anchor: EventRef | None = None,
232
+ anchors: Sequence[EventRef] = (),
233
233
  lookback_turns: int = 40,
234
234
  lookahead_turns: int = 120,
235
235
  ) -> SessionActivity:
236
236
  payload = _call(
237
237
  self._native.activity,
238
238
  _json(classifier),
239
- None if anchor is None else _json(asdict(anchor)),
239
+ _json([asdict(anchor) for anchor in anchors]) if anchors else None,
240
240
  lookback_turns,
241
241
  lookahead_turns,
242
242
  )
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cc-transcript"
3
- version = "14.28.4" # informational — releases stamp the version from the git tag
3
+ version = "14.29.0" # 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"
@@ -22,6 +22,8 @@ const DEFAULT_MAX_MATCHES: usize = 20;
22
22
  pub struct ScanOptions {
23
23
  #[arg(long, help = "Maximum cumulative source and logical projection bytes.")]
24
24
  pub max_read_bytes: Option<usize>,
25
+ #[arg(long, help = "Maximum cumulative source bytes read.")]
26
+ pub max_source_read_bytes: Option<usize>,
25
27
  #[arg(
26
28
  long,
27
29
  help = "Maximum cumulative preparation and event traversal work."
@@ -41,6 +43,10 @@ impl ScanOptions {
41
43
  fn apply(&self, mut limits: WorkLimits) -> Result<WorkLimits, CliExit> {
42
44
  if let Some(n) = self.max_read_bytes {
43
45
  limits.max_read_bytes = n;
46
+ limits.max_source_read_bytes = n;
47
+ }
48
+ if let Some(n) = self.max_source_read_bytes {
49
+ limits.max_source_read_bytes = n;
44
50
  }
45
51
  if let Some(n) = self.max_events {
46
52
  limits.max_events = n;
@@ -60,6 +66,7 @@ impl ScanOptions {
60
66
  }
61
67
  if [
62
68
  limits.max_read_bytes,
69
+ limits.max_source_read_bytes,
63
70
  limits.max_events,
64
71
  limits.max_output_bytes,
65
72
  limits.max_discovery_entries,
@@ -89,12 +89,18 @@ impl<'store> ScanBudget<'store> {
89
89
  }
90
90
 
91
91
  pub fn remaining(&self) -> WorkLimits {
92
+ let read = self
93
+ .limits
94
+ .max_read_bytes
95
+ .saturating_sub(self.progress.source_bytes)
96
+ .saturating_sub(self.progress.projection_bytes);
92
97
  WorkLimits {
93
- max_read_bytes: self
98
+ max_read_bytes: read,
99
+ max_source_read_bytes: self
94
100
  .limits
95
- .max_read_bytes
101
+ .max_source_read_bytes
96
102
  .saturating_sub(self.progress.source_bytes)
97
- .saturating_sub(self.progress.projection_bytes),
103
+ .min(read),
98
104
  max_events: self
99
105
  .limits
100
106
  .max_events
@@ -180,6 +186,9 @@ impl<'store> ScanBudget<'store> {
180
186
  .progress
181
187
  .discovery_entries
182
188
  .saturating_add(count(usage, "discovery_entries_examined")?);
189
+ if self.progress.source_bytes > self.limits.max_source_read_bytes {
190
+ return Err(crate::snapshot::source_read_limit());
191
+ }
183
192
  if self
184
193
  .progress
185
194
  .source_bytes
@@ -279,7 +288,7 @@ impl<'a> ScanSession<'a> {
279
288
 
280
289
  fn bounded_request(&self, operation: &str) -> Value {
281
290
  let limits = self.budget.remaining();
282
- json!({"operation":operation,"deadline_unix_ms":limits.deadline_unix_ms,"limits":{"max_read_bytes":limits.max_read_bytes,"max_events":limits.max_events,"max_items":limits.max_items,"max_output_bytes":limits.max_output_bytes,"max_discovery_entries":limits.max_discovery_entries,"max_sources":limits.max_sources}})
291
+ json!({"operation":operation,"deadline_unix_ms":limits.deadline_unix_ms,"limits":limits.to_json()})
283
292
  }
284
293
 
285
294
  fn targets(&mut self, plan: &ScanPlan) -> Result<(Vec<PathBuf>, usize), SnapshotError> {
@@ -555,7 +564,7 @@ where
555
564
  }
556
565
  let file = std::fs::File::open(path).map_err(|e| incomplete(e.to_string()))?;
557
566
  let before = file.metadata().map_err(|e| incomplete(e.to_string()))?;
558
- let read_limit = budget.remaining().max_read_bytes;
567
+ let read_limit = budget.remaining().max_source_read_bytes;
559
568
  let source_start = budget.progress.source_bytes;
560
569
  let read_count = std::rc::Rc::new(std::cell::Cell::new(0));
561
570
  let counted = CountedRead {
@@ -576,7 +585,7 @@ where
576
585
  reader
577
586
  .get_mut()
578
587
  .inner
579
- .set_limit(budget.remaining().max_read_bytes as u64);
588
+ .set_limit(budget.remaining().max_source_read_bytes as u64);
580
589
  }
581
590
  let part = reader.fill_buf().map_err(|e| incomplete(e.to_string()))?;
582
591
  budget.progress.source_bytes = source_start.saturating_add(read_count.get());
@@ -642,6 +642,7 @@ mod tests {
642
642
  owner,
643
643
  WorkLimits {
644
644
  max_read_bytes: 8 * 1024 * 1024,
645
+ max_source_read_bytes: 8 * 1024 * 1024,
645
646
  max_events: 4096,
646
647
  max_items: 4096,
647
648
  max_output_bytes: 1024 * 1024,
@@ -39,6 +39,7 @@ impl Drop for Fixture {
39
39
  fn limits() -> WorkLimits {
40
40
  WorkLimits {
41
41
  max_read_bytes: 1024 * 1024,
42
+ max_source_read_bytes: 1024 * 1024,
42
43
  max_events: 1000,
43
44
  max_items: 1000,
44
45
  max_output_bytes: 1024 * 1024,
@@ -174,7 +175,7 @@ fn long_corpus_line_is_incomplete_without_visiting_it() {
174
175
  let path = fixture.0.join("corpus.txt");
175
176
  std::fs::write(&path, "abcdefghijk\n").unwrap();
176
177
  let mut bound = limits();
177
- bound.max_read_bytes = 4;
178
+ bound.max_source_read_bytes = 4;
178
179
  let owner = NativeStore::new(&json!({})).unwrap();
179
180
  let mut budget = ScanBudget::new(&owner, bound);
180
181
  let result = scan_corpus(
@@ -315,7 +316,7 @@ fn cumulative_read_budget_survives_small_load_pages_and_sources() {
315
316
  });
316
317
  assert!(reference.complete, "{:?}", reference.reason);
317
318
  let mut bound = limits();
318
- bound.max_read_bytes = reference.progress.source_bytes + 1;
319
+ bound.max_source_read_bytes = reference.progress.source_bytes + 1;
319
320
  let store = NativeStore::new(&config).unwrap();
320
321
  let mut scan = ScanSession::new(&store, bound, Cancellation::default());
321
322
  let mut visits = 0;
@@ -325,7 +326,7 @@ fn cumulative_read_budget_survives_small_load_pages_and_sources() {
325
326
  });
326
327
  assert!(!result.complete);
327
328
  assert_eq!(visits, 1);
328
- assert!(result.progress.source_bytes <= bound.max_read_bytes);
329
+ assert!(result.progress.source_bytes <= bound.max_source_read_bytes);
329
330
  let context = scan.context.clone();
330
331
  drop(scan);
331
332
  assert_eq!(gauges(&store, &context)["active_leases"].as_u64(), Some(0));