Zephr

Governance / Security

Security is layered,not stamped.

Four controls, in the order a read crosses them. A request that fails the Trust Firewall never reaches the evidence graph — and the refusal names why. No badge on this page outruns the control behind it.

Shipped · layered local controlsAudited at e23d4d5aNo certifications heldADR-Z-08 · ADR-Z-09
the stack · traversal orderfirewall sealed
  1. edge

    transport terminated · request shape validated against the tool contract

  2. trust firewallthe gate

    policy evaluated · refusal returned with a reason code, never a blank result

  3. evidence graph

    reads are scoped to the admitted binding · writes carry provenance

  4. agent boundary

    scope binding is immutable for the session · no re-scoping from inside a tool call

a read travels top to bottom — failing layer two means never reaching three

Illustrative example — not live data

evidence lives at a commit, not in prose

git log -1 --format=%H docs/security/SECURITY-AUDIT.md
The traversal

Pick the request. Watch where it stops.

Two scenarios, same stack. An in-scope read crosses all four layers; an out-of-scope read is refused at the Trust Firewall with its reason — and the layers below never light up. The page's thesis, operated by hand.

  1. Edge

    passed

    request shape validated

  2. Trust Firewall

    passed

    policy evaluated against the admitted scope

  3. Evidence graph

    passed

    scoped read · provenance attached

  4. Agent boundary

    passed

    results handed over · credentials never leave

✓ admitted — four layers crossed in order; the agent receives results, never credentials or scope

illustrative traversal — the refusal reason mirrors the real Trust Firewall contract

Implemented controls

What is shipped, tested, and merged.

Every control below maps to a merged implementation, a CI gate, or an inspectable artifact. Work that is only designed appears further down the page under its own honest label — never here.

  • TrustBench suite

    Shipped

    Deterministic retrieval scenarios run in CI and block merges. The continuity suite passes nine measured scenarios and reports structured abstention for the five features that have no fixture corpus yet.

    docs/trust/TRUSTBENCH-EVIDENCE.md

  • Trust Firewall

    Shipped

    A pure, deterministic policy engine gating capture and retrieval: capture limits, provenance requirements, review-state filtering, and structured refusal codes. A refusal names the rule it failed.

    ADR-Z-08

  • Immutable scope binding

    Shipped

    Project → repository → worktree, admitted once per connection. binding_epoch advances by exactly +1 on each legal transition, and binding on the first tool call is forbidden.

    ADR-Z-09

  • Governed mutation

    Shipped

    Every durable write runs inside BEGIN IMMEDIATE with lease finalize revalidation. Admin purge and migrate are rejected over admitted connections.

    SB-4348 · PR #54

  • Continuity Format v1

    Shipped

    Ed25519 source signature, destination-bound HMAC-SHA-256, manifest-root recomputation from canonical bytes, and one-time consumption enforced by an atomic ledger. Authentication happens before parse — not parse-then-check.

    ADR-Z-14 · ZEP-377

  • Adapter lifecycle

    Shipped

    Cursor, Codex, and Claude Code adapters share one connection-scoped authority model, with client and connection revocation and cross-client adversarial proof against copied or replayed authority.

    ZEP-375 · ADR-Z-09

  • Transport hardening

    Shipped

    Promise species/constructor traps, POST bootstrap exchange, exact Host and Origin revalidation, and relative-import guards protect the loopback gateway foundation.

    ADR-Z-11 · PR #78 · PR #89

  • CLI admission guards

    Shipped

    Path-traversal prevention, worktree identity revalidation on every operation, and KEY_B64 handoff for trusted CLI launch keep the local surface bounded and default-deny.

    SB-4348 · SB-4349

All references are public documents or merged pull requests. No control is claimed without one.

Security audit

Audited at V1 — conditional on green gates.

The ultra-security review audited the full codebase at baseline e23d4d5a and reported a PASS verdict: no blocker, high, or medium vulnerabilities, with all approved controls preserved. The GO is conditional on green CI and security at one SHA, including the 35 Docker-gated store tests in PR #188.

Audit summary

The verdict as recorded, including the condition attached to it. The audit constrains how this state may be described in release copy, and those constraints are honoured verbatim below.

Ultra-security reviewPASS

Full-codebase review at e23d4d5a

  • Ultra-security reviewPASS

    Full-codebase review — no blocker, high, or medium vulnerabilities.

  • Dependency auditPASS

    pnpm audit --audit-level=high — zero high or critical advisories.

  • Secret scan (gitleaks)PASS

    GitHub security workflow gitleaks job.

  • Next.js HIGH CVECLOSED

    [email protected] pinned in both applications and the lockfile.

