All posts

Enterprise readiness is not a switch a company flips. It is the accumulation of many small, defensible decisions: who can access a system, what leaves a customer’s network, how an incident is investigated, and whether a product can prove its claims under pressure.

For an AI-native testing platform, one of the most important questions is also one of the most direct: what data leaves the customer environment when an agent works?

QualityMax is rolling out a concrete answer: Exposure Receipts. They make AI and cloud egress inspectable with evidence rather than assurances.

Receipts, not promises

An Exposure Receipt is a signed, offline-verifiable record of outbound activity during an agent session. It captures the shape of egress without creating a second store of sensitive content.

For each recorded request, a receipt can include:

  • destination and endpoint category;
  • HTTP method and response status;
  • request byte count and a SHA-256 digest;
  • model attribution for LLM requests; and
  • the exact agent build that produced the receipt.

The receipt deliberately does not contain prompts, source files, LLM responses, API keys, or request bodies. The point is accountability without creating a second sensitive-data store.

Modern test automation is inherently connected. An agent may call an LLM, contact a QualityMax cloud API, validate an integration, stream a live-browser handshake, or—when a customer explicitly enables it—send a sanitized error-reporting envelope. A meaningful audit trail needs to cover the real paths, including unhappy paths such as failed requests and interrupted sessions.

Designing for the failure case

The difficult part of a trust feature is rarely the happy path. It is what happens when a request fails, a user interrupts a process, a server responds before fully consuming a request body, or a new network client is added six months later.

The Exposure Receipt work focuses on those edges:

  • Receipts finalize before command failures and signal-driven exits terminate the process.
  • Opt-in telemetry and VNC WebSocket handshakes use the same recorded egress path.
  • If a request body is not fully consumed, QualityMax marks its byte count and digest unavailable instead of signing a misleading partial hash.
  • An AST-based CI guard rejects raw HTTP clients, transports, direct socket dials, and direct WebSocket dials outside the sanctioned egress layer.

The secure path should be the ordinary path

A receipt is useful only if future changes cannot casually route around it. The CI guard is not a substitute for a customer firewall or an independent audit, but it makes the auditable path the default path for contributors.

What a signature proves—and what it does not

Each receipt is signed with the agent’s local identity and can be verified offline. That gives customers evidence that a particular agent identity produced a particular manifest and that it has not been modified afterward.

It does not, by itself, prove complete disclosure. No product should overstate that. The strongest verification remains a comparison between the receipt and the customer’s own egress controls, proxy logs, or firewall records.

We think that distinction is healthy. Enterprise trust comes from systems that make independent verification practical—not from systems that ask customers to accept a black-box claim.

Closer, not finished

Exposure Receipts are a meaningful enterprise-readiness milestone, but they are not a declaration that the job is done. Enterprise-grade software also requires durable identity and access controls, policy enforcement, key lifecycle management, centralized audit retention, incident response procedures, and independent security validation.

What this work changes is the foundation. QualityMax can now make a more precise promise about AI and cloud egress, and customers have a mechanism to inspect that promise.

Trust should be inspectable

We’re building enterprise readiness incrementally, transparently, and with evidence at every boundary that matters.

Read about qmax-code →