rover-fetch 0.2.0

An MCP server for fetching and prepping web content for LLM agents.
Documentation
# Contributing to Rover

Thanks for your interest. This document covers the dev environment setup and
the automated quality checks every change runs through.

## Prerequisites

- Rust stable (MSRV 1.85, edition 2024). Install via [rustup]https://rustup.rs.
- [Lefthook]https://lefthook.dev for git hooks. The simplest install is:
  - macOS: `brew install lefthook`
  - Linux/macOS via curl: `curl -1sLf 'https://lefthook.dev/install.sh' | sudo sh`
  - Other platforms: see https://lefthook.dev
- [`commit-check`]https://crates.io/crates/conventional-commits-check for
  Conventional Commits validation: `cargo install conventional-commits-check`
  (binary name is `commit-check`).

## One-time setup in your clone

```sh
lefthook install
```

This activates the pre-commit, pre-push, and commit-msg hooks.

## What the hooks do

### pre-commit (fast, only staged files)

- `rustfmt --check` on staged `.rs` files.
- `cargo clippy --all-targets --features test-loopback -- -D warnings` when
  any `.rs`/`.toml` is staged.

### pre-push (full project)

- `cargo fmt --all -- --check`
- `cargo clippy --all-targets --features test-loopback -- -D warnings`
- `cargo test --features test-loopback`
- `cargo build --release`

All warnings are treated as errors. The Cargo.toml `[lints]` table sets
`warnings = "deny"` for both rustc and clippy crate-wide.

### commit-msg

- `commit-check` validates the message against the [Conventional Commits]https://www.conventionalcommits.org
  spec with a max description length of 500 characters.

## CI parity

`.github/workflows/ci.yml` runs the same checks as `pre-push` on every PR and
on pushes to `main`, across `ubuntu-latest` and `macos-latest`.

## Running the checks manually

```sh
cargo fmt --all -- --check
cargo clippy --all-targets --features test-loopback -- -D warnings
cargo test --features test-loopback
cargo build --release
```

Or run the lefthook stages directly:

```sh
lefthook run pre-commit
lefthook run pre-push
```

## Tooling philosophy

Project tooling stays Rust-native where possible (rustfmt, clippy, cargo
test/build, `commit-check`). Lefthook itself is the only external dependency.

## Skipping hooks (don't, except in emergencies)

If you genuinely need to bypass hooks (e.g., a fixup commit that intentionally
contains a known issue you'll resolve in a follow-up commit), prefix with
`LEFTHOOK=0`:

```sh
LEFTHOOK=0 git commit -m "wip: …"
```

CI on the PR will still enforce the same checks, so this only buys you a local
shortcut.