Skip to content

[ENHANCEMENT] Add AI commit message generation #145

@Mirrowel

Description

@Mirrowel

Problem (one or two sentences)

Summary

Add AI-assisted Git commit message generation to Zoo Code, porting the existing Kilo Code commit generation workflow into the Zoo Code extension.

This would let users generate a conventional commit message directly from the VS Code Source Control UI by analyzing the current Git changes. The feature should prefer staged changes, since those are the exact changes the user intends to commit, and fall back to unstaged changes when nothing is staged.

Problem

Writing accurate commit messages is a repeated workflow step for developers. Even when the code changes are already clear, summarizing the right scope, type, and intent can add friction before every commit.

Zoo Code already has the model configuration, prompt customization, and extension integration needed to help with this. Kilo Code previously had a commit message generation feature, but Zoo Code does not currently expose that workflow.

Since Kilo was a fork of Roo, it is only Natural we give back to the Roo community.

User Benefit

  • Reduces friction in the commit workflow.
  • Helps users produce clearer, more consistent commit messages.
  • Reuses Zoo Code's existing provider and prompt customization capabilities.
  • Improves daily developer experience from the VS Code Source Control panel.

Context (who is affected and when)

Desired behavior (conceptual, not technical)

Proposed Solution

Port and adapt Kilo Code's commit message generation feature into Zoo Code with a Zoo-specific VS Code implementation.

The feature should:

  • Add a Source Control command to generate a commit message with Zoo.
  • Analyze staged Git changes first.
  • Fall back to unstaged Git changes when no staged changes exist.
  • Generate a conventional commit message using the user's configured AI provider.
  • Allow users to customize the commit message prompt through the existing support prompt settings UI.
  • Allow users to select a dedicated API profile for commit message generation, similar to prompt enhancement configuration.
  • Write the generated message directly into the VS Code Git commit input box.

Constraints / preferences (optional)

Implementation Notes

This should be a focused feature addition around SCM commit message generation. The implementation should avoid using Zoo's normal file-access ignore filters for this workflow because Git state is the source of truth: if a user staged or modified a file for commit, that file should be considered for commit message generation.

The Zoo Code implementation should also be simpler than the legacy Kilo implementation where possible. The initial port can be adapted to the VS Code extension only, rather than preserving abstractions for non-VS Code IDE integrations that Zoo Code does not currently use.

Acceptance Criteria

  • Users can trigger commit message generation from the VS Code Source Control UI.
  • The generated commit message is inserted into the Git commit input box.
  • Staged changes are used when present.
  • Unstaged changes are used only when no staged changes are present.
  • Commit prompt customization is available in prompt settings.
  • A dedicated API configuration can be selected for commit generation.
  • Git rename/copy status parsing is handled correctly.
  • The feature includes targeted test coverage for Git context generation behavior.

Request checklist

  • I've searched existing Issues and Discussions for duplicates
  • This describes a specific problem with clear context and impact

Zoo Code Task Links (optional)

No response

Acceptance criteria (optional)

No response

Proposed approach (optional)

No response

Trade-offs / risks (optional)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions