fix: refactored linter errors
This commit is contained in:
@@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file.
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
- Updated OpenCode SDK to 1.0.185 across all app versions.
|
||||||
|
- VS Code extension: fixed startup, more reliable OpenCode CLI/API management, and stabilized API proxying/streaming.
|
||||||
|
- VS Code extension: added an animated loading screen and introduced command for status/debug output.
|
||||||
|
- Fixed session activity tracking so it correctly handles transitions through states (including worktree sessions).
|
||||||
|
- Fixed directory path handling (including `~` expansion) to prevent invalid paths and related Git/worktree errors.
|
||||||
|
- Chat UI: improved turn grouping/activity rendering and fixed message metadata/agent selection propagation.
|
||||||
|
- Chat UI: improved agent activity status behavior and reduced image thumbnail sizes for better readability.
|
||||||
|
|
||||||
|
|
||||||
## [1.3.2] - 2025-12-22
|
## [1.3.2] - 2025-12-22
|
||||||
|
|
||||||
|
|||||||
@@ -456,7 +456,7 @@ export const useTurnGrouping = (messages: ChatMessageEntry[]): UseTurnGroupingRe
|
|||||||
next.set(turnId, { ...state, previewedPartIds: newPreviewed });
|
next.set(turnId, { ...state, previewedPartIds: newPreviewed });
|
||||||
return next;
|
return next;
|
||||||
});
|
});
|
||||||
}, []);
|
}, [defaultActivityExpanded]);
|
||||||
|
|
||||||
const getTurnForMessage = React.useCallback(
|
const getTurnForMessage = React.useCallback(
|
||||||
(messageId: string): Turn | undefined => {
|
(messageId: string): Turn | undefined => {
|
||||||
|
|||||||
@@ -304,15 +304,12 @@ const AssistantMessageBody: React.FC<Omit<MessageBodyProps, 'isUser'>> = ({
|
|||||||
syntaxTheme,
|
syntaxTheme,
|
||||||
isMobile,
|
isMobile,
|
||||||
hasTouchInput,
|
hasTouchInput,
|
||||||
copiedCode,
|
|
||||||
onCopyCode,
|
|
||||||
expandedTools,
|
expandedTools,
|
||||||
onToggleTool,
|
onToggleTool,
|
||||||
onShowPopup,
|
onShowPopup,
|
||||||
streamPhase: _streamPhase,
|
streamPhase: _streamPhase,
|
||||||
allowAnimation: _allowAnimation,
|
allowAnimation: _allowAnimation,
|
||||||
onContentChange,
|
onContentChange,
|
||||||
shouldShowHeader = true,
|
|
||||||
hasTextContent = false,
|
hasTextContent = false,
|
||||||
onCopyMessage,
|
onCopyMessage,
|
||||||
copiedMessage = false,
|
copiedMessage = false,
|
||||||
@@ -1013,17 +1010,12 @@ const AssistantMessageBody: React.FC<Omit<MessageBodyProps, 'isUser'>> = ({
|
|||||||
}, [
|
}, [
|
||||||
activityPartsByPart,
|
activityPartsByPart,
|
||||||
activityGroupSegmentsForMessage,
|
activityGroupSegmentsForMessage,
|
||||||
copiedCode,
|
|
||||||
copiedMessage,
|
|
||||||
expandedTools,
|
expandedTools,
|
||||||
hasTextContent,
|
|
||||||
isMessageAnimating,
|
isMessageAnimating,
|
||||||
isMobile,
|
isMobile,
|
||||||
isToolFinalized,
|
isToolFinalized,
|
||||||
messageId,
|
messageId,
|
||||||
onContentChange,
|
onContentChange,
|
||||||
onCopyCode,
|
|
||||||
onCopyMessage,
|
|
||||||
onShowPopup,
|
onShowPopup,
|
||||||
onToggleTool,
|
onToggleTool,
|
||||||
previewableActivityPartIds,
|
previewableActivityPartIds,
|
||||||
@@ -1031,14 +1023,11 @@ const AssistantMessageBody: React.FC<Omit<MessageBodyProps, 'isUser'>> = ({
|
|||||||
shouldHoldReasoning,
|
shouldHoldReasoning,
|
||||||
shouldHoldTools,
|
shouldHoldTools,
|
||||||
shouldShowActivityGroup,
|
shouldShowActivityGroup,
|
||||||
shouldShowHeader,
|
|
||||||
showReasoningTraces,
|
showReasoningTraces,
|
||||||
syntaxTheme,
|
syntaxTheme,
|
||||||
toolConnections,
|
toolConnections,
|
||||||
turnGroupingContext,
|
turnGroupingContext,
|
||||||
visibleActivityPartsForTurn,
|
|
||||||
visibleParts,
|
visibleParts,
|
||||||
toolParts,
|
|
||||||
standaloneToolParts,
|
standaloneToolParts,
|
||||||
shouldRenderActivityGroup,
|
shouldRenderActivityGroup,
|
||||||
]);
|
]);
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ export function WorkingPlaceholder({
|
|||||||
// IMPORTANT: When statusText becomes null, we do NOT clear the display
|
// IMPORTANT: When statusText becomes null, we do NOT clear the display
|
||||||
// Only done/abort signals clear the display
|
// Only done/abort signals clear the display
|
||||||
|
|
||||||
}, [statusText, isWaitingForPermission, wasAborted, isComplete, state, displayedText, displayedPermission, showStatus, showResult, scheduleQueueProcess]);
|
}, [statusText, isWaitingForPermission, wasAborted, isComplete, state, displayedText, displayedPermission, showStatus, showResult, scheduleQueueProcess, isGenericStatus]);
|
||||||
|
|
||||||
// Cleanup on unmount
|
// Cleanup on unmount
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@@ -259,7 +259,7 @@ const DiffViewerEntry = React.memo<DiffViewerEntryProps>(({
|
|||||||
const diffData = React.useMemo(() => {
|
const diffData = React.useMemo(() => {
|
||||||
if (!cachedDiff) return null;
|
if (!cachedDiff) return null;
|
||||||
return { original: cachedDiff.original, modified: cachedDiff.modified };
|
return { original: cachedDiff.original, modified: cachedDiff.modified };
|
||||||
}, [cachedDiff?.original, cachedDiff?.modified]);
|
}, [cachedDiff]);
|
||||||
|
|
||||||
if (!diffData) return null;
|
if (!diffData) return null;
|
||||||
|
|
||||||
|
|||||||
@@ -1165,11 +1165,8 @@ export const useEventStream = () => {
|
|||||||
checkConnection,
|
checkConnection,
|
||||||
resyncMessages,
|
resyncMessages,
|
||||||
requestSessionMetadataRefresh,
|
requestSessionMetadataRefresh,
|
||||||
requestSessionListRefresh,
|
|
||||||
completeStreamingMessage,
|
|
||||||
handleEvent,
|
handleEvent,
|
||||||
effectiveDirectory,
|
effectiveDirectory,
|
||||||
updateSessionActivityPhase,
|
|
||||||
refreshSessionActivityStatus,
|
refreshSessionActivityStatus,
|
||||||
waitForDesktopBridge,
|
waitForDesktopBridge,
|
||||||
debugConnectionState,
|
debugConnectionState,
|
||||||
@@ -1209,6 +1206,7 @@ export const useEventStream = () => {
|
|||||||
}, [shouldHoldConnection, stopStream, publishStatus, startStream]);
|
}, [shouldHoldConnection, stopStream, publishStatus, startStream]);
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
|
const cooldownTimers = sessionCooldownTimersRef.current;
|
||||||
|
|
||||||
if (typeof window !== 'undefined') {
|
if (typeof window !== 'undefined') {
|
||||||
window.__messageTracker = trackMessage;
|
window.__messageTracker = trackMessage;
|
||||||
@@ -1387,8 +1385,6 @@ export const useEventStream = () => {
|
|||||||
staleCheckIntervalRef.current = null;
|
staleCheckIntervalRef.current = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
const cooldownTimers = sessionCooldownTimersRef.current;
|
|
||||||
|
|
||||||
cooldownTimers.forEach((timer) => clearTimeout(timer));
|
cooldownTimers.forEach((timer) => clearTimeout(timer));
|
||||||
cooldownTimers.clear();
|
cooldownTimers.clear();
|
||||||
messageCache.clear();
|
messageCache.clear();
|
||||||
@@ -1416,8 +1412,12 @@ export const useEventStream = () => {
|
|||||||
scheduleReconnect,
|
scheduleReconnect,
|
||||||
loadMessages,
|
loadMessages,
|
||||||
requestSessionMetadataRefresh,
|
requestSessionMetadataRefresh,
|
||||||
|
requestSessionListRefresh,
|
||||||
updateSessionActivityPhase,
|
updateSessionActivityPhase,
|
||||||
refreshSessionActivityStatus,
|
refreshSessionActivityStatus,
|
||||||
shouldHoldConnection
|
shouldHoldConnection,
|
||||||
|
loadSessions,
|
||||||
|
maybeBootstrapIfStale,
|
||||||
|
resyncMessages
|
||||||
]);
|
]);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -167,6 +167,7 @@ export const useSessionAutoCleanup = (options?: CleanupOptions) => {
|
|||||||
autoDeleteLastRunAt,
|
autoDeleteLastRunAt,
|
||||||
autoRun,
|
autoRun,
|
||||||
isLoading,
|
isLoading,
|
||||||
|
sessions.length,
|
||||||
runCleanup,
|
runCleanup,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user