Skip to content

Conventional Commits

Spotlight uses Conventional Commits for commit messages. This allows us to automatically generate changelogs and determine version bumps.

Commit Message Format

Each commit message should follow this format:

<type>(<scope>): <description>
[optional body]
[optional footer]

Types

TypeDescriptionVersion Bump
featA new featureMinor
fixA bug fixPatch
docsDocumentation only changesPatch
refactorCode change that neither fixes a bug nor adds a featurePatch
perfPerformance improvementPatch
testAdding or updating testsPatch
choreMaintenance tasks, dependencies, etc.Patch
ciCI/CD changesPatch
buildBuild system changesPatch

Breaking Changes

For breaking changes, add ! after the type/scope:

feat!: remove deprecated API
BREAKING CHANGE: The old API has been removed.

This will trigger a major version bump.

Scopes

Scopes are optional but help categorize changes:

  • ui - UI components
  • server - Sidecar server
  • cli - CLI commands
  • electron - Electron app
  • mcp - MCP server

Examples

Terminal window
# New feature
feat(ui): add dark mode toggle
# Bug fix
fix(server): handle empty envelopes correctly
# Breaking change
feat(cli)!: change default port to 8970
# Documentation
docs: update installation guide
# Chore (won't appear in changelog by default)
chore: update dependencies

Changelog Preview

When you open a PR, a bot will automatically comment with a preview of how your changes will appear in the changelog. This helps you verify your commit messages are correct.

Skipping Changelog

If your PR shouldn’t appear in the changelog (e.g., internal refactoring), you can:

  1. Add #skip-changelog anywhere in your commit message or PR description
  2. Add the skip-changelog label to your PR