Skip to content

Summaries and todos#355

Merged
webdevcody merged 1 commit intov0.8.0rcfrom
summaries-and-todos
Jan 4, 2026
Merged

Summaries and todos#355
webdevcody merged 1 commit intov0.8.0rcfrom
summaries-and-todos

Conversation

@webdevcody
Copy link
Collaborator

@webdevcody webdevcody commented Jan 4, 2026

Summary by CodeRabbit

Release Notes

  • New Features

    • Added Ideation feature with brainstorming sessions, idea management, and AI-driven suggestion generation
    • Added guided prompts by category to inspire new ideas
    • Added project analysis to identify improvement opportunities
    • Added idea-to-feature conversion workflow
    • Added summary view mode to agent output display
    • Added compact todo list display on feature cards
  • Removed Features

    • Removed legacy Feature Suggestions dialog (replaced by Ideation)
  • Tests

    • Added comprehensive Ideation service test suite

✏️ Tip: You can customize this high-level summary in your review settings.

- Introduced a new markdown file outlining a mandatory 3-pass verification process for code completion, focusing on correctness, edge cases, and maintainability.
- Updated the AgentInfoPanel to display a todo list for non-backlog features, ensuring users can see the agent's current tasks.
- Enhanced the AgentOutputModal to support a summary view, extracting and displaying summary content from raw log output.
- Improved the log parser to extract summaries from various formats, enhancing the overall user experience and information accessibility.
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 4, 2026

Caution

Review failed

Failed to post review comments

📝 Walkthrough

Walkthrough

This pull request introduces a comprehensive Ideation feature for brainstorming and idea management. The implementation includes a backend service for managing sessions, ideas, project analysis, and AI-driven suggestions; API routes for CRUD and workflow operations; frontend UI components and store for state management; type definitions for the ideation domain; and platform utilities for data persistence. Concurrently, it removes the earlier feature-suggestions dialog and replaces it with the new ideation system.

Changes

Cohort / File(s) Summary
Configuration & Documentation
\ .claude/.gitignore, \ .claude/commands/thorough.md
Added ignore pattern hans/; introduced three-pass verification checklist (Correctness, Edge Cases, Maintainability) for code review.
Backend Service
apps/server/src/services/ideation-service.ts
New IdeationService class managing sessions, ideas, analysis, suggestions, and conversions. Handles session lifecycle, idea CRUD, project structure analysis, AI-driven suggestions, and idea-to-feature conversion with event emission and disk persistence.
Server Setup
apps/server/src/index.ts
Integrated IdeationService and mounted /api/ideation routes with dependency injection (events, settingsService, featureLoader).
Ideation Routes Common
apps/server/src/routes/ideation/common.ts
Created route-specific logger and error utilities; exported getErrorMessage and logError for ideation endpoints.
Ideation Router
apps/server/src/routes/ideation/index.ts
Main router factory exporting createIdeationRoutes with endpoints for session management, ideas CRUD, analysis, conversion, prompts, and suggestions.
Session Route Handlers
apps/server/src/routes/ideation/routes/session-*.ts
Added four handlers: createSessionStartHandler, createSessionStopHandler, createSessionGetHandler, createSessionMessageHandler for session lifecycle and messaging (includes asynchronous message delivery).
Ideas Route Handlers
apps/server/src/routes/ideation/routes/ideas-*.ts
Added five CRUD handlers: createIdeasListHandler, createIdeasCreateHandler, createIdeasGetHandler, createIdeasUpdateHandler, createIdeasDeleteHandler with validation, event emission, and error handling.
Additional Route Handlers
apps/server/src/routes/ideation/routes/analyze.ts, convert.ts, add-suggestion.ts, prompts.ts, suggestions-generate.ts
Specialized handlers: analyze project and retrieve cached results; convert idea to feature; add suggestion as feature; fetch prompts by category; generate suggestions from guided prompts.
Backend Tests
apps/server/tests/unit/services/ideation-service.test.ts
Comprehensive unit tests for IdeationService covering sessions, ideas CRUD, conversions, analysis, prompts, and suggestions with mocked dependencies.
Frontend Ideation View
apps/ui/src/components/views/ideation-view/index.tsx, components/ideation-dashboard.tsx, components/prompt-*.tsx
New IdeationView with dashboard (manage ideas, generate suggestions), category selection, and prompt list; includes SuggestionCard, GeneratingCard, TagFilter subcomponents.
Navigation & Shortcuts
apps/ui/src/components/layout/sidebar/hooks/use-navigation.ts, apps/ui/src/components/ui/keyboard-map.tsx
Added "Ideation" navigation item (Lightbulb icon); added shortcut entries for ideation, githubIssues, githubPrs in labels and categories.
Board View Suggestions Removal
apps/ui/src/components/views/board-view.tsx, dialogs/feature-suggestions-dialog.tsx, dialogs/index.ts, hooks/use-suggestions-state.ts, hooks/index.ts, hooks/use-board-effects.ts
Removed FeatureSuggestionsDialog component, useSuggestionsState hook, and related state management (suggestionsCount, featureSuggestions, etc.) from board view.
Board View Updates
apps/ui/src/components/views/board-view/kanban-board.tsx, dialogs/agent-output-modal.tsx, components/kanban-card/agent-info-panel.tsx
Updated KanbanBoard to remove suggestions props and UI; enhanced AgentOutputModal with summary view mode and Markdown rendering; added compact todo-list rendering in agent-info-panel.
Frontend Store & Hooks
apps/ui/src/store/ideation-store.ts, store/app-store.ts, hooks/use-guided-prompts.ts, hooks/use-keyboard-shortcuts.ts, hooks/index.ts
New IdeationStore (Zustand) managing ideas, generation jobs, analysis, and UI state; added ideation view mode to app-store; new useGuidedPrompts hook for fetching prompts; merged keyboard shortcuts with defaults.
Frontend Routing & API Integration
apps/ui/src/routes/ideation.tsx, lib/electron.ts, lib/http-api-client.ts
Created /ideation route; expanded ElectronAPI and HttpApiClient with full IdeationAPI surface (sessions, ideas, analysis, suggestions, prompts).
Frontend Parsing & Logging
apps/ui/src/lib/agent-context-parser.ts, lib/log-parser.ts
Improved TodoWrite extraction with balanced JSON parsing; added extractSummary function to parse summaries from log output.
Type Definitions & Platform
libs/types/src/ideation.ts, libs/types/src/event.ts, libs/types/src/index.ts, libs/platform/src/paths.ts, libs/platform/src/index.ts
New ideation type definitions (Idea, IdeationSession, IdeationPrompt, ProjectAnalysisResult, etc.); extended EventType with 13 ideation events; added 10 ideation path utilities (getIdeationDir, getIdeasDir, etc.) and ensureIdeationDir.

