My baseline for Relay is simple: reading a project should not mean running that project.
Relay reads source as bounded UTF-8 text with replacement for malformed bytes. It never imports analysed Python, invokes a build tool, compiles C++, follows directory symlinks, or makes a background network request. A symlink supplied as the analysis root is refused. Default limits are 2 MB per file, 2,000 files, and 50 MB in aggregate.
Root .gitignore patterns use Git wildmatch ordering, negation, rooted rules, and directory
semantics through pathspec. Reports refuse to overwrite analysed source files or symbolic links
and are committed with an atomic same-directory replacement. Output parents must already exist.
Run Relay with the least filesystem privilege needed and inspect reports before sharing; source
evidence can contain project-sensitive text.