Reproduce Sentry crashes as failing pytest tests — sandbox execution, verified evidence
Project description
logomesh
The repro layer for backend code.
When your service crashes in production, logomesh reproduces the failure deterministically in an isolated sandbox, writes a failing test against your current branch, and opens a draft PR. Zero LLM in the test bytes. Silence when we can't verify.
Python today. Node, Java, Go, C# shipping through 2027.
How it works
- Sentry fires. You point a Sentry webhook at us.
- We fetch the frame. Innermost in-app frame, locals, breadcrumbs, trace id.
- We synthesize the test. Deterministic Python — no LLM touches the test bytes.
- We run it in Docker. Airgapped,
nobodyuser, read-only rootfs, 128 MB cap, no network. - We verify. Sandbox must raise the same exception type Sentry captured. If it doesn't, we refuse to ship evidence.
- We open a PR. Failing test attached. Optional: sealed audit artifact with SHA-256 stamp and control mapping.
Everything outside the test bytes — which tool to call, when to give up, how to recover from a source-not-found — is handled by a LangGraph agent layer. The agent is advisory; the sealed evidence path is contract-enforced.
Sentry webhook → Agent (LangGraph, 10 tools) → Deterministic synth → Docker sandbox
↓ ↓
Advisory reasoning (audited) Sealed test + verdict artifact
→ draft PR + Sentry comment + optional Slack
Why it's different
Every other "AI for bugs" tool hands you LLM-generated output and hopes it's right. Good for velocity, useless for an auditor.
logomesh's contract:
- Sealed evidence path.
evidence_path_seal.llm_in_evidence_path: false. The pytest in the artifact is a pure function of(frame, source, sandbox_image). - Verified exception match. The sandbox must raise the exact exception type Sentry captured. Anything else refuses to ship as evidence.
- Silence on mismatch. When the agent can't reproduce at fidelity, we flag for human review. We never claim a verdict the seal doesn't support.
- No opaque test bytes. Every byte in the artifact traces to a deterministic source.
You get the repro, the PR, the proof — or an honest "we can't reproduce this cleanly" with a structured reason.
Pricing
Three tiers. Published. No "contact us" unless you're Enterprise.
Starter — $9,000/yr
For engineering teams that want repro + draft PRs for every Sentry crash.
- 1 Sentry project, 1 GitHub repo
- Unlimited events (fair-use cap 50/day)
- Repro artifact + draft PR
- Community support
- Self-serve signup
Core — $27,000/yr
For teams that want sealed artifacts and compliance-ready output.
- 3 Sentry projects, 3 GitHub repos
- Sealed artifact (SHA-256 stamped, deterministic, refusal-on-mismatch)
- Slack + Sentry + GitHub comment integrations
- Priority support (4-hour SLA)
- Drata / Vanta integration (read-only evidence push)
Compliance Pro — $54,000/yr
For teams in active SOC2 Type 2 or PCI DSS 4.0 cycles.
- Everything in Core
- SOC2 CC7.3 + CC7.4 and PCI DSS 12.10.5 control mapping on every artifact
- QSA letter-of-alignment for your named auditor
- Custom control narrative per organization
- Dedicated customer-success contact
- Annual audit-cycle support
Enterprise — custom
VPC deploy, SSO, HIPAA BAA, custom SLAs, multi-region. Talk to us.
What it reproduces well
Input-validation bugs. NoneType mismatches. Decimal precision errors. Off-by-one. Type-coercion bugs. Ordering / idempotency issues. Anything where the inputs that crashed the call are captured in the Sentry frame.
What it doesn't
- Race conditions (frame locals don't capture thread interleaving)
- Distributed-transaction failures spanning services
- Bugs that depend on specific DB row state or Redis content
- External-API behavior (sandbox auto-mocks Stripe/Redis/etc. for isolation)
- Timezone/DST (sandbox runs
TZ=UTC)
When we can't reproduce, we say so. The refusal is logged in the audit trail with a structured reason. We publish hit rate by category; we don't guess.
Roadmap — languages
| Language | Status | Notes |
|---|---|---|
| Python | GA | FastAPI, Django, Flask, SQLAlchemy, Celery, Stripe |
| Node / TypeScript | Q2 2026 | Jest + Vitest; source-map-aware |
| Java | Q3 2026 | JUnit 5 + Spring Boot + Maven/Gradle |
| Go | Q4 2026 | Requires optional capture SDK for full locals |
| C# / .NET | Q1 2027 | xUnit + .NET 8 + ASP.NET Core |
The agent layer is language-agnostic. Each language port is the synthesizer + sandbox image + AST parser — roughly 3-6 weeks per language.
Quick start (self-serve, Starter)
# 1. Sign up at logomesh.dev/start → get an installation_id and client_secret
# 2. Add the webhook in Sentry:
# Settings → Custom Integrations → New → Webhook URL:
# https://api.logomesh.dev/webhooks/sentry/{installation_id}
# Client Secret: {client_secret from signup}
# 3. Paste your GitHub PAT (repo scope) and target repo in the dashboard.
# 4. Trigger a test event. Watch the verdict land as a comment.
Quick start (self-host, advanced)
uv sync
docker build -t logomesh-startup-sandbox:latest -f Dockerfile.sandbox .
cp .env.example .env # fill in keys
LOGOMESH_ENV=production uv run uvicorn src.server.app:app --port 8080
See docs/pipeline.md for the full walkthrough.
Under the hood
logomesh_orchestrator.py— LangGraph supervisor + 10 typed tools (fetch / repro / critic / context / web / rag / artifact / PR / env / hypothesis)src/oracles/sentry_replay_v2.py— deterministic frame-locals → pytest synthesizer (no LLM)src/business_logic/sandbox/— Docker runner, hardened, production-only (no subprocess fallback)src/core/installation_secrets.py— AES-256-GCM per-installation secret storesrc/core/pii_redactor.py— PAN (Luhn-validated), SSN, email, JWT, API keys, field-name scrubbing — runs before any LLM call and before any byte lands in the artifactsrc/core/usage_tracker.py— per-run token budget + cost cap + Supabase usage loggingsrc/server/— FastAPI app, multi-tenant webhook routing, output-channel posters
Privacy & security
- No code training. LLM calls go to your configured provider under their zero-retention API terms.
- PII redaction at source. Runs before any LLM call and before any byte is stamped. See
src/core/pii_redactor.py. - Sandbox isolation. Airgapped Docker,
nobodyuser, read-only rootfs, no network, 128 MB cap. Production refuses to boot without Docker — no subprocess fallback. - Per-installation encrypted secrets. AES-256-GCM, migration-ready for Supabase Vault.
- Sub-processors (public): OpenAI, Anthropic, Tavily, Sentry, GitHub, Supabase, AWS. Listed at logomesh.dev/sub-processors.
- SOC2 Type 1 targeted Q4 2026. Type 2 targeted Q3 2027. PCI responsibility matrix available on request.
Compliance
On Compliance Pro, every artifact carries:
- Control mapping:
SOC2-CC7.3,SOC2-CC7.4,PCI-DSS-4.0-12.10.5 - Deterministic test hash (SHA-256)
- Sandbox image digest
llm_in_evidence_path: falseattestation- Evidence chain narrative auto-generated from the incident
We do not claim PCI DSS 6.3.2 (pre-release code review). logomesh fires post-incident; that's a different control.
Status
Pilot, taking design partners. First 5 customers get 20% off year 1 + named-design-partner status. Email founders@logomesh.dev or book a demo at logomesh.dev/demo.
License
Proprietary. Source available for design-partner due diligence.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file logomesh-0.1.0.tar.gz.
File metadata
- Download URL: logomesh-0.1.0.tar.gz
- Upload date:
- Size: 531.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0547c6afbc9190d344edcc7e155b7de1184e6e1eecb7862062b0d3ceebf3daf5
|
|
| MD5 |
ca9bd46b48753147c57427bd76ef3df2
|
|
| BLAKE2b-256 |
5faeb552680d5afd66f6363f6fa3d474408a96851de689d340f35ae448064188
|
File details
Details for the file logomesh-0.1.0-py3-none-any.whl.
File metadata
- Download URL: logomesh-0.1.0-py3-none-any.whl
- Upload date:
- Size: 157.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d4d82940b496e4d7628a8c78f093b36fa1375a1381ef5314bfbe9f11cd3f6e3
|
|
| MD5 |
113fef0a7fd70195ea7715a57ac6413b
|
|
| BLAKE2b-256 |
5377806b5c794bfe41216b21b96b68188643a3ced9be160f693de2919be4bb50
|