cc-transcript 14.29.0__tar.gz → 14.29.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.29.0 → cc_transcript-14.29.1}/PKG-INFO +1 -1
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/pyproject.toml +1 -1
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/snapshot.rs +118 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/snapshot_activity.rs +17 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/snapshot_prepared_disk.rs +434 -55
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/snapshot_prepared_service.rs +19 -2
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/snapshot_projection.rs +411 -28
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/Cargo.lock +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/Cargo.toml +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/LICENSE +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/README.md +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/__init__.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/__init__.pyi +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/_native.pyi +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/activity.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/activity_probe.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/builders.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/codex.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/command.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/context.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/corrections.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/cost.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/decision_store.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/decisions.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/discovery.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/disktruth.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/evidence.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/extract/__init__.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/extract/correct.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/facts.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/filterspec.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/heartbeats.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/ids.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/judge/__init__.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/judge/llm.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/judge/similar.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/judge/verdicts.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/ledger.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/literals.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/mining/__init__.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/mining/candidates.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/mining/confidence.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/mining/engine.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/mining/formats.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/mining/sampling.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/mining/signals.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/mining/sourcekind.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/mining/spec.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/mining/store.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/models.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/nlp.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/notifications.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/parser.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/py.typed +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/query.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/render.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/sentiment/__init__.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/sentiment/buckets.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/sentiment/data/afinn-en-165.tsv +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/sentiment/data/domain_overrides.tsv +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/sentiment/data/en-ewt.udpipe +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/sentiment/engine.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/sentiment/lexicon.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/sentiment/scorespec.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/snapshot_schema/config.schema.json +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/snapshot_schema/context.schema.json +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/snapshot_schema/request.schema.json +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/snapshot_schema/response.schema.json +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/snapshot_schema/tool_registry.schema.json +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/snapshots.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/synthetic.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/tools.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/cc_transcript/watch.py +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/Cargo.toml +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/commands/blame.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/commands/corpus.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/commands/corrections.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/commands/digest.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/commands/facts.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/commands/grep.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/commands/list.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/commands/mod.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/commands/scratchpad.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/commands/show.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/commands/slice.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/commands/stats.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/commands/watch.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/lib.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/main.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/output.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/target.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/cli/src/timearg.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/Cargo.toml +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/benches/parse.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/benches/render.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/benches/toolcall.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/activity.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/actor.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/blame.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/buckets.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/codex/discovery.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/codex/lower.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/codex/mod.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/codex/parse.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/codex/probe.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/codex/protocol.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/codex/types.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/command.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/context.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/corrections.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/cost.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/discovery.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/facts.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/feedback.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/filter.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/gateway.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/ids.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/judge.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/lib.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/literals/command.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/literals/corrections.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/literals/feedback.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/literals/mining.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/literals/mod.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/literals/protocol.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/notifications.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/parse.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/protocol.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/pystr.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/query.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/render.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/rng.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/scan.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/scan_grep.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/scan_regressions.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/schema.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/snapshot_codec.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/snapshot_codex_append.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/snapshot_labels.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/snapshot_memory.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/snapshot_owned.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/snapshot_prepared.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/snapshot_regressions.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/snapshot_root_warm.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/snapshot_text.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/sqlite.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/toolcall.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/types.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/value.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/core/src/watch.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/Cargo.toml +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/build.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/data/command_prefix_pins.tsv +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/actor_bridge.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/bin/stub_gen.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/codex.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/command.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/context.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/corrections.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/discovery.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/feedback.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/judge.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/lexicon.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/lib.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/mining.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/nlp.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/python.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/render.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/score.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/snapshot_decode.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/snapshots.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/sqlite.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/toolcall.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/views/attachment.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/views/blocks.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/views/command.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/views/convert.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/views/dunder.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/views/events.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/views/meta.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/views/mod.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/views/print.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/views/store.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/views/system.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/views/toolcall.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/views/toolresult.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/views/transcript.rs +0 -0
- {cc_transcript-14.29.0 → cc_transcript-14.29.1}/rust/crates/py/src/watch.rs +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "cc-transcript"
|
|
3
|
-
version = "14.29.
|
|
3
|
+
version = "14.29.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"
|
|
@@ -8245,6 +8245,124 @@ mod tests {
|
|
|
8245
8245
|
assert_eq!(shared["usage"]["source_bytes_read"].as_u64(), Some(0));
|
|
8246
8246
|
}
|
|
8247
8247
|
|
|
8248
|
+
#[test]
|
|
8249
|
+
fn sidechain_disk_fact_hits_are_promoted_into_memory() {
|
|
8250
|
+
let source = Source::new(&format!("{}\n", user("root")));
|
|
8251
|
+
let sidechain = source.directory.join("side.jsonl");
|
|
8252
|
+
std::fs::write(&sidechain, format!("{}\n", user("side"))).unwrap();
|
|
8253
|
+
let store = NativeStore::new(&json!({"max_read_bytes_per_step":8192,"max_entry_bytes":128*1024,"max_retained_bytes":32*1024*1024,"reserved_hook_accounted_bytes":4096,"max_leases":16,"reserved_hook_leases":1})).unwrap();
|
|
8254
|
+
let owner = context("a");
|
|
8255
|
+
let root = finish(
|
|
8256
|
+
&store,
|
|
8257
|
+
store.request(&acquire(&source.path), &owner, &Cancellation::default()),
|
|
8258
|
+
&owner,
|
|
8259
|
+
);
|
|
8260
|
+
let template = acquire(&source.path);
|
|
8261
|
+
let graph = finish_prepared(
|
|
8262
|
+
&store,
|
|
8263
|
+
store.request(&json!({"schema":SCHEMA,"id":"prepare","operation":"prepare_graph","view":{"handle":handle(&root),"classifier":{"id":"native","version":"1"},"selectors":[],"attachments":[]},"thread_ids":[],"roots":[],"direct_paths":[sidechain.to_string_lossy().as_ref()],"deadline_unix_ms":template["deadline_unix_ms"],"limits":template["limits"]}), &owner, &Cancellation::default()),
|
|
8264
|
+
&owner,
|
|
8265
|
+
);
|
|
8266
|
+
assert_eq!(graph["status"].as_str(), Some("ok"), "{graph:?}");
|
|
8267
|
+
let query = json!({"schema":SCHEMA,"id":"query","operation":"query_graph","handle":graph["data"]["handle"],"selectors":[],"query":{"kind":"has_tool","pattern":"Missing","subagents":true},"deadline_unix_ms":template["deadline_unix_ms"],"limits":template["limits"]});
|
|
8268
|
+
let first = finish_prepared(
|
|
8269
|
+
&store,
|
|
8270
|
+
store.request(&query, &owner, &Cancellation::default()),
|
|
8271
|
+
&owner,
|
|
8272
|
+
);
|
|
8273
|
+
assert_eq!(first["data"]["value"].as_bool(), Some(false), "{first:?}");
|
|
8274
|
+
let identity = SourceStamp::of(&std::fs::metadata(&sidechain).unwrap()).identity;
|
|
8275
|
+
store
|
|
8276
|
+
.state
|
|
8277
|
+
.lock()
|
|
8278
|
+
.unwrap()
|
|
8279
|
+
.prepared_facts
|
|
8280
|
+
.remove(&identity)
|
|
8281
|
+
.unwrap();
|
|
8282
|
+
let writes = store.prepared_disk.stats().writes;
|
|
8283
|
+
let before = store.state.lock().unwrap().counters;
|
|
8284
|
+
let from_disk = finish_prepared(
|
|
8285
|
+
&store,
|
|
8286
|
+
store.request(&query, &owner, &Cancellation::default()),
|
|
8287
|
+
&owner,
|
|
8288
|
+
);
|
|
8289
|
+
assert_eq!(
|
|
8290
|
+
from_disk["data"]["value"].as_bool(),
|
|
8291
|
+
Some(false),
|
|
8292
|
+
"{from_disk:?}"
|
|
8293
|
+
);
|
|
8294
|
+
assert_eq!(store.state.lock().unwrap().counters[1], before[1]);
|
|
8295
|
+
assert_eq!(store.prepared_disk.stats().writes, writes);
|
|
8296
|
+
assert!(store
|
|
8297
|
+
.state
|
|
8298
|
+
.lock()
|
|
8299
|
+
.unwrap()
|
|
8300
|
+
.prepared_facts
|
|
8301
|
+
.contains_key(&identity));
|
|
8302
|
+
}
|
|
8303
|
+
|
|
8304
|
+
#[test]
|
|
8305
|
+
fn oversize_disk_fact_hits_leave_memory_facts_cached() {
|
|
8306
|
+
let source = Source::new(&format!("{}\n", user("root")));
|
|
8307
|
+
let small = source.directory.join("small.jsonl");
|
|
8308
|
+
std::fs::write(&small, format!("{}\n", user("side"))).unwrap();
|
|
8309
|
+
let large = source.directory.join("large.jsonl");
|
|
8310
|
+
std::fs::write(&large, format!("{}\n", format!(r#"{{"type":"user","uuid":"large","sessionId":"s","timestamp":"2026-01-02T03:04:05Z","message":{{"content":"{}"}}}}"#, "x".repeat(64 * 1024)))).unwrap();
|
|
8311
|
+
let store = NativeStore::new(&json!({"max_read_bytes_per_step":8192,"max_entry_bytes":128*1024,"max_retained_bytes":32*1024*1024,"max_prepared_fact_memory_bytes":32*1024,"reserved_hook_accounted_bytes":4096,"max_leases":16,"reserved_hook_leases":1})).unwrap();
|
|
8312
|
+
let owner = context("a");
|
|
8313
|
+
let template = acquire(&source.path);
|
|
8314
|
+
let graph = |path: &std::path::Path| {
|
|
8315
|
+
let root = finish(
|
|
8316
|
+
&store,
|
|
8317
|
+
store.request(&acquire(&source.path), &owner, &Cancellation::default()),
|
|
8318
|
+
&owner,
|
|
8319
|
+
);
|
|
8320
|
+
let graph = finish_prepared(
|
|
8321
|
+
&store,
|
|
8322
|
+
store.request(&json!({"schema":SCHEMA,"id":"prepare","operation":"prepare_graph","view":{"handle":handle(&root),"classifier":{"id":"native","version":"1"},"selectors":[],"attachments":[]},"thread_ids":[],"roots":[],"direct_paths":[path.to_string_lossy().as_ref()],"deadline_unix_ms":template["deadline_unix_ms"],"limits":template["limits"]}), &owner, &Cancellation::default()),
|
|
8323
|
+
&owner,
|
|
8324
|
+
);
|
|
8325
|
+
assert_eq!(graph["status"].as_str(), Some("ok"), "{graph:?}");
|
|
8326
|
+
json!({"schema":SCHEMA,"id":"query","operation":"query_graph","handle":graph["data"]["handle"],"selectors":[],"query":{"kind":"has_tool","pattern":"Missing","subagents":true},"deadline_unix_ms":template["deadline_unix_ms"],"limits":template["limits"]})
|
|
8327
|
+
};
|
|
8328
|
+
let ask = |query: &Value| {
|
|
8329
|
+
let result = finish_prepared(
|
|
8330
|
+
&store,
|
|
8331
|
+
store.request(query, &owner, &Cancellation::default()),
|
|
8332
|
+
&owner,
|
|
8333
|
+
);
|
|
8334
|
+
assert_eq!(result["data"]["value"].as_bool(), Some(false), "{result:?}");
|
|
8335
|
+
};
|
|
8336
|
+
let identity =
|
|
8337
|
+
|path: &std::path::Path| SourceStamp::of(&std::fs::metadata(path).unwrap()).identity;
|
|
8338
|
+
let large_query = graph(&large);
|
|
8339
|
+
ask(&large_query);
|
|
8340
|
+
ask(&graph(&small));
|
|
8341
|
+
assert!(!store
|
|
8342
|
+
.state
|
|
8343
|
+
.lock()
|
|
8344
|
+
.unwrap()
|
|
8345
|
+
.prepared_facts
|
|
8346
|
+
.contains_key(&identity(&large)));
|
|
8347
|
+
assert!(store
|
|
8348
|
+
.state
|
|
8349
|
+
.lock()
|
|
8350
|
+
.unwrap()
|
|
8351
|
+
.prepared_facts
|
|
8352
|
+
.contains_key(&identity(&small)));
|
|
8353
|
+
let writes = store.prepared_disk.stats().writes;
|
|
8354
|
+
let before = store.state.lock().unwrap().counters;
|
|
8355
|
+
ask(&large_query);
|
|
8356
|
+
assert_eq!(store.state.lock().unwrap().counters[1], before[1]);
|
|
8357
|
+
assert_eq!(store.prepared_disk.stats().writes, writes);
|
|
8358
|
+
assert!(store
|
|
8359
|
+
.state
|
|
8360
|
+
.lock()
|
|
8361
|
+
.unwrap()
|
|
8362
|
+
.prepared_facts
|
|
8363
|
+
.contains_key(&identity(&small)));
|
|
8364
|
+
}
|
|
8365
|
+
|
|
8248
8366
|
#[test]
|
|
8249
8367
|
fn registered_warmer_advances_a_forty_megabyte_source_in_eight_megabyte_steps() {
|
|
8250
8368
|
let source = Source::new(&format!("{}\n", user("root")));
|
|
@@ -268,6 +268,23 @@ impl ActivityIndex {
|
|
|
268
268
|
.filter_map(|call| self.results.get(&call.id).map(|position| position.event))
|
|
269
269
|
}
|
|
270
270
|
|
|
271
|
+
pub fn call_events(
|
|
272
|
+
&self,
|
|
273
|
+
index: usize,
|
|
274
|
+
) -> impl Iterator<Item = (&str, usize, Option<usize>)> + '_ {
|
|
275
|
+
self.turns
|
|
276
|
+
.get(index)
|
|
277
|
+
.into_iter()
|
|
278
|
+
.flat_map(|turn| turn.calls.iter())
|
|
279
|
+
.map(|call| {
|
|
280
|
+
(
|
|
281
|
+
call.call.name(),
|
|
282
|
+
call.event,
|
|
283
|
+
self.results.get(&call.id).map(|position| position.event),
|
|
284
|
+
)
|
|
285
|
+
})
|
|
286
|
+
}
|
|
287
|
+
|
|
271
288
|
pub fn project_turn_with<'a>(
|
|
272
289
|
&self,
|
|
273
290
|
index: usize,
|