feat(ui): add configurable text justification activity setting (#212)

* fix(server): improve external server and error handling

- Skip OpenCode shutdown when using external server
  (OPENCODE_SKIP_START=true)
- Return 404 status for non-existent directories instead of
  empty array
- Move error logging before response handling

* feat(ui): add configurable text justification activity setting

- Replace hardcoded ENABLE_TEXT_JUSTIFICATION_ACTIVITY constant with
  dynamic showTextJustificationActivity setting in useUIStore
- Add toggle UI in Chat settings section (Settings > Chat)
- Add setting to DesktopSettings type for cross-runtime persistence
- Default value is false (matching original constant behavior)

---------

Co-authored-by: iiyangdianfeng <goodydfwow@gmail.com>
This commit is contained in:
杨巅峰
2026-01-25 19:09:31 +02:00
committed by GitHub
co-authored by iiyangdianfeng
parent 5950a31632
commit adbc5af95f
6 changed files with 47 additions and 21 deletions
+8
View File
@@ -40,6 +40,7 @@ interface UIStore {
eventStreamStatus: EventStreamStatus;
eventStreamHint: string | null;
showReasoningTraces: boolean;
showTextJustificationActivity: boolean;
autoDeleteEnabled: boolean;
autoDeleteAfterDays: number;
autoDeleteLastRunAt: number | null;
@@ -87,6 +88,7 @@ interface UIStore {
setSidebarSection: (section: SidebarSection) => void;
setEventStreamStatus: (status: EventStreamStatus, hint?: string | null) => void;
setShowReasoningTraces: (value: boolean) => void;
setShowTextJustificationActivity: (value: boolean) => void;
setAutoDeleteEnabled: (value: boolean) => void;
setAutoDeleteAfterDays: (days: number) => void;
setAutoDeleteLastRunAt: (timestamp: number | null) => void;
@@ -144,6 +146,7 @@ export const useUIStore = create<UIStore>()(
eventStreamStatus: 'idle',
eventStreamHint: null,
showReasoningTraces: false,
showTextJustificationActivity: false,
autoDeleteEnabled: false,
autoDeleteAfterDays: 30,
autoDeleteLastRunAt: null,
@@ -292,6 +295,10 @@ export const useUIStore = create<UIStore>()(
set({ showReasoningTraces: value });
},
setShowTextJustificationActivity: (value) => {
set({ showTextJustificationActivity: value });
},
setAutoDeleteEnabled: (value) => {
set({ autoDeleteEnabled: value });
},
@@ -548,6 +555,7 @@ export const useUIStore = create<UIStore>()(
isSessionCreateDialogOpen: state.isSessionCreateDialogOpen,
isSettingsDialogOpen: state.isSettingsDialogOpen,
showReasoningTraces: state.showReasoningTraces,
showTextJustificationActivity: state.showTextJustificationActivity,
autoDeleteEnabled: state.autoDeleteEnabled,
autoDeleteAfterDays: state.autoDeleteAfterDays,
autoDeleteLastRunAt: state.autoDeleteLastRunAt,