Persisting
Persistent infrastructure for the Agent era.
Persisting connects durable model state—parameters and KV caches—with durable Agent history—trajectories and execution records. The current product is the path from execution to queryable history:
| Governed execution | Durable history |
|---|---|
pvisoris an executor that produces persistable, reviewable facts: staged Effects and execution records from one Agent Run;pchroniclebrowses, queries, exchanges, and serves trajectory Datasets.
Each command works on its own. Connected, they cover pvisor run --stage … →
review/apply → configured capture → a queryable Dataset.
Install
pip install persisting[lance]
pvisor --version
pchronicle --version
The rolling nightly build installs the same commands without a Rust toolchain:
curl -fsSL https://raw.githubusercontent.com/DeepLink-org/Persisting/main/scripts/install-nightly.sh | bash
See the installation guide for platform requirements and executor setup.
Run one Agent and review its changes
pvisor run --stage ./runs/task-001 -- codex
pvisor review last
pvisor apply last --all # or: pvisor drop last
--stage creates a copy-on-write workspace view for review; without it the
Agent may write the real project tree. The exact boundary is
platform-dependent and recorded with the Run—consult the
execution guide
before treating it as a security boundary.
Query Agent trajectory history
pchronicle onboard
pchronicle onboard query
pchronicle agent codex ./trajectory-data --ask "Which tools fail most often?"
The onboarding flow creates a temporary example Dataset—no source checkout
required. pchronicle import accepts ATIF, ACTF, and OpenAI Messages;
pchronicle serve starts a loopback-only, read-only Dataset UI and API.
After capture is configured, selected pVisor Run events can enter a pChronicle Dataset. See the capture guide.
Current maturity
| Capability | Status |
|---|---|
| pVisor host execution, review, checkpoints, and transactional workspace | Implemented |
| pChronicle local/S3 catalog, bounded SQL, analysis, find, import/export | Implemented |
| pChronicle loopback-only read API and embedded Web UI | Implemented |
| Gateway capture and cooperative proxy policy | Implemented |
| Container/libkrun executors and transparent network boundaries | Platform-dependent; see the pVisor and OverlayNet docs |
| Queue and document Search | Separate stable capabilities |
| Tensor Memory / TTAS | Experimental |
Documentation
- Choose a workflow — pick the entry point that matches your task
- Run your first Agent — the run-review-apply loop
- Explore durable history — browse and query a trajectory Dataset
- Project architecture — ownership and delivery boundaries
Criterion.rs microbenchmarks and hyperfine lifecycle scenarios are compared
against main in CI; see the benchmark contract.
Latest nightly pChronicle benchmark: d628946b6ac4 on linux/x86_64 (2026-09-11T11:26:09.379341+00:00).
| Case | Metric | Value |
|---|---|---|
criterion/atif_conversion/parse_corpus |
latency_median_ns |
5.536e+06 ns |
criterion/atif_conversion/roundtrip_corpus |
latency_median_ns |
7.369e+06 ns |
criterion/projection_cpu/events_to_storyline_corpus |
latency_median_ns |
3.408e+05 ns |
system/projection_pipeline/event_append |
initial_append_ms |
71.601 ms |
system/projection_pipeline/projection_build |
build_ms |
5390.446 ms |
system/projection_pipeline/projection_incremental |
sync_ms |
39.511 ms |
system/lance_vs_json/lifecycle |
cold_query_ms |
2933.682 ms |
system/lance_vs_json/lifecycle |
get_storyline_full_ms |
9.724 ms |
system/lance_vs_json/lifecycle |
replace_storyline_ms |
42.659 ms |
system/lance_vs_json/selective |
lance_qps |
347 ops/s |
system/lance_vs_json/group_by |
lance_qps |
447.1 ops/s |
system/lance_vs_json/summary |
lance_over_json |
0.244 ratio |
system/json_streaming_ndjson/json_streaming |
p95_ms |
14.444 ms |
system/json_streaming_ndjson/json_streaming |
rows_s |
2.744e+05 ops/s |
system/json_streaming_ndjson/json_streaming |
process_peak_rss_mib |
45.492 MiB |
hyperfine/projection_pipeline |
wall_median_seconds |
5.577 s |
hyperfine/lance_vs_json |
wall_median_seconds |
39.863 s |
Open the complete benchmark run.
License
Apache License 2.0. See NOTICE for third-party
attributions and separately licensed bundled components.
Metadata
Release files for persisting 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| persisting-0.3.0-py3-none-manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.28+ x86-64 | Details for persisting-0.3.0-py3-none-manylinux_2_28_x86_64.whl |
| persisting-0.3.0-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details for persisting-0.3.0-py3-none-macosx_11_0_arm64.whl |
Total release size: 124.7 MB
Release files / persisting-0.3.0-py3-none-manylinux_2_28_x86_64.whl
| Download URL | persisting-0.3.0-py3-none-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 61.0 MB |
| Tags | Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
34da8f6fa78d3b1cd8ec1f3f31339f7198714c166e1c5eafe62147dd881069ca
|
|
BLAKE2b-256 checksum How to use checksums |
12e28611582761eaf504dcd78fb776466434f433e33ce92258e7612c80121bc3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.
Transparency logRelease files / persisting-0.3.0-py3-none-macosx_11_0_arm64.whl
| Download URL | persisting-0.3.0-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 63.7 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
9bc3c8fdf79e7824de3c91a3143cf195446d23b6fdf79a774d8f3d4e0335e65c
|
|
BLAKE2b-256 checksum How to use checksums |
8d04ba3d90a9fb69c0ac2260134084e50d025948bd9f168bc18ae67f2d963188
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.
Transparency logSecurity for persisting 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for persisting-0.3.0-py3-none-manylinux_2_28_x86_64.whl
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.