- Updated getMetricDataHandler to convert query results into a consistent type format (string | number | null).
- Improved metadata construction for query results, including detailed type mapping for database fields.
- Changed API call in the web client to use mainApiV2 for metric data requests.
- Add useAutoScroll hook to ReportEditor component
- Configure auto-scroll to be enabled only when isStreaming is true
- Add ref forwarding to EditorContainer for scroll container access
- Hook observes DOM mutations from StreamContentPlugin updates
- Maintains user scroll interaction handling (disable when scrolling up)
Co-Authored-By: nate@buster.so <nate@buster.so>
- Remove readOnly prop from Plate provider to prevent re-renders
- Apply pointer-events-none and user-select-none CSS classes to EditorContainer when readonly
- Remove readOnly prop from usePlateEditor hook
- Editor becomes inert when readonly without causing re-renders
Co-Authored-By: nate@buster.so <nate@buster.so>
- Remove InlineEquationToolbarButton from floating toolbar popup
- Remove MoreToolbarButton (three dot menu) from floating toolbar popup
- Comment out unused import statements
- Buttons were appearing when text is highlighted in report editor
Co-Authored-By: nate@buster.so <nate@buster.so>
- Add 'three', '3', and 'columns' to keywords array in columnsThree configuration
- Enables users to type 'three' in slash command to find three column component
- Follows existing pattern from numberedList component which includes '1' keyword
Co-Authored-By: nate@buster.so <nate@buster.so>
- Add shimmer loading message at bottom of editor when streaming
- Use existing ShimmerText component for consistency
- Position with absolute positioning and backdrop blur
- Show 'Generating content...' message during streaming
Co-Authored-By: nate@buster.so <nate@buster.so>
- Added '@buster/data-source' dependency to the server and pnpm lock files.
- Enhanced the getMetricDataHandler function to support versioning and data source integration.
- Updated the metric data query schema to include an optional version number parameter.
- Modified the API endpoint to accommodate the new versioning feature for metric data retrieval.
- Introduced a new endpoint to retrieve metric data with pagination at /metric_files/:id/data.
- Added MetricDataParamsSchema and MetricDataQuerySchema for request validation.
- Updated GetMetricDataRequestSchema to include an optional limit parameter for pagination.
- Add proper error handling for Slack API failures with typed responses
- Implement message operation types for better type safety
- Add retry logic with exponential backoff for transient failures
- Export webhook types for external consumers
- Update Slack agent task to handle errors gracefully and continue processing
- Add proper validation and error messages for failed operations
- Include structured error tracking for debugging
🤖 Generated with Anthropic
Co-Authored-By: Claude <noreply@anthropic.com>
Ensure the Slack events endpoint never returns an HTTP 200 with success: false in the response body. Any failed event processing will now properly throw an error and return an appropriate error status code.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Introduced GitHub routes for handling installation callbacks and token management.
- Implemented middleware for validating GitHub webhook requests.
- Added tests for new handlers and middleware to ensure functionality.
- Enhanced sandbox utilities to support GitHub token usage for authenticated operations.
- Change align prop from 'center' to 'start' in MetricCardThreeMenuContainer
- This aligns the dropdown to the left/start edge instead of center
- Addresses BUS-1655: Top align three dot dropdown menu on dashboard cards
Co-Authored-By: nate@buster.so <nate@buster.so>
- Updated sharing request types to use SharePermissionsUpdateRequest for clarity across collections, dashboards, and metrics.
- Enhanced asset icon mapping to include additional asset types for better UI representation.
- Improved error handling in the MetricDataTruncatedWarning component to provide user feedback during download failures.
- Introduced a new API method to download metric files.
- Updated MetricDataTruncatedWarning component to include a download button for large datasets.
- Passed metricId as a prop to MetricDataTruncatedWarning for download functionality.
- Improved user experience by providing feedback during the download process.
- Changed chatAssetTypeToDatabaseAssetType to a Partial<Record> for better type safety.
- Updated convertChatAssetTypeToDatabaseAssetType to throw an error for unmapped asset types.
- Modified downloadMetricFileHandler tests to use fake timers and improve timeout handling.
- Updated report sharing endpoint to use SharePermissionsUpdateRequest for better clarity.
- Renamed schemas in server-shared for backward compatibility while maintaining clarity.
- Adjusted GetTitleRequestSchema to restrict asset types to those supporting title retrieval.
- Added permission checks to metric file download handler
- Added permission checks to export-metric-data trigger task
- Created comprehensive tests for access control integration
- Updated AssetType enums to include report_file
- Resolved export conflicts in server-shared package
- Fixed AI package imports for new getPermissionedDatasets API
- Combined asset type enums from both branches
- Merged all database query exports
- Integrated access-controls package into server-shared
- Resolved conflicts in AI package instructions
- Updated type definitions for better clarity and type safety in metric file download and export tasks.
- Enhanced error handling in the metric files API to utilize HTTPException for more consistent error responses.
- Added environment variable validation in export tasks to ensure necessary credentials are present before execution.
- Improved type assertions for content in metric export queries to ensure proper handling of JSONB data.
- Introduced new API endpoint for downloading metric files as CSV.
- Implemented export logic to handle large datasets (up to 1 million rows) and generate presigned URLs for secure downloads.
- Added cleanup task to remove exported files from R2 storage after 60 seconds.
- Updated environment configuration to include Cloudflare R2 credentials.
- Enhanced error handling for various export scenarios.
- Refactored related database queries and schemas for better integration.
- Updated documentation for new features and usage instructions.
- Added support for fetching and managing user-specific datasets in the `analystAgentTask`, enhancing the context available for processing.
- Updated the `AnalystAgent` and `ThinkAndPrepAgent` schemas to include datasets, ensuring they are passed correctly in system messages.
- Implemented error handling for dataset retrieval to prevent workflow interruptions.
- Adjusted integration tests to accommodate the new datasets structure, ensuring comprehensive coverage.
These changes improve the agents' ability to utilize relevant datasets, enhancing their functionality and user experience.
- Eliminated `responseMessages`, `reasoning`, and `rawLlmMessages` from chat creation and handling functions to streamline data processing.
- Updated the `generateJsonbArraySql` function to accept pre-stringified JSON for better performance and clarity.
These changes enhance the efficiency of chat message management and reduce unnecessary complexity in the codebase.
- Replaced file system reads with direct imports of prompt text files in various agent and step files to improve performance and reduce complexity.
- Updated the `runDocsAgentStep` and `runDocsAgentWorkflow` functions to return `void` instead of structured outputs, simplifying their interfaces.
- Enhanced test cases to validate prompt loading without relying on file system checks, ensuring faster and more reliable tests.
- Cleaned up unused imports and optimized code structure across multiple files.
These changes aim to enhance code clarity, maintainability, and performance in the agent workflow and related components.