- fix(desktop): bound read-state localStorage growth and recover from quota errors (#1502) (
a3cf7eec1) - Customize macOS DMG installer (#1496) (
bbf8d8912) - mobile: thread scroll-to-bottom and desktop-parity mention autocomplete (#1499) (
e9318f66d) - fix(agent): honor stop hook retry budget (#1501) (
1c297d2f2) - feat(profile): embed live activity feed in profile aux panel (#1380) (
654b6c374) - feat(desktop): contribution heatmap and graphical cards on projects overview (#1497) (
204a0fd2e) - feat(desktop): repository-first projects with git workflows (#1471) (
8e3c0ee95) - fix(desktop): lock horizontal webview pan (Magic Mouse side-scroll) (#1480) (
5d4edf153) - Add agent catalog modal (#1302) (
228122fdd) - fix(desktop): actually close relay sockets — plugin:websocket|disconnect does not exist (#1481) (
e70dd1a1e) - feat(buzz-agent): config parity — thinking effort, model switching, normalized token limits (#1470) (
3e282a241) - fix(sidebar): scope channel sections storage to relay URL (#1477) (
f9d06ae21) - chore(mobile): declare non-exempt encryption usage in Info.plist (#1474) (
453b8b1e4) - fix(desktop): bind channel and thread context at compose time to prevent wrong-channel send (#1472) (
d369ca9df) - fix(relay-reconnect): resilient reconnect with fast-path, escalation, and polling (#1456) (
02ff06cac) - feat: per-community workspace icon set by admins, served via NIP-11 (#1463) (
5bfd5ca27) - perf(relay): batch outbound websocket data frames (#1464) (
01b92faa1) - Make reaction ingest atomic (#1458) (
835302cc8) - Serialize fan-out EVENT frames once (#1459) (
3c661fb48) - fix: agent reliability — no restart on channel-add, visible dead-letter notice (#1468) (
d9c4e4aa7) - fix(profile): consolidate agent profile runtime metadata (#1451) (
c48006fc3) - fix(desktop): simplify workspace rail badges (#1462) (
e42dae3f9) - perf(desktop): instant channel switching — non-blocking first paint, persisted snapshots (#1452) (
deb3e6adc) - perf(relay): bounded-concurrency multi-filter query execution (S2) (#1457) (
a9e752e25) - fix(desktop): classify timeline prepends so history loads don't bump unread (#1416) (
9967b97f5) - fix(desktop): quiet gate for workspace switches instead of boot splash (#1449) (
b779a3ee2) - fix(read-path): reach complete threads, dense-second timelines, and all people in the GUI (#1418) (
7da936fff) - E1+E3: reduce relay ingest/fan-out DB round trips; ack p99 −7–16%, fd p99 −6–28%, p999 tails −29–53% vs PR #1453 tip (#1454) (
a504ad619) - perf(relay): defer post-commit dispatch and avoid verify clone (#1453) (
7bd3760c8) - fix(relay): include git hook tools in runtime image (#1326) (
88c089d3b) - feat(chart): per-pod emptyDir git scratch when persistence disabled (multi-replica HA) (#1450) (
c88799ac6) - fix(relay): remove media bearer-token auth (#1444) (
0701f47f4) - fix(desktop): stop search shortcut from hijacking the sidebar (#1447) (
15ad7ae87) - fix(ci): set PGSCHEMA_PLAN_* in start-relay-for-tests.sh to avoid embedded-PG fetch (#1443) (
89c4f7657) - feat(desktop): restore observer-feed regressions from #1381 and classify 4 new session/update types (#1412) (
fec768436) - fix(desktop): disable spellcheck/autocorrect/autocapitalize on emoji picker search (#1438) (
bdeab23b5) - feat(relay): add OpenTelemetry tracing, keep Prometheus metrics (#1398) (
b1d9d955d) - feat(buzz-agent): emit agent_thought_chunk for reasoning content (#1436) (
9f2a11b33) - feat(git): move repo-name registry to Postgres + relax RWM chart gate (HA relay) (#1432) (
e5aa4a213)