Sequence Diagram(s)

sequenceDiagram
    actor User
    participant UI as UI / IdeationView
    participant Store as Ideation Store
    participant HTTP as HTTP API Client
    participant Server as IdeationService
    participant AI as AI Provider
    participant FS as File Storage

    User->>UI: Select "Start Session"
    activate UI
    UI->>HTTP: startSession(projectPath, options)
    activate HTTP
    HTTP->>Server: POST /api/ideation/session/start
    activate Server
    
    Server->>Server: Validate projectPath
    Server->>Server: Load project context
    Server->>FS: Initialize session files
    Server->>AI: Begin message stream
    activate AI
    
    Server-->>HTTP: { success: true, session }
    deactivate Server
    HTTP-->>UI: { success: true, session }
    deactivate HTTP
    
    UI->>Store: setSelectedJob, setIsGenerating
    UI-->>User: Show session UI & input

    User->>UI: Send message
    UI->>HTTP: sendMessage(sessionId, message)
    activate HTTP
    HTTP->>Server: POST /api/ideation/session/message
    activate Server
    Server->>AI: Stream message + context
    
    loop AI Response Stream
        AI-->>Server: Message chunk
        Server-->>HTTP: Event (ideation:stream)
        HTTP-->>UI: Real-time update
        UI->>Store: Update message state
        UI-->>User: Show assistant response
    end
    deactivate AI
    deactivate Server
    deactivate HTTP

    User->>UI: Accept idea / Generate suggestions
    UI->>HTTP: generateSuggestions(projectPath, promptId, category, count)
    activate HTTP
    HTTP->>Server: POST /api/ideation/suggestions/generate
    activate Server
    
    Server->>AI: Stream suggestions (with system prompt + context)
    activate AI
    loop Progress Events
        AI-->>Server: Partial suggestions
        Server-->>HTTP: Event (ideation:suggestions)
        HTTP-->>UI: Progress update
        UI->>Store: appendSuggestionsToJob
        UI-->>User: Show generating progress
    end
    deactivate AI
    
    Server->>FS: Persist analysis + suggestions cache
    Server-->>HTTP: { success: true, suggestions }
    deactivate Server
    HTTP-->>UI: Suggestions ready
    deactivate HTTP
    
    UI->>Store: updateJobStatus('ready', suggestions)
    UI-->>User: Display suggestion list with cards

    User->>UI: Accept suggestion as feature
    UI->>HTTP: addSuggestionToBoard(projectPath, suggestion)
    activate HTTP
    HTTP->>Server: POST /api/ideation/add-suggestion
    activate Server
    
    Server->>Server: Map suggestion category → feature category
    Server->>Server: Create feature with backlog status
    Server->>FS: Persist feature
    
    Server-->>HTTP: { success: true, featureId }
    deactivate Server
    HTTP-->>UI: Feature created
    deactivate HTTP
    
    UI->>Store: removeSuggestionFromJob
    UI-->>User: Show success, remove suggestion card
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

Suggested labels

Enhancement, Feature

Suggested reviewers

  • Shironex

Poem

