Skip to content

v0.3.0

Pre-release
Pre-release

Choose a tag to compare

@MatiasPujado MatiasPujado released this 09 Aug 23:53

Two strands: giving an operator control over what the server sees and what it
may do, and a documentation pass aimed at readers who have never seen the
project.

Configuration

  • Per-root .project-lens.json contributes exclude patterns for that root only,
    unioned with the global exclude. Never applies to a sibling root.
  • exclude is the only key that file may set. It lives inside a scanned tree,
    so roots and allow_writes are ignored there by design: a cloned repository
    must not be able to widen the scan or enable writes. Malformed fails startup.
  • allow_writes option with PROJECT_LENS_ALLOW_WRITES override. write_file and
    scaffold_project are not registered unless set, so a client that connects
    without them cannot call them.
  • Stricter schema validation in loadConfig for exclude and allowWrites.

Benchmarks

  • Scenarios labelled stable vs unstable, so non-reproducing results are marked
    rather than published beside ones that reproduce.
  • Token cost separates default-session from write-enabled schema sets, and
    reports framing overhead and schema break-even directly.
  • search gains a scope: "all" scenario; redundant percentiles dropped.

Tests

  • 100% coverage across affected modules; new withFakeRg helper for ripgrep
    failure paths.
  • Integration tests assert write-tool absence from the tool list, not just
    call refusal. Different guarantees, and only the former is what the security
    model claims.

Documentation

  • README rewritten for a cold reader: what it is and why, reference material
    folded into collapsible sections, install routes and client registration
    recipes for Claude Code, Codex CLI, Gemini CLI and generic JSON clients.
  • New CONTRIBUTING.md: setup, layout, design invariants, testing and
    benchmarking guidance, commit conventions, patch submission.