Skip to content

feat(ui): update ui packages and formatting checks#481

Open
cccs-mdr wants to merge 15 commits into
developfrom
package-updates
Open

feat(ui): update ui packages and formatting checks#481
cccs-mdr wants to merge 15 commits into
developfrom
package-updates

Conversation

@cccs-mdr

@cccs-mdr cccs-mdr commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

This PR updates typescript to v7, moves from prettier/eslint to oxfmt/oxlint, and updates the relevant formatting.


This pull request migrates the Howler UI project from using Prettier and ESLint for code formatting and linting to the Oxc project's oxfmt (formatter) and oxlint (linter) tools. It updates all related documentation, configuration, and CI workflows to reflect this change. Additionally, it fixes a TypeScript import issue with the Roboto font in the UI and documents this fix in the changelog.

Tooling migration to oxfmt/oxlint:

  • Replaces Prettier and ESLint with oxfmt and oxlint throughout the UI, including removal of .eslintrc, .prettierrc, and .prettierignore, and adds corresponding pre-commit hooks and workflow steps. (ui/.eslintrc, ui/.prettierrc, ui/.prettierignore, .pre-commit-config.yaml, .github/workflows/ui-workflow.yml, [1] [2] [3] [4] [5] [6] [7]
  • Updates documentation and developer guides to reference oxfmt and oxlint instead of Prettier/ESLint, and clarifies the new linting/formatting workflow. (documentation/docs/developer/frontend.md, documentation/docs/developer/frontend.fr.md, .github/copilot-instructions.md, [1] [2] [3] [4] [5] [6]

Changelog and bug fix:

  • Fixes a TypeScript side-effect import issue with @fontsource/roboto by switching to an explicit CSS entry import, and documents this in the changelog. (docs/RELEASES.md, docs/RELEASES.mdR3-R6)

Other improvements:

These changes modernize the project's frontend tooling, streamline formatting/linting, and resolve a key UI build issue.

@cccs-mdr cccs-mdr changed the title Package updates feat(ui): update ui packages and formatting checks Jul 9, 2026
Comment thread ui/src/components/routes/overviews/markdownExtendedTokenProvider.ts Dismissed
cccs-mdr and others added 3 commits July 9, 2026 14:58
…expression'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
@github-actions

github-actions Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 30.19% 9652 / 31965
🔵 Statements 30.19% 9652 / 31965
🔵 Functions 46.17% 404 / 875
🔵 Branches 79.13% 2029 / 2564
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
ui/src/i18n.ts 100% 100% 100% 100%
ui/src/index.tsx 0% 0% 0% 0% 1-18
ui/src/api/search/action.ts 100% 66.66% 100% 100%
ui/src/api/search/analytic.ts 50% 100% 0% 50% 7-8, 11-12
ui/src/api/search/case.ts 50% 100% 0% 50% 7-8, 11-12
ui/src/api/search/dossier.ts 50% 100% 0% 50% 7-8, 11-12
ui/src/api/search/hit.ts 66.66% 100% 0% 66.66% 11-12, 15-16
ui/src/api/search/overview.ts 50% 100% 0% 50% 7-8, 11-12
ui/src/api/search/template.ts 50% 100% 0% 50% 7-8, 11-12
ui/src/api/search/user.ts 26.66% 100% 0% 26.66% 9-10, 13-21
ui/src/api/search/view.ts 100% 66.66% 100% 100%
ui/src/api/search/count/hit.ts 55.55% 100% 0% 55.55% 7-8, 11-12
ui/src/api/search/eql/hit.ts 50% 100% 0% 50% 7-8, 11-12
ui/src/api/search/explain/hit.ts 55.55% 100% 0% 55.55% 7-8, 11-12
ui/src/api/search/facet/hit.ts 100% 66.66% 100% 100%
ui/src/api/search/grouped/hit.ts 45.45% 100% 0% 45.45% 8-9, 12-16
ui/src/api/search/grouped/user.ts 17.39% 100% 0% 17.39% 9-10, 13-30
ui/src/api/search/histogram/hit.ts 55.55% 100% 0% 55.55% 7-8, 11-12
ui/src/api/search/sigma/hit.ts 50% 100% 0% 50% 7-8, 11-12
ui/src/api/v2/search/facet.ts 35.71% 100% 0% 35.71% 7-8, 11-19
ui/src/api/v2/search/index.ts 68% 37.5% 100% 68% 19-20, 23-24, 27-28, 31-32
ui/src/components/app/App.tsx 0% 0% 0% 0% 1-522
ui/src/components/app/hooks/useMatchers.tsx 76.59% 86.66% 100% 76.59% 23-24, 48-49, 73-74, 89-107
ui/src/components/app/hooks/useTitle.tsx 0% 0% 0% 0% 1-81
ui/src/components/app/providers/AnalyticProvider.tsx 0% 0% 0% 0% 1-87
ui/src/components/app/providers/AvatarProvider.tsx 31.03% 100% 0% 31.03% 19-45
ui/src/components/app/providers/FavouritesProvider.tsx 0% 0% 0% 0% 1-153
ui/src/components/app/providers/GridColumnsProvider.tsx 94.15% 88% 100% 94.15% 154-160, 164, 245-246
ui/src/components/app/providers/OverviewProvider.tsx 0% 0% 0% 0% 1-90
ui/src/components/app/providers/RecordProvider.tsx 10.34% 100% 0% 10.34% 30-168, 171-172
ui/src/components/app/providers/RecordSearchProvider.tsx 96.15% 93.44% 100% 96.15% 135-137, 140-141, 218-219
ui/src/components/app/providers/SocketProvider.tsx 8.14% 100% 0% 8.14% 83-358
ui/src/components/app/providers/ViewProvider.tsx 92.46% 84.61% 50% 92.46% 74-78, 92-93, 102-103, 110, 208-209
ui/src/components/elements/Comment.tsx 0% 0% 0% 0% 1-315
ui/src/components/elements/EditRow.tsx 0% 0% 0% 0% 1-276
ui/src/components/elements/ObjectDetails.tsx 0% 0% 0% 0% 1-342
ui/src/components/elements/addons/lists/TuiListMenu.tsx 0% 0% 0% 0% 1-61
ui/src/components/elements/case/CaseCard.tsx 16.52% 100% 0% 16.52% 26-172
ui/src/components/elements/display/ActionButton.tsx 0% 0% 0% 0% 1-50
ui/src/components/elements/display/HandlebarsMarkdown.tsx 0% 0% 0% 0% 1-154
ui/src/components/elements/display/HowlerAvatar.tsx 76.27% 86.66% 100% 76.27% 24-31, 44-49
ui/src/components/elements/display/Image.tsx 100% 100% 100% 100%
ui/src/components/elements/display/Markdown.tsx 0% 0% 0% 0% 1-207
ui/src/components/elements/display/handlebars/helpers.tsx 0% 0% 0% 0% 1-403
ui/src/components/elements/display/json/JSONViewer.tsx 0% 0% 0% 0% 1-98
ui/src/components/elements/display/modals/RationaleModal.tsx 100% 91.89% 100% 100%
ui/src/components/elements/event/EventCard.tsx 0% 0% 0% 0% 1-33
ui/src/components/elements/hit/HitActions.tsx 0% 0% 0% 0% 1-293
ui/src/components/elements/hit/HitCard.tsx 0% 0% 0% 0% 1-46
ui/src/components/elements/hit/HitLabels.tsx 53.55% 60% 25% 53.55% 40-112, 125-126, 134-150, 156-166, 175-176
ui/src/components/elements/hit/HitNotebooks.tsx 0% 0% 0% 0% 1-275
ui/src/components/elements/hit/HitOutline.tsx 0% 0% 0% 0% 1-69
ui/src/components/elements/hit/HitOverview.tsx 0% 0% 0% 0% 1-53
ui/src/components/elements/hit/HitSummary.tsx 0% 0% 0% 0% 1-297
ui/src/components/elements/hit/aggregate/HitGraph.tsx 0% 0% 0% 0% 1-347
ui/src/components/elements/hit/elements/AnalyticLink.tsx 0% 0% 0% 0% 1-54
ui/src/components/elements/hit/grid/AddColumnModal.tsx 0% 0% 0% 0% 1-89
ui/src/components/elements/hit/grid/ColumnHeader.tsx 0% 0% 0% 0% 1-76
ui/src/components/elements/hit/grid/RecordTable.tsx 0% 0% 0% 0% 1-204
ui/src/components/elements/record/RecordComments.tsx 0% 0% 0% 0% 1-372
ui/src/components/elements/record/RecordContextMenu.tsx 98.49% 94.66% 88.88% 98.49% 285-286, 311-312
ui/src/components/hooks/useHitActions.tsx 0% 0% 0% 0% 1-277
ui/src/components/hooks/useLocalStorage.ts 100% 100% 100% 100%
ui/src/components/hooks/useMySnackbar.tsx 89.09% 71.42% 33.33% 89.09% 16-17, 34-37
ui/src/components/hooks/useRelatedRecords.tsx 0% 0% 0% 0% 1-48
ui/src/components/logins/auth/OAuthLogin.tsx 0% 0% 0% 0% 1-49
ui/src/components/logins/hooks/useLogin.tsx 0% 0% 0% 0% 1-101
ui/src/components/routes/action/useMyActionFunctions.tsx 0% 0% 0% 0% 1-262
ui/src/components/routes/action/edit/ActionEditor.tsx 0% 0% 0% 0% 1-346
ui/src/components/routes/action/view/ActionDetails.tsx 0% 0% 0% 0% 1-222
ui/src/components/routes/action/view/ActionSearch.tsx 0% 0% 0% 0% 1-268
ui/src/components/routes/admin/users/UserEditor.tsx 0% 0% 0% 0% 1-55
ui/src/components/routes/admin/users/UserSearch.tsx 0% 0% 0% 0% 1-228
ui/src/components/routes/advanced/QueryBuilder.tsx 0% 0% 0% 0% 1-546
ui/src/components/routes/advanced/luceneCompletionProvider.ts 0% 0% 0% 0% 1-112
ui/src/components/routes/analytics/AnalyticComments.tsx 0% 0% 0% 0% 1-216
ui/src/components/routes/analytics/AnalyticDetails.tsx 0% 0% 0% 0% 1-230
ui/src/components/routes/analytics/AnalyticHitComments.tsx 100% 94.73% 66.66% 100%
ui/src/components/routes/analytics/AnalyticOverview.tsx 0% 0% 0% 0% 1-165
ui/src/components/routes/analytics/AnalyticOverviews.tsx 0% 0% 0% 0% 1-75
ui/src/components/routes/analytics/AnalyticSearch.tsx 0% 0% 0% 0% 1-263
ui/src/components/routes/analytics/AnalyticTemplates.tsx 0% 0% 0% 0% 1-77
ui/src/components/routes/analytics/TriageSettings.tsx 0% 0% 0% 0% 1-232
ui/src/components/routes/analytics/widgets/Assessment.tsx 0% 0% 0% 0% 1-71
ui/src/components/routes/analytics/widgets/Created.tsx 0% 0% 0% 0% 1-70
ui/src/components/routes/analytics/widgets/Escalation.tsx 0% 0% 0% 0% 1-65
ui/src/components/routes/analytics/widgets/Stacked.tsx 0% 0% 0% 0% 1-114
ui/src/components/routes/cases/CaseViewer.tsx 92.15% 66.66% 50% 92.15% 18-19, 41-42
ui/src/components/routes/cases/Cases.tsx 0% 0% 0% 0% 1-218
ui/src/components/routes/cases/detail/CaseDashboard.tsx 95.83% 92% 100% 95.83% 27-30
ui/src/components/routes/cases/detail/CaseDetails.tsx 100% 92.3% 71.42% 100%
ui/src/components/routes/cases/detail/CaseObservables.tsx 95.21% 74.02% 57.14% 95.21% 128-129, 132-133, 136-137, 153-154, 204, 228, 253
ui/src/components/routes/cases/detail/CaseRules.tsx 93.6% 71.42% 83.33% 93.6% 42-43, 54-55, 75-76, 85-86
ui/src/components/routes/cases/detail/CaseSearch.tsx 95.09% 76.92% 100% 95.09% 39-42, 58
ui/src/components/routes/cases/detail/CaseTask.tsx 96.32% 93.54% 63.63% 96.32% 142-144, 181-182
ui/src/components/routes/cases/detail/CaseTimeline.tsx 97.89% 85.96% 100% 97.89% 90-91, 133-134
ui/src/components/routes/cases/detail/ItemPage.tsx 100% 85.29% 100% 100%
ui/src/components/routes/cases/detail/TaskPanel.tsx 81.71% 88.23% 45.45% 81.71% 74-92, 95-96, 120-130, 178-180
ui/src/components/routes/cases/detail/sidebar/CaseFolder.tsx 91.16% 64% 75% 91.16% 63-69, 205-217
ui/src/components/routes/cases/detail/sidebar/CaseFolderContextMenu.tsx 88.76% 79.31% 83.33% 88.76% 17-22, 47-48, 107-108
ui/src/components/routes/cases/hooks/useCase.ts 65.67% 92.85% 100% 65.67% 48-49, 65-87
ui/src/components/routes/cases/modals/AddRecordToCaseModal.tsx 97.93% 86.36% 100% 97.93% 46-47
ui/src/components/routes/cases/modals/AddToCaseModal.tsx 11.19% 100% 0% 11.19% 24-176
ui/src/components/routes/cases/modals/RenameItemModal.tsx 0% 0% 0% 0% 1-83
ui/src/components/routes/cases/modals/ResolveModal.tsx 99.04% 94.87% 100% 99.04% 41-42
ui/src/components/routes/dossiers/DossierEditor.tsx 74.89% 64.1% 100% 74.89% 60-61, 72-73, 76-77, 85-87, 90-92, 95-97, 110-112, 117-119, 122-124, 127-129, 132-134, 137-139, 142-144, 147-148, 151-153, 156-158, 161-163, 170-184
ui/src/components/routes/dossiers/Dossiers.tsx 0% 0% 0% 0% 1-181
ui/src/components/routes/events/EventViewer.tsx 0% 0% 0% 0% 1-30
ui/src/components/routes/help/ApiDocumentation.tsx 0% 0% 0% 0% 1-217
ui/src/components/routes/help/RetentionDocumentation.tsx 0% 0% 0% 0% 1-60
ui/src/components/routes/hits/search/InformationPane.tsx 0% 0% 0% 0% 1-411
ui/src/components/routes/hits/search/RecordBrowser.tsx 0% 0% 0% 0% 1-271
ui/src/components/routes/hits/search/ViewLink.tsx 100% 91.66% 71.42% 100%
ui/src/components/routes/hits/search/shared/CustomSort.tsx 0% 0% 0% 0% 1-94
ui/src/components/routes/hits/search/shared/HitSort.tsx 0% 0% 0% 0% 1-128
ui/src/components/routes/hits/search/shared/SearchSpan.tsx 0% 0% 0% 0% 1-98
ui/src/components/routes/hits/view/HitViewer.tsx 0% 0% 0% 0% 1-350
ui/src/components/routes/home/AddNewCard.tsx 78.32% 64.28% 21.42% 78.32% 51-67, 102-104, 110-112, 119-126, 174-177, 202-206, 234-241
ui/src/components/routes/home/AnalyticCard.tsx 0% 0% 0% 0% 1-68
ui/src/components/routes/home/ViewCard.tsx 0% 0% 0% 0% 1-261
ui/src/components/routes/home/index.tsx 0% 0% 0% 0% 1-359
ui/src/components/routes/overviews/OverviewViewer.tsx 0% 0% 0% 0% 1-389
ui/src/components/routes/overviews/Overviews.tsx 0% 0% 0% 0% 1-187
ui/src/components/routes/overviews/markdownExtendedTokenProvider.ts 100% 100% 100% 100%
ui/src/components/routes/settings/ProfileSection.tsx 0% 0% 0% 0% 1-138
ui/src/components/routes/templates/TemplateEditor.tsx 0% 0% 0% 0% 1-121
ui/src/components/routes/templates/TemplateViewer.tsx 0% 0% 0% 0% 1-360
ui/src/components/routes/templates/Templates.tsx 0% 0% 0% 0% 1-219
ui/src/components/routes/views/ViewComposer.tsx 0% 100% 100% 0% 2-419
ui/src/components/routes/views/Views.tsx 0% 0% 0% 0% 1-387
ui/src/plugins/clue/helpers.tsx 0% 0% 0% 0% 1-356
ui/src/plugins/clue/components/CluePivotForm.tsx 0% 0% 0% 0% 1-420
ui/src/utils/classificationParser.ts 0% 0% 0% 0% 1-919
ui/src/utils/localStorage.ts 86.84% 88.88% 100% 86.84% 33-37
ui/src/utils/menuUtils.ts 91.66% 87.75% 100% 91.66% 80-81, 84-85, 136-137, 169-170, 210-215, 248-249
ui/src/utils/utils.ts 92.73% 90.58% 95% 92.73% 22-26, 115, 205, 211, 225-229
ui/src/utils/xsrf.ts 100% 100% 100% 100%
Generated in workflow #1280 for commit 4e57d79 by the Vitest Coverage Report Action

Comment thread ui/src/utils/socketUtils.test.ts Fixed
Comment thread ui/src/utils/socketUtils.test.ts Fixed
Comment thread ui/src/utils/socketUtils.test.ts Fixed
Comment thread ui/src/utils/socketUtils.test.ts Fixed
Comment thread ui/src/utils/socketUtils.test.ts Fixed
Comment thread ui/src/utils/socketUtils.test.ts Fixed
Comment thread ui/src/utils/socketUtils.test.ts Fixed
Comment thread ui/src/utils/socketUtils.test.ts Fixed
@cccs-mdr
cccs-mdr marked this pull request as ready for review July 20, 2026 19:56
Copilot AI review requested due to automatic review settings July 20, 2026 19:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

  • Copilot's review of this pull request may be incomplete because some of the changed files are excluded by your Copilot content exclusion settings. See Excluding content from Copilot for details.

Pull request overview

This PR modernizes the ui/ toolchain by migrating formatting/linting from Prettier/ESLint to Oxc’s oxfmt/oxlint, updating CI + pre-commit hooks accordingly, and applying the resulting mechanical refactors across the UI codebase (including the Roboto side-effect import fix).

Changes:

  • Replace Prettier/ESLint with oxfmt/oxlint in pre-commit and GitHub Actions, and remove legacy config/scripts.
  • Mechanical refactors across UI code/tests (e.g., catch {} and voiding ignored promises) to satisfy updated lint rules.
  • Update developer documentation to reflect the new UI formatting/linting workflow.

Reviewed changes

Copilot reviewed 158 out of 165 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
ui/src/utils/xsrf.ts Use catch {} cleanup
ui/src/utils/utils.ts Use catch {} cleanup
ui/src/utils/utils.test.ts Suppress floating promise in test
ui/src/utils/Throttler.test.ts Suppress floating promises in tests
ui/src/utils/stringUtils.test.ts Update expected escape string
ui/src/utils/menuUtils.ts Remove divider insertion warnings
ui/src/utils/localStorage.ts Use catch {} cleanup
ui/src/utils/classificationParser.ts Boolean simplifications / formatting
ui/src/rest/AxiosClient.test.ts Improve axios mock shape
ui/src/plugins/clue/helpers.tsx Boolean simplifications
ui/src/plugins/clue/components/CluePivotForm.tsx Schema spread simplification
ui/src/index.tsx Roboto CSS entry import
ui/src/i18n.ts Suppress floating init promise
ui/src/components/routes/views/Views.tsx catch {} + ignore promise results
ui/src/components/routes/views/ViewComposer.tsx Ignore promise results / async IIFE
ui/src/components/routes/templates/TemplateViewer.tsx Ignore promise results
ui/src/components/routes/templates/Templates.tsx catch {} + ignore promise results
ui/src/components/routes/templates/TemplateEditor.tsx Ignore promise result
ui/src/components/routes/settings/ProfileSection.tsx Ignore delayed promise
ui/src/components/routes/overviews/OverviewViewer.tsx Ignore async IIFEs / save promise
ui/src/components/routes/overviews/Overviews.tsx catch {} + ignore promise results
ui/src/components/routes/overviews/markdownExtendedTokenProvider.ts Regex formatting/escaping tweaks
ui/src/components/routes/home/ViewCard.tsx Ignore refresh promise results
ui/src/components/routes/home/index.tsx Ignore async calls in effects
ui/src/components/routes/home/AnalyticCard.tsx Ignore promise result
ui/src/components/routes/home/AddNewCard.tsx Ignore promise result
ui/src/components/routes/hits/view/HitViewer.tsx Ignore async calls in effects
ui/src/components/routes/hits/search/ViewLink.tsx Ignore promise result
ui/src/components/routes/hits/search/shared/SearchSpan.tsx Ignore async IIFE
ui/src/components/routes/hits/search/shared/HitSort.tsx Ignore async IIFE
ui/src/components/routes/hits/search/shared/CustomSort.tsx Ignore promise result
ui/src/components/routes/hits/search/RecordBrowser.tsx Ignore promise result
ui/src/components/routes/hits/search/InformationPane.tsx Ignore promise results
ui/src/components/routes/help/RetentionDocumentation.tsx Ignore promise result
ui/src/components/routes/help/ApiDocumentation.tsx Ignore promise result
ui/src/components/routes/events/EventViewer.tsx Ignore promise result
ui/src/components/routes/dossiers/Dossiers.tsx catch {} + ignore promise results
ui/src/components/routes/dossiers/DossierEditor.tsx Ignore promise result
ui/src/components/routes/dossiers/DossierEditor.test.tsx Test user-event call adjustment
ui/src/components/routes/cases/modals/ResolveModal.tsx Ignore async IIFE
ui/src/components/routes/cases/modals/RenameItemModal.tsx Ignore submit promise; focus change
ui/src/components/routes/cases/modals/AddToCaseModal.tsx Remove autoFocus
ui/src/components/routes/cases/modals/AddRecordToCaseModal.tsx Ignore promise result
ui/src/components/routes/cases/hooks/useCase.ts Ignore promise result; catch {}
ui/src/components/routes/cases/detail/TaskPanel.tsx Ignore dispatch promise
ui/src/components/routes/cases/detail/sidebar/CaseFolderContextMenu.tsx Ignore dispatch promise
ui/src/components/routes/cases/detail/sidebar/CaseFolder.tsx Ignore dispatch promise
ui/src/components/routes/cases/detail/ItemPage.tsx Ignore promise result
ui/src/components/routes/cases/detail/CaseTimeline.tsx Ignore dispatch promises
ui/src/components/routes/cases/detail/CaseTask.tsx Ignore edit/delete promises
ui/src/components/routes/cases/detail/CaseSearch.tsx Ignore search promise
ui/src/components/routes/cases/detail/CaseRules.tsx Ignore update promise
ui/src/components/routes/cases/detail/CaseObservables.tsx Ignore dispatch promises
ui/src/components/routes/cases/detail/CaseDetails.tsx Ignore update promise
ui/src/components/routes/cases/detail/CaseDashboard.tsx Ignore dispatch promise
ui/src/components/routes/cases/CaseViewer.tsx Ignore fetch promise
ui/src/components/routes/cases/Cases.tsx Ignore search promises
ui/src/components/routes/analytics/widgets/Stacked.tsx Ignore fetch promise
ui/src/components/routes/analytics/widgets/Escalation.tsx Ignore facet promise
ui/src/components/routes/analytics/widgets/Created.tsx Ignore promise chain
ui/src/components/routes/analytics/widgets/Assessment.tsx Ignore facet promise
ui/src/components/routes/analytics/TriageSettings.tsx Ignore update promise
ui/src/components/routes/analytics/AnalyticTemplates.tsx Ignore promise chain
ui/src/components/routes/analytics/AnalyticSearch.tsx Ignore search promises
ui/src/components/routes/analytics/AnalyticOverviews.tsx Ignore promise chain
ui/src/components/routes/analytics/AnalyticOverview.tsx Ignore promise chain
ui/src/components/routes/analytics/AnalyticHitComments.tsx Ignore promise chain
ui/src/components/routes/analytics/AnalyticDetails.tsx Ignore promise chain
ui/src/components/routes/analytics/AnalyticComments.tsx Ignore submit promise; spread tweak
ui/src/components/routes/advanced/QueryBuilder.tsx Type formatting + ignore promises
ui/src/components/routes/advanced/luceneCompletionProvider.ts Ignore promise result
ui/src/components/routes/admin/users/UserSearch.tsx Ignore search promises
ui/src/components/routes/admin/users/UserEditor.tsx Ignore promise chain
ui/src/components/routes/action/view/ActionSearch.tsx catch {} + ignore search promises
ui/src/components/routes/action/view/ActionDetails.tsx Ignore Promise.all result
ui/src/components/routes/action/useMyActionFunctions.tsx Ignore refresh search promise
ui/src/components/routes/action/edit/ActionEditor.tsx Ignore promises; formatting
ui/src/components/logins/hooks/useLogin.tsx Ignore getUser promise
ui/src/components/logins/auth/OAuthLogin.tsx Ignore doOAuth promise
ui/src/components/hooks/useRelatedRecords.tsx Ignore async IIFE
ui/src/components/hooks/useMySnackbar.tsx Spread simplification
ui/src/components/hooks/useLocalStorageItem.test.tsx Act call adjusted
ui/src/components/hooks/useLocalStorage.ts Use catch {} cleanup
ui/src/components/hooks/useHitActions.tsx Ignore manage promise
ui/src/components/elements/record/RecordContextMenu.tsx Ignore matcher promises
ui/src/components/elements/record/RecordContextMenu.test.tsx Test accessibility + click handling
ui/src/components/elements/record/RecordComments.tsx Ignore promise results
ui/src/components/elements/ObjectDetails.tsx Simplify destructuring
ui/src/components/elements/hit/HitSummary.tsx Ignore aggregation promise
ui/src/components/elements/hit/HitOverview.tsx Ignore promise result
ui/src/components/elements/hit/HitOutline.tsx Ignore promise result
ui/src/components/elements/hit/HitNotebooks.tsx catch {} + ignore promise results
ui/src/components/elements/hit/HitLabels.tsx Ignore promise result
ui/src/components/elements/hit/HitCard.tsx Ignore promise result
ui/src/components/elements/hit/HitActions.tsx Ignore promise result
ui/src/components/elements/hit/grid/RecordTable.tsx Ignore promise result
ui/src/components/elements/hit/grid/ColumnHeader.tsx Boolean simplification
ui/src/components/elements/hit/grid/AddColumnModal.tsx Ignore async IIFE
ui/src/components/elements/hit/elements/AnalyticLink.tsx Ignore promise result
ui/src/components/elements/hit/aggregate/HitGraph.tsx Ignore query promise
ui/src/components/elements/event/EventCard.tsx Ignore promise result
ui/src/components/elements/EditRow.tsx Ignore edit/submit promises
ui/src/components/elements/display/modals/RationaleModal.tsx Ignore async IIFE
ui/src/components/elements/display/modals/RationaleModal.test.tsx Special-char test update
ui/src/components/elements/display/Markdown.tsx Ignore mermaid promise; catch {}
ui/src/components/elements/display/json/JSONViewer.tsx Ignore clipboard promises
ui/src/components/elements/display/Image.tsx Style spread simplification
ui/src/components/elements/display/HowlerAvatar.tsx sx spread simplification
ui/src/components/elements/display/HandlebarsMarkdown.tsx Typing tweak; remove awaits
ui/src/components/elements/display/handlebars/helpers.tsx Use catch {} cleanup
ui/src/components/elements/display/ActionButton.tsx Ignore promise chain
ui/src/components/elements/ContextMenu.test.tsx Add focusability in mocks
ui/src/components/elements/Comment.tsx Ignore edit promise
ui/src/components/elements/case/CaseCard.tsx Ignore promise chain
ui/src/components/elements/addons/lists/TuiListMenu.tsx Spread simplification
ui/src/components/app/providers/ViewProvider.tsx Ignore async IIFE; spread tweak
ui/src/components/app/providers/UserListProvider.test.tsx Adjust async usage in tests
ui/src/components/app/providers/SocketProvider.tsx Ignore retry promise; catch {}
ui/src/components/app/providers/RecordSearchProvider.tsx Ignore promise results
ui/src/components/app/providers/RecordProvider.tsx Boolean simplification; ignore promise
ui/src/components/app/providers/OverviewProvider.tsx Ignore promise result
ui/src/components/app/providers/GridColumnsProvider.tsx Ignore promise chain
ui/src/components/app/providers/FavouritesProvider.tsx Ignore async IIFE
ui/src/components/app/providers/AvatarProvider.tsx catch {} cleanup
ui/src/components/app/providers/AnalyticProvider.tsx Ignore promise result
ui/src/components/app/hooks/useTitle.tsx Ignore promise result
ui/src/components/app/hooks/useMatchers.tsx catch {} cleanup
ui/src/components/app/App.tsx Ignore promise results
ui/src/api/v2/search/index.ts Spread request simplification
ui/src/api/v2/search/facet.ts Spread request simplification
ui/src/api/search/view.ts Spread request simplification
ui/src/api/search/user.ts Spread request simplification
ui/src/api/search/template.ts Spread request simplification
ui/src/api/search/sigma/hit.ts Spread request simplification
ui/src/api/search/overview.ts Spread request simplification
ui/src/api/search/hit.ts Spread request simplification
ui/src/api/search/histogram/hit.ts Spread request simplification
ui/src/api/search/grouped/user.ts Spread request simplification
ui/src/api/search/grouped/hit.ts Spread request simplification
ui/src/api/search/facet/hit.ts Spread request simplification
ui/src/api/search/explain/hit.ts Spread request simplification
ui/src/api/search/eql/hit.ts Spread request simplification
ui/src/api/search/dossier.ts Spread request simplification
ui/src/api/search/count/hit.ts Spread request simplification
ui/src/api/search/case.ts Spread request simplification
ui/src/api/search/analytic.ts Spread request simplification
ui/src/api/search/action.ts Spread request simplification
ui/.prettierrc Remove Prettier config
ui/.prettierignore Remove Prettier ignore
ui/.eslintrc Remove ESLint config
hooks/prettier.sh Remove Prettier hook script
hooks/oxlint.sh Add oxlint pre-commit script
documentation/docs/developer/frontend.md Update frontend tooling docs
documentation/docs/developer/frontend.fr.md Update frontend tooling docs (FR)
.prettierignore Remove root Prettier ignore
.pre-commit-config.yaml Add oxfmt/oxlint hooks
.github/workflows/ui-workflow.yml Update UI CI checks to oxfmt/oxlint
.github/copilot-instructions.md Update Copilot UI lint/format notes
Files excluded by content exclusion policy (6)
  • .vscode/extensions.json
  • .vscode/settings.json
  • ui/.oxfmtrc.json
  • ui/.oxlintrc.json
  • ui/package.json
  • ui/tsconfig.json

Comment thread ui/src/components/elements/display/modals/RationaleModal.test.tsx
Comment thread ui/src/components/routes/dossiers/DossierEditor.test.tsx
Comment thread ui/src/components/elements/record/RecordContextMenu.test.tsx
Comment thread ui/src/components/app/providers/UserListProvider.test.tsx
Comment thread ui/src/components/app/providers/UserListProvider.test.tsx
Comment thread ui/src/components/app/providers/UserListProvider.test.tsx
Comment thread ui/src/components/app/providers/UserListProvider.test.tsx
Comment thread .github/copilot-instructions.md
cccs-mdr and others added 2 commits July 20, 2026 16:15
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants