cc-transcript 14.45.13__tar.gz → 14.45.14__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.
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/PKG-INFO +1 -1
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/pyproject.toml +1 -1
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot.rs +189 -5
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/Cargo.lock +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/Cargo.toml +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/LICENSE +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/README.md +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/__init__.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/__init__.pyi +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/_native.pyi +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/activity.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/activity_probe.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/builders.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/codex.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/command.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/context.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/corrections.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/cost.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/decision_store.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/decisions.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/discovery.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/disktruth.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/evidence.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/extract/__init__.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/extract/correct.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/facts.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/filterspec.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/heartbeats.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/ids.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/judge/__init__.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/judge/llm.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/judge/similar.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/judge/verdicts.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/ledger.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/literals.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/mining/__init__.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/mining/candidates.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/mining/confidence.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/mining/engine.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/mining/formats.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/mining/sampling.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/mining/signals.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/mining/sourcekind.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/mining/spec.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/mining/store.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/models.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/nlp.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/notifications.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/parser.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/py.typed +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/query.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/render.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/sentiment/__init__.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/sentiment/buckets.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/sentiment/data/afinn-en-165.tsv +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/sentiment/data/domain_overrides.tsv +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/sentiment/data/en-ewt.udpipe +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/sentiment/engine.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/sentiment/lexicon.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/sentiment/scorespec.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/snapshot_schema/config.schema.json +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/snapshot_schema/context.schema.json +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/snapshot_schema/request.schema.json +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/snapshot_schema/response.schema.json +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/snapshot_schema/tool_registry.schema.json +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/snapshots.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/synthetic.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/tools.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/watch.py +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/Cargo.toml +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/commands/blame.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/commands/corpus.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/commands/corrections.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/commands/digest.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/commands/facts.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/commands/grep.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/commands/list.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/commands/mod.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/commands/scratchpad.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/commands/show.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/commands/slice.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/commands/stats.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/commands/watch.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/lib.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/output.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/target.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/timearg.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/Cargo.toml +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/benches/parse.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/benches/render.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/benches/toolcall.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/build.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/activity.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/actor.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/blame.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/buckets.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/codex/discovery.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/codex/lower.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/codex/mod.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/codex/parse.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/codex/probe.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/codex/protocol.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/codex/types.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/command.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/context.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/corrections.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/cost.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/discovery.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/facts.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/feedback.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/filter.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/gateway.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/ids.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/judge.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/lib.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/literals/command.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/literals/corrections.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/literals/feedback.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/literals/mining.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/literals/mod.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/literals/protocol.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/notifications.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/parse.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/protocol.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/pystr.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/query.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/render.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/rng.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/scan.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/scan_checkpoint.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/scan_grep.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/scan_grep_stream.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/scan_grep_stream_tests.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/scan_index.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/scan_projection.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/scan_regressions.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/scan_stream.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/schema.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_activity.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_codec.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_codex_append.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_labels.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_ledger.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_ledger_tests.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_memory.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_owned.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_prepared.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_prepared_disk.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_prepared_service.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_projection.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_regressions.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_root_warm.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_text.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/sqlite.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/toolcall.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/types.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/value.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/watch.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/tests/sonic_arena_model.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/tests/std_allocation_model.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/Cargo.toml +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/build.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/data/command_prefix_pins.tsv +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/actor_bridge.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/bin/stub_gen.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/codex.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/command.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/context.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/corrections.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/discovery.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/feedback.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/judge.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/lexicon.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/lib.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/mining.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/nlp.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/python.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/render.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/score.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/snapshot_decode.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/snapshots.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/sqlite.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/toolcall.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/views/attachment.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/views/blocks.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/views/command.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/views/convert.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/views/dunder.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/views/events.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/views/meta.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/views/mod.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/views/print.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/views/store.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/views/system.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/views/toolcall.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/views/toolresult.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/views/transcript.rs +0 -0
- {cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/src/watch.rs +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "cc-transcript"
|
|
3
|
-
version = "14.45.
|
|
3
|
+
version = "14.45.14" # 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"
|
|
@@ -7143,6 +7143,7 @@ impl NativeStore {
|
|
|
7143
7143
|
let mut lines: Vec<(u64, Vec<Entry>)> = Vec::new();
|
|
7144
7144
|
let mut events = 0usize;
|
|
7145
7145
|
let mut exhausted = false;
|
|
7146
|
+
let mut read_step = self.config.read_step.min(64 * 1024);
|
|
7146
7147
|
loop {
|
|
7147
7148
|
while events < count {
|
|
7148
7149
|
cancel.check(limits.deadline_unix_ms)?;
|
|
@@ -7165,11 +7166,7 @@ impl NativeStore {
|
|
|
7165
7166
|
}
|
|
7166
7167
|
break;
|
|
7167
7168
|
}
|
|
7168
|
-
let step =
|
|
7169
|
-
.config
|
|
7170
|
-
.read_step
|
|
7171
|
-
.min(budget - read)
|
|
7172
|
-
.min(pending_start as usize);
|
|
7169
|
+
let step = read_step.min(budget - read).min(pending_start as usize);
|
|
7173
7170
|
if step == 0 {
|
|
7174
7171
|
exhausted = true;
|
|
7175
7172
|
break;
|
|
@@ -7183,6 +7180,7 @@ impl NativeStore {
|
|
|
7183
7180
|
file.read_exact(&mut block).map_err(io_error)?;
|
|
7184
7181
|
usage[1] += step as u64;
|
|
7185
7182
|
read += step;
|
|
7183
|
+
read_step = read_step.saturating_mul(2).min(self.config.read_step);
|
|
7186
7184
|
block.extend_from_slice(&pending);
|
|
7187
7185
|
pending = block;
|
|
7188
7186
|
pending_start -= step as u64;
|
|
@@ -12203,6 +12201,192 @@ mod tests {
|
|
|
12203
12201
|
.collect()
|
|
12204
12202
|
}
|
|
12205
12203
|
|
|
12204
|
+
fn tail_with_small_step_reference(source: &Source, count: usize, budget: usize) -> Value {
|
|
12205
|
+
let owner = context("a");
|
|
12206
|
+
let request = tail_request(&source.path, count, budget);
|
|
12207
|
+
let store = NativeStore::new(&json!({})).unwrap();
|
|
12208
|
+
let response = store.request(&request, &owner, &Cancellation::default());
|
|
12209
|
+
let reference = NativeStore::new(&json!({"max_read_bytes_per_step":4096})).unwrap();
|
|
12210
|
+
let reference = reference.request(&request, &owner, &Cancellation::default());
|
|
12211
|
+
assert_eq!(response["status"], reference["status"], "{response:?}");
|
|
12212
|
+
assert_eq!(response["reason"], reference["reason"], "{response:?}");
|
|
12213
|
+
assert_eq!(response["data"], reference["data"], "{response:?}");
|
|
12214
|
+
response
|
|
12215
|
+
}
|
|
12216
|
+
|
|
12217
|
+
#[test]
|
|
12218
|
+
fn tail_default_steps_read_only_the_newest_event_window() {
|
|
12219
|
+
let suffix = (0..256)
|
|
12220
|
+
.map(|index| format!("{}\n", user_text(&index.to_string(), &"x".repeat(1400))))
|
|
12221
|
+
.collect::<String>();
|
|
12222
|
+
assert!((256 * 1024..448 * 1024).contains(&suffix.len()));
|
|
12223
|
+
let prefix = format!("{}\n", " ".repeat(8 * 1024 * 1024));
|
|
12224
|
+
let source = Source::new(&format!("{prefix}{suffix}"));
|
|
12225
|
+
let response = tail_with_small_step_reference(&source, 256, 8 * 1024 * 1024);
|
|
12226
|
+
assert_eq!(response["status"].as_str(), Some("ok"), "{response:?}");
|
|
12227
|
+
assert_eq!(
|
|
12228
|
+
tail_uuids(&response),
|
|
12229
|
+
(0..256).map(|index| index.to_string()).collect::<Vec<_>>()
|
|
12230
|
+
);
|
|
12231
|
+
assert_eq!(
|
|
12232
|
+
response["data"]["source_bytes"].as_u64(),
|
|
12233
|
+
Some((prefix.len() + suffix.len()) as u64)
|
|
12234
|
+
);
|
|
12235
|
+
assert_eq!(
|
|
12236
|
+
response["data"]["window_start_byte"].as_u64(),
|
|
12237
|
+
Some(prefix.len() as u64)
|
|
12238
|
+
);
|
|
12239
|
+
let read = response["usage"]["source_bytes_read"].as_u64().unwrap();
|
|
12240
|
+
assert!(read >= suffix.len() as u64 && read <= 512 * 1024, "{read}");
|
|
12241
|
+
}
|
|
12242
|
+
|
|
12243
|
+
#[test]
|
|
12244
|
+
fn tail_grows_reads_for_a_long_partial_line() {
|
|
12245
|
+
fn count_reads(store: &Arc<NativeStore>, reads: &Arc<AtomicUsize>) {
|
|
12246
|
+
let next = Arc::downgrade(store);
|
|
12247
|
+
let reads = Arc::clone(reads);
|
|
12248
|
+
*store.read_hook.lock().unwrap() = Some(Arc::new(move || {
|
|
12249
|
+
reads.fetch_add(1, Ordering::Relaxed);
|
|
12250
|
+
count_reads(&next.upgrade().unwrap(), &reads);
|
|
12251
|
+
}));
|
|
12252
|
+
}
|
|
12253
|
+
|
|
12254
|
+
let prefix = format!("{}\n", " ".repeat(8 * 1024 * 1024));
|
|
12255
|
+
let suffix = format!("{}\n", user_text("large", &"x".repeat(512 * 1024)));
|
|
12256
|
+
let source = Source::new(&format!("{prefix}{suffix}"));
|
|
12257
|
+
let owner = context("a");
|
|
12258
|
+
let request = tail_request(&source.path, 1, 8 * 1024 * 1024);
|
|
12259
|
+
let store = Arc::new(NativeStore::new(&json!({})).unwrap());
|
|
12260
|
+
let reads = Arc::new(AtomicUsize::new(0));
|
|
12261
|
+
count_reads(&store, &reads);
|
|
12262
|
+
let response = store.request(&request, &owner, &Cancellation::default());
|
|
12263
|
+
assert_eq!(response["status"].as_str(), Some("ok"), "{response:?}");
|
|
12264
|
+
assert_eq!(tail_uuids(&response), ["large"]);
|
|
12265
|
+
assert_eq!(
|
|
12266
|
+
response["data"]["window_start_byte"].as_u64(),
|
|
12267
|
+
Some(prefix.len() as u64)
|
|
12268
|
+
);
|
|
12269
|
+
assert!(response["usage"]["source_bytes_read"].as_u64().unwrap() <= 1024 * 1024);
|
|
12270
|
+
assert!(reads.load(Ordering::Relaxed) <= 4);
|
|
12271
|
+
let bounded = NativeStore::new(&json!({"max_entry_bytes":256*1024})).unwrap();
|
|
12272
|
+
let refused = bounded.request(&request, &owner, &Cancellation::default());
|
|
12273
|
+
assert_eq!(
|
|
12274
|
+
refused["status"].as_str(),
|
|
12275
|
+
Some("entry_limit"),
|
|
12276
|
+
"{refused:?}"
|
|
12277
|
+
);
|
|
12278
|
+
}
|
|
12279
|
+
|
|
12280
|
+
#[test]
|
|
12281
|
+
fn tail_preserves_utf8_across_growing_read_boundaries() {
|
|
12282
|
+
let mut split_scalars = 0;
|
|
12283
|
+
for ending in ["", "\n"] {
|
|
12284
|
+
let contents = format!(
|
|
12285
|
+
"{}\n{}{ending}",
|
|
12286
|
+
user("old"),
|
|
12287
|
+
user_text("unicode", &"é".repeat(128 * 1024))
|
|
12288
|
+
);
|
|
12289
|
+
let boundary = contents.len() - 64 * 1024;
|
|
12290
|
+
split_scalars += usize::from(contents.as_bytes()[boundary] & 0xc0 == 0x80);
|
|
12291
|
+
let source = Source::new(&contents);
|
|
12292
|
+
let response = tail_with_small_step_reference(&source, 1, 1024 * 1024);
|
|
12293
|
+
assert_eq!(response["status"].as_str(), Some("ok"), "{response:?}");
|
|
12294
|
+
assert_eq!(tail_uuids(&response), ["unicode"]);
|
|
12295
|
+
assert_eq!(
|
|
12296
|
+
response["data"]["window_start_byte"].as_u64(),
|
|
12297
|
+
Some((user("old").len() + 1) as u64)
|
|
12298
|
+
);
|
|
12299
|
+
}
|
|
12300
|
+
assert_eq!(split_scalars, 1);
|
|
12301
|
+
}
|
|
12302
|
+
|
|
12303
|
+
#[test]
|
|
12304
|
+
fn tail_read_budget_requires_the_oldest_line_delimiter() {
|
|
12305
|
+
let prefix = format!("{}\n", user("old"));
|
|
12306
|
+
let first = format!("{}\n", user_text("a", &"x".repeat(128 * 1024)));
|
|
12307
|
+
let last = format!("{}\n", user_text("b", &"x".repeat(128 * 1024)));
|
|
12308
|
+
let source = Source::new(&format!("{prefix}{first}{last}"));
|
|
12309
|
+
let budget = first.len() + last.len();
|
|
12310
|
+
let incomplete = tail_with_small_step_reference(&source, 2, budget);
|
|
12311
|
+
assert_eq!(
|
|
12312
|
+
incomplete["status"].as_str(),
|
|
12313
|
+
Some("incomplete"),
|
|
12314
|
+
"{incomplete:?}"
|
|
12315
|
+
);
|
|
12316
|
+
assert_eq!(
|
|
12317
|
+
incomplete["reason"].as_str(),
|
|
12318
|
+
Some("tail read budget exhausted")
|
|
12319
|
+
);
|
|
12320
|
+
assert!(incomplete["cursor"].is_null());
|
|
12321
|
+
assert_eq!(tail_uuids(&incomplete), ["b"]);
|
|
12322
|
+
assert_eq!(
|
|
12323
|
+
incomplete["data"]["window_start_byte"].as_u64(),
|
|
12324
|
+
Some((prefix.len() + first.len()) as u64)
|
|
12325
|
+
);
|
|
12326
|
+
let complete = tail_with_small_step_reference(&source, 2, budget + 1);
|
|
12327
|
+
assert_eq!(complete["status"].as_str(), Some("ok"), "{complete:?}");
|
|
12328
|
+
assert_eq!(tail_uuids(&complete), ["a", "b"]);
|
|
12329
|
+
assert_eq!(
|
|
12330
|
+
complete["data"]["window_start_byte"].as_u64(),
|
|
12331
|
+
Some(prefix.len() as u64)
|
|
12332
|
+
);
|
|
12333
|
+
}
|
|
12334
|
+
|
|
12335
|
+
#[test]
|
|
12336
|
+
fn tail_counts_metadata_events_and_skips_non_events_across_steps() {
|
|
12337
|
+
let source = Source::new(&format!(
|
|
12338
|
+
"{}\n{}\nnot json\n[]\nnull\n42\n{{\"type\":\"queue-operation\",\"operation\":\"enqueue\"}}\n{}\n",
|
|
12339
|
+
user("a"),
|
|
12340
|
+
" ".repeat(96 * 1024),
|
|
12341
|
+
user_text("b", &"x".repeat(128 * 1024)),
|
|
12342
|
+
));
|
|
12343
|
+
let response = tail_with_small_step_reference(&source, 3, 1024 * 1024);
|
|
12344
|
+
assert_eq!(response["status"].as_str(), Some("ok"), "{response:?}");
|
|
12345
|
+
let records = response["data"]["records_json"]
|
|
12346
|
+
.as_array()
|
|
12347
|
+
.unwrap()
|
|
12348
|
+
.iter()
|
|
12349
|
+
.map(|record| record.as_str().unwrap().to_owned())
|
|
12350
|
+
.collect::<Vec<_>>();
|
|
12351
|
+
let records = crate::snapshot_codec::decode_events(&records, 1024 * 1024).unwrap();
|
|
12352
|
+
assert_eq!(records.len(), 3);
|
|
12353
|
+
assert_eq!(records[0].event.meta().unwrap().uuid, "a");
|
|
12354
|
+
assert!(matches!(&records[1].event, Entry::Other(other) if other.ty == "queue-operation"));
|
|
12355
|
+
assert_eq!(records[2].event.meta().unwrap().uuid, "b");
|
|
12356
|
+
assert_eq!(response["data"]["window_start_byte"].as_u64(), Some(0));
|
|
12357
|
+
}
|
|
12358
|
+
|
|
12359
|
+
#[test]
|
|
12360
|
+
fn tail_preserves_the_pinned_source_while_reads_grow() {
|
|
12361
|
+
let prefix = format!("{}\n", user("old"));
|
|
12362
|
+
let suffix = format!("{}\n", user_text("new", &"x".repeat(256 * 1024)));
|
|
12363
|
+
let source = Source::new(&format!("{prefix}{suffix}"));
|
|
12364
|
+
let path = source.path.clone();
|
|
12365
|
+
let store = NativeStore::new(&json!({})).unwrap();
|
|
12366
|
+
*store.read_hook.lock().unwrap() = Some(Arc::new(move || {
|
|
12367
|
+
std::fs::OpenOptions::new()
|
|
12368
|
+
.append(true)
|
|
12369
|
+
.open(&path)
|
|
12370
|
+
.unwrap()
|
|
12371
|
+
.write_all(format!("{}\n", user("appended")).as_bytes())
|
|
12372
|
+
.unwrap();
|
|
12373
|
+
}));
|
|
12374
|
+
let response = store.request(
|
|
12375
|
+
&tail_request(&source.path, 1, 1024 * 1024),
|
|
12376
|
+
&context("a"),
|
|
12377
|
+
&Cancellation::default(),
|
|
12378
|
+
);
|
|
12379
|
+
assert_eq!(response["status"].as_str(), Some("ok"), "{response:?}");
|
|
12380
|
+
assert_eq!(tail_uuids(&response), ["new"]);
|
|
12381
|
+
assert_eq!(
|
|
12382
|
+
response["data"]["source_bytes"].as_u64(),
|
|
12383
|
+
Some((prefix.len() + suffix.len()) as u64)
|
|
12384
|
+
);
|
|
12385
|
+
assert_eq!(
|
|
12386
|
+
response["data"]["window_start_byte"].as_u64(),
|
|
12387
|
+
Some(prefix.len() as u64)
|
|
12388
|
+
);
|
|
12389
|
+
}
|
|
12206
12390
|
#[test]
|
|
12207
12391
|
fn tail_returns_the_newest_events_reading_backwards_in_bounded_steps() {
|
|
12208
12392
|
let source = Source::new(&users(0..50));
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/sentiment/data/afinn-en-165.tsv
RENAMED
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/sentiment/data/domain_overrides.tsv
RENAMED
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/sentiment/data/en-ewt.udpipe
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/snapshot_schema/config.schema.json
RENAMED
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/snapshot_schema/context.schema.json
RENAMED
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/snapshot_schema/request.schema.json
RENAMED
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/cc_transcript/snapshot_schema/response.schema.json
RENAMED
|
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
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/commands/corrections.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/cli/src/commands/scratchpad.rs
RENAMED
|
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
|
|
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
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/literals/corrections.rs
RENAMED
|
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
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/scan_grep_stream_tests.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_codex_append.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_ledger_tests.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_prepared_disk.rs
RENAMED
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_prepared_service.rs
RENAMED
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_projection.rs
RENAMED
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_regressions.rs
RENAMED
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/src/snapshot_root_warm.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/tests/sonic_arena_model.rs
RENAMED
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/core/tests/std_allocation_model.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.45.13 → cc_transcript-14.45.14}/rust/crates/py/data/command_prefix_pins.tsv
RENAMED
|
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
|
|
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
|