@yancyyu/openhermit 1.6.39 → 1.6.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/dist-renderer/assets/{ProjectEditorOverlay-krO5vQxX.js → ProjectEditorOverlay-Br0X83Jf.js} +3 -3
  2. package/dist-renderer/assets/{TeamGraphOverlay-DqhQzcTr.js → TeamGraphOverlay-DHMTbZPZ.js} +1 -1
  3. package/dist-renderer/assets/{_basePickBy-B7kSYPxr.js → _basePickBy-DzIiX7yH.js} +1 -1
  4. package/dist-renderer/assets/{_baseUniq-CnjxqwAk.js → _baseUniq-6hZuzTLU.js} +1 -1
  5. package/dist-renderer/assets/{arc-CLeZuINP.js → arc-CXgO6fx_.js} +1 -1
  6. package/dist-renderer/assets/{architectureDiagram-VXUJARFQ-QKtqaqdY.js → architectureDiagram-VXUJARFQ-DKWgtDHr.js} +1 -1
  7. package/dist-renderer/assets/{blockDiagram-VD42YOAC-BqdrzO_f.js → blockDiagram-VD42YOAC-DOMUcC40.js} +1 -1
  8. package/dist-renderer/assets/{c4Diagram-YG6GDRKO-gwPlCxDC.js → c4Diagram-YG6GDRKO-B_k2L7qX.js} +1 -1
  9. package/dist-renderer/assets/channel-D0XS_akr.js +1 -0
  10. package/dist-renderer/assets/{chunk-4BX2VUAB-C6XLurL4.js → chunk-4BX2VUAB-BeD_ccFy.js} +1 -1
  11. package/dist-renderer/assets/{chunk-55IACEB6-Ds6quhEP.js → chunk-55IACEB6-ClZfkA5w.js} +1 -1
  12. package/dist-renderer/assets/{chunk-B4BG7PRW-5UlA1_e9.js → chunk-B4BG7PRW-5XluxXsn.js} +1 -1
  13. package/dist-renderer/assets/{chunk-DI55MBZ5-ywFrqIsY.js → chunk-DI55MBZ5-BzIjjNVm.js} +1 -1
  14. package/dist-renderer/assets/{chunk-FMBD7UC4-C7ifUA17.js → chunk-FMBD7UC4-HgH3MK_H.js} +1 -1
  15. package/dist-renderer/assets/{chunk-QN33PNHL-BxGCo80U.js → chunk-QN33PNHL-WeC5T3Ba.js} +1 -1
  16. package/dist-renderer/assets/{chunk-QZHKN3VN-B2CuaZs6.js → chunk-QZHKN3VN-Cu1ApHfW.js} +1 -1
  17. package/dist-renderer/assets/{chunk-TZMSLE5B-Ds1hInvp.js → chunk-TZMSLE5B-BOhlynJM.js} +1 -1
  18. package/dist-renderer/assets/classDiagram-2ON5EDUG-D13Ffs0U.js +1 -0
  19. package/dist-renderer/assets/classDiagram-v2-WZHVMYZB-D13Ffs0U.js +1 -0
  20. package/dist-renderer/assets/clone-B1ZrxI1D.js +1 -0
  21. package/dist-renderer/assets/{cose-bilkent-S5V4N54A-Cz1GVtLp.js → cose-bilkent-S5V4N54A-DGZSihDQ.js} +1 -1
  22. package/dist-renderer/assets/{dagre-6UL2VRFP-BrmR-P4h.js → dagre-6UL2VRFP-CnxwCbku.js} +1 -1
  23. package/dist-renderer/assets/{diagram-PSM6KHXK-DbNjC5Rg.js → diagram-PSM6KHXK-DsIhoxdI.js} +1 -1
  24. package/dist-renderer/assets/{diagram-QEK2KX5R-qkRX5_Mq.js → diagram-QEK2KX5R-Cmh9KUF5.js} +1 -1
  25. package/dist-renderer/assets/{diagram-S2PKOQOG-CyL5rCv2.js → diagram-S2PKOQOG-CKxV456A.js} +1 -1
  26. package/dist-renderer/assets/{erDiagram-Q2GNP2WA-Dox3-bA5.js → erDiagram-Q2GNP2WA-EnvYjOjc.js} +1 -1
  27. package/dist-renderer/assets/{flowDiagram-NV44I4VS-BtkaxlDL.js → flowDiagram-NV44I4VS-BmNeWY_A.js} +1 -1
  28. package/dist-renderer/assets/{ganttDiagram-JELNMOA3-Dhy_d9GK.js → ganttDiagram-JELNMOA3-D30fyK-u.js} +1 -1
  29. package/dist-renderer/assets/{gitGraphDiagram-V2S2FVAM-B5XRhIQA.js → gitGraphDiagram-V2S2FVAM-CrUNiYg1.js} +1 -1
  30. package/dist-renderer/assets/{graph-CsoEwUhS.js → graph-CY1gTfTb.js} +1 -1
  31. package/dist-renderer/assets/{index-Bu2R-Se7.js → index-59r209c1.js} +39 -39
  32. package/dist-renderer/assets/{index-NhHNs2Oo.js → index-9_hO4N1e.js} +1 -1
  33. package/dist-renderer/assets/{index-BWPWmJNo.js → index-BC2hXmg_.js} +1 -1
  34. package/dist-renderer/assets/{index-D-3KgskL.js → index-CaEbzwAU.js} +1 -1
  35. package/dist-renderer/assets/{index-DGEBzLNT.js → index-D5K-SjBG.js} +1 -1
  36. package/dist-renderer/assets/{index-h17WuEyf.js → index-DMR9B1UP.js} +1 -1
  37. package/dist-renderer/assets/index-iyjkpSus.css +32 -0
  38. package/dist-renderer/assets/{infoDiagram-HS3SLOUP-hMGmNojH.js → infoDiagram-HS3SLOUP-By_XUlcD.js} +1 -1
  39. package/dist-renderer/assets/{journeyDiagram-XKPGCS4Q-DXV2rBDl.js → journeyDiagram-XKPGCS4Q-BM1LJE9m.js} +1 -1
  40. package/dist-renderer/assets/{kanban-definition-3W4ZIXB7-Bf99WLRy.js → kanban-definition-3W4ZIXB7-DHIW3aTA.js} +1 -1
  41. package/dist-renderer/assets/{layout-C3XWrpwo.js → layout-DAKiL_Mo.js} +1 -1
  42. package/dist-renderer/assets/{linear-OEEcn8KN.js → linear-DwOaRYea.js} +1 -1
  43. package/dist-renderer/assets/{mindmap-definition-VGOIOE7T-Dpi3S2x4.js → mindmap-definition-VGOIOE7T-b7bJ2cha.js} +1 -1
  44. package/dist-renderer/assets/{pieDiagram-ADFJNKIX-xTPPhtNx.js → pieDiagram-ADFJNKIX-DxyL9Zr2.js} +1 -1
  45. package/dist-renderer/assets/{quadrantDiagram-AYHSOK5B-euniyDlz.js → quadrantDiagram-AYHSOK5B-CR33pHlF.js} +1 -1
  46. package/dist-renderer/assets/{requirementDiagram-UZGBJVZJ-D9Uiw4kF.js → requirementDiagram-UZGBJVZJ-BAiSRSlh.js} +1 -1
  47. package/dist-renderer/assets/{sankeyDiagram-TZEHDZUN-CySU4nED.js → sankeyDiagram-TZEHDZUN-C8JmDjoa.js} +1 -1
  48. package/dist-renderer/assets/{sequenceDiagram-WL72ISMW-JVGpET6V.js → sequenceDiagram-WL72ISMW-c1d0Wi1m.js} +1 -1
  49. package/dist-renderer/assets/{stateDiagram-FKZM4ZOC-B2FY5qqi.js → stateDiagram-FKZM4ZOC-nT8BiH2O.js} +1 -1
  50. package/dist-renderer/assets/{stateDiagram-v2-4FDKWEC3-DcoMiR8H.js → stateDiagram-v2-4FDKWEC3-Dmibmlso.js} +1 -1
  51. package/dist-renderer/assets/{timeline-definition-IT6M3QCI-DmycNUUe.js → timeline-definition-IT6M3QCI-DpoRepUA.js} +1 -1
  52. package/dist-renderer/assets/{treemap-GDKQZRPO-DPq4gZuB.js → treemap-GDKQZRPO-C41UJeIH.js} +1 -1
  53. package/dist-renderer/assets/{xychartDiagram-PRI3JC2R-J6VVJzRq.js → xychartDiagram-PRI3JC2R-KMjGARKN.js} +1 -1
  54. package/dist-renderer/index.html +2 -2
  55. package/package.json +1 -1
  56. package/src/renderer/components/chat/ChatHistoryItem.tsx +1 -1
  57. package/src/renderer/components/chat/SessionContextPanel/DirectoryTree/DirectoryTreeNode.tsx +1 -1
  58. package/src/renderer/components/chat/SessionContextPanel/items/ClaudeMdItem.tsx +1 -1
  59. package/src/renderer/components/chat/SessionContextPanel/items/MentionedFileItem.tsx +1 -1
  60. package/src/renderer/components/chat/SessionContextPanel/items/TaskCoordinationItem.tsx +1 -1
  61. package/src/renderer/components/chat/SessionContextPanel/items/ThinkingTextItem.tsx +1 -1
  62. package/src/renderer/components/chat/SessionContextPanel/items/ToolOutputItem.tsx +1 -1
  63. package/src/renderer/components/chat/SessionContextPanel/items/UserMessageItem.tsx +1 -1
  64. package/src/renderer/components/chat/items/SubagentItem.tsx +2 -2
  65. package/src/renderer/components/chat/viewers/MermaidDiagram.tsx +2 -2
  66. package/src/renderer/components/common/ErrorBoundary.tsx +1 -1
  67. package/src/renderer/components/dashboard/CliStatusBanner.tsx +8 -8
  68. package/src/renderer/components/extensions/ExtensionStoreView.tsx +1 -1
  69. package/src/renderer/components/extensions/common/ExtensionToast.tsx +3 -3
  70. package/src/renderer/components/extensions/common/SourceBadge.tsx +1 -1
  71. package/src/renderer/components/extensions/plugins/CategoryChips.tsx +1 -1
  72. package/src/renderer/components/extensions/plugins/PluginCard.tsx +1 -1
  73. package/src/renderer/components/extensions/plugins/PluginDetailDialog.tsx +2 -2
  74. package/src/renderer/components/extensions/skills/SkillEditorDialog.tsx +1 -1
  75. package/src/renderer/components/layout/PaneResizeHandle.tsx +2 -2
  76. package/src/renderer/components/layout/Sidebar.tsx +2 -2
  77. package/src/renderer/components/layout/SortableTab.tsx +2 -2
  78. package/src/renderer/components/report/sections/CostSection.tsx +2 -2
  79. package/src/renderer/components/report/sections/InsightsSection.tsx +1 -1
  80. package/src/renderer/components/runtime/ProviderRuntimeBackendSelector.tsx +4 -4
  81. package/src/renderer/components/search/CommandPalette.tsx +4 -4
  82. package/src/renderer/components/settings/SettingsTabs.tsx +1 -1
  83. package/src/renderer/components/settings/components/SettingsSelect.tsx +2 -2
  84. package/src/renderer/components/settings/components/SettingsToggle.tsx +1 -1
  85. package/src/renderer/components/settings/sections/AdvancedSection.tsx +3 -3
  86. package/src/renderer/components/settings/sections/CliStatusSection.tsx +1 -1
  87. package/src/renderer/components/settings/sections/GeneralSection.tsx +1 -1
  88. package/src/renderer/components/sidebar/SessionFiltersPopover.tsx +1 -1
  89. package/src/renderer/components/sidebar/SessionItem.tsx +3 -3
  90. package/src/renderer/components/sidebar/SidebarSessions.tsx +2 -2
  91. package/src/renderer/components/sidebar/WorkspaceBrowser.tsx +1 -1
  92. package/src/renderer/components/sidebar/taskFiltersState.ts +1 -1
  93. package/src/renderer/components/system-manager/SystemManagerView.tsx +1 -1
  94. package/src/renderer/components/team/CcSessionsSection.tsx +5 -5
  95. package/src/renderer/components/team/ClaudeLogsFilterPopover.tsx +1 -1
  96. package/src/renderer/components/team/ClaudeLogsPanel.tsx +1 -1
  97. package/src/renderer/components/team/CollapsibleTeamSection.tsx +1 -1
  98. package/src/renderer/components/team/ProcessesSection.tsx +2 -2
  99. package/src/renderer/components/team/TaskTooltip.tsx +2 -2
  100. package/src/renderer/components/team/TeamDetailView.tsx +1 -1
  101. package/src/renderer/components/team/TeamListFilterPopover.tsx +1 -1
  102. package/src/renderer/components/team/TeamListView.tsx +2 -2
  103. package/src/renderer/components/team/TeamSessionsSection.tsx +6 -6
  104. package/src/renderer/components/team/UnreadCommentsBadge.tsx +1 -1
  105. package/src/renderer/components/team/activity/ActivityItem.tsx +10 -10
  106. package/src/renderer/components/team/activity/ActivityTimeline.tsx +5 -5
  107. package/src/renderer/components/team/activity/LeadThoughtsGroup.tsx +3 -3
  108. package/src/renderer/components/team/activity/ReplyQuoteBlock.tsx +4 -4
  109. package/src/renderer/components/team/dialogs/CreateTaskDialog.tsx +2 -2
  110. package/src/renderer/components/team/dialogs/LaunchTeamDialog.tsx +1 -1
  111. package/src/renderer/components/team/dialogs/PlatformBindingDialog.tsx +1 -1
  112. package/src/renderer/components/team/dialogs/PlatformManualForm.tsx +1 -1
  113. package/src/renderer/components/team/dialogs/PlatformSetupQR.tsx +4 -4
  114. package/src/renderer/components/team/dialogs/SendMessageDialog.tsx +6 -6
  115. package/src/renderer/components/team/dialogs/SkipPermissionsCheckbox.tsx +6 -6
  116. package/src/renderer/components/team/dialogs/StatusHistoryTimeline.tsx +1 -1
  117. package/src/renderer/components/team/dialogs/TaskAttachments.tsx +1 -1
  118. package/src/renderer/components/team/dialogs/TaskCommentInput.tsx +6 -6
  119. package/src/renderer/components/team/dialogs/TaskCommentsSection.tsx +4 -4
  120. package/src/renderer/components/team/dialogs/TaskDetailDialog.tsx +3 -3
  121. package/src/renderer/components/team/editor/EditorFileTree.tsx +4 -4
  122. package/src/renderer/components/team/editor/EditorSearchPanel.tsx +1 -1
  123. package/src/renderer/components/team/editor/MarkdownSplitView.tsx +1 -1
  124. package/src/renderer/components/team/editor/NewFileDialog.tsx +1 -1
  125. package/src/renderer/components/team/editor/ProjectEditorOverlay.tsx +1 -1
  126. package/src/renderer/components/team/editor/SearchInFilesPanel.tsx +1 -1
  127. package/src/renderer/components/team/kanban/KanbanFilterPopover.tsx +4 -4
  128. package/src/renderer/components/team/kanban/KanbanSearchInput.tsx +1 -1
  129. package/src/renderer/components/team/kanban/KanbanSortPopover.tsx +5 -5
  130. package/src/renderer/components/team/kanban/KanbanTaskCard.tsx +4 -4
  131. package/src/renderer/components/team/members/MemberDraftRow.tsx +1 -1
  132. package/src/renderer/components/team/members/MemberStatsTab.tsx +2 -2
  133. package/src/renderer/components/team/members/MemberWorkspaceTab.tsx +1 -1
  134. package/src/renderer/components/team/messages/MessageComposer.tsx +2 -2
  135. package/src/renderer/components/team/messages/MessagesFilterPopover.tsx +1 -1
  136. package/src/renderer/components/team/messages/MessagesPanel.tsx +7 -7
  137. package/src/renderer/components/team/review/ChangeReviewDialog.tsx +1 -1
  138. package/src/renderer/components/team/schedule/ScheduleStatusBadge.tsx +1 -1
  139. package/src/renderer/components/team/sidebar/TeamSidebarRail.tsx +4 -4
  140. package/src/renderer/components/team/tasks/TaskRow.tsx +1 -1
  141. package/src/renderer/components/team/tools/SkillChip.tsx +1 -1
  142. package/src/renderer/components/team/tools/ToolsSection.tsx +1 -1
  143. package/src/renderer/components/ui/MemberSelect.tsx +2 -2
  144. package/src/renderer/components/ui/MentionSuggestionList.tsx +2 -2
  145. package/src/renderer/components/ui/MentionableTextarea.tsx +3 -3
  146. package/src/renderer/constants/teamColors.ts +5 -5
  147. package/src/renderer/index.css +18 -18
  148. package/src/renderer/utils/codemirrorTheme.ts +3 -3
  149. package/dist-renderer/assets/channel-DpMHF50r.js +0 -1
  150. package/dist-renderer/assets/classDiagram-2ON5EDUG-CBYCBVRl.js +0 -1
  151. package/dist-renderer/assets/classDiagram-v2-WZHVMYZB-CBYCBVRl.js +0 -1
  152. package/dist-renderer/assets/clone-DcMF6Psb.js +0 -1
  153. package/dist-renderer/assets/index-CnWV3BhG.css +0 -32
