Skip to main content

Contributing

We welcome contributions of all kinds — bug fixes, new features, documentation improvements, and test coverage.

Getting Started

1

Fork and clone

Fork the repository on GitHub, then clone your fork locally.
2

Set up your environment

Follow the Development Setup guide to install dependencies and configure your local environment.
3

Create a branch

Create a feature branch from main:
git checkout -b feat/your-feature-name
4

Make changes and test

Write your code, then run the test suite. See the Testing Guide for details.
cargo test
5

Submit a pull request

Push your branch and open a PR against main.

Branch Naming

PrefixUse
feat/New features
fix/Bug fixes
refactor/Code restructuring without behavior change
docs/Documentation only
test/Adding or improving tests

Commit Messages

Use concise, imperative-mood messages:
feat: add semantic dedup to L1 consolidation
fix: prevent panic on empty embedding batch
docs: add testing guide for contributors

Code Style

Rust

  • Run cargo fmt before committing
  • Run cargo clippy and resolve all warnings
  • Follow existing patterns in the codebase — when in doubt, look at neighboring code

TypeScript (Dashboard)

  • Run pnpm lint in the dashboard/ directory
  • Use the existing SWR + fetchAPI() patterns for data fetching

Pull Request Guidelines

  • Keep PRs focused — one logical change per PR
  • Include a clear description of what changed and why
  • Add or update tests for any behavior changes
  • If your change affects the API surface, update the relevant documentation

Reporting Bugs

Open a GitHub issue with:
  • Steps to reproduce
  • Expected vs actual behavior
  • Memorose version and environment details (OS, Rust version, LLM provider)

Documentation Contributions

Documentation lives in the memorose-docs/ repository, built with Mintlify.
npm i -g mint
cd memorose-docs
mint dev
Preview your changes at http://localhost:3000.