# Changelog

## Score

- CAI 53 → 55 (+2.2)
- Rubric changed (rubric-2026.09.8 → rubric-2026.09.16) — scores are not directly comparable.

## Lenses

- Code Health 66 → 67 (+0.5)
- Architecture 50 → 52 (+1.5)
- Maturity 77 → 71 (-6.0)
- Readiness 46 → 52 (+5.4)
- Security 75 → 76 (+0.6)
- Accessibility 54 → 54 (-0.1)
- Performance 70 (new)

## Resolved (216)

- AcpClient::spawn (cognitive 17) (crates/buzz-acp/src/acp.rs)
- Change-coupling hub: e2eBridge.ts → tests.rs, hooks.ts, DefaultConfigStep.tsx, SetupStep.tsx, relayClientSession.ts (desktop/src/testing/e2eBridge.ts)
- Documentation: no installation or build instructions (README.md)
- Documentation: no installation or build instructions (crates/buzz-cli/README.md)
- Documentation: written for insiders (benchmarks/buzz-dataset/read-named-path-outside-workspace/README.md)
- Documentation: written for insiders (benchmarks/buzz-dataset/reply-to-thread/README.md)
- Duplicated block (10 lines × 2) (crates/buzz-relay/src/api/media.rs)
- Duplicated block (10 lines × 3) (crates/buzz-relay/src/api/bridge.rs)
- Duplicated block (10 lines × 4) (crates/buzz-relay/src/api/bridge.rs)
- Duplicated block (10–12 lines × 2) (crates/buzz-relay/src/audio/handler.rs)
- Duplicated block (10–12 lines × 2) (desktop/src-tauri/src/relay.rs)
- Duplicated block (11 lines × 2) (crates/buzz-db/src/store/event.rs)
- Duplicated block (12 lines × 3) (crates/buzz-relay/src/api/bridge.rs)
- Duplicated block (13 lines × 2) (crates/buzz-db/src/store/event.rs)
- Duplicated block (14 lines × 2) (crates/buzz-relay/src/api/gifs.rs)
- Duplicated block (15 lines × 5) (crates/buzz-db/src/store/event.rs)
- Duplicated block (15–16 lines × 2) (desktop/src-tauri/src/relay.rs)
- Duplicated block (17 lines × 2) (crates/buzz-db/src/store/event.rs)
- Duplicated block (17–18 lines × 2) (crates/buzz-agent/src/auth.rs)
- Duplicated block (18 lines × 2) (crates/buzz-relay/src/handlers/ingest.rs)
- …and 196 more

## New (524)

