- Add missing 'channels:join' and 'channels:manage' to required OAuth scopes
- Update scope validation to handle comma-separated scope format
- Include defaultChannel in 're_install_required' status response
- Ensures complete integration data is returned in all status cases
Fixes scope validation for existing integrations and missing default channel data in API responses.
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Add missing status field to GET /api/v2/slack/integration response
- Ensures 're_install_required' status reaches the UI for yellow button display
- Critical fix for scope validation feature to work end-to-end
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Create validateScopes helper to avoid code duplication
- Use shared function in both initiateOAuth and getIntegrationStatus
- Addresses code review feedback from greptile-apps[bot]
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Added functions to check if a user has access to metrics and dashboards through associated chats.
- Updated permission handling in `get_metric_data_handler`, `get_metric_for_dashboard_handler`, and `get_metric_handler` to include chat access checks.
- Enhanced error handling for cases where users lack access to both dashboards and chats.
- Updated `asset_access_checks` to include new chat access functions and modified the public interface in `lib.rs` accordingly.
- Add convertMarkdownToSlack utility function that converts standard markdown to Slack-compatible mrkdwn format
- Handle headers (converted to section blocks), bold/italic text, code blocks, and ordered/unordered lists
- Integrate converter into messaging service for all outgoing messages (sendMessage, replyToMessage, updateMessage)
- Add comprehensive tests covering all conversion scenarios including nested formatting
- Use placeholder approach to avoid conflicts between bold and italic regex patterns
- Leave unsupported markdown unchanged as required
Fixes BUS-1413
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Add subqueries to count user messages (non-null request_message) and total messages per chat
- Filter out chats with zero user messages AND only one total message
- This excludes auto-generated asset import chats that users never interacted with
- Applied same filtering logic to both list_chats_handler.rs and list_logs_handler.rs
Fixes BUS-1415
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Return 412 PRECONDITION_FAILED for permission/workspace access errors
- Return 404 NOT_FOUND for chat not found errors
- Keep 500 INTERNAL_SERVER_ERROR as fallback for other errors
- Addresses BUS-1423
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Updated maxDuration to 600 seconds to align with analyst agent task.
- Added logic to handle cases where no messages are found, sending a direct response to Slack and updating message reactions accordingly.
- Improved type safety in SlackSharingPermissions component by defining a specific type for sharing permissions.