-
Notifications
You must be signed in to change notification settings - Fork 107
feat(ui): terminal scrollbar, review badge, and display settings #786
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…ettings - Show a visible thin scrollbar on xterm terminals instead of hidden - Increase scroll sensitivity and add shift-for-fast-scroll - Add amber "Review" badge on Kanban cards in the Done column - Add interface setting to toggle the review badge (default on) - Add interface setting to hide GitHub owner/repo from sidebar (default on) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
@FlourishingHumanityCorporation is attempting to deploy a commit to the General Action Team on Vercel. A member of the Team first needs to authorize it. |
Adds an opt-in feature that renames tasks ~60s after they enter in-progress, using a local Ollama model to generate a descriptive kebab-case name from the initial prompt and early conversation messages. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Greptile OverviewGreptile SummaryThis PR adds three UI enhancements plus an undocumented Ollama LLM integration feature: What's described in the PR:
What's NOT described but included:
The implementation quality is high with proper error handling, timeout protection, and cleanup. However, there's one logic bug in Confidence Score: 3/5
|
| Filename | Overview |
|---|---|
| src/main/services/OllamaService.ts | New service for local LLM task naming - good error handling, validation, and timeout protection |
| src/main/settings.ts | Added 4 new settings (review badge, git repo display, LLM rename, model name) with proper defaults and normalization |
| src/renderer/components/LeftSidebar.tsx | Added git repo display toggle - contains logical error in display condition (line 242) |
| src/renderer/components/kanban/KanbanBoard.tsx | Added review badge setting, LLM auto-rename timer (60s delay), and proper cleanup - complex logic but well structured |
| src/renderer/components/kanban/KanbanCard.tsx | Added amber review badge for done tasks with Eye icon - clean conditional rendering |
Sequence Diagram
sequenceDiagram
participant User
participant Settings as Settings UI
participant Renderer as Renderer Process
participant Main as Main Process
participant Ollama as Ollama Service
participant KanbanBoard
participant KanbanCard
participant LeftSidebar
Note over User,LeftSidebar: Terminal Scrollbar Enhancement
User->>Renderer: Opens terminal
Renderer->>Renderer: TerminalSessionManager creates xterm<br/>(scrollSensitivity: 3, fastScrollModifier: 'shift')
Renderer->>Renderer: Apply CSS (visible thin scrollbar)
Note over User,LeftSidebar: Settings Configuration
User->>Settings: Toggle review badge setting
Settings->>Main: updateSettings({interface: {showReviewBadge}})
Main->>Main: Save to settings.json
Main-->>Settings: Return updated settings
Settings->>Renderer: Dispatch 'showReviewBadgeChanged' event
KanbanBoard->>KanbanBoard: Update showReviewBadge state
User->>Settings: Toggle git repo display
Settings->>Main: updateSettings({interface: {showGitRepoInSidebar}})
Main->>Main: Save to settings.json
Main-->>Settings: Return updated settings
Settings->>Renderer: Dispatch 'showGitRepoInSidebarChanged' event
LeftSidebar->>LeftSidebar: Update showGitRepo state
User->>Settings: Enable LLM auto-rename
Settings->>Main: updateSettings({tasks: {autoRenameWithLLM: true}})
Main->>Main: Save to settings.json
Main-->>Settings: Return updated settings
Note over User,LeftSidebar: Task Auto-Rename Flow
User->>Renderer: Task becomes busy
KanbanBoard->>KanbanBoard: subscribeDerivedStatus detects 'busy'
KanbanBoard->>KanbanBoard: Set status to 'in-progress'
KanbanBoard->>KanbanBoard: Schedule rename timer (60s)
Note over KanbanBoard,Ollama: After 60 seconds
KanbanBoard->>Main: getSettings()
Main-->>KanbanBoard: Check autoRenameWithLLM enabled
KanbanBoard->>Main: getConversations(taskId)
Main-->>KanbanBoard: Return conversations
KanbanBoard->>Main: getMessages(conversationId)
Main-->>KanbanBoard: Return messages (extract user messages)
KanbanBoard->>Main: ollamaGenerateTaskName({initialPrompt, userMessages, currentName})
Main->>Ollama: generateTaskName(context)
Ollama->>Ollama: POST localhost:11434/api/generate<br/>(10s timeout)
Ollama->>Ollama: Validate name (kebab-case, max 60 chars)
Ollama-->>Main: Return generated name or null
Main-->>KanbanBoard: {success: true, name: "new-task-name"}
KanbanBoard->>Main: saveTask({...task, name, metadata: {llmRenamed: true}})
Main-->>KanbanBoard: Task saved
KanbanBoard->>KanbanBoard: Trigger re-render
Note over User,LeftSidebar: Review Badge Display
User->>KanbanBoard: Move task to Done column
KanbanBoard->>KanbanBoard: setStatus(taskId, 'done')
KanbanBoard->>KanbanCard: Render with status='done', showReviewBadge=true
KanbanCard->>KanbanCard: Display amber "Review" badge with Eye icon
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
5 files reviewed, 1 comment
Additional Comments (1)
When However, when |
Summary
owner/repovs local path under project names (default: on)Changes
src/renderer/index.csssrc/renderer/terminal/TerminalSessionManager.tsscrollSensitivity: 3,fastScrollModifier: 'shift',fastScrollSensitivity: 10src/renderer/components/kanban/KanbanCard.tsxstatus === 'done'and setting enabledsrc/renderer/components/kanban/KanbanBoard.tsxshowReviewBadgesetting, pass to cardssrc/renderer/components/LeftSidebar.tsxshowGitRepoInSidebarsettingsrc/main/settings.tsshowReviewBadgeandshowGitRepoInSidebartoInterfaceSettingssrc/renderer/types/electron-api.d.tssrc/renderer/components/ReviewBadgeSettingsCard.tsxsrc/renderer/components/SidebarDisplaySettingsCard.tsxsrc/renderer/components/SettingsModal.tsxTest plan
🤖 Generated with Claude Code