Skip to main content

End-to-end architecture

This document defines the contracts between Persisting products. Provider mechanisms belong to pVisor Design; storage layouts belong to pChronicle Design; commands belong to each product's Reference.

Persisting product domains and integration

Product ownership

Product or layerOwnsDoes not own
persisting-events contractstorage-independent EventRecord identity/envelope and the optional versioned pChronicle control protocolstorage rows, storage engines, query, or projection
pVisorone Run, its Attempts, execution environment, capability admission, effects, and runtime evidencemany-Run scheduling or durable history queries
pChronicleAgent trajectory storage engine: path identity, Snapshot, canonical events, projections, query, and exchangestarting, scheduling, or controlling a Run
Runtime providerone physical execution mechanismlogical Run identity or product policy

Gateway, OverlayFS, and OverlayNet are pVisor runtime mechanisms. They do not form independent control planes.

Runtime placement and platform boundary

The logical Run contract is portable across providers, but the enforcement boundary follows the selected platform:

PlacementWorkload boundaryWorkspace behaviorSecurity qualification
Linux hostprivate user/mount/PID namespaces plus Landlockstaged FUSE workspacefilesystem and network capabilities are reported separately; unavailable setup fails before execution
macOS hostSeatbelt where available, with staged macFUSE writesstaged host workspacesafe best-effort host isolation; host kernel and ambient reads remain visible in Evidence
Linux or Apple Silicon macOS VMguest kernel with an OCI or prepared Linux rootfsstaged workspace inside the gueststronger kernel boundary, while the macOS VMM still runs with the invoking user's host authority
native OCI containerOCI runtime and bundle selected by pVisorbundle-mounted rootfs and staged pathscontainer isolation is recorded; it is not treated as a complete hostile multi-tenant boundary

The provider reports requested versus effective capability dimensions in the Run Bundle. A successful process exit does not imply that the requested boundary was installed, and a workspace stage remains reviewable independently of the provider that produced it. See pVisor isolation design and the execution guide for provider-specific behavior and prerequisites.

Independent ingress paths

Configured runtime capture
Gateway trajectory events ─┐
pVisor lifecycle records ──┴─> canonical event Source ──────────────┐
Pinned external Sources │
local/S3 ATIF, ACTF, OpenAI Messages files ──────────────────────────┼─> Snapshot
local/S3 Storyline Sources ──────────────────────────────────────────┘
└─> normalized Dataset views

pVisor completes its standalone loop with a terminal RunResult, staged Effects, and a private, versioned Run Bundle. Configured capture is not a pVisor runtime prerequisite. External file and Storyline Sources are pinned and normalized directly; they neither pass through pVisor nor become canonical runtime events, and they do not acquire pVisor execution guarantees.

Stable objects

RunSpec
└── Run
├── Attempt 1
├── Attempt 2
└── Attempt finalization
├── terminal RunResult
├── private versioned Run Bundle
└── staged Effects → later review / apply / drop

Optional configured event handoff
└── Gateway trajectory events + pVisor lifecycle records

The logical Run is portable. An Attempt is provider-specific. Infrastructure retry creates another Attempt; a semantic retry creates a derived Run. A Run may have multiple Attempts but only one visible terminal result.

Where a Source carries it, the stable cross-product identity is run_id. Session, Step, call, event, and Artifact identities remain scoped and retain their Source lineage. A process ID, container ID, VM ID, or worker lease is never a substitute for Run identity.

Single-Run path

User or Agent framework
→ RunSpec
→ pVisor admission
→ capability-by-dimension provider selection
→ Attempt execution
→ terminal RunResult + private versioned Run Bundle + staged Effects
→ later review / apply / drop

Admission compares requested capability dimensions with evidence the selected provider can produce. A required dimension that cannot be enforced fails before workload execution. Optional degradation is recorded explicitly in the Run Bundle.

Filesystem promotion is an Effect decision, not the Run terminal commit. Selected paths can be applied more than once while the stage remains available. Network requests and remote tool mutations are separate effect dimensions and cannot be inferred from filesystem state.

When configured, pVisor publishes Gateway trajectory events plus run.created, run.state_changed, and terminal lifecycle records to pChronicle. Those records carry Run/Attempt identity, lifecycle facts, and available event-carried Evidence. Artifact references, lineage, staged filesystem Effects, AgentCtl/network/resource Evidence, and the full Run Bundle remain local unless a separate adapter moves them.

Dataset path

Canonical runtime writers and pinned external Sources are independent Source paths. They converge only at the Snapshot and normalized Dataset views:

configured Gateway and pVisor lifecycle writers
→ canonical event Source ────────────────────────────────┐
pinned local/S3 external Sources │
→ ATIF / ACTF / OpenAI Messages files ───────────────────┼─> Snapshot
→ Storyline Sources ─────────────────────────────────────┘ ├─> normalized Run / Step / ToolCall views
└─> query / export / revision lineage

Canonical facts are append-oriented. Storyline and other normalized views are rebuildable projections. Exchange files are interoperability boundaries, not a replacement source of truth. Each read operation fixes a Snapshot; it does not invent a global transaction across unrelated Sources. Pinning an external file does not convert it into a canonical runtime event Source.

Source-specific guarantees

Source pathSupported claimExplicit non-claim
External file or imported Sourcediscovered content, pinned Source version, normalized representation, and recorded conversion lineage where implementedcompleteness of an external task manifest or absence of unreported trajectories
Gateway capturerequests and responses observed and durably published through the configured Gateway pathabsence of traffic that bypassed Gateway
pVisor RunRun/Attempt identity, recorded terminal facts, installed mechanisms, observed Effects, and provider-specific Evidenceenforcement a selected provider did not supply

Ingestion preserves these boundaries. A normalized representation or Catalog Snapshot does not upgrade the evidence supplied by its Source.

The default pVisor build does not link Lance or DataFusion. Configured Chronicle publication starts a pChronicle sidecar over authenticated loopback IPC and treats only a successful sidecar acknowledgement as durable. The legacy mode name lance is an alias for spawn; pVisor no longer writes Lance itself. Sidecar flags and mode names belong to the pVisor CLI reference and RFC-0007.

Failure and recovery

FailureOwnerRequired behavior
Attempt exits or provider disappearspVisorfinalize evidence; expose failure or create a fenced replacement Attempt
sidecar append queue is saturated or closedpVisor/Gateway producerreject before submission and report the failure; do not claim durability
append connection or acknowledgement is lostproducer and pChronicle writerpreserve the write as unknown because it may have committed; do not reuse its sequence as if definitely rejected
history publication conflictspChronicle writerpreserve the previously published Snapshot; surface or retry according to the writer contract
view generation failspChroniclekeep canonical facts readable; rebuild the derived view

Recovery never upgrades uncertainty into success. A missing terminal fact, a lost callback, and an unenforced capability remain visible states.

Security and evidence chain

Security is reported per capability dimension. pVisor records requested policy, installed mechanism, provider identity, enforcement result, and observed effects. Configured pChronicle capture stores lifecycle facts and only the Evidence carried by Gateway or lifecycle event records; the broader Run Bundle evidence inventory remains local unless moved separately.

This produces a chain rather than a boolean label. The local Run evidence chain does not mean every layer is automatically published into durable history:

requested policy
→ admission decision
→ installed mechanism
→ provider-bound evidence
→ observed effects
→ terminal result

Optional configured persistence
Gateway trajectory events + pVisor lifecycle records
→ event-carried Evidence only
→ pChronicle durable history

See Security and evidence for evidence levels and Local to fleet for portability requirements.

Public boundaries

BoundaryContract ownerDetailed document
logical runtime event and local Chronicle control protocolpersisting-eventsRFC-0007
Agent execution and Effect reviewpVisorpVisor concepts and guides
provider and runtime mechanismspVisorpVisor design
Dataset, facts, and projectionspChroniclepChronicle concepts
storage and Snapshot implementationpChroniclepChronicle design
stable command syntax and formatseach productpVisor reference and pChronicle reference
normative ownership decisionsProject RFCsRFC index

This document changes only when a cross-product contract changes. Product implementation status and roadmap details belong to their owning Design pages or Project engineering notes.