cc-transcript 14.28.2__tar.gz → 14.28.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 (188) hide show
  1. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/PKG-INFO +1 -1
  2. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/pyproject.toml +1 -1
  3. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/snapshot.rs +37 -1
  4. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/snapshot_prepared_service.rs +35 -6
  5. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/Cargo.lock +0 -0
  6. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/Cargo.toml +0 -0
  7. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/LICENSE +0 -0
  8. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/README.md +0 -0
  9. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/__init__.py +0 -0
  10. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/__init__.pyi +0 -0
  11. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/_native.pyi +0 -0
  12. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/activity.py +0 -0
  13. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/activity_probe.py +0 -0
  14. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/builders.py +0 -0
  15. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/codex.py +0 -0
  16. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/command.py +0 -0
  17. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/context.py +0 -0
  18. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/corrections.py +0 -0
  19. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/cost.py +0 -0
  20. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/decision_store.py +0 -0
  21. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/decisions.py +0 -0
  22. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/discovery.py +0 -0
  23. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/disktruth.py +0 -0
  24. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/evidence.py +0 -0
  25. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/extract/__init__.py +0 -0
  26. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/extract/correct.py +0 -0
  27. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/facts.py +0 -0
  28. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/filterspec.py +0 -0
  29. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/heartbeats.py +0 -0
  30. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/ids.py +0 -0
  31. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/judge/__init__.py +0 -0
  32. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/judge/llm.py +0 -0
  33. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/judge/similar.py +0 -0
  34. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/judge/verdicts.py +0 -0
  35. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/ledger.py +0 -0
  36. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/literals.py +0 -0
  37. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/mining/__init__.py +0 -0
  38. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/mining/candidates.py +0 -0
  39. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/mining/confidence.py +0 -0
  40. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/mining/engine.py +0 -0
  41. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/mining/formats.py +0 -0
  42. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/mining/sampling.py +0 -0
  43. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/mining/signals.py +0 -0
  44. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/mining/sourcekind.py +0 -0
  45. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/mining/spec.py +0 -0
  46. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/mining/store.py +0 -0
  47. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/models.py +0 -0
  48. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/nlp.py +0 -0
  49. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/notifications.py +0 -0
  50. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/parser.py +0 -0
  51. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/py.typed +0 -0
  52. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/query.py +0 -0
  53. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/render.py +0 -0
  54. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/sentiment/__init__.py +0 -0
  55. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/sentiment/buckets.py +0 -0
  56. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/sentiment/data/afinn-en-165.tsv +0 -0
  57. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/sentiment/data/domain_overrides.tsv +0 -0
  58. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/sentiment/data/en-ewt.udpipe +0 -0
  59. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/sentiment/engine.py +0 -0
  60. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/sentiment/lexicon.py +0 -0
  61. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/sentiment/scorespec.py +0 -0
  62. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/snapshot_schema/config.schema.json +0 -0
  63. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/snapshot_schema/context.schema.json +0 -0
  64. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/snapshot_schema/request.schema.json +0 -0
  65. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/snapshot_schema/response.schema.json +0 -0
  66. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/snapshot_schema/tool_registry.schema.json +0 -0
  67. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/snapshots.py +0 -0
  68. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/synthetic.py +0 -0
  69. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/tools.py +0 -0
  70. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/cc_transcript/watch.py +0 -0
  71. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/Cargo.toml +0 -0
  72. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/commands/blame.rs +0 -0
  73. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/commands/corpus.rs +0 -0
  74. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/commands/corrections.rs +0 -0
  75. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/commands/digest.rs +0 -0
  76. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/commands/facts.rs +0 -0
  77. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/commands/grep.rs +0 -0
  78. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/commands/list.rs +0 -0
  79. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/commands/mod.rs +0 -0
  80. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/commands/scratchpad.rs +0 -0
  81. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/commands/show.rs +0 -0
  82. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/commands/slice.rs +0 -0
  83. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/commands/stats.rs +0 -0
  84. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/commands/watch.rs +0 -0
  85. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/lib.rs +0 -0
  86. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/main.rs +0 -0
  87. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/output.rs +0 -0
  88. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/target.rs +0 -0
  89. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/cli/src/timearg.rs +0 -0
  90. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/Cargo.toml +0 -0
  91. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/benches/parse.rs +0 -0
  92. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/benches/render.rs +0 -0
  93. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/benches/toolcall.rs +0 -0
  94. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/activity.rs +0 -0
  95. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/actor.rs +0 -0
  96. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/blame.rs +0 -0
  97. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/buckets.rs +0 -0
  98. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/codex/discovery.rs +0 -0
  99. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/codex/lower.rs +0 -0
  100. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/codex/mod.rs +0 -0
  101. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/codex/parse.rs +0 -0
  102. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/codex/probe.rs +0 -0
  103. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/codex/protocol.rs +0 -0
  104. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/codex/types.rs +0 -0
  105. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/command.rs +0 -0
  106. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/context.rs +0 -0
  107. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/corrections.rs +0 -0
  108. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/cost.rs +0 -0
  109. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/discovery.rs +0 -0
  110. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/facts.rs +0 -0
  111. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/feedback.rs +0 -0
  112. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/filter.rs +0 -0
  113. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/gateway.rs +0 -0
  114. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/ids.rs +0 -0
  115. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/judge.rs +0 -0
  116. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/lib.rs +0 -0
  117. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/literals/command.rs +0 -0
  118. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/literals/corrections.rs +0 -0
  119. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/literals/feedback.rs +0 -0
  120. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/literals/mining.rs +0 -0
  121. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/literals/mod.rs +0 -0
  122. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/literals/protocol.rs +0 -0
  123. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/notifications.rs +0 -0
  124. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/parse.rs +0 -0
  125. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/protocol.rs +0 -0
  126. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/pystr.rs +0 -0
  127. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/query.rs +0 -0
  128. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/render.rs +0 -0
  129. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/rng.rs +0 -0
  130. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/scan.rs +0 -0
  131. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/scan_grep.rs +0 -0
  132. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/scan_regressions.rs +0 -0
  133. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/schema.rs +0 -0
  134. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/snapshot_activity.rs +0 -0
  135. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/snapshot_codec.rs +0 -0
  136. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/snapshot_codex_append.rs +0 -0
  137. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/snapshot_labels.rs +0 -0
  138. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/snapshot_memory.rs +0 -0
  139. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/snapshot_owned.rs +0 -0
  140. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/snapshot_prepared.rs +0 -0
  141. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/snapshot_prepared_disk.rs +0 -0
  142. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/snapshot_projection.rs +0 -0
  143. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/snapshot_regressions.rs +0 -0
  144. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/snapshot_root_warm.rs +0 -0
  145. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/snapshot_text.rs +0 -0
  146. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/sqlite.rs +0 -0
  147. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/toolcall.rs +0 -0
  148. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/types.rs +0 -0
  149. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/value.rs +0 -0
  150. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/core/src/watch.rs +0 -0
  151. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/Cargo.toml +0 -0
  152. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/build.rs +0 -0
  153. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/data/command_prefix_pins.tsv +0 -0
  154. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/actor_bridge.rs +0 -0
  155. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/bin/stub_gen.rs +0 -0
  156. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/codex.rs +0 -0
  157. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/command.rs +0 -0
  158. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/context.rs +0 -0
  159. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/corrections.rs +0 -0
  160. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/discovery.rs +0 -0
  161. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/feedback.rs +0 -0
  162. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/judge.rs +0 -0
  163. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/lexicon.rs +0 -0
  164. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/lib.rs +0 -0
  165. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/mining.rs +0 -0
  166. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/nlp.rs +0 -0
  167. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/python.rs +0 -0
  168. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/render.rs +0 -0
  169. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/score.rs +0 -0
  170. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/snapshot_decode.rs +0 -0
  171. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/snapshots.rs +0 -0
  172. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/sqlite.rs +0 -0
  173. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/toolcall.rs +0 -0
  174. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/views/attachment.rs +0 -0
  175. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/views/blocks.rs +0 -0
  176. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/views/command.rs +0 -0
  177. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/views/convert.rs +0 -0
  178. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/views/dunder.rs +0 -0
  179. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/views/events.rs +0 -0
  180. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/views/meta.rs +0 -0
  181. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/views/mod.rs +0 -0
  182. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/views/print.rs +0 -0
  183. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/views/store.rs +0 -0
  184. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/views/system.rs +0 -0
  185. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/views/toolcall.rs +0 -0
  186. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/views/toolresult.rs +0 -0
  187. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/rust/crates/py/src/views/transcript.rs +0 -0
  188. {cc_transcript-14.28.2 → cc_transcript-14.28.3}/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.2
