Skip to content

chore(client): clear @typescript-eslint/no-confusing-void-expression#176

Merged
dpage merged 1 commit into
mainfrom
worktree-codacy-void-expression
Apr 24, 2026
Merged

chore(client): clear @typescript-eslint/no-confusing-void-expression#176
dpage merged 1 commit into
mainfrom
worktree-codacy-void-expression

Conversation

@dpage
Copy link
Copy Markdown
Member

@dpage dpage commented Apr 24, 2026

Summary

  • Resolve all ~298 @typescript-eslint/no-confusing-void-expression findings in client/src/, closing the largest remaining Codacy cluster after PR chore(client): clear ~600 Codacy findings via Biome + ESLint auto-fix #175.
  • ESLint's auto-fixer handled 279 sites; the remaining 19 were rewritten manually, turning () => cond && voidFn() into () => { if (cond) { voidFn(); } }.
  • 81 files changed, 328 insertions / 305 deletions. No behavior changes.

Manual rewrites

All 19 sites followed the same pattern: a condition-guarded event handler where the rightmost term returned void. MUI's onClose/onChange props expect void-returning handlers, so wrapping in if { } keeps the original intent without changing semantics. Files affected include several AdminPanel/*, BlackoutDialog, BlackoutScheduleDialog, CreateTokenDialog, EditTokenDialog, AlertOverridesPanel, MembersPanel, ProbeOverridesPanel, and topology/RemoveServerDialog.

One notable site

StatusPanel/index.tsx setAlerts updater: the inner array needed a local as unknown as { id: unknown }[] cast. Root cause is useState([]) at the same component inferring never[] — typing that state properly is out of scope for this pass. No eslint-disable used.

Baselines (unchanged)

Metric Before After
ESLint warnings 39 39
Prettier warnings 360 360
Vitest tests 2,604 pass 2,604 pass
Production build green green

Pre-existing failure (not in scope)

