Changelog
Engineering log for the binary (epure-sh/epure) and docs IA on epure.sh. Narrative marketing copy lives at /changelog.
Format: Keep a Changelog · Semantic Versioning.
Unreleased
Nothing yet.
[0.1.7] — 2026-10-04
Binary: ghcr.io/epure-sh/epure:v0.1.7 · GitHub release · Compare v0.1.6…v0.1.7
Envelope ingest accepts gzip/zlib bodies (PHP/Laravel and other compressing SDKs) and CRLF separators. Outbound webhooks pin DNS to the validated address.
Fixed
Binary
- Decompress gzip/zlib envelope bodies before parsing (Laravel
http_compressiondefault) - Normalize
\r\nenvelope item separators - Ingest matrix covers every SDK envelope fixture raw + gzip
- Webhook dispatch pins connect to the SSRF-validated IPs (blocks DNS rebinding between check and request)
- Login and register stay on the page when
session_secureis on and the browser is on HTTP GET /api/v1/auth/configreturnssession_secure
Deploy
--profile tlsondeploy/docker-compose.prod.ymlstarts Caddy (deploy/Caddyfile) on ports 80 and 443./configure --prodwritesEPURE_SITE_ADDRESSand refuses a raw IP
Docs
- Installation, configuration, troubleshooting, and the production checklist lead with the port 8080 login loop
- Founder note: You don't need an observability platform
Upgrade
git pullPin the release image
command
EPURE_IMAGE=ghcr.io/epure-sh/epure:v0.1.7
docker compose -f docker-compose.yml -f deploy/docker-compose.prod.yml --profile tls up -dNo new migration in this update. Open https://your-hostname/login. Drop --profile tls only when HTTPS is already in front. The earlier 20261001120000_credential_generation migration still runs on first boot of this tag.
[0.1.6] — 2026-10-01
Binary: ghcr.io/epure-sh/epure:v0.1.6 · GitHub release · Compare v0.1.5…v0.1.6
epure-cli ships in the GHCR image. PAT/MCP rate limits raised for agent loops.
Fixed
Binary
- Image workflow packs
epure-clibesideepure(Dockerfile.runtime) - PAT rate limits: 600 reads / 120 writes per minute (was 120 / 20); failed PAT attempts count toward the bucket
Docs
- Current image pin is driven by
LATEST_RELEASEinlib/changelog/releases.ts— add a row there when cutting a release
Upgrade
git pull, pin EPURE_IMAGE=ghcr.io/epure-sh/epure:v0.1.6, docker compose up -d. No migration.
[0.1.5] — 2026-10-01
Binary: ghcr.io/epure-sh/epure:v0.1.5 · GitHub release · Compare v0.1.4…v0.1.5
Official Sentry SDKs authenticate with the public key only. Ingest no longer requires sentry_secret.
Fixed
Binary
- DSN auth accepts
sentry_keyalone onX-Sentry-Authand query params - When a client still sends
sentry_secret, Epure validates it; empty or omitted secret is accepted
Docs
- Authentication, Ingest, Troubleshooting, Upgrades, and platform pages document public-key-only DSNs
- Upgrade path spells out
git pullplusEPURE_IMAGEbump (Compose and.env.examplelive in the clone)
Upgrade
git pull
# in .env:
EPURE_IMAGE=ghcr.io/epure-sh/epure:v0.1.5
docker compose up -dIf SDKs still return invalid_dsn, you are on a pre-v0.1.5 binary — pull and recreate. Re-copy the DSN from Settings → SDK connection (public-key form). No database migration.
[0.1.4] — 2026-09-30
Binary: ghcr.io/epure-sh/epure:v0.1.4 · GitHub release · Compare v0.1.3…v0.1.4
Public registration can be closed after the first account exists.
Added
Binary
EPURE_REGISTRATION=falseblocks new workspaces on password register and Google sign-up- Login, existing Google accounts, and invitation links stay open
- Login page hides Register when
GET /api/v1/auth/configreportsregistration_enabled: false
Docs
- Configuration, Installation, Troubleshooting, Production checklist, Settings, and Authentication document the flag
Upgrade
Create the account you need, git pull so Compose and .env.example match the release, set EPURE_REGISTRATION=false, bump EPURE_IMAGE if needed, recreate the container. No migration.
[0.1.3] — 2026-09-28
Binary: ghcr.io/epure-sh/epure:v0.1.3 · GitHub release · Compare v0.1.2…v0.1.3
Numeric DSN project segments for official Sentry SDK validation (UUIDs remain internal primary keys).
Added
Binary
dsn_project_idon projects; ingest paths resolve numeric DSN segment- Dashboard and setup copy DSN with numeric segment
Docs
- Quickstart, concepts, installation, troubleshooting, issues, and SDK matrix updated for numeric DSN ids
- Redirect
/docs/quickstart→/docs/get-started/quickstart
Upgrade
After upgrade, re-copy the DSN from Settings — do not reuse a UUID from the project URL in the DSN path.
[0.1.2] — 2026-09-28
Binary: ghcr.io/epure-sh/epure:v0.1.2 · GitHub release · Compare v0.1.1…v0.1.2
Agent workspace for coding tools: scoped PATs, HTTP Agent API, epure-cli, and @epure/mcp.
Added
Binary
- Agent API (
/api/v1/agent/*) — queue, issue context, scoped PATs (write:admin, project read/write) epure-cliin the release image (MCP and CLI guide)@epure/mcpstdio MCP server (build from repotools/epure-mcp; npm when@epurescope is live)- Dashboard: agent token tab, setup wizard refresh (platform marks, docs links, Apply with AI)
- OpenAPI in product repo:
docs/agent.openapi.yaml
Docs
- MCP and epure-cli: PAT scopes, stdio MCP config, tool table, CLI cheat sheet
- API: Agent, Webhooks; OpenAPI links on API overview
- Guides (site): Guides hub — DSN swap, Coolify, migrate paths. Footprint essays: Blog
- Guides (docs): Migrate from Sentry, Production checklist, Data and privacy
- Product: Alerts
- Reference: FAQ index, SDK matrix
- Docs hub Start here cards (new / from Sentry / ops / API)
- Per-page Related links on every docs route
Changed
- Agent API and Authentication: PAT covers full
/api/v1/*, not only/agent/* - Settings agent tokens aligned with UI scope checkboxes
- Calm Ledger design tokens and brand kit refresh in the product UI
[0.1.1] — 2026-09-26
Binary: ghcr.io/epure-sh/epure:v0.1.1 · GitHub release · Compare v0.1.0…v0.1.1
Setup and connection UI cover the full SDK matrix — not only JavaScript.
Added
- Java and .NET on the setup wizard language picker (with framework icons)
- Shared multi-platform SDK snippets in Connection settings and the Releases empty state
Notes
- Ingest stays DSN-only for official Sentry SDKs. Symbolication remains JS/TS sourcemaps only.
[0.1.0] — 2026-09-23
Binary: ghcr.io/epure-sh/epure:v0.1.0 · GitHub release
First public tag. Error tracking for exceptions. Keep official Sentry SDKs. Change the DSN.
Added
Binary
- Envelope + store ingest · spike valve · async 202 worker
- JS/TS sourcemap demangle · fingerprint grouping · PII scrub
- PostgreSQL 16 + RLS · monthly partitions + TTL
- Dashboard triage · Google OAuth + password · keyboard
jkei - Regressions · snooze · velocity · webhooks · multi-project · RBAC lite
docker compose upwith no.envrequired · deploy overlays underdeploy/
Docs
- Docs site on epure.sh (
/docs): Get started, platforms (Browser, Node, Next.js, Python, Go, Ruby, PHP, Java, .NET), product UI, self-hosting, ingest/Issues/Events API - Try ingest panel: copyable store curl + JSON body; fields persist in the tab
- Copyable command panels on product and self-host pages
- Object-first API: Ingest, Issues, Events, Authentication, Errors
- Docs IA: Get started / Platforms / Product / Guides / Self-hosting / API
Changed
- Envelope reference title is Ingest (URL
/docs/api/envelopeunchanged) - Clone instructions target
epure-sh/epure(Compose at repo root) - No
.envrequired fordocker compose up;./configure --prodfor VPS secrets docker compose uppullsghcr.io/epure-sh/epure; pin withEPURE_IMAGE
Out of scope
Tracing, session replay, profiling, log product, iOS/Android symbolication. No Redis, Kafka, or SQLite-as-primary on the self-host path.
How to read this page
| Section | Meaning |
|---|---|
| Added | New surface in the binary or docs |
| Changed | Behavior or IA that existing readers must notice |
| Fixed | Defect closed in a tagged release |
| Out of scope | Explicit product boundary |
Confirm the running build
Health has no auth. Use this after compose up or an upgrade.
command
curl -sS http://localhost:8080/health
Expected
{"status":"ok"}Where are GitHub compare links?
Each tagged section links to GitHub Releases and a compare URL when a previous tag exists. Pin production with EPURE_IMAGE=ghcr.io/epure-sh/epure:v0.1.7.
Docs vs marketing changelog?
This page is the engineering log for the binary and docs IA. The marketing changelog is /changelog. Upgrade steps: Upgrades.
Related
- Marketing changelog: /changelog
- GitHub releases
- Quickstart
- Upgrades
- Installation