3
+ Version: 14.28.3
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.28.2" # informational — releases stamp the version from the git tag
3
+ version = "14.28.3" # 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"
@@ -559,7 +559,11 @@ struct CachedPreparedFacts {
559
559
  }
560
560
 
561
561
  enum PreparedSourceOutcome {
562
- Ready(SourceStamp, Arc<crate::snapshot_prepared::PreparedFacts>),
562
+ Ready {
563
+ stamp: SourceStamp,
564
+ facts: Arc<crate::snapshot_prepared::PreparedFacts>,
565
+ cached: bool,
566
+ },
563
567
  Pending(String),
564
568
  }
565
569
 
@@ -7439,6 +7443,38 @@ mod tests {
7439
7443
  checks <= 5 * 929,
7440
7444
  "warm verification made {checks} metadata checks"
7441
7445
  );
7446
+ let deadline = now_ms() + 750;
7447
+ let started = std::time::Instant::now();
7448
+ let before_query_bytes = store.state.lock().unwrap().counters[1];
7449
+ for query in [
7450
+ json!({"kind":"has_edit_to","values":["src/**"]}),
7451
+ json!({"kind":"has_read","pattern":"missing","subagents":true}),
7452
+ ] {
7453
+ let mut reply = store.request(
7454
+ &json!({"schema":SCHEMA,"id":"query","operation":"query_graph","handle":graph["data"]["handle"],"selectors":[],"query":query,"deadline_unix_ms":deadline,"limits":template["limits"]}),
7455
+ &owner,
7456
+ &Cancellation::default(),
7457
+ );
7458
+ let mut pages = 1;
7459
+ while reply["status"].as_str() == Some("incomplete") {
7460
+ let cursor = reply["cursor"].as_str().expect("cached query cursor");
7461
+ reply = store.request(
7462
+ &json!({"schema":SCHEMA,"id":"resume","operation":"resume","cursor":cursor}),
7463
+ &owner,
7464
+ &Cancellation::default(),
7465
+ );
7466
+ pages += 1;
7467
+ }
7468
+ assert_eq!(reply["status"].as_str(), Some("ok"), "{reply:?}");
7469
+ assert_eq!(reply["data"]["value"].as_bool(), Some(false));
7470
+ assert!(pages <= 4, "cached query took {pages} pages");
7471
+ }
7472
+ assert_eq!(store.state.lock().unwrap().counters[1], before_query_bytes);
7473
+ assert!(
7474
+ started.elapsed().as_millis() < 750,
7475
+ "two cached queries took {:?}",
7476
+ started.elapsed()
7477
+ );
7442
7478
  }