@@ -232,7 +232,7 @@ export const PluginDetailDialog = ({
232
232
  {plugin.homepage && (
233
233
  <Button
234
234
  variant="link"
235
- className="h-auto justify-start p-0 text-sm text-blue-400"
235
+ className="h-auto justify-start p-0 text-sm text-indigo-400"
236
236
  onClick={() => void api.openExternal(plugin.homepage!)}
237
237
  >
238
238
  <ExternalLink className="mr-1 size-3.5" />
@@ -242,7 +242,7 @@ export const PluginDetailDialog = ({
242
242
  {plugin.author?.email && (
243
243
  <Button
244
244
  variant="link"
245
- className="h-auto justify-start p-0 text-sm text-blue-400"
245
+ className="h-auto justify-start p-0 text-sm text-indigo-400"
246
246
  onClick={() => void api.openExternal(`mailto:${plugin.author!.email}`)}
247
247
  >
248
248
  <Mail className="mr-1 size-3.5" />
@@ -801,7 +801,7 @@ export const SkillEditorDialog = ({
801
801
  </div>
802
802
  <div
803
803
  className={`w-1 shrink-0 cursor-col-resize border-x border-border ${
804
- isResizing ? 'bg-blue-500/50' : 'hover:bg-blue-500/30'
804
+ isResizing ? 'bg-indigo-500/50' : 'hover:bg-indigo-500/30'
805
805
  }`}
806
806
  onMouseDown={(event) => {
807
807
  event.preventDefault();
@@ -73,8 +73,8 @@ export const PaneResizeHandle = ({ leftPaneId }: PaneResizeHandleProps): React.J
73
73
  return (
74
74
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions -- resize handle requires mouse interaction
75
75
  <div
76
- className={`flex w-1 shrink-0 cursor-col-resize items-center justify-center transition-colors hover:bg-blue-500/50 ${
77
- isResizing ? 'bg-blue-500/50' : ''
76
+ className={`flex w-1 shrink-0 cursor-col-resize items-center justify-center transition-colors hover:bg-indigo-500/50 ${
77
+ isResizing ? 'bg-indigo-500/50' : ''
78
78
  }`}
79
79
  style={{
80
80
  backgroundColor: isResizing ? undefined : 'var(--color-border)',
@@ -153,8 +153,8 @@ export const Sidebar = (): React.JSX.Element => {
153
153
  <button
154
154
  type="button"
155
155
  aria-label="调整侧栏宽度"
156
- className={`absolute left-0 top-0 z-20 h-full w-1 cursor-col-resize border-0 bg-transparent p-0 transition-colors hover:bg-blue-500/50 ${
157
- isResizing ? 'bg-blue-500/50' : ''
156
+ className={`absolute left-0 top-0 z-20 h-full w-1 cursor-col-resize border-0 bg-transparent p-0 transition-colors hover:bg-indigo-500/50 ${
157
+ isResizing ? 'bg-indigo-500/50' : ''
158
158
  }`}
159
159
  onMouseDown={handleResizeStart}
160
160
  />
@@ -120,7 +120,7 @@ export const SortableTab = ({
120
120
  outlineOffset: '-1px',
121
121
  borderTop: isActive ? '1px solid var(--color-border)' : '1px solid transparent',
122
122
  borderLeft: '1px solid var(--color-border-subtle)',
123
- borderRight: '1px solid transparent',
123
+ borderRight: isActive ? '1px solid var(--color-border)' : '1px solid transparent',
124
124
  borderBottom: isActive ? '1px solid var(--color-surface-raised)' : '1px solid transparent',
125
125
  borderTopLeftRadius: '0',
126
126
  borderTopRightRadius: '0',
@@ -181,7 +181,7 @@ export const SortableTab = ({
181
181
  )}
182
182
  {isPinned && (
183
183
  <span title="已固定会话">
184
- <Pin className="size-3 shrink-0 text-blue-400" />
184
+ <Pin className="size-3 shrink-0 text-indigo-400" />
185
185
  </span>
186
186
  )}
187
187
  <span
@@ -97,7 +97,7 @@ export const CostSection = ({
97
97
  <div className="mb-1.5 flex h-3 w-full overflow-hidden rounded-full">
98
98
  <div
99
99
  className="h-full"
100
- style={{ width: `${parentPct}%`, backgroundColor: '#60a5fa' }}
100
+ style={{ width: `${parentPct}%`, backgroundColor: '#818cf8' }}
101
101
  />
102
102
  <div
103
103
  className="h-full"
@@ -108,7 +108,7 @@ export const CostSection = ({
108
108
  <div className="flex items-center gap-1.5">
109
109
  <span
110
110
  className="inline-block size-2 rounded-full"
111
- style={{ backgroundColor: '#60a5fa' }}
111
+ style={{ backgroundColor: '#818cf8' }}
112
112
  />
113
113
  <span className="text-text-secondary">主会话:{fmt(data.parentCostUsd)}</span>
114
114
  </div>
@@ -153,7 +153,7 @@ export const InsightsSection = ({
153
153
  <div className="mb-2 text-xs font-medium text-text-muted">
154
154
  Agent Tree ({agentTree.agentCount} agent{agentTree.agentCount !== 1 ? 's' : ''})
155
155
  {agentTree.hasTeamMode && (
156
- <span className="ml-2 rounded px-1.5 py-0.5 text-xs" style={{ color: '#60a5fa' }}>
156
+ <span className="ml-2 rounded px-1.5 py-0.5 text-xs" style={{ color: '#818cf8' }}>
157
157
  Team Mode
158
158
  </span>
159
159
  )}
@@ -190,8 +190,8 @@ export const ProviderRuntimeBackendSelector = ({
190
190
  <span
191
191
  className="shrink-0 rounded-full px-1.5 py-0.5 text-[10px]"
192
192
  style={{
193
- color: '#93c5fd',
194
- backgroundColor: 'rgba(59, 130, 246, 0.14)',
193
+ color: '#a5b4fc',
194
+ backgroundColor: 'rgba(99, 102, 241, 0.14)',
195
195
  }}
196
196
  >
197
197
  {getProviderRuntimeBackendAudienceLabel(option)}
@@ -258,8 +258,8 @@ export const ProviderRuntimeBackendSelector = ({
258
258
  <span
259
259
  className="rounded-full px-1.5 py-0.5 text-[10px]"
260
260
  style={{
261
- color: '#93c5fd',
262
- backgroundColor: 'rgba(59, 130, 246, 0.14)',
261
+ color: '#a5b4fc',
262
+ backgroundColor: 'rgba(99, 102, 241, 0.14)',
263
263
  }}
264
264
  >
265
265
  {selectedAudienceLabel}
@@ -117,7 +117,7 @@ const SessionResultItemInner = ({
117
117
  <div className="flex items-start gap-3">
118
118
  <div
119
119
  className={`mt-0.5 shrink-0 ${
120
- result.messageType === 'user' ? 'text-blue-400' : 'text-green-400'
120
+ result.messageType === 'user' ? 'text-indigo-400' : 'text-green-400'
121
121
  }`}
122
122
  >
123
123
  {result.messageType === 'user' ? <User className="size-4" /> : <Bot className="size-4" />}
@@ -125,8 +125,8 @@ const SessionResultItemInner = ({
125
125
  <div className="min-w-0 flex-1">
126
126
  {showProjectName && projectName && (
127
127
  <div className="mb-1 flex items-center gap-2">
128
- <FolderGit2 className="size-3 text-blue-400" />
129
- <span className="truncate text-xs font-medium text-blue-400">{projectName}</span>
128
+ <FolderGit2 className="size-3 text-indigo-400" />
129
+ <span className="truncate text-xs font-medium text-indigo-400">{projectName}</span>
130
130
  </div>
131
131
  )}
132
132
  <div className="mb-1 flex items-center gap-2">
@@ -486,7 +486,7 @@ export const CommandPalette = (): React.JSX.Element | null => {
486
486
  onClick={() => setGlobalSearchEnabled(!globalSearchEnabled)}
487
487
  className={`flex items-center gap-1.5 rounded px-2 py-1 text-xs transition-colors ${
488
488
  globalSearchEnabled
489
- ? 'bg-blue-500/20 text-blue-400 hover:bg-blue-500/30'
489
+ ? 'bg-indigo-500/20 text-indigo-400 hover:bg-indigo-500/30'
490
490
  : 'text-text-muted hover:bg-surface-raised hover:text-text'
491
491
  }`}
492
492
  title={
@@ -75,7 +75,7 @@ export const SettingsTabs = ({
75
75
  }`}
76
76
  style={{
77
77
  borderLeft: index > 0 ? '1px solid var(--color-border-subtle)' : undefined,
78
- color: isActive ? '#67e8f9' : undefined,
78
+ color: isActive ? '#818cf8' : undefined,
79
79
  }}
80
80
  >
81
81
  <Icon className={`size-3 ${isActive ? 'opacity-90' : 'opacity-40'}`} />
@@ -86,13 +86,13 @@ export const SettingsSelect = <T extends string | number>({
86
86
  onClick={() => handleSelect(option.value)}
87
87
  className={`flex w-full items-center justify-between gap-3 px-3 py-2 text-left text-sm transition-colors duration-100 ${
88
88
  value === option.value
89
- ? 'bg-cyan-500/10 text-cyan-300'
89
+ ? 'bg-indigo-500/10 text-indigo-300'
90
90
  : 'hover:bg-white/5'
91
91
  } `}
92
92
  style={value !== option.value ? { color: 'var(--color-text-secondary)' } : undefined}
93
93
  >
94
94
  <span className="whitespace-nowrap">{option.label}</span>
95
- {value === option.value && <Check className="size-4 shrink-0 text-cyan-400" />}
95
+ {value === option.value && <Check className="size-4 shrink-0 text-indigo-400" />}
96
96
  </button>
97
97
  ))}
98
98
  </div>
@@ -29,7 +29,7 @@ export const SettingsToggle = ({
29
29
  onClick={handleClick}
30
30
  className="relative inline-flex h-5 w-9 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-[var(--color-text)]/20 focus:ring-offset-2 focus:ring-offset-[var(--color-surface)]"
31
31
  style={{
32
- backgroundColor: enabled ? '#0891b2' : '#3f3f46',
32
+ backgroundColor: enabled ? '#6366f1' : '#3f3f46',
33
33
  opacity: disabled ? 0.5 : 1,
34
34
  cursor: disabled ? 'not-allowed' : 'pointer',
35
35
  }}
@@ -163,10 +163,10 @@ export const AdvancedSection = ({}: AdvancedSectionProps): React.JSX.Element =>
163
163
  <div className="flex flex-wrap gap-2 py-2">
164
164
  <button
165
165
  onClick={() => setCcConfigOpen(true)}
166
- className="flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium transition-all duration-150 hover:bg-cyan-500/5"
166
+ className="flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium transition-all duration-150 hover:bg-indigo-500/5"
167
167
  style={{
168
- borderColor: 'rgba(6, 182, 212, 0.3)',
169
- color: '#67e8f9',
168
+ borderColor: 'rgba(99, 102, 241, 0.3)',
169
+ color: '#818cf8',
170
170
  }}
171
171
  >
172
172
  <FileEdit className="size-4" />
@@ -558,7 +558,7 @@ export const CliStatusSection = ({
558
558
  ) : (
559
559
  <div
560
560
  className="h-full w-1/3 animate-pulse rounded-full"
561
- style={{ backgroundColor: '#3b82f6' }}
561
+ style={{ backgroundColor: '#6366f1' }}
562
562
  />
563
563
  )}
564
564
  </div>
@@ -446,7 +446,7 @@ export const GeneralSection = ({
446
446
  safeConfig.general.theme === opt.value
447
447
  ? {
448
448
  backgroundColor: 'rgba(6, 182, 212, 0.1)',
449
- color: '#67e8f9',
449
+ color: '#818cf8',
450
450
  }
451
451
  : undefined
452
452
  }
@@ -64,7 +64,7 @@ export const SessionFiltersPopover = ({
64
64
  >
65
65
  <Filter size={14} />
66
66
  {activeCount > 0 && (
67
- <span className="absolute -right-1 -top-1 flex size-4 items-center justify-center rounded-full bg-blue-500 text-[10px] font-medium text-white">
67
+ <span className="absolute -right-1 -top-1 flex size-4 items-center justify-center rounded-full bg-indigo-500 text-[10px] font-medium text-white">
68
68
  {activeCount}
69
69
  </span>
70
70
  )}
@@ -292,18 +292,18 @@ export const SessionItem = ({
292
292
  checked={isSelected ?? false}
293
293
  onChange={() => onToggleSelect?.()}
294
294
  onClick={(e) => e.stopPropagation()}
295
- className="size-3.5 shrink-0 accent-blue-500"
295
+ className="size-3.5 shrink-0 accent-indigo-500"
296
296
  />
297
297
  )}
298
298
  {session.isOngoing && <OngoingIndicator />}
299
- {isPinned && <Pin className="size-2.5 shrink-0 text-blue-400" />}
299
+ {isPinned && <Pin className="size-2.5 shrink-0 text-indigo-400" />}
300
300
  {isHidden && <EyeOff className="size-2.5 shrink-0 text-zinc-500" />}
301
301
  {isTeam ? (
302
302
  <span
303
303
  className="flex items-center gap-1.5 truncate text-[13px] font-medium leading-tight"
304
304
  style={{ color: isActive ? 'var(--color-text)' : 'var(--color-text-muted)' }}
305
305
  >
306
- <Users className="size-3 shrink-0 text-blue-400" />
306
+ <Users className="size-3 shrink-0 text-indigo-400" />
307
307
  <span className="truncate">{parsed.displayText}</span>
308
308
  </span>
309
309
  ) : (
@@ -657,7 +657,7 @@ const SessionRow = ({
657
657
  <span
658
658
  className={
659
659
  session.lastMessage.role === 'user'
660
- ? 'text-blue-400'
660
+ ? 'text-indigo-400'
661
661
  : 'text-[var(--color-text-muted)]'
662
662
  }
663
663
  >
@@ -714,7 +714,7 @@ const SessionRow = ({
714
714
  <span
715
715
  className={`shrink-0 text-[10px] font-medium ${
716
716
  msg.role === 'user'
717
- ? 'text-blue-400'
717
+ ? 'text-indigo-400'
718
718
  : 'text-[var(--color-text-muted)]'
719
719
  }`}
720
720
  >
@@ -150,7 +150,7 @@ const TeamWorkspace = ({
150
150
  {projectPath}
151
151
  </span>
152
152
  </span>
153
- <span className="shrink-0 rounded bg-blue-500/20 px-1.5 py-0.5 text-[10px] font-medium text-blue-400">
153
+ <span className="shrink-0 rounded bg-indigo-500/20 px-1.5 py-0.5 text-[10px] font-medium text-indigo-400">
154
154
  当前
155
155
  </span>
156
156
  </button>
@@ -12,7 +12,7 @@ export type TaskStatusFilterId =
12
12
  | 'approved';
13
13
 
14
14
  export const STATUS_OPTIONS: { id: TaskStatusFilterId; label: string; color: string }[] = [
15
- { id: 'todo', label: 'TODO', color: '#3b82f6' },
15
+ { id: 'todo', label: 'TODO', color: '#6366f1' },
16
16
  { id: 'in_progress', label: 'IN PROGRESS', color: '#eab308' },
17
17
  { id: 'needs_fix', label: 'NEEDS FIXES', color: '#f43f5e' },
18
18
  { id: 'done', label: 'DONE', color: '#22c55e' },
@@ -91,7 +91,7 @@ export const SystemManagerView = ({
91
91
  yellow: '#fde68a',
92
92
  blue: 'var(--color-accent)',
93
93
  magenta: '#d8b4fe',
94
- cyan: '#67e8f9',
94
+ cyan: '#818cf8',
95
95
  white: 'var(--color-text)',
96
96
  },
97
97
  });
@@ -320,7 +320,7 @@ function CcSessionRow({
320
320
  <div
321
321
  className={`group relative rounded-xl border transition-colors ${
322
322
  isExpanded
323
- ? 'border-blue-500/20 bg-blue-500/[0.04]'
323
+ ? 'border-indigo-500/20 bg-indigo-500/[0.04]'
324
324
  : session.live
325
325
  ? 'border-emerald-500/20 bg-emerald-500/[0.04] hover:bg-emerald-500/[0.08]'
326
326
  : 'border-transparent bg-[var(--color-surface)] hover:border-[var(--color-border)] hover:bg-[var(--color-surface-raised)]'
@@ -340,7 +340,7 @@ function CcSessionRow({
340
340
  {session.live ? (
341
341
  <Radio size={12} className="animate-pulse text-emerald-400" />
342
342
  ) : session.active ? (
343
- <Wifi size={12} className="text-blue-400" />
343
+ <Wifi size={12} className="text-indigo-400" />
344
344
  ) : (
345
345
  <WifiOff size={12} className="text-[var(--color-text-muted)] opacity-50" />
346
346
  )}
@@ -371,7 +371,7 @@ function CcSessionRow({
371
371
  <span
372
372
  className={
373
373
  session.lastMessage.role === 'user'
374
- ? 'text-blue-400'
374
+ ? 'text-indigo-400'
375
375
  : 'text-[var(--color-text-muted)]'
376
376
  }
377
377
  >
@@ -425,14 +425,14 @@ function CcSessionRow({
425
425
  key={`${msg.timestamp}-${i}`}
426
426
  className={`rounded-lg px-3 py-2 text-[11px] leading-relaxed ${
427
427
  isUserMessage
428
- ? 'bg-blue-500/10 text-[var(--color-text)]'
428
+ ? 'bg-indigo-500/10 text-[var(--color-text)]'
429
429
  : 'bg-[var(--color-surface-raised)] text-[var(--color-text)]'
430
430
  }`}
431
431
  >
432
432
  <div className="mb-1 flex items-center gap-2">
433
433
  <span
434
434
  className={`shrink-0 text-[10px] font-medium ${
435
- isUserMessage ? 'text-blue-400' : 'text-[var(--color-text-muted)]'
435
+ isUserMessage ? 'text-indigo-400' : 'text-[var(--color-text-muted)]'
436
436
  }`}
437
437
  >
438
438
  {isUserMessage ? '用户' : 'Agent'}
@@ -112,7 +112,7 @@ export const ClaudeLogsFilterPopover = ({
112
112
  >
113
113
  <Filter size={14} />
114
114
  {activeCount > 0 && (
115
- <span className="absolute -right-1 -top-1 flex size-4 items-center justify-center rounded-full bg-blue-500 text-[10px] font-medium text-white">
115
+ <span className="absolute -right-1 -top-1 flex size-4 items-center justify-center rounded-full bg-indigo-500 text-[10px] font-medium text-white">
116
116
  {activeCount}
117
117
  </span>
118
118
  )}
@@ -115,7 +115,7 @@ export const ClaudeLogsPanel = ({
115
115
  <Button
116
116
  variant="outline"
117
117
  size="sm"
118
- className="h-7 border-blue-500/30 bg-blue-600 px-2 text-xs text-white hover:bg-blue-500"
118
+ className="h-7 border-indigo-500/30 bg-indigo-600 px-2 text-xs text-white hover:bg-indigo-500"
119
119
  onClick={applyPending}
120
120
  >
121
121
  +{pendingNewCount} 条新日志
@@ -122,7 +122,7 @@ export const CollapsibleTeamSection = ({
122
122
  </span>
123
123
  )}
124
124
  {secondaryBadge != null && secondaryBadge > 0 && (
125
- <span className="text-[10px] tabular-nums text-blue-400 opacity-70" title={`${secondaryBadge} unread`}>
125
+ <span className="text-[10px] tabular-nums text-indigo-400 opacity-70" title={`${secondaryBadge} unread`}>
126
126
  +{secondaryBadge}
127
127
  </span>
128
128
  )}
@@ -130,7 +130,7 @@ export const ProcessesSection = memo(function ProcessesSection({
130
130
  {proc.url && (
131
131
  <button
132
132
  type="button"
133
- className="text-[var(--color-text-secondary)] underline decoration-dotted underline-offset-2 transition-colors hover:text-blue-400"
133
+ className="text-[var(--color-text-secondary)] underline decoration-dotted underline-offset-2 transition-colors hover:text-indigo-400"
134
134
  onClick={() => void api.openExternal(proc.url!)}
135
135
  title={proc.url}
136
136
  >
@@ -156,7 +156,7 @@ export const ProcessesSection = memo(function ProcessesSection({
156
156
  {alive && proc.url && (
157
157
  <button
158
158
  type="button"
159
- className="flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] text-blue-400 transition-colors hover:bg-blue-500/10"
159
+ className="flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] text-indigo-400 transition-colors hover:bg-indigo-500/10"
160
160
  onClick={() => void api.openExternal(proc.url!)}
161
161
  title="在浏览器中打开"
162
162
  >
@@ -18,8 +18,8 @@ import type { TeamTaskWithKanban } from '@shared/types';
18
18
  * Matches the kanban column palette from KanbanBoard.tsx.
19
19
  */
20
20
  const STATUS_COLORS: Record<string, { text: string; bg: string }> = {
21
- pending: { text: '#60a5fa', bg: 'rgba(59, 130, 246, 0.15)' }, // blue
22
- todo: { text: '#60a5fa', bg: 'rgba(59, 130, 246, 0.15)' },
21
+ pending: { text: '#818cf8', bg: 'rgba(99, 102, 241, 0.15)' }, // blue
22
+ todo: { text: '#818cf8', bg: 'rgba(99, 102, 241, 0.15)' },
23
23
  in_progress: { text: '#facc15', bg: 'rgba(234, 179, 8, 0.15)' }, // yellow
24
24
  completed: { text: '#4ade80', bg: 'rgba(34, 197, 94, 0.15)' }, // green
25
25
  done: { text: '#4ade80', bg: 'rgba(34, 197, 94, 0.15)' },
@@ -2142,7 +2142,7 @@ export const TeamDetailView = ({
2142
2142
  </div>
2143
2143
  <div className="flex items-center gap-3 py-2">
2144
2144
  <p className="text-sm font-medium text-text">{draftDisplayName}</p>
2145
- <span className="rounded-full bg-blue-500/20 px-2 py-0.5 text-[10px] font-medium text-blue-400">
2145
+ <span className="rounded-full bg-indigo-500/20 px-2 py-0.5 text-[10px] font-medium text-indigo-400">
2146
2146
  {getCommandForHarness()}
2147
2147
  </span>
2148
2148
  </div>
@@ -93,7 +93,7 @@ export const TeamListFilterPopover = ({
93
93
  >
94
94
  <Filter size={14} />
95
95
  {activeCount > 0 && (
96
- <span className="absolute -right-1 -top-1 flex size-4 items-center justify-center rounded-full bg-blue-500 text-[10px] font-medium text-white">
96
+ <span className="absolute -right-1 -top-1 flex size-4 items-center justify-center rounded-full bg-indigo-500 text-[10px] font-medium text-white">
97
97
  {activeCount}
98
98
  </span>
99
99
  )}
@@ -974,7 +974,7 @@ export const TeamListView = (): React.JSX.Element => {
974
974
  {template.members.map((member) => (
975
975
  <span
976
976
  key={member.name}
977
- className="rounded bg-blue-500/10 px-1.5 py-0.5 text-[10px] text-blue-300"
977
+ className="rounded bg-indigo-500/10 px-1.5 py-0.5 text-[10px] text-indigo-300"
978
978
  >
979
979
  {member.name}
980
980
  {member.role ? ` · ${formatTeamRoleLabel(member.role)}` : ''}
@@ -1233,7 +1233,7 @@ export const TeamListView = (): React.JSX.Element => {
1233
1233
  <div className="mt-2 flex items-center gap-1.5 pl-[42px] text-[10px] tabular-nums">
1234
1234
  {team.stats && team.stats.sessions > 0 ? (
1235
1235
  <>
1236
- <span className="text-blue-400">{team.stats.sessions} sessions</span>
1236
+ <span className="text-indigo-400">{team.stats.sessions} sessions</span>
1237
1237
  <span className="text-[var(--color-text-muted)] opacity-30">·</span>
1238
1238
  <span className="text-emerald-400">{formatTokensCompact(team.stats.tokens)}</span>
1239
1239
  {team.stats.durationMs > 0 && (
@@ -128,7 +128,7 @@ export const TeamSessionsSection = ({
128
128
  {selectedSessionId !== null && (
129
129
  <button
130
130
  type="button"
131
- className="flex w-full items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs text-blue-600 transition-colors hover:bg-blue-500/10 dark:text-blue-400"
131
+ className="flex w-full items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs text-indigo-600 transition-colors hover:bg-indigo-500/10 dark:text-indigo-400"
132
132
  onClick={() => onSelectSession(null)}
133
133
  >
134
134
  <FilterX size={12} />
@@ -176,10 +176,10 @@ const SessionRow = ({
176
176
  return (
177
177
  <div
178
178
  className={`group flex w-full items-center gap-2 rounded-md px-2.5 py-2 text-left text-xs transition-colors hover:bg-[var(--color-surface-raised)] ${
179
- isLead ? 'border border-blue-500/20 bg-blue-500/5' : ''
180
- } ${isSelected ? 'bg-blue-500/10 ring-1 ring-blue-400/50' : ''}`}
179
+ isLead ? 'border border-indigo-500/20 bg-indigo-500/5' : ''
180
+ } ${isSelected ? 'bg-indigo-500/10 ring-1 ring-indigo-400/50' : ''}`}
181
181
  >
182
- {isLead && <Crown size={12} className="shrink-0 text-blue-400" />}
182
+ {isLead && <Crown size={12} className="shrink-0 text-indigo-400" />}
183
183
 
184
184
  <button type="button" className="min-w-0 flex-1 text-left" onClick={onClick}>
185
185
  <div className="flex items-center gap-1.5">
@@ -199,7 +199,7 @@ const SessionRow = ({
199
199
  {isLead && (
200
200
  <>
201
201
  <span style={{ opacity: 0.5 }}>·</span>
202
- <span className="text-blue-600 dark:text-blue-400">负责人</span>
202
+ <span className="text-indigo-600 dark:text-indigo-400">负责人</span>
203
203
  </>
204
204
  )}
205
205
  </div>
@@ -210,7 +210,7 @@ const SessionRow = ({
210
210
  <TooltipTrigger asChild>
211
211
  <button
212
212
  type="button"
213
- className={`rounded p-0.5 text-[var(--color-text-muted)] transition-opacity hover:text-blue-400 ${
213
+ className={`rounded p-0.5 text-[var(--color-text-muted)] transition-opacity hover:text-indigo-400 ${
214
214
  isSelected ? 'opacity-100' : 'opacity-0 group-hover:opacity-100'
215
215
  }`}
216
216
  onClick={(e) => {
@@ -21,7 +21,7 @@ export const UnreadCommentsBadge = ({
21
21
  {totalCount}
22
22
  </span>
23
23
  {unreadCount > 0 ? (
24
- <span className="absolute -right-1 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-blue-500 px-1 text-[8px] font-bold leading-none text-white shadow-sm">
24
+ <span className="absolute -right-1 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-indigo-500 px-1 text-[8px] font-bold leading-none text-white shadow-sm">
25
25
  {unreadCount}
26
26
  </span>
27
27
  ) : null}
@@ -223,8 +223,8 @@ const SessionSourceBadge = ({ message }: { message: InboxMessage }): React.JSX.E
223
223
  className="inline-flex max-w-[180px] items-center truncate rounded-full px-1.5 py-0.5 text-[10px] font-medium"
224
224
  title={`${platform}${label}${session?.key ? ` (${session.key})` : ''}`}
225
225
  style={{
226
- backgroundColor: 'rgba(59, 130, 246, 0.12)',
227
- color: '#93c5fd',
226
+ backgroundColor: 'rgba(99, 102, 241, 0.12)',
227
+ color: '#a5b4fc',
228
228
  }}
229
229
  >
230
230
  {platform}
@@ -578,7 +578,7 @@ function linkifyTaskIds(text: string, onClick: (taskId: string) => void): React.
578
578
  <TaskTooltip key={i} taskId={taskId}>
579
579
  <button
580
580
  type="button"
581
- className="inline cursor-pointer font-medium text-blue-600 hover:underline dark:text-blue-400"
581
+ className="inline cursor-pointer font-medium text-indigo-600 hover:underline dark:text-indigo-400"
582
582
  onClick={(e) => {
583
583
  e.stopPropagation();
584
584
  onClick(taskId);
@@ -636,7 +636,7 @@ const TaskRecipientBadge = ({
636
636
  className="inline-flex items-center rounded px-1.5 py-0.5 text-[10px] font-medium tracking-wide"
637
637
  style={{
638
638
  backgroundColor: 'rgba(96, 165, 250, 0.14)',
639
- color: '#60a5fa',
639
+ color: '#818cf8',
640
640
  border: '1px solid rgba(96, 165, 250, 0.3)',
641
641
  }}
642
642
  >
@@ -1209,7 +1209,7 @@ export const ActivityItem = memo(
1209
1209
  <div className="flex min-w-0 flex-1 items-center gap-2 overflow-hidden">
1210
1210
  {isUnread ? (
1211
1211
  <span
1212
- className="size-2 shrink-0 rounded-full bg-blue-500"
1212
+ className="size-2 shrink-0 rounded-full bg-indigo-500"
1213
1213
  title="未读"
1214
1214
  aria-hidden
1215
1215
  />
@@ -1239,7 +1239,7 @@ export const ActivityItem = memo(
1239
1239
  <button
1240
1240
  type="button"
1241
1241
  aria-label="展开消息"
1242
- className="absolute right-0 top-1/2 -translate-y-1/2 rounded p-0.5 opacity-0 transition-opacity focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-blue-500/50 group-hover:opacity-100"
1242
+ className="absolute right-0 top-1/2 -translate-y-1/2 rounded p-0.5 opacity-0 transition-opacity focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-indigo-500/50 group-hover:opacity-100"
1243
1243
  style={{ color: CARD_ICON_MUTED }}
1244
1244
  onClick={(e) => {
1245
1245
  e.stopPropagation();
@@ -1279,7 +1279,7 @@ export const ActivityItem = memo(
1279
1279
  <div className="flex min-w-0 items-center gap-2">
1280
1280
  {isUnread ? (
1281
1281
  <span
1282
- className="size-2 shrink-0 rounded-full bg-blue-500"
1282
+ className="size-2 shrink-0 rounded-full bg-indigo-500"
1283
1283
  title="未读"
1284
1284
  aria-hidden
1285
1285
  />
@@ -1322,7 +1322,7 @@ export const ActivityItem = memo(
1322
1322
  <button
1323
1323
  type="button"
1324
1324
  aria-label="展开消息"
1325
- className="absolute right-0 top-1/2 -translate-y-1/2 rounded p-0.5 opacity-0 transition-opacity focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-blue-500/50 group-hover:opacity-100"
1325
+ className="absolute right-0 top-1/2 -translate-y-1/2 rounded p-0.5 opacity-0 transition-opacity focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-indigo-500/50 group-hover:opacity-100"
1326
1326
  style={{ color: CARD_ICON_MUTED }}
1327
1327
  onClick={(e) => {
1328
1328
  e.stopPropagation();
@@ -1361,7 +1361,7 @@ export const ActivityItem = memo(
1361
1361
  <>
1362
1362
  {isUnread ? (
1363
1363
  <span
1364
- className="size-2 shrink-0 rounded-full bg-blue-500"
1364
+ className="size-2 shrink-0 rounded-full bg-indigo-500"
1365
1365
  title="未读"
1366
1366
  aria-hidden
1367
1367
  />
@@ -1406,7 +1406,7 @@ export const ActivityItem = memo(
1406
1406
  <button
1407
1407
  type="button"
1408
1408
  aria-label="展开消息"
1409
- className="absolute right-0 top-1/2 -translate-y-1/2 rounded p-0.5 opacity-0 transition-opacity focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-blue-500/50 group-hover:opacity-100"
1409
+ className="absolute right-0 top-1/2 -translate-y-1/2 rounded p-0.5 opacity-0 transition-opacity focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-indigo-500/50 group-hover:opacity-100"
1410
1410
  style={{ color: CARD_ICON_MUTED }}
1411
1411
  onClick={(e) => {
1412
1412
  e.stopPropagation();