Skip to content

Conversation

@FlourishingHumanityCorporation

Summary

  • Terminal scrollbar: Replace hidden scrollbar with a visible thin styled scrollbar on xterm terminals, increase scroll sensitivity (3x), and add shift-for-fast-scroll (10x)
  • Review badge: Show an amber "Review" badge on Kanban cards in the Done column so completed tasks are visually distinct
  • Interface settings: Add two new toggles under Settings > Interface:
    • Kanban board > Show review badge — toggle the review badge on/off (default: on)
    • Project sidebar > Show GitHub repository — toggle between showing owner/repo vs local path under project names (default: on)

Changes

File Change
src/renderer/index.css Visible thin scrollbar for xterm terminals
src/renderer/terminal/TerminalSessionManager.ts scrollSensitivity: 3, fastScrollModifier: 'shift', fastScrollSensitivity: 10
src/renderer/components/kanban/KanbanCard.tsx Amber review badge when status === 'done' and setting enabled
src/renderer/components/kanban/KanbanBoard.tsx Load showReviewBadge setting, pass to cards
src/renderer/components/LeftSidebar.tsx Respect showGitRepoInSidebar setting
src/main/settings.ts Add showReviewBadge and showGitRepoInSidebar to InterfaceSettings
src/renderer/types/electron-api.d.ts IPC type definitions for new settings
src/renderer/components/ReviewBadgeSettingsCard.tsx New settings card
src/renderer/components/SidebarDisplaySettingsCard.tsx New settings card
src/renderer/components/SettingsModal.tsx Register both cards in Interface tab

Test plan

  • Open a project with tasks — verify terminal scrollbar is visible and scrolls smoothly
  • Hold Shift while scrolling in terminal — verify fast scroll
  • Move a task to Done column — verify amber "Review" badge appears
  • Settings > Interface > Kanban board — toggle review badge off, verify badge disappears without reload
  • Settings > Interface > Project sidebar — toggle GitHub repository off, verify sidebar shows local path instead of owner/repo

🤖 Generated with Claude Code

…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>
@vercel
Copy link

vercel bot commented Feb 6, 2026

@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-apps
Copy link

greptile-apps bot commented Feb 7, 2026

Greptile Overview

Greptile Summary

This PR adds three UI enhancements plus an undocumented Ollama LLM integration feature:

What's described in the PR:

  • Terminal scrollbar visibility with 3x scroll sensitivity and shift-for-fast-scroll (10x)
  • Amber "Review" badge on Kanban cards in Done column (toggleable via Settings > Interface)
  • Settings to toggle review badge and git repo display in project sidebar

What's NOT described but included:

  • Complete Ollama integration for auto-renaming tasks using local LLM after 60 seconds of task activity
  • New OllamaService that calls localhost:11434/api/generate with 10s timeout
  • Settings UI in TaskSettingsCard for enabling LLM auto-rename and configuring the model
  • Task metadata tracking (llmRenamed flag) to prevent duplicate renames
  • Full IPC plumbing and type definitions

The implementation quality is high with proper error handling, timeout protection, and cleanup. However, there's one logic bug in LeftSidebar.tsx:242 where the git repo display condition will show the path even when the setting is ON if the repo is missing (should only show path when setting is OFF).

Confidence Score: 3/5

  • Safe to merge after fixing the logic bug in LeftSidebar.tsx line 242
  • Score reflects one critical logic error that will cause incorrect display behavior. The PR also includes a significant undocumented feature (Ollama integration) that should have been mentioned in the title/description. Code quality is otherwise excellent with proper patterns, error handling, and cleanup.
  • Pay close attention to src/renderer/components/LeftSidebar.tsx line 242 - the git repo display logic needs to be corrected before merge

Important Files Changed

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
Loading

Copy link

@greptile-apps greptile-apps bot left a 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

Edit Code Review Agent Settings | Greptile

@greptile-apps
Copy link

greptile-apps bot commented Feb 7, 2026

Additional Comments (1)

src/renderer/components/LeftSidebar.tsx
Logical error: this always displays typedProject.path when the setting is off.

When showGitRepo is false, the expression (false && typedProject.githubInfo?.repository) evaluates to false, then the || operator makes it fall back to typedProject.path — which is correct.

However, when showGitRepo is true but typedProject.githubInfo?.repository is null/undefined, the expression (true && null) evaluates to null, then falls back to typedProject.paththis is wrong. The path should ONLY show when the setting is disabled, not when the repo is missing.

                                {showGitRepo ? (typedProject.githubInfo?.repository || typedProject.path) : typedProject.path}

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