- Adjusted padding in the hero section for improved spacing.
- Enhanced text content for clarity and engagement, including updates to the description and call-to-action.
- Commented out the ContactSalesButton for future consideration.
- Added startTime and endTime properties to announcements for time-bound visibility.
- Introduced audience targeting to control who sees announcements (all, users, web_visitors).
- Updated related components and hooks to support new announcement features.
- Removed unused state tracking for dismissed announcements to streamline functionality.
- delete_linear_issue + delete_notion_page: add db_session.rollback()
in the KB document deletion exception handler so the session is never
left in a PendingRollbackError state after a failed commit, which
would otherwise break all subsequent DB operations in the same request
- delete_linear_issue: include issue identifier (e.g. ENG-42) in the
success message so the caller can confirm which issue was archived
- update_linear_issue: remove redundant label_ids ternary
(x if x is not None else None -> x)
- create_linear_issue: add logger.error on empty-title guard for parity
with the equivalent Notion tool
- update_issue: handle not_indexed KB sync status with a distinct user
message (matches Notion parity)
- delete_issue: fix log message "not found in DB" → "not found in KB"
- Add create_linear_issue, update_linear_issue, delete_linear_issue to
TOOLS_WITH_UI so the HIL approval cards are correctly dispatched to
the Linear tool-ui components (without this the interrupt cards were
never rendered)
- Replace blocking requests.post with httpx.AsyncClient in
LinearConnector.execute_graphql_query to avoid stalling the asyncio
event loop during live streaming; remove now-unused requests import
cast(document_metadata["key"], String) generates CAST(col->'key' AS TEXT)
which preserves JSON string quotes (e.g. '"Fix login bug"'), causing
case-insensitive comparisons to never match.
Replace with .astext which generates the ->> operator (unquoted text
extraction), making issue lookups by title and identifier work correctly.
- LinearConnector.update_issue: return error early when no fields are
provided, preventing a silent no-op mutation and unnecessary KB sync
- Rename delete_from_db → delete_from_kb in delete_notion_page tool and
its frontend component to match the more accurate Linear naming and
keep both tool APIs consistent for the LLM