What's Changed
- Avoid duplicate admin moderation flaggers by @asim in #637
- Escape admin blocklist entries by @asim in #639
- Improve social URL detection by @asim in #641
- Report data persistence write errors by @asim in #643
- Fix stream clear throttle reset by @asim in #645
- Unify guest + assistant into one inline streaming chat by @asim in #646
- Add settings package test coverage by @asim in #648
- Validate trade amount parsing by @asim in #650
- Harden memory entry copies by @asim in #652
- Cover moderation auto-flagging by @asim in #654
- Add WhatsApp webhook signature tests by @asim in #656
- Add micro router test coverage by @asim in #658
- Add A2A protocol handler tests by @asim in #660
- Harden reminder metadata parsing by @asim in #662
- Fix duplicate Discord briefing headlines by @asim in #664
- Add chat pattern-match test coverage by @asim in #666
- Add auth posting eligibility tests by @asim in #668
- Handle punctuated micro-agent mentions by @asim in #670
- Add Discord link code tests by @asim in #672
- Fix Telegram account ID collisions by @asim in #675
- Validate username format in shared auth helper by @asim in #677
- Harden settings load by @asim in #679
- Harden micro agent route validation by @asim in #682
- Harden reminder MCP API calls by @asim in #685
- Add data delete registry tests by @asim in #687
- Add invite auth flow tests by @asim in #689
- Add digest formatting helper tests by @asim in #691
- test: cover memory deletion semantics by @asim in #693
- Add moderation deleter callback tests by @asim in #695
- Reject over-precise trade amounts by @asim in #697
- Guard trade history limits by @asim in #700
- Unify inline chat for guests and assistants with enhanced tools by @asim in #683
- Fix wallet redirect query escaping by @asim in #703
- Label the home web-search card 'Search' not 'Web Search' by @asim in #704
- Fix status update counts for expired entries by @asim in #706
- Handle malformed Coinbase rates by @asim in #708
- Fix deterministic micro keyword routing by @asim in #710
- Handle whitespace in micro-agent addresses by @asim in #712
- Add CSRF auth coverage by @asim in #714
- Add coverage for main helper functions by @asim in #716
- Add auth post limit and email verification tests by @asim in #718
- Harden app security scanning by @asim in #720
- Fix SQLite partial content search by @asim in #723
- Fix token form expiration parsing by @asim in #725
- Add mesh proxy bypass tests by @asim in #727
- Tighten micro-agent keyword routing by @asim in #729
- Add OAuth authorization code exchange tests by @asim in #731
- Clear stale email verification timestamps by @asim in #733
- Mark CSRF cookie secure on direct TLS by @asim in #735
- Harden fetched link scheme handling by @asim in #737
- Add auth account lifecycle coverage by @asim in #739
- Harden web fetch private host detection by @asim in #741
- Harden web fetch URL validation by @asim in #743
- Harden weather coordinate handling by @asim in #745
- Link product priorities to tracking issues by @asim in #751
- Harden guest micro-agent tool access by @asim in #753
- Refine product priorities after review by @asim in #755
- Improve weather unavailable states by @asim in #757
- Update product priorities after review by @asim in #759
- Improve guest first-run chat guidance by @asim in #761
- Refresh product priorities after review by @asim in #764
- Ensure tool-backed answers are complete by @asim in #766
- Refresh product priorities after live review by @asim in #769
- Guard native agent progress-only answers by @asim in #771
- Refresh product priorities after review #772 by @asim in #774
- Improve tool answer fallback synthesis by @asim in #778
- Refresh product priorities after review 779 by @asim in #780
- Normalize agent answer markdown by @asim in #782
- Normalize answer markdown across chat surfaces by @asim in #785
- Refresh product priorities after review #786 by @asim in #788
- Fix malformed leading bold in agent answers by @asim in #790
- Refresh product priorities after review #791 by @asim in #793
- Ensure native weather fallbacks include tool results by @asim in #795
- Refresh product priorities after review #796 by @asim in #798
- Return news results instead of search progress by @asim in #800
- Refresh product priorities after review 801 by @asim in #803
- Anchor live answers to request date by @asim in #805
- Refresh product priorities after review 806 by @asim in #808
- Ground topic news search in the live feed by @asim in #810
- Refresh product priorities after review 811 by @asim in #813
- Ground web search answers in query intent by @asim in #815
- Refresh marketing notes and MCP docs by @asim in #817
- Refresh product priorities after review 818 by @asim in #820
- Ground news answers with source URLs by @asim in #822
- Refresh product priorities after review 823 by @asim in #825
- Anchor weather answers to real forecast dates by @asim in #827
- Anchor weather tool context dates by @asim in #829
- Refresh product priorities after review 830 by @asim in #832
- Improve mixed-provider agent fallbacks by @asim in #834
- Refresh product priorities after review 835 by @asim in #837
- Isolate fresh guest agent requests by @asim in #839
- Refresh product priorities after review 840 by @asim in #842
- Improve news topic headline matching by @asim in #844
- Refresh product priorities after review 845 by @asim in #847
- Preserve news article URLs in agent answers by @asim in #849
- Update product priorities after review 850 by @asim in #852
- Deduplicate mixed-source news feed entries by @asim in #854
- Update product priorities after review 855 by @asim in #857
- Clarify guest weather access by @asim in #859
- Update product priorities after review 860 by @asim in #862
- Fix guest recent search query escaping by @asim in #864
Full Changelog: v0.29.0...v0.30.0