All notable changes are documented here. Format based on Keep a Changelog; versions follow Semantic Versioning.
First public release.
- Browse MVP: config loading, directory discovery, repository list.
- In-place (zero-copy) reading of existing bare/mirror repositories.
- File tree / blob / raw / archive (zip, tar.gz) download.
- Render pipeline: code highlighting (Chroma), Markdown (GFM, sanitized), images, PDF, audio/video, CSV/TSV, JSON, plain text; pluggable registry.
- Branches/tags selector, commit history with pagination, commit diff, compare, blame, code search (git grep).
- Metadata fusion via pluggable provider;
json-exportprovider for issues / pull requests / releases (list + detail, Markdown bodies, comment timelines, filtering). - Auth on by default with a first-run setup wizard (bcrypt, sessions).
- Markdown: inline HTML rendering (GitHub-like, bluemonday-sanitized); relative image/link URLs resolve to the repo's raw/src routes; copy buttons on code blocks.
- Dark / light / auto theme, responsive layout, strict CSP and HTML sanitization throughout.
- Accept
labels/assignees/reviewsas either bare arrays or GraphQL connection objects ({nodes:[…]}), the shape produced bygh api graphqlexports — otherwise issues/PRs silently failed to load.
- Git invocations reject revs/paths that look like options (leading
-) or contain NUL bytes, preventing argument/option injection. - Raw downloads stream from git (constant memory) and honor
max_raw_bytes;Content-Dispositionfilenames are quote-escaped. - Session cookies are marked
Securebehind a TLS-terminating proxy (X-Forwarded-Proto); expired sessions are pruned.