# Changelog

## Baseline

- First survey — no prior run to compare against. CAI 39.

## Lenses

- Code Health 59
- Maturity 91
- Readiness 17
- Security 52

## Changes since last survey

- 300 commits — 98 feature/other, 202 fixes

## By area

- backend/packages — 94 commits
- backend/tests — 52 commits
- frontend/src — 48 commits
- backend/app — 31 commits
- (root) — 28 commits
- backend/AGENTS.md — 12 commits
- frontend/AGENTS.md — 6 commits
- frontend/tests — 6 commits
- backend/uv.lock — 5 commits
- frontend/package.json — 3 commits
- frontend/pnpm-lock.yaml — 3 commits
- backend/docs — 2 commits
- docker/nginx — 2 commits
- .agent/skills — 1 commit
- backend/Makefile — 1 commit
- backend/scripts — 1 commit
- deploy/helm — 1 commit
- docker/lark-cli-broker — 1 commit
- docs/superpowers — 1 commit
- frontend/.env.example — 1 commit

## Notable commits

- fix:  fix: read run stop_reason from runtime context (#4188)
- fix: Fix concurrent thread metadata merges (#4489)
- fix: Revert "fix(memory): follow config reload in get_memory_config (#4216)" (#4320)
- fix: docs: fix scheduled-task source links (#4397)
- fix: fix browser extra detection for indentless YAML (#4367)
- fix: fix(agent): route subagents by net benefit (#4384)
- fix: fix(agents): classify web_fetch error pages as errors, not successful evidence (#4314)
- fix: fix(agents): refuse empty SOUL.md updates in update_agent (#4219)
- fix: fix(artifacts): scope full previews to their thread (#4634)
- fix: fix(artifacts): serve inline binary artifacts via FileResponse for Range support (#4281)
- fix: fix(artifacts): support atomic saves on Windows (#4629)
- fix: fix(auth): let deployments close local self-registration (#4311)
- fix: fix(auth): recover from setup status timeouts (#4371)
- fix: fix(auth): resolve email accounts case-insensitively (#4101)
- fix: fix(backend): remove transient image context after model calls (#4267)
- fix: fix(blocking-io): trace self/cls attribute chains and local aliases in the call graph (#4200)
- fix: fix(browserless): accept the `timeout` config key and harden coercion (#4519)
- fix: fix(browserless): surface target-page error status in web_fetch_tool (#4239)
- fix: fix(channels): accept leading @mentions before /connect bind codes (#4222)
- fix: fix(channels): buffer GitHub follow-ups during busy runs (#4133)
- …and 280 more
