vestige/CONTRIBUTING.md
Sam Valladares f9c60eb5a7 Initial commit: Vestige v1.0.0 - Cognitive memory MCP server
FSRS-6 spaced repetition, spreading activation, synaptic tagging,
hippocampal indexing, and 130 years of memory research.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 01:31:03 -06:00

3.3 KiB

Contributing to Vestige

Thank you for your interest in contributing to Vestige! This document provides guidelines and information to help you get started.

Project Overview

Vestige is a Tauri-based desktop application combining a Rust backend with a modern web frontend. We welcome contributions of all kinds—bug fixes, features, documentation, and more.

Development Setup

Prerequisites

Getting Started

  1. Clone the repository:

    git clone https://github.com/samvallad33/vestige.git
    cd vestige
    
  2. Install frontend dependencies:

    pnpm install
    
  3. Run in development mode:

    pnpm tauri dev
    

Running Tests

# Run Rust tests
cargo test

# Run with verbose output
cargo test -- --nocapture

Building

# Build Rust backend (debug)
cargo build

# Build Rust backend (release)
cargo build --release

# Build frontend
pnpm build

# Build complete Tauri application
pnpm tauri build

Code Style

Rust

We follow standard Rust conventions enforced by rustfmt and clippy.

# Format code
cargo fmt

# Run linter
cargo clippy -- -D warnings

Please ensure your code passes both checks before submitting a PR.

TypeScript/JavaScript

# Lint and format
pnpm lint
pnpm format

Pull Request Process

  1. Fork the repository and create a feature branch from main.
  2. Write tests for new functionality.
  3. Ensure all checks pass: cargo fmt, cargo clippy, cargo test.
  4. Keep commits focused: One logical change per commit with clear messages.
  5. Update documentation if your changes affect public APIs or behavior.
  6. Open a PR with a clear description of what and why.

PR Checklist

  • Code compiles without warnings
  • Tests pass locally
  • Code is formatted (cargo fmt)
  • Clippy passes (cargo clippy -- -D warnings)
  • Documentation updated (if applicable)

Issue Reporting

When reporting bugs, please include:

  • Summary: Clear, concise description of the issue
  • Environment: OS, Rust version (rustc --version), Node.js version
  • Steps to reproduce: Minimal steps to trigger the bug
  • Expected vs actual behavior
  • Logs/screenshots: If applicable

For feature requests, describe the use case and proposed solution.

Code of Conduct

We are committed to providing a welcoming and inclusive environment. All contributors are expected to:

  • Be respectful and considerate in all interactions
  • Welcome newcomers and help them get started
  • Accept constructive criticism gracefully
  • Focus on what is best for the community

Harassment, discrimination, and hostile behavior will not be tolerated.

License

By contributing, you agree that your contributions will be licensed under the same terms as the project:

You may choose either license at your option.


Questions? Open a discussion or reach out to the maintainers. We're happy to help!