TestGenerateID_Uniqueness in server/internal/conversations still fails deterministically on origin/main (reproduces without this PR's changes). Separate triage; does not gate this PR.

Test plan

  • cd client && npm run build — green
  • cd client && npx vitest run — 131 test files / 2,604 tests pass
  • cd client && npm run lint — warning count matches baseline
  • cd client && npm run format:check — warning count matches baseline

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Refactor

    • Standardized many UI event handlers and dialog callbacks across the app for consistent syntax and clearer behavior; no user-facing changes.
  • Tests

    • Adjusted a few tests to match the updated handler patterns.
  • Changelog

    • Added an Unreleased changelog entry noting the remediation of linting findings; no behavioral changes.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 24, 2026

Walkthrough

This PR consistently converts concise expression-bodied inline arrow handlers to block-bodied arrow functions across many client-side components to satisfy the TypeScript/ESLint rule @typescript-eslint/no-confusing-void-expression; no functional or behavioral logic changes were introduced. (≈79 files touched)

Changes

Cohort / File(s) Summary
AdminPanel Core Components
client/src/components/AdminPanel/AdminAlertRules.tsx, client/src/components/AdminPanel/AdminEmailChannels.tsx, client/src/components/AdminPanel/AdminGroups.tsx, client/src/components/AdminPanel/AdminMemories.tsx, client/src/components/AdminPanel/AdminMessagingChannels.tsx, client/src/components/AdminPanel/AdminPermissions.tsx, client/src/components/AdminPanel/AdminProbes.tsx, client/src/components/AdminPanel/AdminTokenScopes.tsx, client/src/components/AdminPanel/AdminUsers.tsx, client/src/components/AdminPanel/AdminWebhookChannels.tsx, client/src/components/AdminPanel/index.tsx
Converted inline event handler callbacks (Alert onClose, IconButton onClick, Dialog onClose, TextField onChange, Switch onChange, Button onClick) from expression-bodied to block-bodied arrow functions; preserved behavior.
Channel Management Subcomponents
client/src/components/AdminPanel/channels/ChannelDialogShell.tsx, client/src/components/AdminPanel/channels/ChannelTable.tsx
Tab onChange and row action handlers rewritten to block-bodied arrow functions; same callback invocations/arguments retained.
Email & Webhook Configuration Tabs
client/src/components/AdminPanel/email/EmailRecipientsTab.tsx, client/src/components/AdminPanel/email/EmailSettingsTab.tsx, client/src/components/AdminPanel/webhook/WebhookAuthTab.tsx, client/src/components/AdminPanel/webhook/WebhookHeadersTab.tsx, client/src/components/AdminPanel/webhook/WebhookSettingsTab.tsx, client/src/components/AdminPanel/webhook/WebhookTemplatesTab.tsx
Rewrote TextField/Switch onChange and action handlers to block-bodied arrow functions without changing update logic or validation.
Token & Connection Management
client/src/components/AdminPanel/tokens/ConnectionScopeTable.tsx, client/src/components/AdminPanel/tokens/CreateTokenDialog.tsx, client/src/components/AdminPanel/tokens/EditTokenDialog.tsx, client/src/components/AdminPanel/tokens/TokensTable.tsx
Dialog onClose handlers wrapped/converted (some to void(...)) and row/field handlers converted to block-bodied syntax; behavior unchanged.
Alert Management Components
client/src/components/AlertOverrideEditDialog.tsx, client/src/components/AlertOverridesPanel.tsx
Alert onClose, control onChange/onClick handlers and dialog close guards converted to block-bodied functions (void/explicit guards where applicable).
Blackout & Scheduling Components
client/src/components/BlackoutDialog.tsx, client/src/components/BlackoutManagementDialog.tsx, client/src/components/BlackoutScheduleDialog.tsx
State-update handlers and button actions converted to block-bodied syntax; short-circuit cron/custom guards replaced with explicit void(...) or if-style guard while preserving behavior.
Dashboard Components
client/src/components/Dashboard/... (multiple files: ClusterDashboard/TopologySection.tsx, topology/TopologyDiagram.tsx, CollapsibleSection.tsx, DatabaseDashboard/, ObjectDashboard/, ServerDashboard/*)
ResizeObserver/effect cleanup and various click handlers rewritten to block-bodied arrow functions; no logic changes to resize, toggles, or navigation.
Chart & Timeline Components
client/src/components/Chart/Chart.tsx, client/src/components/Chart/__tests__/Chart.test.tsx, client/src/components/EventTimeline/*
Effect cleanup callbacks and toggle handlers converted to block-bodied functions; test mocks updated similarly.
Chat & Navigation Panels
client/src/components/ChatPanel/*, client/src/components/HelpPanel/*, client/src/components/ClusterNavigator/*
Handlers for rename, history toggle, navigation, and link clicks converted to block-bodied syntax; state updates unchanged.
Dialog & Form Components
client/src/components/ChannelOverridesPanel.tsx, client/src/components/ClusterConfigDialog.tsx, client/src/components/GroupDialog.tsx, client/src/components/Header.tsx, client/src/components/InlineEditText.tsx, client/src/components/Login.tsx, client/src/components/MembersPanel.tsx, client/src/components/ProbeOverridesPanel.tsx
Alert, Tabs, TextField, Checkbox, and Button handlers converted to block-bodied arrow functions; behavior unchanged.
Server Dialog Subcomponents
client/src/components/ServerDialog/ClusterFields.tsx, client/src/components/ServerDialog/ConnectionFields.tsx, client/src/components/ServerDialog/OptionsSection.tsx, client/src/components/ServerDialog/SSLSettings.tsx, client/src/components/ServerDialog/ServerDialog.tsx
TextField/Checkbox/Accordion onChange and Alert/Dialog onClose handlers converted to block-bodied syntax; no functional changes.
Status & Topology Panels
client/src/components/StatusPanel/*, client/src/components/TopologyPanel.tsx, client/src/components/topology/*
Click/change handlers and dialog close callbacks converted; StatusPanel/index.tsx also adds a type-cast in an optimistic-update lookup to address typing.
Shared & Utility Components
client/src/components/ServerInfoDialog/ServerInfoDialog.tsx, client/src/components/shared/CopyCodeButton.tsx, client/src/components/topology/RelationshipSection.tsx
Effect cleanup and timeout callbacks converted to block-bodied arrow functions; copy timeout scheduling updated accordingly.
Context Providers & Tests
client/src/contexts/AlertsContext.tsx, client/src/contexts/BlackoutContext.tsx, client/src/contexts/ClusterDataContext.tsx, client/src/contexts/__tests__/ClusterSelectionContext.test.tsx, client/src/hooks/__tests__/useOverviewSSE.test.ts, client/src/hooks/chat/__tests__/chatHelpers.test.ts, client/src/test/setup.ts
Auto-refresh interval cleanup and various test callback assertions converted to block-bodied arrow functions; test semantics unchanged.
Documentation
docs/changelog.md
Added Unreleased changelog entry documenting the ESLint/TypeScript remediation for @typescript-eslint/no-confusing-void-expression, noting auto-fixes/manual edits and no behavioral changes.

Sequence Diagram(s)

(Skipped — changes are syntax/style updates that do not introduce new multi-component control flows requiring sequential visualization.)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the primary change: clearing ESLint findings for @typescript-eslint/no-confusing-void-expression in the client.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch worktree-codacy-void-expression

Comment @coderabbitai help to get the list of available commands and usage tips.

@codacy-production
Copy link
Copy Markdown

codacy-production Bot commented Apr 24, 2026

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 342 complexity · 8 duplication

Metric Results
Complexity 342
Duplication 8

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/changelog.md`:
- Around line 34-39: The changelog bullet about clearing
`@typescript-eslint/no-confusing-void-expression` is too long and must be split
into multiple sentences of 7–20 words each to meet docs rules; rewrite that
single paragraph into 2–4 shorter sentences (each 7–20 words) preserving the
meaning: mention the rule cleared, scope (`client/src/` and number of files),
auto-fixer results (279 sites fixed, 19 remaining), manual rewrites (expanded
`() => cond && voidFn()` into `if` blocks), and the test outcome (2,604 Vitest
tests pass).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: d0b77fe3-aba2-4b69-ab4c-dd0f106b378e

📥 Commits

Reviewing files that changed from the base of the PR and between 62efc89 and 5a99e9d.

📒 Files selected for processing (81)
  • client/src/components/AdminPanel/AdminAlertRules.tsx
  • client/src/components/AdminPanel/AdminEmailChannels.tsx
  • client/src/components/AdminPanel/AdminGroups.tsx
  • client/src/components/AdminPanel/AdminMemories.tsx
  • client/src/components/AdminPanel/AdminMessagingChannels.tsx
  • client/src/components/AdminPanel/AdminPermissions.tsx
  • client/src/components/AdminPanel/AdminProbes.tsx
  • client/src/components/AdminPanel/AdminTokenScopes.tsx
  • client/src/components/AdminPanel/AdminUsers.tsx
  • client/src/components/AdminPanel/AdminWebhookChannels.tsx
  • client/src/components/AdminPanel/channels/ChannelDialogShell.tsx
  • client/src/components/AdminPanel/channels/ChannelTable.tsx
  • client/src/components/AdminPanel/email/EmailRecipientsTab.tsx
  • client/src/components/AdminPanel/email/EmailSettingsTab.tsx
  • client/src/components/AdminPanel/index.tsx
  • client/src/components/AdminPanel/tokens/ConnectionScopeTable.tsx
  • client/src/components/AdminPanel/tokens/CreateTokenDialog.tsx
  • client/src/components/AdminPanel/tokens/EditTokenDialog.tsx
  • client/src/components/AdminPanel/tokens/TokensTable.tsx
  • client/src/components/AdminPanel/webhook/WebhookAuthTab.tsx
  • client/src/components/AdminPanel/webhook/WebhookHeadersTab.tsx
  • client/src/components/AdminPanel/webhook/WebhookSettingsTab.tsx
  • client/src/components/AdminPanel/webhook/WebhookTemplatesTab.tsx
  • client/src/components/AlertOverrideEditDialog.tsx
  • client/src/components/AlertOverridesPanel.tsx
  • client/src/components/BlackoutDialog.tsx
  • client/src/components/BlackoutManagementDialog.tsx
  • client/src/components/BlackoutScheduleDialog.tsx
  • client/src/components/ChannelOverridesPanel.tsx
  • client/src/components/Chart/Chart.tsx
  • client/src/components/Chart/__tests__/Chart.test.tsx
  • client/src/components/ChatPanel/ConversationHistory.tsx
  • client/src/components/ChatPanel/index.tsx
  • client/src/components/ClusterConfigDialog.tsx
  • client/src/components/ClusterNavigator/GroupItem.tsx
  • client/src/components/ClusterNavigator/index.tsx
  • client/src/components/Dashboard/ClusterDashboard/TopologySection.tsx
  • client/src/components/Dashboard/ClusterDashboard/topology/TopologyDiagram.tsx
  • client/src/components/Dashboard/CollapsibleSection.tsx
  • client/src/components/Dashboard/DatabaseDashboard/IndexLeaderboardSection.tsx
  • client/src/components/Dashboard/DatabaseDashboard/TableLeaderboardSection.tsx
  • client/src/components/Dashboard/DatabaseDashboard/VacuumStatusSection.tsx
  • client/src/components/Dashboard/ObjectDashboard/PlanTree.tsx
  • client/src/components/Dashboard/ObjectDashboard/QueryDetail.tsx
  • client/src/components/Dashboard/ServerDashboard/DatabaseSummariesSection.tsx
  • client/src/components/Dashboard/ServerDashboard/TopQueriesSection.tsx
  • client/src/components/EventTimeline/EventDetailComponents.tsx
  • client/src/components/EventTimeline/EventDetailPanel.tsx
  • client/src/components/EventTimeline/index.tsx
  • client/src/components/GroupDialog.tsx
  • client/src/components/Header.tsx
  • client/src/components/HelpPanel/HelpPanel.tsx
  • client/src/components/HelpPanel/components/HelpNavItem.tsx
  • client/src/components/InlineEditText.tsx
  • client/src/components/Login.tsx
  • client/src/components/MembersPanel.tsx
  • client/src/components/ProbeOverridesPanel.tsx
  • client/src/components/ServerDialog/ClusterFields.tsx
  • client/src/components/ServerDialog/ConnectionFields.tsx
  • client/src/components/ServerDialog/OptionsSection.tsx
  • client/src/components/ServerDialog/SSLSettings.tsx
  • client/src/components/ServerDialog/ServerDialog.tsx
  • client/src/components/ServerInfoDialog/ServerInfoDialog.tsx
  • client/src/components/StatusPanel/AcknowledgeDialog.tsx
  • client/src/components/StatusPanel/AlertsSection.tsx
  • client/src/components/StatusPanel/GroupedAlertItem.tsx
  • client/src/components/StatusPanel/ServerInfoCard.tsx
  • client/src/components/StatusPanel/index.tsx
  • client/src/components/TopologyPanel.tsx
  • client/src/components/shared/CopyCodeButton.tsx
  • client/src/components/topology/RelationshipSection.tsx
  • client/src/components/topology/RemoveServerDialog.tsx
  • client/src/components/topology/ServerManagementSection.tsx
  • client/src/contexts/AlertsContext.tsx
  • client/src/contexts/BlackoutContext.tsx
  • client/src/contexts/ClusterDataContext.tsx
  • client/src/contexts/__tests__/ClusterSelectionContext.test.tsx
  • client/src/hooks/__tests__/useOverviewSSE.test.ts
  • client/src/hooks/chat/__tests__/chatHelpers.test.ts
  • client/src/test/setup.ts
  • docs/changelog.md

Comment thread docs/changelog.md
Resolve all ~298 `@typescript-eslint/no-confusing-void-expression`
findings in client/src/. ESLint's auto-fixer resolved 279 sites;
the remaining 19 were rewritten manually.

Use the `void` operator to rewrite manual sites in the shape
`() => cond && voidFn()` to `() => void (cond && voidFn())`.
This satisfies the rule without adding a statement or an extra
branch to the enclosing component body, avoiding spurious
Codacy/Lizard CCN and nloc-medium findings that an `if`-block
expansion would have introduced.

One site in StatusPanel/index.tsx required a local cast inside
the setAlerts updater. The root cause is useState([]) inferring
never[] at its declaration; typing that state fully is out of
scope for this pass.

No behavior changes. ESLint and Prettier warning counts match
the pre-change baseline. All 2,604 Vitest tests pass; production
build succeeds.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@dpage dpage force-pushed the worktree-codacy-void-expression branch from 5a99e9d to 125efdb Compare April 24, 2026 11:31
@dpage
Copy link
Copy Markdown
Member Author

dpage commented Apr 24, 2026

Amended: 18 manual if-block sites rewritten with void (...) operator

Codacy flagged 18 new Lizard complexity findings on this PR, caused by the manual rewrites of the form:

onClose={() => !loading && setOpen(false)}
// was expanded to
onClose={() => { if (!loading) { setOpen(false); } }}

which added ~3 LOC + 1 CCN to each enclosing React component body. Replaced with the void operator form:

onClose={() => void (!loading && setOpen(false))}

Same semantics, same line count, no new branches. Lizard warning count across the 13 touched files is now 29 vs. 31 on origin/main — a small net improvement rather than a regression.

Note: Codacy attributed 4 "real" component-level complexity findings (handleSaveOverride, handleCopyToken, EventTimeline, getPrimaryValue) to this PR, but verification shows those functions are already over threshold on origin/main and were not touched by this PR's 18 rewrite sites.

Counting discrepancy flagged

Codacy's PR delta UI credits only 1 no-confusing-void-expression finding as fixed, even though the diff contains hundreds of identical brace-wraps matching Codacy's own suggestion text verbatim. Possibly a stale analysis or issue-ID matching quirk — please click Reanalyze to see if the tally catches up. If not, worth raising with Codacy support.

Verification

  • cd client && npm run build — green
  • cd client && npx vitest run — 2,604 tests pass
  • cd client && npm run lint — 39 warnings (baseline unchanged)
  • cd client && npm run format:check — 360 files (baseline unchanged)

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
client/src/components/StatusPanel/index.tsx (1)

466-471: Replace the double-cast with a typed alerts state.

Line 470's as unknown as { id: unknown }[] bypasses type safety. Typing alerts as TransformedAlert[] eliminates the cast and ensures type safety across all setAlerts calls.

Suggested refactor
-import type { StatusPanelProps } from './types';
+import type { StatusPanelProps, TransformedAlert } from './types';
...
-    const [alerts, setAlerts] = useState([]);
+    const [alerts, setAlerts] = useState<TransformedAlert[]>([]);
...
-            const list = prev as unknown as { id: unknown }[];
-            const found = list.find(a => a.id === alertId);
+            const found = prev.find(a => a.id === alertId);
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@client/src/components/StatusPanel/index.tsx` around lines 466 - 471, The
current double-cast on the local `list` variable bypasses type safety; change
the `alerts` state declaration to be typed as `TransformedAlert[]` (e.g.,
useState<TransformedAlert[]>(...)) so all `setAlerts`/`alerts` usages are
strongly typed, then remove the `as unknown as { id: unknown }[]` cast and use
the real type when computing `found` (the `list` and `found` variables in the
`setAlerts` updater). Ensure imports/definitions for `TransformedAlert` are
available and update any `setAlerts` updater signatures to accept
`TransformedAlert[]` accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@client/src/components/StatusPanel/index.tsx`:
- Around line 466-471: The current double-cast on the local `list` variable
bypasses type safety; change the `alerts` state declaration to be typed as
`TransformedAlert[]` (e.g., useState<TransformedAlert[]>(...)) so all
`setAlerts`/`alerts` usages are strongly typed, then remove the `as unknown as {
id: unknown }[]` cast and use the real type when computing `found` (the `list`
and `found` variables in the `setAlerts` updater). Ensure imports/definitions
for `TransformedAlert` are available and update any `setAlerts` updater
signatures to accept `TransformedAlert[]` accordingly.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: cb443137-f862-4aa8-9c5e-0fdcd5275345

📥 Commits

Reviewing files that changed from the base of the PR and between 5a99e9d and 125efdb.

📒 Files selected for processing (81)
  • client/src/components/AdminPanel/AdminAlertRules.tsx
  • client/src/components/AdminPanel/AdminEmailChannels.tsx
  • client/src/components/AdminPanel/AdminGroups.tsx
  • client/src/components/AdminPanel/AdminMemories.tsx
  • client/src/components/AdminPanel/AdminMessagingChannels.tsx
  • client/src/components/AdminPanel/AdminPermissions.tsx
  • client/src/components/AdminPanel/AdminProbes.tsx
  • client/src/components/AdminPanel/AdminTokenScopes.tsx
  • client/src/components/AdminPanel/AdminUsers.tsx
  • client/src/components/AdminPanel/AdminWebhookChannels.tsx
  • client/src/components/AdminPanel/channels/ChannelDialogShell.tsx
  • client/src/components/AdminPanel/channels/ChannelTable.tsx
  • client/src/components/AdminPanel/email/EmailRecipientsTab.tsx
  • client/src/components/AdminPanel/email/EmailSettingsTab.tsx
  • client/src/components/AdminPanel/index.tsx
  • client/src/components/AdminPanel/tokens/ConnectionScopeTable.tsx
  • client/src/components/AdminPanel/tokens/CreateTokenDialog.tsx
  • client/src/components/AdminPanel/tokens/EditTokenDialog.tsx
  • client/src/components/AdminPanel/tokens/TokensTable.tsx
  • client/src/components/AdminPanel/webhook/WebhookAuthTab.tsx
  • client/src/components/AdminPanel/webhook/WebhookHeadersTab.tsx
  • client/src/components/AdminPanel/webhook/WebhookSettingsTab.tsx
  • client/src/components/AdminPanel/webhook/WebhookTemplatesTab.tsx
  • client/src/components/AlertOverrideEditDialog.tsx
  • client/src/components/AlertOverridesPanel.tsx
  • client/src/components/BlackoutDialog.tsx
  • client/src/components/BlackoutManagementDialog.tsx
  • client/src/components/BlackoutScheduleDialog.tsx
  • client/src/components/ChannelOverridesPanel.tsx
  • client/src/components/Chart/Chart.tsx
  • client/src/components/Chart/__tests__/Chart.test.tsx
  • client/src/components/ChatPanel/ConversationHistory.tsx
  • client/src/components/ChatPanel/index.tsx
  • client/src/components/ClusterConfigDialog.tsx
  • client/src/components/ClusterNavigator/GroupItem.tsx
  • client/src/components/ClusterNavigator/index.tsx
  • client/src/components/Dashboard/ClusterDashboard/TopologySection.tsx
  • client/src/components/Dashboard/ClusterDashboard/topology/TopologyDiagram.tsx
  • client/src/components/Dashboard/CollapsibleSection.tsx
  • client/src/components/Dashboard/DatabaseDashboard/IndexLeaderboardSection.tsx
  • client/src/components/Dashboard/DatabaseDashboard/TableLeaderboardSection.tsx
  • client/src/components/Dashboard/DatabaseDashboard/VacuumStatusSection.tsx
  • client/src/components/Dashboard/ObjectDashboard/PlanTree.tsx
  • client/src/components/Dashboard/ObjectDashboard/QueryDetail.tsx
  • client/src/components/Dashboard/ServerDashboard/DatabaseSummariesSection.tsx
  • client/src/components/Dashboard/ServerDashboard/TopQueriesSection.tsx
  • client/src/components/EventTimeline/EventDetailComponents.tsx
  • client/src/components/EventTimeline/EventDetailPanel.tsx
  • client/src/components/EventTimeline/index.tsx
  • client/src/components/GroupDialog.tsx
  • client/src/components/Header.tsx
  • client/src/components/HelpPanel/HelpPanel.tsx
  • client/src/components/HelpPanel/components/HelpNavItem.tsx
  • client/src/components/InlineEditText.tsx
  • client/src/components/Login.tsx
  • client/src/components/MembersPanel.tsx
  • client/src/components/ProbeOverridesPanel.tsx
  • client/src/components/ServerDialog/ClusterFields.tsx
  • client/src/components/ServerDialog/ConnectionFields.tsx
  • client/src/components/ServerDialog/OptionsSection.tsx
  • client/src/components/ServerDialog/SSLSettings.tsx
  • client/src/components/ServerDialog/ServerDialog.tsx
  • client/src/components/ServerInfoDialog/ServerInfoDialog.tsx
  • client/src/components/StatusPanel/AcknowledgeDialog.tsx
  • client/src/components/StatusPanel/AlertsSection.tsx
  • client/src/components/StatusPanel/GroupedAlertItem.tsx
  • client/src/components/StatusPanel/ServerInfoCard.tsx
  • client/src/components/StatusPanel/index.tsx
  • client/src/components/TopologyPanel.tsx
  • client/src/components/shared/CopyCodeButton.tsx
  • client/src/components/topology/RelationshipSection.tsx
  • client/src/components/topology/RemoveServerDialog.tsx
  • client/src/components/topology/ServerManagementSection.tsx
  • client/src/contexts/AlertsContext.tsx
  • client/src/contexts/BlackoutContext.tsx
  • client/src/contexts/ClusterDataContext.tsx
  • client/src/contexts/__tests__/ClusterSelectionContext.test.tsx
  • client/src/hooks/__tests__/useOverviewSSE.test.ts
  • client/src/hooks/chat/__tests__/chatHelpers.test.ts
  • client/src/test/setup.ts
  • docs/changelog.md
✅ Files skipped from review due to trivial changes (74)
  • client/src/components/Dashboard/CollapsibleSection.tsx
  • client/src/components/AdminPanel/AdminMemories.tsx
  • client/src/components/Dashboard/ClusterDashboard/TopologySection.tsx
  • client/src/components/Dashboard/ClusterDashboard/topology/TopologyDiagram.tsx
  • client/src/components/Dashboard/ServerDashboard/DatabaseSummariesSection.tsx
  • client/src/components/EventTimeline/EventDetailComponents.tsx
  • client/src/components/StatusPanel/GroupedAlertItem.tsx
  • client/src/components/AdminPanel/AdminWebhookChannels.tsx
  • client/src/components/AdminPanel/index.tsx
  • client/src/components/AdminPanel/tokens/TokensTable.tsx
  • client/src/components/Dashboard/ObjectDashboard/PlanTree.tsx
  • client/src/components/Header.tsx
  • client/src/contexts/AlertsContext.tsx
  • client/src/contexts/ClusterDataContext.tsx
  • client/src/components/AdminPanel/channels/ChannelDialogShell.tsx
  • client/src/contexts/tests/ClusterSelectionContext.test.tsx
  • client/src/components/AdminPanel/tokens/EditTokenDialog.tsx
  • client/src/contexts/BlackoutContext.tsx
  • client/src/components/ChannelOverridesPanel.tsx
  • client/src/components/HelpPanel/components/HelpNavItem.tsx
  • client/src/components/ChatPanel/index.tsx
  • client/src/components/InlineEditText.tsx
  • client/src/components/ServerInfoDialog/ServerInfoDialog.tsx
  • client/src/components/Chart/tests/Chart.test.tsx
  • client/src/components/StatusPanel/ServerInfoCard.tsx
  • client/src/test/setup.ts
  • client/src/components/EventTimeline/index.tsx
  • client/src/components/StatusPanel/AcknowledgeDialog.tsx
  • client/src/components/Chart/Chart.tsx
  • client/src/components/Dashboard/ServerDashboard/TopQueriesSection.tsx
  • client/src/hooks/tests/useOverviewSSE.test.ts
  • client/src/components/AdminPanel/tokens/ConnectionScopeTable.tsx
  • docs/changelog.md
  • client/src/components/AdminPanel/webhook/WebhookHeadersTab.tsx
  • client/src/components/shared/CopyCodeButton.tsx
  • client/src/components/StatusPanel/AlertsSection.tsx
  • client/src/components/AdminPanel/AdminEmailChannels.tsx
  • client/src/components/Dashboard/DatabaseDashboard/TableLeaderboardSection.tsx
  • client/src/hooks/chat/tests/chatHelpers.test.ts
  • client/src/components/topology/ServerManagementSection.tsx
  • client/src/components/AdminPanel/webhook/WebhookTemplatesTab.tsx
  • client/src/components/ChatPanel/ConversationHistory.tsx
  • client/src/components/GroupDialog.tsx
  • client/src/components/Dashboard/DatabaseDashboard/IndexLeaderboardSection.tsx
  • client/src/components/HelpPanel/HelpPanel.tsx
  • client/src/components/ServerDialog/OptionsSection.tsx
  • client/src/components/TopologyPanel.tsx
  • client/src/components/Dashboard/ObjectDashboard/QueryDetail.tsx
  • client/src/components/ClusterNavigator/GroupItem.tsx
  • client/src/components/ProbeOverridesPanel.tsx
  • client/src/components/Login.tsx
  • client/src/components/AdminPanel/webhook/WebhookSettingsTab.tsx
  • client/src/components/AdminPanel/email/EmailRecipientsTab.tsx
  • client/src/components/EventTimeline/EventDetailPanel.tsx
  • client/src/components/ServerDialog/SSLSettings.tsx
  • client/src/components/AlertOverrideEditDialog.tsx
  • client/src/components/AdminPanel/channels/ChannelTable.tsx
  • client/src/components/ServerDialog/ServerDialog.tsx
  • client/src/components/BlackoutManagementDialog.tsx
  • client/src/components/ClusterConfigDialog.tsx
  • client/src/components/AdminPanel/tokens/CreateTokenDialog.tsx
  • client/src/components/MembersPanel.tsx
  • client/src/components/AdminPanel/AdminTokenScopes.tsx
  • client/src/components/ServerDialog/ClusterFields.tsx
  • client/src/components/topology/RelationshipSection.tsx
  • client/src/components/ServerDialog/ConnectionFields.tsx
  • client/src/components/BlackoutDialog.tsx
  • client/src/components/ClusterNavigator/index.tsx
  • client/src/components/AdminPanel/AdminMessagingChannels.tsx
  • client/src/components/AdminPanel/webhook/WebhookAuthTab.tsx
  • client/src/components/AdminPanel/AdminPermissions.tsx
  • client/src/components/AdminPanel/AdminAlertRules.tsx
  • client/src/components/AdminPanel/AdminUsers.tsx
  • client/src/components/AdminPanel/email/EmailSettingsTab.tsx
🚧 Files skipped from review as they are similar to previous changes (2)
  • client/src/components/Dashboard/DatabaseDashboard/VacuumStatusSection.tsx
  • client/src/components/AlertOverridesPanel.tsx

@dpage dpage merged commit 899d9b1 into main Apr 24, 2026
10 checks passed
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.

1 participant