Conditional GO
The conditionConditional

CONDITIONAL GO for beta — not a release clearance

The GO is conditioned on green CI and security at one SHA. Until the 35 Docker-gated store tests in PR #188 pass, “V1 code complete” is the honest description of where the codebase stands.

The audit explicitly constrains release wording. Two phrases it disallows — “production-ready” and “unconditional GO” — are therefore absent from this page, and their absence is the point.

docs/security/SECURITY-AUDIT.md

Illustrative example — not live data. The verdict and SHA are transcribed from docs/security/SECURITY-AUDIT.md; this card is not a live CI readout.

Planned

What we are building next — honestly labelled.

Shipped and planned are not the same word. Each entry states where the work actually stands, and its evidence reference is the document that would have to be satisfied before the label can change.

  • Full local deletion receipt

    Planned

    PrivacyOperationReceiptV1 with a multi-phase destruction state machine, receipt-before-commit durability, idempotent crash recovery, and WAL/SHM sidecar cleanup. The spec is written; the implementation is not built.

    ADR-Z-12 · local-privacy-operations.md

  • Managed cloud encryption

    Planned

    Per-tenant envelope encryption with KMS-wrapped DEKs and crypto-shred erasure. Managed console signup is open at app.zephr.ai; managed charging tiers are in planning.

    ADR-011 · ADR-Z-10

  • E01 loopback gateway

    Evolving · foundation in review

    On-demand 127.0.0.1 gateway for live Memory and Runtime reads. The architecture is accepted (ADR-Z-11) and the foundation is in review.

    ADR-Z-11

  • IPC / PoP boundary

    Planned

    Per-request proof-of-possession over loopback for privileged local actions — revocation, rebind, privacy export and delete. Spec written; implementation pending.

    ADR-Z-12

  • Trusted CLI launch

    Shipped

    KEY_B64 file handoff and default-deny admission keep CLI authority scoped to the admitted installation. Shipped, and listed here because it is the foundation the two pending items build on.

    ZEP-375 · ADR-Z-09

A label changes only when the corresponding CI gate, security review, and documentation are merged.

Certifications

What we do not hold — and why we say so.

Zephr displays no compliance badges, because it has earned none. Every security claim on this page is backed by an inspectable artifact — a merged control, an audit verdict at a commit, or an explicit statement of absence like this one.

  • SOC 2 Type II

    Not held

    No third-party audit has been performed. No trust service criteria are claimed, and no report exists to request.

  • ISO 27001

    Not held

    No ISMS certification and no conformity assessment. There is no accredited body attesting to anything on this site.

  • HIPAA

    Not applicable

    Zephr is a developer tool, not a healthcare platform. No business associate agreement exists and none is offered.

If a certification is ever obtained, this page will link to the report and the auditor — not to a generic badge.

Privacy & data

Your data, your machine, your control.

Zephr is built around explicit capture, local capability, and stated limits. The limitations below are not a footnote — they sit at the same weight as the facts, because a privacy claim without its exceptions is not a privacy claim.

Privacy · what we doVerified

Facts

  • Explicit capture only — Zephr never scrapes or reads a session without being handed the content
  • No plaintext secret synchronization — Fleet stores secret references, never secret values
  • Local mode keeps everything on your machine, in one SQLite file, with no account
  • Local and worker-path encryption applies a per-tenant DEK envelope to retrieved payloads; the managed-cloud write path is not yet wired (ADR-011 · see limitations)
  • Provider egress is governed by a checked-in allowlist; unknown providers fail closed (ADR-027)
ADR-016 · ADR-017 · ADR-027
Privacy · honest limitationsOpen residuals

What is not true yet

  • The full local deletion receipt — WAL/SHM sidecars, caches, staged exports, key material — is specified but not yet implemented
  • Same-UID process isolation is an open residual: stock POSIX does not isolate two processes of the same user (ADR-Z-12 Decision 2)
  • Managed console signup is open; managed charging tiers are planned, so enterprise cloud posture is not in production use
docs/security/local-privacy-operations.md · ADR-Z-12

The local-first posture is documented in full on the privacy mode page, including what never leaves the machine and what Zephr does with model providers.

Read the full security model.

The documentation covers the architecture, the tool contract, the TrustBench methodology, and the trust model in detail. Every claim there links to its source.