- AcpClient::spawn_with_env (cognitive 21) (crates/buzz-acp/src/acp.rs)
- AcpClient::spawn_with_env (cyclomatic 17) (crates/buzz-acp/src/acp.rs)
- AdminConsoleFeedbackTab.AttachmentViewer (cognitive 21) (desktop/src/features/admin-console/AdminConsoleFeedbackTab.tsx)
- AdminConsoleFeedbackTab.AttachmentViewer (cyclomatic 18) (desktop/src/features/admin-console/AdminConsoleFeedbackTab.tsx)
- AdminConsolePanelHelpers.parseImetaAttachments (cognitive 16) (desktop/src/features/admin-console/AdminConsolePanelHelpers.tsx)
- AdminConsoleReportsTab.ResolveReportForm (cognitive 19) (desktop/src/features/admin-console/AdminConsoleReportsTab.tsx)
- AdminConsoleReportsTab.ResolveReportForm (cyclomatic 22) (desktop/src/features/admin-console/AdminConsoleReportsTab.tsx)
- AdminConsoleSettingsCard.AdminConsoleSettingsSession (cognitive 48) (desktop/src/features/admin-console/AdminConsoleSettingsCard.tsx)
- AdminConsoleSettingsCard.AdminConsoleSettingsSession (cyclomatic 42) (desktop/src/features/admin-console/AdminConsoleSettingsCard.tsx)
- AdminConsoleStaffingTab.RestrictionsSection (cognitive 40) (desktop/src/features/admin-console/AdminConsoleStaffingTab.tsx)
- AdminConsoleStaffingTab.RestrictionsSection (cyclomatic 40) (desktop/src/features/admin-console/AdminConsoleStaffingTab.tsx)
- AdminConsoleStaffingTab.StaffingTab (cognitive 27) (desktop/src/features/admin-console/AdminConsoleStaffingTab.tsx)
- AdminConsoleStaffingTab.StaffingTab (cyclomatic 33) (desktop/src/features/admin-console/AdminConsoleStaffingTab.tsx)
- Ambiguous distinction between 'bearer' and 'bearer_no_browser'. It is unclear if 'bearer' implies a browser-based flow by default or if it is a generic alias. If 'bearer' is the standard method, 'bearer_no_browser' suggests a variant that should perhaps be the default or named more explicitly (e.g., 'fetch_silent').
- AnimatedAvatarCameraControls.AnimatedAvatarCameraControls (cognitive 23) (desktop/src/features/profile/ui/AnimatedAvatarCameraControls.tsx)
- AnimatedAvatarCameraControls.AnimatedAvatarCameraControls (cyclomatic 18) (desktop/src/features/profile/ui/AnimatedAvatarCameraControls.tsx)
- BuzzDevPushEnrollmentDriver.completeEnrollment (cognitive 21) (mobile/ios/BuzzPushKit/Sources/BuzzPushKit/BuzzDevPushEnrollmentDriver.swift)
- BuzzDevPushEnrollmentDriver.completeEnrollment (cyclomatic 18) (mobile/ios/BuzzPushKit/Sources/BuzzPushKit/BuzzDevPushEnrollmentDriver.swift)
- BuzzPushSnapshotBridge.syncCommunities (cognitive 19) (mobile/ios/Runner/PushSnapshotBridge.swift)
- CanvasHistoryPanel.CanvasHistoryPanel (cognitive 31) (desktop/src/features/channels/ui/CanvasHistoryPanel.tsx)
- …and 504 more

## Changes since last survey

- 92 commits — 51 feature/other, 41 fixes

## By area

- crates/buzz-db — 11 commits
- desktop/src — 10 commits
- mobile/lib — 9 commits
- (root) — 8 commits
- crates/buzz-relay — 7 commits
- desktop/src-tauri — 7 commits
- crates/buzz-acp — 5 commits
- deploy/charts — 5 commits
- mobile/ios — 4 commits
- mobile/test — 4 commits
- .github/workflows — 3 commits
- crates/buzz-agent — 3 commits
- desktop/tests — 3 commits
- docs/nips — 3 commits
- crates/buzz-push-gateway — 2 commits
- .github/ci — 1 commit
- crates/buzz-admin — 1 commit
- crates/buzz-audit — 1 commit
- crates/buzz-feature-flags — 1 commit
- crates/buzz-mesh-smoke — 1 commit

## Notable commits

- fix: Fix Apple Silicon iOS simulator builds (#7646)
- fix: Fix desktop onboarding regressions (#7659)
- fix: Fix mobile heart and warning emoji with native font fallback (#7842)
- fix: fix(acp): improve hints in pi agent setup guide (#7594)
- fix: fix(admin): allow cold storage worker DB startup (#7770)
- fix: fix(agent): preserve Databricks Opus UC reasoning and tool continuation (#7840)
- fix: fix(audit): frame hash inputs with TLV (#7492)
- fix: fix(ci): bootstrap the reusable MinIO image in GHCR (#7869)
- fix: fix(ci): consume the published MinIO image (#7870)
- fix: fix(ci): don't run desktop tests for purely mobile client changes (#7709)
- fix: fix(ci): pull pinned MinIO images from Quay (#7599)
- fix: fix(ci): run the admin disabled-mode DB test in the PostgreSQL lane (#7900)
- fix: fix(ci): select runtime suites from PR changes only (#7843)
- fix: fix(db): allow naturally expired push lease replacement (#7653)
- fix: fix(db): limit event transactions to listener mention kinds (#7932)
- fix: fix(desktop): bound startup request bursts and recover quota refusals (#7790)
- fix: fix(desktop): keep managed agent avatars usable across communities (#7732)
- fix: fix(desktop): refresh channels after access-revoked closure (#7784)
- fix: fix(desktop): register macOS badges for new and existing installs (#7783)
- fix: fix(desktop): remember Inbox unread-only choice (#7672)
- …and 72 more
