Tags: exceptionless/Exceptionless
Tags
Bump Foundatio.Redis from 12.0.1-alpha.0.6 to 12.0.1-alpha.0.9 (#2007) --- updated-dependencies: - dependency-name: Foundatio.Redis dependency-version: 12.0.1-alpha.0.9 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Next: Dashboard charts (#1967) * WIP: Adds events dashboard chart component Introduces a new component for displaying events data in a chart format on the main dashboard. This commit adds a basic chart implementation using dummy data. Real API integration will come in a later commit. * WIP - Enhances events dashboard with date range selection Improves the events dashboard by adding date range selection functionality to the chart. This allows users to select a specific time range on the chart to filter events, providing a more granular view of the data. Also, fixes an issue with persistent event queries invalidation and updates date formatting. * Adds local date formatting functions Adds `formatLocalDateTime` to format a date to ISO-like format in local time and `formatTimeRange` to format a date range using the new function. Updates date range filter to use local time formatting. * Updates dependencies Updates various dependencies to their latest versions. This includes updates to: - Lucide Svelte - bits-ui - dompurify - pretty-ms - runed - shiki - tailwind-variants - eslint and related packages - svelte and sveltekit - swagger-typescript-api - typescript-eslint - vite These updates likely include bug fixes, performance improvements, and new features. * Replaces date range dropdown with picker Replaces the previous select dropdown with a date range picker component for enhanced usability and flexibility. The new date range picker includes quick range selection and a custom range form using Elasticsearch date math syntax. This provides users with more control over the date ranges they select for filtering events. The date range parsing and formatting logic was updated. * Updates frontend instructions and VS Code settings Adds a linting tip to the frontend instructions and includes "datemath" in VS Code's cSpell dictionary. The linting tip encourages developers to run the format script first when encountering linting errors, potentially resolving them automatically. Adding "datemath" to the cSpell dictionary prevents it from being flagged as a misspelling. * Refactors date range handling for event filters Updates the date range selection to use a shared utility for formatting the time range string. Removes the custom date parsing logic from the events filter, and instead uses a shared utility for parsing date math ranges. This promotes code reuse and consistency across the application. * Refactors date math component and utils Moves TIME_UNIT_NAMES to datemath.ts for reuse and consistency. Updates the date range format to use DateMath format for the date filter, which improves readability and consistency throughout the application by using `toDateMathRange` instead of `formatDateRangeString`. Updates error message for empty date input in `parseDateMath`. * Moves CustomDateRange model to shared location Moves the CustomDateRange model to a shared location to prevent circular dependencies and promote code reuse across different components. Removes the duplicate definition. * Updates dependencies Updates various package dependencies in both the core project and the web client application. This includes updating Svelte, Typescript-eslint, vite and other related packages. Also adds Exceptionless.DateTimeExtensions to the core project. * Improves date math parsing and validation Refactors the date math parsing logic to be more robust and accurate, aligning with the backend implementation. This includes better handling of time zones, rounding, and various date formats. Also provides more informative validation error messages and comprehensive unit tests. Removes the legacy date range parsing functions and simplifies the date/time examples in the CustomRangeForm. * Adds tooltips to custom range form Improves the user experience of the custom date range form by adding tooltips to the start and end date input fields. The tooltips provide helpful examples of valid date formats and relative time expressions, making it easier for users to specify their desired date ranges. * Formats date math range using local ISO string. Updates the date math range formatting to use the local ISO string format to ensure consistent date representation across different timezones. This improves the accuracy and reliability of date-based calculations and comparisons. * Updates default time range for issues Updates the default time range for issues and the main page to '[now-1w/w TO now-1w/w]' to ensure consistent weekly bucketing. Refactors the toLocalISOString function by moving it to the bottom of the file. * Updates dependencies in ClientApp Bumps versions of various packages in the ClientApp, including @tanstack/svelte-query, bits-ui, layerchart, tw-animate-css, @playwright/test, @storybook/*, @sveltejs/kit, @sveltejs/vite-plugin-svelte, @testing-library/jest-dom, @types/node, cross-env, eslint-plugin-storybook, svelte, typescript, and typescript-eslint. This ensures the application uses the latest versions of these libraries, potentially including bug fixes, performance improvements, and new features. * Improves chart date series generation Refactors the chart data generation to improve handling of empty data sets and date ranges. It ensures that the chart always displays a complete date series, even when no data is available for certain periods. The changes involve filling date series with zero values for missing data points. Also, simplifies date range handling by removing the "last X" patterns in `parseDateMathRange` and defaulting to a minimum date range for the organization, aligning with Elasticsearch date math expressions. This ensures consistency in date handling across the application. * Updates Exceptionless.DateTimeExtensions Updates the Exceptionless.DateTimeExtensions package to the latest version. This ensures that the application benefits from the latest bug fixes and improvements related to date and time handling. * Defines nullable type for previous state refs Ensures that previous settings refs are nullable to avoid potential issues when they are initially undefined. * Removes close button from faceted filter actions Removes the unnecessary "close" button from the faceted filter actions component. The popover automatically closes when an action is taken, so the button is redundant. * Improves date range picker usability Enhances the date range picker component by: - Adding keyboard support for applying and canceling custom date ranges, - Applying the custom range when the popover closes, - Ensuring the custom form is only submitted if valid, - Persisting the state of the date range picker when the popover is closed. * Applies shadcn-svelte trigger snippet pattern Ensures correct tab behavior and accessibility for shadcn-svelte trigger components. Updates documentation to provide usage guidelines and examples for the `child` snippet pattern in `Tooltip.Trigger`, `Popover.Trigger`, `DropdownMenu.Trigger`, and other trigger components. The pattern avoids double-tab issues and ensures proper props delegation, improving accessibility and maintainability. Updates components to use the recommended pattern. * Adds accessibility descriptions to filters Improves accessibility by adding screen reader descriptions to faceted filters and the custom date range form. This allows users to understand how to interact with these components using keyboard navigation. * Validates end date is after start date Adds validation to ensure the end date in the custom date range picker is after the start date. This prevents users from selecting invalid date ranges where the end date precedes the start date. Also ensures the Apply button is disabled when the date range is invalid. * Fixed tag filters Guarantees empty buckets array for aggregations Ensures that the `buckets` array in aggregation results is always an empty array when there are no items, preventing potential errors when the client code attempts to iterate over it. Addresses a potential issue where a null or undefined `buckets` property could cause errors in components that expect an array. * Improves faceted filter accessibility and usability Enhances the faceted filter components by: - Adding keyboard navigation within popovers for improved accessibility, specifically using the Escape key to cancel and close the filter. - Ensures focus is not trapped within the popover, allowing users to navigate outside it with the Tab key. - Updates help text to provide clearer instructions for keyboard interactions. - Renames `onClose` and `onCancel` methods for clarity. * Adds accessibility instructions for code generation https://github.com/github/awesome-copilot/blob/main/instructions/a11y.instructions.md Introduces a new file containing detailed instructions for accessibility. The instructions aim to guide code generation towards WCAG 2.2 Level AA compliance, promote inclusive language, and provide specific guidance for cognitive, keyboard, low vision, and screen reader accessibility. It covers specific patterns like forms, graphics, navigation, and tables. The goal is to improve the accessibility of generated code, though manual review and testing are still recommended. * Updates package versions Bumps the versions of several NuGet packages, including OpenTelemetry, Swashbuckle, and Microsoft.NET.Test.Sdk. * npm install * Updated packages * rebuilt package lock * Update src/Exceptionless.Web/ClientApp/src/lib/features/shared/utils/charts.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]>
next: organization and account notifications improvements (#1930) * Uses HashSet for user organization and roles. Uses HashSet instead of Collection for storing user organization IDs and roles. This change improves performance by leveraging the efficient lookup capabilities of HashSet, ensuring uniqueness and faster access when checking for organization or role membership. * Adds organization management links to UI Adds links to manage organization settings and billing directly from the user and organization switcher dropdowns. This provides quick access to organization management features, improving the user experience. * Includes invites in user count Corrects user pagination by including pending invites in the total user count for accurate "has more" calculations. * Updates organization links to use A component Replaces the `goto` function calls with the `A` component from the typography module for navigating to organization management and creation pages. This change enhances the user experience and allows for styling. * WIP - Account notifications * updated svelte * Updates dev dependencies Updates Svelte and Typescript-eslint dev dependencies. This ensures the project is using the latest available versions of these packages, which may include bug fixes, performance improvements, and new features. * WIP account notification page updates * Uses TimeProvider for testable delays Refactors code to use the TimeProvider abstraction when introducing delays. This allows for easier testing and mocking of time-dependent operations in jobs and migrations. Also changes AllScopes to be an ISet. * WIP: User notification settings. * Fixes form rendering before data is loaded Ensures the notification settings form only renders after the form data is available. This prevents errors that occur when attempting to access properties of an undefined object. * Updates Beast Mode chatmode to v3.1 Refactors the Beast Mode chatmode configuration for improved tool usage and instruction clarity. The update includes a refined set of available tools, clarifies internet research guidelines with more specific instructions on link fetching, and emphasizes the importance of memory management to avoid redundant file reads. Also enforces .env file creation and updates todo list formatting. * Restructures notification settings forms Refactors notification settings forms for users and integrations, improving UI and separating concerns. Introduces a generic `UserNotificationSettingsForm` for user-specific settings and an `IntegrationNotificationSettingsForm` for integration settings, enhancing code organization and reusability. Updates the UI to use a consistent card-based layout with descriptive text for each setting. * Improves user notification settings UI Enhances the user interface for the user notification settings form. Replaces the heading component to ensure consistent styling. Improves the loading state of the form by using a more visually appealing skeleton loader, providing a better user experience while data is being fetched. * Improves appearance settings layout Enhances the appearance settings page layout by aligning the theme options (Light, Dark, System) to the center using flexbox. This provides a better user experience by visually centering the theme previews and labels. * Updates package-lock.json and package.json Updates dependencies to their latest versions. This ensures the project benefits from the latest features, bug fixes, and security patches in the updated libraries. * Refactors notification settings forms Refactors the notification settings forms for projects and users. This change introduces a new `UserNotificationSettingsForm` component that provides a better UI, including descriptions for each notification type. It also handles the display of settings based on plan features and email verification status. * Uses Alert variants for styling Refactors the alert component to use variants for styling, and applies the 'information' variant to the alert in the user notification settings form to enhance readability. * Uses SvelteMap and SvelteDate for reactivity Improves reactivity by utilizing SvelteMap for filter caching and SvelteDate for date calculations, enhancing UI responsiveness. * Updates notification settings form behavior Refactors the notification settings form to use `onCheckedChange` instead of `onclick` for switch components, ensuring consistent event handling. Moves `isEmailAddressVerified` declaration for better readability. Improves project notification settings saving with toast notifications to provide user feedback. * Improves Svelte form handling and data management Introduces `structuredCloneState` utility to prevent cache mutation and reactive entanglement when working with forms. Updates form components to use `structuredCloneState` for initializing and resetting form data, ensuring data isolation and predictable behavior. Adds Svelte component guidelines to promote best practices and consistent development. Improves performance by using reference comparison instead of JSON stringification for reset logic. Also adds reactive binding pattern to handle query data. * Enables Svelte experimental async components Adds documentation for async components in Svelte. Enables the `experimental.async` compiler option in the Svelte configuration file to allow using `await` directly in component scripts, `$derived` expressions, and template expressions. * Updated deps * Updates dependencies in package.json Updates various dependencies to their latest versions. This includes updates to `@lucide/svelte`, `bits-ui`, `shiki`, `tailwind-variants`, `@chromatic-com/storybook`, `@iconify-json/lucide`, `@playwright/test`, `@storybook/*`, `@sveltejs/kit`, `@types/node`, `eslint-plugin-storybook`, `svelte`, `svelte-check`, `typescript`, and `typescript-eslint/*`. These updates may include bug fixes, performance improvements, new features, and security patches from the updated libraries. * Added shadcn-svelte calendar * Documents frontend coding conventions Adds documentation outlining best practices and patterns for frontend development, including dialog component structure, API integration, naming conventions, and type safety. These guidelines aim to promote consistency, maintainability, and code quality across the frontend codebase. * Renames DropDown component to Dropdown Updates the component name from "DropDown" to "Dropdown" for consistency and to adhere to naming conventions. This change affects the component itself, its import statements, and its usage within the application. * Refactors organization API and components Updates the organization API to use organization ID instead of email for user operations. Changes `removeOrganizationUser` to `deleteOrganizationUser` and updates related components. Renames `UpdateOrganizationRequest` to `PatchOrganizationRequest` and updates the corresponding API call to use PATCH. * WIP - Organization Admin Actions * next: perfectionist enum sorting rules. azat-io/eslint-plugin-perfectionist#564 * Updates placeholder text in dialogs Updates the placeholder text in the set event bonus and suspend organization dialogs. This improves clarity and user experience by providing more helpful hints. * Documents Superforms dialog patterns Adds documentation for using Superforms within dialogs. The new documentation covers specific patterns for handling server-side validation, preventing focus theft by SvelteKit, and ensuring proper error propagation. It also emphasizes the importance of rethrowing errors from action functions called within dialogs. * Updates dependencies Bumps various dependency versions, including `@lucide/svelte`, `@sveltejs/adapter-static`, `@sveltejs/kit`, `bits-ui`, and `svelte`. Also, adds "unsuspended" to the VS Code settings. * Handles server-side validation errors for bonus events Improves error handling in the set bonus organization dialog. Catches validation exceptions from the server and displays them in the form. Also, fixes an issue where the expiration date was not being correctly converted to UTC. * Handles server-side errors in dialog forms Improves error handling in dialog forms by applying server-side validation errors and displaying them to the user. Also, throws errors from async mutations to be caught by the parent component. * Refactors project instructions for clarity Updates and reorganizes project instructions, removing the outdated 'Beast Mode' chatmode and improving the structure of the main copilot instructions. Specifically: - Removes the obsolete 'Beast Mode' chatmode file. - Moves the 'Key Principles' section to the top of `copilot-instructions.md` for better visibility. - Simplifies backend testing instructions. * Updated deps * Upgraded shadcn-svelte components * Adds form ID to superform instances This change adds a unique ID to each superform instance. This will allow us to properly target and interact with forms, enabling improved testing and accessibility. * Fixes facet filter builder errors Handles cases where a facet filter builder is not found by returning `undefined` to prevent errors and then filters out any undefined values to prevent rendering issues. * Removes unused pie chart component Removes the pie chart card component as it is no longer needed. * Replaces card components with typography components Replaces the card components with typography components (H3, Muted) to improve visual consistency and styling control across the application. This change ensures a more uniform and maintainable UI by leveraging the typography components for titles and descriptions. * Adds form IDs for Superforms Adds unique IDs to Superforms for easier identification and manipulation, particularly when dealing with multiple forms on a single page or when needing to target specific forms via JavaScript. This enhancement improves form management and accessibility. * Removes unnecessary key block. Removes the key block surrounding the children render. This change avoids potential issues related to state management and component re-renders when the route changes. * Update deps * Updates Node.js version to 24 Updates the Node.js version used in the build environment and Dockerfile to version 24. This ensures compatibility with the latest dependencies and features. * lint fix * Updates node version in Dockerfile Updates the node version in the Dockerfile from 20.x to 24.x. This ensures compatibility with the latest dependencies and features.
build(deps): bump brace-expansion (#1907) Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.11 to 1.1.12. - [Release notes](https://github.com/juliangruber/brace-expansion/releases) - [Commits](juliangruber/brace-expansion@1.1.11...v1.1.12) --- updated-dependencies: - dependency-name: brace-expansion dependency-version: 1.1.12 dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
PreviousNext