cc-transcript 14.31.0__tar.gz → 14.31.1__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.31.0 → cc_transcript-14.31.1}/PKG-INFO +1 -1
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/pyproject.toml +1 -1
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot.rs +70 -2
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot_labels.rs +23 -1
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot_root_warm.rs +59 -3
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/Cargo.lock +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/Cargo.toml +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/LICENSE +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/README.md +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/__init__.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/__init__.pyi +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/_native.pyi +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/activity.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/activity_probe.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/builders.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/codex.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/command.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/context.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/corrections.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/cost.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/decision_store.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/decisions.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/discovery.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/disktruth.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/evidence.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/extract/__init__.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/extract/correct.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/facts.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/filterspec.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/heartbeats.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/ids.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/judge/__init__.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/judge/llm.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/judge/similar.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/judge/verdicts.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/ledger.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/literals.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/mining/__init__.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/mining/candidates.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/mining/confidence.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/mining/engine.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/mining/formats.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/mining/sampling.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/mining/signals.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/mining/sourcekind.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/mining/spec.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/mining/store.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/models.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/nlp.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/notifications.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/parser.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/py.typed +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/query.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/render.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/sentiment/__init__.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/sentiment/buckets.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/sentiment/data/afinn-en-165.tsv +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/sentiment/data/domain_overrides.tsv +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/sentiment/data/en-ewt.udpipe +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/sentiment/engine.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/sentiment/lexicon.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/sentiment/scorespec.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/snapshot_schema/config.schema.json +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/snapshot_schema/context.schema.json +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/snapshot_schema/request.schema.json +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/snapshot_schema/response.schema.json +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/snapshot_schema/tool_registry.schema.json +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/snapshots.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/synthetic.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/tools.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/watch.py +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/Cargo.toml +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/commands/blame.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/commands/corpus.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/commands/corrections.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/commands/digest.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/commands/facts.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/commands/grep.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/commands/list.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/commands/mod.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/commands/scratchpad.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/commands/show.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/commands/slice.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/commands/stats.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/commands/watch.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/lib.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/main.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/output.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/target.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/cli/src/timearg.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/Cargo.toml +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/benches/parse.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/benches/render.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/benches/toolcall.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/activity.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/actor.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/blame.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/buckets.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/codex/discovery.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/codex/lower.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/codex/mod.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/codex/parse.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/codex/probe.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/codex/protocol.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/codex/types.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/command.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/context.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/corrections.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/cost.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/discovery.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/facts.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/feedback.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/filter.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/gateway.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/ids.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/judge.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/lib.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/literals/command.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/literals/corrections.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/literals/feedback.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/literals/mining.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/literals/mod.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/literals/protocol.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/notifications.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/parse.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/protocol.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/pystr.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/query.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/render.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/rng.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/scan.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/scan_grep.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/scan_regressions.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/schema.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot_activity.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot_codec.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot_codex_append.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot_memory.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot_owned.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot_prepared.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot_prepared_disk.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot_prepared_service.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot_projection.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot_regressions.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot_text.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/sqlite.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/toolcall.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/types.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/value.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/watch.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/Cargo.toml +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/build.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/data/command_prefix_pins.tsv +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/actor_bridge.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/bin/stub_gen.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/codex.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/command.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/context.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/corrections.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/discovery.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/feedback.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/judge.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/lexicon.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/lib.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/mining.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/nlp.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/python.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/render.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/score.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/snapshot_decode.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/snapshots.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/sqlite.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/toolcall.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/views/attachment.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/views/blocks.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/views/command.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/views/convert.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/views/dunder.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/views/events.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/views/meta.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/views/mod.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/views/print.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/views/store.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/views/system.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/views/toolcall.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/views/toolresult.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/views/transcript.rs +0 -0
- {cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/py/src/watch.rs +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "cc-transcript"
|
|
3
|
-
version = "14.31.
|
|
3
|
+
version = "14.31.1" # 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"
|
|
@@ -423,6 +423,7 @@ struct Waiter {
|
|
|
423
423
|
used_source_bytes: usize,
|
|
424
424
|
used_events: usize,
|
|
425
425
|
stage: Option<Arc<ClassifierSlot>>,
|
|
426
|
+
windowed: bool,
|
|
426
427
|
busy: bool,
|
|
427
428
|
}
|
|
428
429
|
|
|
@@ -4154,6 +4155,7 @@ impl NativeStore {
|
|
|
4154
4155
|
used_source_bytes: 0,
|
|
4155
4156
|
used_events: 0,
|
|
4156
4157
|
stage: None,
|
|
4158
|
+
windowed: window.is_some(),
|
|
4157
4159
|
busy: false,
|
|
4158
4160
|
};
|
|
4159
4161
|
state.waiters.insert(cursor.clone(), waiter.clone());
|
|
@@ -4409,6 +4411,14 @@ impl NativeStore {
|
|
|
4409
4411
|
if let Some(snapshot) = &load.result {
|
|
4410
4412
|
let snapshot = Arc::clone(snapshot);
|
|
4411
4413
|
drop(load);
|
|
4414
|
+
if waiter.windowed && snapshot.provider == Provider::Codex {
|
|
4415
|
+
self.state
|
|
4416
|
+
.lock()
|
|
4417
|
+
.expect("snapshot state")
|
|
4418
|
+
.waiters
|
|
4419
|
+
.remove(token);
|
|
4420
|
+
return Err(invalid("tail_bytes requires a Claude source"));
|
|
4421
|
+
}
|
|
4412
4422
|
let mut state = self.state.lock().expect("snapshot state");
|
|
4413
4423
|
if !state
|
|
4414
4424
|
.latest
|
|
@@ -5039,7 +5049,7 @@ impl NativeStore {
|
|
|
5039
5049
|
depth: 1,
|
|
5040
5050
|
});
|
|
5041
5051
|
}
|
|
5042
|
-
let identity = root.stamp.identity;
|
|
5052
|
+
let identity = root.stamp.identity.file();
|
|
5043
5053
|
let graph = GraphCursor {
|
|
5044
5054
|
claimant: str_field(context, "claimant")?.to_owned(),
|
|
5045
5055
|
context: context.clone(),
|
|
@@ -5199,7 +5209,7 @@ impl NativeStore {
|
|
|
5199
5209
|
&graph.context,
|
|
5200
5210
|
graph.remaining.deadline_unix_ms,
|
|
5201
5211
|
)?;
|
|
5202
|
-
let identity = snapshot.stamp.identity;
|
|
5212
|
+
let identity = snapshot.stamp.identity.file();
|
|
5203
5213
|
if !graph.seen.insert(identity)
|
|
5204
5214
|
&& graph.request["query"]["kind"].as_str() != Some("direct_sidechains")
|
|
5205
5215
|
{
|
|
@@ -8235,6 +8245,64 @@ mod tests {
|
|
|
8235
8245
|
&Cancellation::default(),
|
|
8236
8246
|
);
|
|
8237
8247
|
assert_eq!(zero["status"].as_str(), Some("invalid_request"));
|
|
8248
|
+
let size = std::fs::metadata(&codex.path).unwrap().len();
|
|
8249
|
+
for tail_bytes in [size, size - 1, 1024 * 1024] {
|
|
8250
|
+
let covered = finish(
|
|
8251
|
+
&store,
|
|
8252
|
+
store.request(
|
|
8253
|
+
&windowed_acquire(&codex.path, tail_bytes),
|
|
8254
|
+
&owner,
|
|
8255
|
+
&Cancellation::default(),
|
|
8256
|
+
),
|
|
8257
|
+
&owner,
|
|
8258
|
+
);
|
|
8259
|
+
assert_eq!(
|
|
8260
|
+
covered["reason"].as_str(),
|
|
8261
|
+
Some("tail_bytes requires a Claude source"),
|
|
8262
|
+
"{tail_bytes}: {covered:?}"
|
|
8263
|
+
);
|
|
8264
|
+
}
|
|
8265
|
+
let whole = finish(
|
|
8266
|
+
&store,
|
|
8267
|
+
store.request(&acquire(&codex.path), &owner, &Cancellation::default()),
|
|
8268
|
+
&owner,
|
|
8269
|
+
);
|
|
8270
|
+
assert_eq!(whole["status"].as_str(), Some("ok"), "{whole:?}");
|
|
8271
|
+
let cached = finish(
|
|
8272
|
+
&store,
|
|
8273
|
+
store.request(
|
|
8274
|
+
&windowed_acquire(&codex.path, 1024 * 1024),
|
|
8275
|
+
&owner,
|
|
8276
|
+
&Cancellation::default(),
|
|
8277
|
+
),
|
|
8278
|
+
&owner,
|
|
8279
|
+
);
|
|
8280
|
+
assert_eq!(cached["status"].as_str(), Some("invalid_request"));
|
|
8281
|
+
assert_eq!(
|
|
8282
|
+
cached["reason"].as_str(),
|
|
8283
|
+
Some("tail_bytes requires a Claude source")
|
|
8284
|
+
);
|
|
8285
|
+
}
|
|
8286
|
+
|
|
8287
|
+
#[test]
|
|
8288
|
+
fn windowed_root_attached_to_itself_is_not_its_own_child() {
|
|
8289
|
+
let source = Source::new(&users(0..200));
|
|
8290
|
+
let store = windowed_store();
|
|
8291
|
+
let owner = context("a");
|
|
8292
|
+
let root = windowed(&store, &source.path, 4096, &owner);
|
|
8293
|
+
let (_, _, first) = expected_window(&source.path, 4096);
|
|
8294
|
+
assert!(first > 0);
|
|
8295
|
+
let records = graph_records(
|
|
8296
|
+
&store,
|
|
8297
|
+
&graph_request(
|
|
8298
|
+
&root,
|
|
8299
|
+
json!({"kind":"sidechain_membership","order":"forward"}),
|
|
8300
|
+
vec![source.path.to_string_lossy().into_owned()],
|
|
8301
|
+
json!([]),
|
|
8302
|
+
),
|
|
8303
|
+
&owner,
|
|
8304
|
+
);
|
|
8305
|
+
assert!(records.is_empty(), "{records:?}");
|
|
8238
8306
|
}
|
|
8239
8307
|
|
|
8240
8308
|
#[test]
|
|
@@ -470,7 +470,7 @@ impl LabelPreparation {
|
|
|
470
470
|
session_id: self.source.session_id.clone(),
|
|
471
471
|
chunks: self.source.chunks.clone(),
|
|
472
472
|
activity: Arc::new(self.activity),
|
|
473
|
-
window_start:
|
|
473
|
+
window_start: self.source.window_start,
|
|
474
474
|
committed_bytes: self.source.committed_bytes,
|
|
475
475
|
provisional_tail: self.source.provisional_tail,
|
|
476
476
|
fence: self.source.fence.clone(),
|
|
@@ -1042,4 +1042,26 @@ mod tests {
|
|
|
1042
1042
|
"labels:execution"
|
|
1043
1043
|
);
|
|
1044
1044
|
}
|
|
1045
|
+
|
|
1046
|
+
#[test]
|
|
1047
|
+
fn finish_keeps_the_source_window_start() {
|
|
1048
|
+
let mut snapshot = source(vec![user(0, "prompt"), user(1, "later")]);
|
|
1049
|
+
{
|
|
1050
|
+
let windowed = Arc::get_mut(&mut snapshot).unwrap();
|
|
1051
|
+
windowed.window_start = 1000;
|
|
1052
|
+
windowed.stamp.identity.window_base = 1024;
|
|
1053
|
+
}
|
|
1054
|
+
let binding = binding("execution");
|
|
1055
|
+
let cancel = Cancellation::default();
|
|
1056
|
+
let mut stage =
|
|
1057
|
+
LabelPreparation::new(snapshot, binding.clone(), limits(), 8 * PAGE_BYTES, None)
|
|
1058
|
+
.unwrap();
|
|
1059
|
+
stage.next_page("page1".into(), &binding, &cancel).unwrap();
|
|
1060
|
+
assert!(stage
|
|
1061
|
+
.submit("page1", &[true, false], &binding, &cancel)
|
|
1062
|
+
.unwrap());
|
|
1063
|
+
let derived = stage.finish(&binding, &cancel).unwrap().0;
|
|
1064
|
+
assert_eq!(derived.window_start, 1000);
|
|
1065
|
+
assert_eq!(derived.stamp.identity.window_base, 1024);
|
|
1066
|
+
}
|
|
1045
1067
|
}
|
|
@@ -35,13 +35,22 @@ impl NativeStore {
|
|
|
35
35
|
.prepared_loads
|
|
36
36
|
.keys()
|
|
37
37
|
.filter(|identity| {
|
|
38
|
-
|
|
38
|
+
current.identity.window_base > 0
|
|
39
|
+
&& identity.window_base > 0
|
|
40
|
+
&& identity.file() == current.identity.file()
|
|
41
|
+
&& **identity != current.identity
|
|
39
42
|
})
|
|
40
43
|
.copied()
|
|
41
44
|
.collect();
|
|
42
45
|
for identity in superseded {
|
|
43
46
|
state.prepared_loads.remove(&identity);
|
|
44
|
-
state
|
|
47
|
+
if state
|
|
48
|
+
.loads
|
|
49
|
+
.get(&identity)
|
|
50
|
+
.is_some_and(|slot| Arc::strong_count(slot) == 1)
|
|
51
|
+
{
|
|
52
|
+
state.loads.remove(&identity);
|
|
53
|
+
}
|
|
45
54
|
}
|
|
46
55
|
if let Some((slot, touched)) = state.prepared_loads.get_mut(¤t.identity) {
|
|
47
56
|
if Self::matches_prefix(current, slot.stamp)
|
|
@@ -65,7 +74,15 @@ impl NativeStore {
|
|
|
65
74
|
};
|
|
66
75
|
let stamp = pinned.as_ref().map_or(current, |slot| slot.stamp);
|
|
67
76
|
let outcome = if let Some(slot) = pinned {
|
|
68
|
-
self.resume_warm_root(
|
|
77
|
+
self.resume_warm_root(
|
|
78
|
+
slot,
|
|
79
|
+
classifier,
|
|
80
|
+
context,
|
|
81
|
+
bounds,
|
|
82
|
+
tail_bytes(request)?.is_some(),
|
|
83
|
+
cancel,
|
|
84
|
+
usage,
|
|
85
|
+
)
|
|
69
86
|
} else {
|
|
70
87
|
self.acquire(request, context, cancel, usage)
|
|
71
88
|
};
|
|
@@ -152,6 +169,7 @@ impl NativeStore {
|
|
|
152
169
|
classifier: &Value,
|
|
153
170
|
context: &Value,
|
|
154
171
|
bounds: WorkLimits,
|
|
172
|
+
windowed: bool,
|
|
155
173
|
cancel: &Cancellation,
|
|
156
174
|
usage: &mut [u64; 18],
|
|
157
175
|
) -> Result<(Value, Option<String>, Option<String>), SnapshotError> {
|
|
@@ -173,6 +191,7 @@ impl NativeStore {
|
|
|
173
191
|
used_source_bytes: 0,
|
|
174
192
|
used_events: 0,
|
|
175
193
|
stage: None,
|
|
194
|
+
windowed,
|
|
176
195
|
busy: false,
|
|
177
196
|
};
|
|
178
197
|
{
|
|
@@ -364,6 +383,43 @@ mod root_warm_tests {
|
|
|
364
383
|
std::fs::remove_dir_all(directory).unwrap();
|
|
365
384
|
}
|
|
366
385
|
|
|
386
|
+
#[test]
|
|
387
|
+
fn whole_file_and_window_warms_keep_their_own_pins() {
|
|
388
|
+
let (directory, path) = source(4 * 1024 * 1024);
|
|
389
|
+
let store = NativeStore::new(&json!({"max_read_bytes_per_step":256*1024,"max_retained_bytes":128*1024*1024,"reserved_hook_accounted_bytes":4096,"max_leases":16,"reserved_hook_leases":1})).unwrap();
|
|
390
|
+
let context = context("alternating-views");
|
|
391
|
+
let whole = warm_request(&path, 256 * 1024);
|
|
392
|
+
let mut window = whole.clone();
|
|
393
|
+
window.insert("tail_bytes", json!(1024 * 1024));
|
|
394
|
+
let step = |request: &Value| {
|
|
395
|
+
let reply = store.request(request, &context, &Cancellation::default());
|
|
396
|
+
assert_eq!(reply["status"].as_str(), Some("ok"), "{reply:?}");
|
|
397
|
+
assert_eq!(reply["data"]["complete"].as_bool(), Some(false), "{reply:?}");
|
|
398
|
+
reply["data"]["source_offset"].as_u64().unwrap()
|
|
399
|
+
};
|
|
400
|
+
step(&whole);
|
|
401
|
+
let whole_offset = step(&whole);
|
|
402
|
+
assert!(whole_offset > 0);
|
|
403
|
+
step(&window);
|
|
404
|
+
let window_offset = step(&window);
|
|
405
|
+
assert!(window_offset > whole_offset);
|
|
406
|
+
assert_eq!(store.state.lock().unwrap().prepared_loads.len(), 2);
|
|
407
|
+
let advances = |request: &Value, from: u64| {
|
|
408
|
+
for _ in 0..4 {
|
|
409
|
+
let offset = step(request);
|
|
410
|
+
assert!(offset >= from, "{offset} < {from}");
|
|
411
|
+
if offset > from {
|
|
412
|
+
return;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
panic!("view did not advance past {from}");
|
|
416
|
+
};
|
|
417
|
+
advances(&whole, whole_offset);
|
|
418
|
+
advances(&window, window_offset);
|
|
419
|
+
assert_eq!(store.state.lock().unwrap().prepared_loads.len(), 2);
|
|
420
|
+
std::fs::remove_dir_all(directory).unwrap();
|
|
421
|
+
}
|
|
422
|
+
|
|
367
423
|
#[test]
|
|
368
424
|
fn a_productive_deadline_keeps_the_partial_root() {
|
|
369
425
|
let (directory, path) = source(1024 * 1024);
|
|
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.31.0 → cc_transcript-14.31.1}/cc_transcript/sentiment/data/afinn-en-165.tsv
RENAMED
|
File without changes
|
{cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/sentiment/data/domain_overrides.tsv
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/snapshot_schema/config.schema.json
RENAMED
|
File without changes
|
{cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/snapshot_schema/context.schema.json
RENAMED
|
File without changes
|
{cc_transcript-14.31.0 → cc_transcript-14.31.1}/cc_transcript/snapshot_schema/request.schema.json
RENAMED
|
File without changes
|
{cc_transcript-14.31.0 → cc_transcript-14.31.1}/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
|
|
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.31.0 → cc_transcript-14.31.1}/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
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot_codex_append.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot_prepared_disk.rs
RENAMED
|
File without changes
|
{cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot_prepared_service.rs
RENAMED
|
File without changes
|
|
File without changes
|
{cc_transcript-14.31.0 → cc_transcript-14.31.1}/rust/crates/core/src/snapshot_regressions.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|