7443
7479
 
7444
7480
  #[test]
@@ -208,7 +208,14 @@ impl NativeStore {
208
208
  })
209
209
  } {
210
210
  usage[7] += 1;
211
- return Ok((stamp, PreparedSourceOutcome::Ready(stamp, facts)));
211
+ return Ok((
212
+ stamp,
213
+ PreparedSourceOutcome::Ready {
214
+ stamp,
215
+ facts,
216
+ cached: true,
217
+ },
218
+ ));
212
219
  }
213
220
  let key = crate::snapshot_prepared_disk::PreparedDiskKey::new(
214
221
  stamp,
@@ -222,7 +229,11 @@ impl NativeStore {
222
229
  usage[7] += 1;
223
230
  return Ok((
224
231
  stamp,
225
- PreparedSourceOutcome::Ready(stamp, Arc::new(facts)),
232
+ PreparedSourceOutcome::Ready {
233
+ stamp,
234
+ facts: Arc::new(facts),
235
+ cached: true,
236
+ },
226
237
  ));
227
238
  }
228
239
  crate::snapshot_prepared_disk::DiskLookup::Retired => {
@@ -376,7 +387,11 @@ impl NativeStore {
376
387
  .expect("snapshot state")
377
388
  .prepared_loads
378
389
  .remove(&stamp.identity);
379
- Ok(PreparedSourceOutcome::Ready(stamp, facts))
390
+ Ok(PreparedSourceOutcome::Ready {
391
+ stamp,
392
+ facts,
393
+ cached: false,
394
+ })
380
395
  }
381
396
 
382
397
  fn warm_membership_key(
@@ -1247,7 +1262,7 @@ impl NativeStore {
1247
1262
  let mut rounds = 0;
1248
1263
  loop {
1249
1264
  match outcome {
1250
- PreparedSourceOutcome::Ready(stamp, _) => {
1265
+ PreparedSourceOutcome::Ready { stamp, .. } => {
1251
1266
  if stamp != source.stamp {
1252
1267
  return Err(SnapshotError::new(
1253
1268
  Status::Changed,
@@ -1440,6 +1455,8 @@ impl NativeStore {
1440
1455
  let mut records = Vec::new();
1441
1456
  let mut bytes = 128usize;
1442
1457
  let mut steps = 0usize;
1458
+ let mut uncached_steps = 0usize;
1459
+ let page_steps = if inputs { 8 } else { 256 };
1443
1460
  let page_items = self.config.page_items.min(cursor.remaining.max_items);
1444
1461
  let output_limit = cursor
1445
1462
  .page_output_bytes
@@ -1451,7 +1468,11 @@ impl NativeStore {
1451
1468
  "prepared query output budget exhausted",
1452
1469
  ));
1453
1470
  }
1454
- while cursor.next < total && steps < 8 && (!inputs || records.len() < page_items) {
1471
+ while cursor.next < total
1472
+ && steps < page_steps
1473
+ && uncached_steps < 8
1474
+ && (!inputs || records.len() < page_items)
1475
+ {
1455
1476
  cancel.check(cursor.remaining.deadline_unix_ms)?;
1456
1477
  if inputs && cursor.next == 0 {
1457
1478
  let record = cursor.root_record.as_ref().expect("input root record").clone();
@@ -1491,6 +1512,7 @@ impl NativeStore {
1491
1512
  pending.token = next;
1492
1513
  cursor.pending = Some(pending);
1493
1514
  steps += 1;
1515
+ uncached_steps += 1;
1494
1516
  continue;
1495
1517
  }
1496
1518
  Ok(ready) => ready,
@@ -1518,12 +1540,18 @@ impl NativeStore {
1518
1540
  stamp: source.stamp,
1519
1541
  });
1520
1542
  steps += 1;
1543
+ uncached_steps += 1;
1521
1544
  continue;
1522
1545
  }
1523
1546
  (_, ready) => ready,
1524
1547
  }
1525
1548
  };
1526
- let PreparedSourceOutcome::Ready(stamp, facts) = outcome else {
1549
+ let PreparedSourceOutcome::Ready {
1550
+ stamp,
1551
+ facts,
1552
+ cached,
1553
+ } = outcome
1554
+ else {
1527
1555
  return Err(invalid("prepared source did not finish"));
1528
1556
  };
1529
1557
  if stamp != source.stamp {
@@ -1554,6 +1582,7 @@ impl NativeStore {
1554
1582
  }
1555
1583
  cursor.next += 1;
1556
1584
  steps += 1;
1585
+ uncached_steps += usize::from(!cached);
1557
1586
  }
1558
1587
  if cursor.next == total {
1559
1588
  if !self.validate_source_stamps(
File without changes