vyctor 0.1.0

A fast CLI tool for semantic file search using vector embeddings
Documentation
# Security Policy

## Supported Versions

| Version | Supported          |
| ------- | ------------------ |
| 0.1.x   | :white_check_mark: |

## Reporting a Vulnerability

If you discover a security vulnerability in Vyctor, please report it responsibly:

1. **Do not** open a public GitHub issue for security vulnerabilities
2. Email the maintainer directly at [hej@antonmagnusson.se] with:
   - A description of the vulnerability
   - Steps to reproduce
   - Potential impact
   - Any suggested fixes (optional)


## Security Considerations

### API Keys

Vyctor supports external embedding providers (OpenAI, Voyage AI) that require API keys:

- **Never commit API keys** to version control
- Store API keys in environment variables or `.env` files
- The `.env` file is excluded from indexing by default
- API keys are only read from environment variables, never stored in the vyctor database

### Configuration

- `vyctor.config.toml` is designed to be committed to version control
- It contains no secrets—only references to environment variable names
- The `.vyctor/` directory (containing the database) can be gitignored

### Local Data Storage

- Vyctor stores file content chunks in a local DuckDB database (`.vyctor/index.duckdb`)
- The database is stored locally and is not transmitted anywhere
- When using external embedding providers, file content is sent to their APIs

### File Access

- Vyctor only reads files matching your configured include patterns
- Sensitive files can be excluded using the `exclude` patterns in configuration
- By default, common sensitive patterns are excluded:
  - `.env` and `.env.*` files
  - `secrets/` directories
  - Various lock files

### Daemon Process

- The watch daemon runs as a local process
- It only monitors files in the configured project directory
- PID and log files are stored in `.vyctor/`

## Best Practices

1. **Review your include/exclude patterns** before running `vyctor init`
2. **Use local embeddings** for sensitive codebases (no data leaves your machine)
3. **Keep the `.vyctor/` directory in `.gitignore`** (added automatically by `vyctor init`)
4. **Regularly update** to get security fixes

## Third-Party Dependencies

Vyctor uses several third-party Rust crates. We monitor these for security advisories and update promptly when issues are discovered. You can audit dependencies using:

```bash
cargo audit
```