🐰 Whiskers twitch with joy today!
Ideas flow in every way,
Brainstorms live in sessions bright,
From thoughts to features, day to night!
Suggestions bloom, and tasks take flight,
Automaker's mind shines ever bright!

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Title check ⚠️ Warning The title 'Summaries and todos' is vague and does not clearly convey the main purpose of this large pull request. The PR introduces a comprehensive ideation feature system spanning backend services, API routes, UI components, and stores, but the title only hints at two narrow aspects (summaries and todos) without reflecting the scope or primary intent. Revise the title to accurately reflect the primary change, such as 'Add comprehensive ideation feature with AI-driven brainstorming, session management, and idea-to-feature conversion' or similar to better communicate the main scope to reviewers.
Docstring Coverage ⚠️ Warning Docstring coverage is 39.58% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@webdevcody webdevcody changed the base branch from main to v0.8.0rc January 4, 2026 06:58
@AutoMaker-Org AutoMaker-Org deleted a comment from gemini-code-assist bot Jan 4, 2026
@webdevcody webdevcody merged commit 6464291 into v0.8.0rc Jan 4, 2026
5 of 6 checks passed
@webdevcody webdevcody deleted the summaries-and-todos branch January 4, 2026 06:59
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new summary view for agent outputs and improves the parsing and display of todo lists. The changes include adding a 'Summary' tab to the agent output modal, which greatly improves usability by providing a concise overview of the agent's work. The logic for extracting todos from agent logs has been significantly refactored for better robustness, and a new todo list is now displayed on Kanban cards for better visibility. Overall, these are excellent enhancements. I have one minor suggestion to improve the new todo list rendering in React.

Comment on lines +260 to +295
if (!showAgentInfo && feature.status !== 'backlog' && agentInfo && agentInfo.todos.length > 0) {
return (
<div className="mb-3 space-y-1 overflow-hidden">
<div className="flex items-center gap-1 text-[10px] text-muted-foreground/70">
<ListTodo className="w-3 h-3" />
<span>
{agentInfo.todos.filter((t) => t.status === 'completed').length}/
{agentInfo.todos.length} tasks
</span>
</div>
<div className="space-y-0.5 max-h-24 overflow-y-auto">
{agentInfo.todos.map((todo, idx) => (
<div key={idx} className="flex items-center gap-1.5 text-[10px]">
{todo.status === 'completed' ? (
<CheckCircle2 className="w-2.5 h-2.5 text-[var(--status-success)] shrink-0" />
) : todo.status === 'in_progress' ? (
<Loader2 className="w-2.5 h-2.5 text-[var(--status-warning)] animate-spin shrink-0" />
) : (
<Circle className="w-2.5 h-2.5 text-muted-foreground/50 shrink-0" />
)}
<span
className={cn(
'break-words hyphens-auto line-clamp-2 leading-relaxed',
todo.status === 'completed' && 'text-muted-foreground/60 line-through',
todo.status === 'in_progress' && 'text-[var(--status-warning)]',
todo.status === 'pending' && 'text-muted-foreground/80'
)}
>
{todo.content}
</span>
</div>
))}
</div>
</div>
);
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There are a couple of improvements that can be made here for performance and to follow React best practices:

  1. Key Prop: Using the array index idx as a key is an anti-pattern in React, as it can lead to unpredictable UI behavior if the list is re-ordered. It's better to use a unique and stable identifier. Since todo items don't seem to have a unique ID, we can use the content combined with the index for a more stable key, assuming content is mostly unique.

  2. Performance & Readability: The number of completed todos is calculated inline within the JSX. This can be calculated once before the return statement for slightly better performance and improved code readability.

Here's a suggested refactoring that addresses both points:

  if (!showAgentInfo && feature.status !== 'backlog' && agentInfo && agentInfo.todos.length > 0) {
    const completedCount = agentInfo.todos.filter((t) => t.status === 'completed').length;

    return (
      <div className="mb-3 space-y-1 overflow-hidden">
        <div className="flex items-center gap-1 text-[10px] text-muted-foreground/70">
          <ListTodo className="w-3 h-3" />
          <span>
            {completedCount}/{agentInfo.todos.length} tasks
          </span>
        </div>
        <div className="space-y-0.5 max-h-24 overflow-y-auto">
          {agentInfo.todos.map((todo, idx) => (
            <div key={`${idx}-${todo.content}`} className="flex items-center gap-1.5 text-[10px]">
              {todo.status === 'completed' ? (
                <CheckCircle2 className="w-2.5 h-2.5 text-[var(--status-success)] shrink-0" />
              ) : todo.status === 'in_progress' ? (
                <Loader2 className="w-2.5 h-2.5 text-[var(--status-warning)] animate-spin shrink-0" />
              ) : (
                <Circle className="w-2.5 h-2.5 text-muted-foreground/50 shrink-0" />
              )}
              <span
                className={cn(
                  'break-words hyphens-auto line-clamp-2 leading-relaxed',
                  todo.status === 'completed' && 'text-muted-foreground/60 line-through',
                  todo.status === 'in_progress' && 'text-[var(--status-warning)]',
                  todo.status === 'pending' && 'text-muted-foreground/80'
                )}
              >
                {todo.content}
              </span>
            </div>
          ))}
        </div>
      </div>
    );
  }

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