# LoopOps changelog

## 2026-07-15 — Issue handoff says what it does [fixed]

Issue status and the lifecycle rail now agree. The handoff action is **Copy agent prompt** and copies a short `loopops_issue` pointer, not a duplicated brief or a raw MCP client name.

## 2026-07-11 — The docs hub [new]

Real documentation at [/docs](/docs): a sectioned sidebar (Start · Instrument · Run the loop · Data & trust · Reference), and every page doubles as raw markdown for agents — append `.md` to any docs page URL.

## 2026-07-11 — PII and credential scrubbing at ingest [new]

Default-on data scrubbing (Sentry's model): sensitive field names filter to `[Filtered]`; credential patterns and Luhn-valid card numbers mask inside every string value and message, on both OTLP lanes and feedback. Per-project rules via `/v1/redaction` or the `loopops_redaction` tool. [Details →](/docs/data-scrubbing)

## 2026-07-11 — One header everywhere [improved]

The same navigation on every public page — Docs · Pricing · Blog · Dashboard — with the theme toggle moved to the footer.

## 2026-07-10 — The system map [new]

The console overview now derives the product picture from telemetry wiring — observed services, trace relationships, and explicitly virtual dependencies. Agents read the same map with `loopops_map`; six product surfaces remain health coverage and a fix category, not a hardcoded topology.

## 2026-07-10 — Issue handoff: one canonical packet [new]

Every diagnosed issue has a schema-backed handoff packet — identity, diagnosis, cited evidence, repository, loop history, success criteria, approval constraints. Copy it as a complete agent prompt from the console, or read it fresh with `loopops_issue`. [Details →](/docs/issue-handoff)

## 2026-07-10 — Ingest health [new]

`GET /v1/ingest/health` and the console's first-event panel now say WHY a project looks empty: the last accepted batch, or the last rejected request with its exact reason. No more silent zero.

## 2026-07-10 — Exception events, extracted [new]

OTel's canonical `recordException` path now normalizes on both OTLP lanes — errored spans cluster on the real exception message instead of the span name, with type and stacktrace preserved.

## 2026-07-10 — Per-project ingest ceiling [improved]

A request-rate ceiling per project bounds a runaway or leaked key without touching legitimate batched producers. Throttled producers see why on the ingest-health surface.

## 2026-07-10 — The proof page went live [new]

[/proof](/proof) now shows real aggregate numbers from LoopOps' own improvement loop — the loop, run on the tool that runs it. Counts only; not a mockup.

## 2026-07-10 — Hosted MCP is the one MCP surface [improved]

The local stdio server is retired; `https://mcp.loopops.dev` tracks the current MCP specification release. Headless and CI setups drive the same operations over the plain `/v1` HTTP API with project keys.

## 2026-07-10 — Repository linking [new]

Link a GitHub repository to a project — from the console or `loopops_link_repository` — and issue handoffs carry the repo, so a picked-up agent starts in the right codebase.

## 2026-07-09 — The console became the overseer's page [improved]

Overview rebuilt around the four questions a human actually asks: Am I OK? What needs me? What is the product? What did the agents do? Analytics stay one click away behind a single disclosure.

## 2026-07-08 — Coding-agent connections [new]

The Connections view shows which coding agents drove which improvement runs — verified work, shipped fixes, honest recency labels. Attribution is self-reported by the harness on `loopops_improve`.

## 2026-07-07 — Spoken feedback [new]

`POST /v1/feedback/audio` — users talk, the edge transcribes, and the transcript lands in the same feedback lane that clusters into bug and idea candidates. Raw audio is not retained.
